Dedicated or Shared Sessions?

I have a 10g SE1 + ASM running in Windows 2003 ES with 4GB RAM with /3GB switch and 7TB JBOD storage. Our custom data mining applications access this database from a grid of 15 servers. Application architecture uses a mixture of hibernate, roll-your-own connection pooling in Java, and daemons with dedicated sessions. In all, we typically have 200 sessions but only 3 to 9 are active at any given moment. Individual queries and transactions range from sub-second to 3 hours in duration.
I’ve run the system with MTS and in dedicated server mode; it runs either way. I have never tried tweaking multiple shared_servers, dispatchers or circuits.
Right now it seems to run fine with 200 dedicated sessions, but it does gobble up a lot of unused PGA memory for the inactive sessions.
In our situation, what is the best configuration, MTS, or shared, or dedicated, and why?

Mark, I think that physically a shared server process is no different than a dedicated server process in Oracle on Windows - both are threads in the oracle.exe process image.
The only real difference is that one deals directly with the client, and the other with a virtual circuit.
This then raises the question about the PGA and UGA. As the thread runs in the oracle.exe space, it has direct access to, and uses, the data segment (DS) of oracle. The PGA is likely a dynamic memory allocation - so too the UGA for a dedicated thread, while a shared thread will use the SGA instead (for the UGA).
Now assuming that my speculation is not far of, there are very little overheads between dedicated and shared server threads on Oracle in Windows - except for the dedicated servers being more and thus more PGAs given the nature of these threads versus shared server threads.
This is unlike Unix where there is a large physical difference as each process (dedicated or shared) has data segment and code segment. The resource footprint for a process is a lot bigger.
A concern of mine... Windows is excellent at running threads.. it really strains running lots of physical processes (unlike Unix/Linux). But as threads share the same code and data segments, a single thread running into a severe bug can potentially corrupt the entire physical process image, crashing all other threads in it. At least, this has been my experience doing Windows server development.
Would be nice to read a technical paper on just how Oracle implements their shared and dedicated server models on the Win32 API.

Similar Messages

  • SAP Database is in dedicated or shared

    Hi Gurus
    I have a doubt. Our SAP Database is working on dedicated or shared mode. when i was passing thro some oracle documents i have read as per tnsnames.ora file we could come to know whether the dedicated or shared mode. I have checked our SAP systems in one of the SAP system which has seperate database server and two other separate application servers which does not show the connect_data as dedicated but as (SID=%sid%) but in another SAP suystem where it is stanalone system which shows dedicated mode in connect_data parameter in tnsnames.ora file.
    i want to know the basic mode our SAP works in dedicated mode or shared mode. if it is dedicated mode in what all circumstances it will be decided or if it shared mode then what are all the conditions are set for shared
    Pls help
    regards
    bala

    Hello Bala,
    > i want to know the basic mode our SAP works in dedicated mode or shared mode.
    Just query the view V$SESSION (http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2088.htm#i1414383)
    > SQL> SELECT SID, SERVER FROM V$SESSION;
    Here is a really nice explanation about dedicated and shared connections:
    /message/2114775#2114775 [original link is broken]
    Please read this, because i think you don't understand the concept about dedicated/shared .. it is just a "connect option" not really a mode in that the oracle server is running.
    Regards
    Stefan

  • SAP db upgrade to Oracle 10G 64 bit - Dedicated or Shared Server ?

    We current run 32bit servers ( approx 150 users ) and plan to migrate to ECC 6.0 on 64bit bit server. Question about upgrade <br>from Oracle 9.2.0.8 32bit to 10.2.0.4 64 bit . Database upgrade Oracle 64 bit should be Dedicated or Shared Server? <br><br>
    My understanding ( limited), is Oracle 64bit dedicated server connection has the dedicated resource so whether or not a user is<br> doing work the connection remains allocated to that user. So for example, in our case a small Windows "shop" will needs <br>around 2MB of kernel space. So 150 threads, for 150 dedicated server connections, approx 150 x 2MB RAM.  Correct ? <br><br>
    Whereas Shared server the user connection is shared, that is user is connecting by dispatchers and when a user is idle his <br>resource can be used by other users, thus lessen the load on system. So in this case maybe 5 dispatcher processes and <br>30 shared server processes to service the 150 sessions of the 150 users which seems very effective to me . <br>My main concern however is with some of the Finance people who get problems with huge COPA and SIS reports now which is <br>why we are moving to 64bit OS/DB/SAP<br><br>
    Question is which does SAP ECC 6.0 support ( or recommend ) Oracle 64 bit Dedicated or Shared Server db migration ?

    > Question is which does SAP ECC 6.0 support ( or recommend ) Oracle 64 bit Dedicated or Shared Server db migration ?
    Never heard that anyone uses shared Server Setup with SAP.
    With SAP, it is NOT the user having a DB connection.
    It is the workprocess, and it is keeping it even if all users are idle.
    You allways have dedicated Oracle processes for SAP Workprocesses.
    The rather old note 70197 states, that Oracle MTS (multi threaded server)
    allowed, but you are on your own to configure it and there are some pitfalls.
    Volker

  • Dedicated vs Shared Question

    I am trying to understand if my DB is running dedicated or shared. I have read several posts here but some of the information is contradicting each other on my server. This is my analysis so far and it leads me to believe that I am running in dedicated server mode but I would love some help to better understand if I am right. Thanks in advance for your help!
    1. We have a dispatcher but you always get on when you create a DB with DBCA and this does not mean the DB runs in shared.
    SQL> show parameter dispatcher
    NAME TYPE
    VALUE
    dispatchers string
    (PROTOCOL=TCP)
    max_dispatchers integer
    2. Large_poole_size is 0 and I think if the DB is shared then it will use the large pool, otherwise use the shared pool.
    SQL> show parameter large_pool
    NAME TYPE
    VALUE
    large_pool_size big integer
    0
    3. If shared_servers is greater than 1 then the server is shared but ours is set to 1.
    SQL> show parameter SHARED_SERVERS
    NAME TYPE
    VALUE
    max_shared_servers integer
    shared_servers integer
    1
    4. The tnsnames.ora file has SERVER=DEDICATED which means the DB will NOT be shared regardless of above.
    5. ps -ef|grep $ORACLE_SID|grep d000 shows a dispatcher but I think this is just the default one.
    oracle 4456 1 0 Mar17 ? 00:00:55 ora_d000_ENGTREQ1

    995322 wrote:
    Alright so my senior said that when our java developers connect through the database using JDBC and don't put SERVER=DEDICATED on the HTML string it ignores tnsnames.ora and automatically creates a shared connection. Your senior is wrong and there's more to it than that. Didn't take me long to put together a proof, even though I've never worked directly with setting up jdbc connections. For this test I created a connection in SQL Developer using jdbc thin. The "connection string" (url) looks like this:
    jdbc:oracle:thin:@vblnxsrv01:1521/orclNo specification of shared or dedicated.
    listener shows
    Services Summary...
    Service "+ASM" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "orcl" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclXDB" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfullythe orclXDB is associated with the dispatchers.
    Behold. Costello is using the jdbc connection from SQL Developer.
      1  select username, program, server
      2  from v$session
      3* where username in ('ABBOT','COSTELLO')
    SQL> /
    USERNAME   PROGRAM                                          SERVER
    ABBOT      sqlplus.exe                                      DEDICATED
    COSTELLO   SQL Developer                                    DEDICATEDBut if I change the connection definition properties to
    jdbc:oracle:thin:@vblnxsrv01:1521/orclXDBwe get
      1  select username, program, server
      2  from v$session
      3* where username in ('ABBOT','COSTELLO')
    SQL> /
    USERNAME   PROGRAM                                          SERVER
    ABBOT      sqlplus.exe                                      DEDICATED
    COSTELLO   SQL Developer                                    NONE
    We had a problem where SERVER=DEDICATED was left off and their queries were mysteriously taking random 4 seconds to complete and when they added SERVER=DEDICATED the wait went away.....this confuses me because it looks like the DB is not setup to use shared at all.

  • Problem switching dedicated to shared

    Hello,
    I'm trying to switch from DEDICATED to SHARED server mode. I'm running oracle ee r2(8.1.6) on redhat 6.2. I have some oracle documentation that says to add the following lines to the end of init.ora
    mts_dispatchers = "(protocol=TCP)(DISP=1)(mul=OFF)(pool=OFF)"
    mts_servers = 1
    mts_max_servers = 20
    I shutdown oracle to make the changes to init.ora and then restarted. Oracle comes up fine, but when I check server in v$session I get all DEDICATED. Please help.
    Thanks,
    David

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by davidxm:
    Hello,
    I'm trying to switch from DEDICATED to SHARED server mode. I'm running oracle ee r2(8.1.6) on redhat 6.2. I have some oracle documentation that says to add the following lines to the end of init.ora
    mts_dispatchers = "(protocol=TCP)(DISP=1)(mul=OFF)(pool=OFF)"
    mts_servers = 1
    mts_max_servers = 20
    I shutdown oracle to make the changes to init.ora and then restarted. Oracle comes up fine, but when I check server in v$session I get all DEDICATED. Please help.
    Thanks,
    David<HR></BLOCKQUOTE>
    I had the same problem. I'm following through the Oracle 8i for Linux Starter Kit, by Steve Bobrowski.
    After editing the initoralin.ora file and adding the mts_ parameters, I tried
    sqlplus system/manager@oralin
    and got
    ERROR:
    ORA-12154: TNS:could not resolve service name
    I did a search for ORA-12154 and found a windows-related doc with a solution.
    The answer was to add the following to $ORACLE_HOME/network/admin/sqlnet.ora:
    names.default_domain = x
    where x is the same as the domain specified by the service_name.domain parameter in the tnsnames.ora file in the same directory.

  • Dedicated or shared connections with tomcat?

    Tomcat does it's own connection pooling. That being the case, should I use dedicated or shared connections in Oracle? If Tomcat can properly maintain a small number of dedicated connections, then I'd prefer to avoid the setup/teardown overhead of using shared connections. I'm not sure if Tomcat (5.5.17) will operate properly in this regard or not, though. Does anyone have any experience with this?

    Using shared server or dedicated server is just a matter of which kind of applications you are planning to use. Shared server architecture is meant as a resource saver, considering the OLTP applications spend most of the CPU and network time idle. There is no reason to allocate private and exclusive resources to a connection. On the other hand, dedicated connections are meant for batch and reporting (Full Table Scans) operation, which are mostly found on DDS and DWH systems.
    If you use shared servers (no matter the client) and the application starts to behave in a DDS fashion, you will find Oracle Server will have to dispatch more processes to perform the operation, causing a raise in the High Water Mark resource usage.
    Shared servers is a more complex architecture than the dedicated server, for a few number of connections it is not worth to use it. But in the long run you'll find a meaningful memory and cpu consumption reduction, which is the main goal of this connection mode.
    ~ Madrid

  • Shared Session

    Hello
    we need a session-store (maintaining state) which is shared between several WebDynpros.
    The WebDynpros are embedded into the Portal as iViews, any hint how to get such a shared session-store?
    Thanks! Kai

    Thank you very much for your ongoing effort, Anton.
    Neither
    Component Interfaces -> SharedContextIface -> Interface Controller
    nor
    Components -> SharedContextComp -> Local Component Interface -> Interface Controller
    have any option to set required controllers. Only "normal" Component Controllers do have the "Required Controllers" Table under Tab Properties.
    Anyone here having experience with EHP1?
    Thanks!

  • How to know Dedicated or Shared ...

    Hi there,
    I want to know what is the default architecture (dedicated or shared) when a database is created thru Installtion or Creation Wizard and how we can verify from the database? And also I wanna know how we can manually configure a database to dedicated or shared architecture? Can anybody help me in this regard?
    Thanks in advance.
    Regards,
    Aqueel.

    I want to know what is the default architecture (dedicated or shared) when a database is created thru Installtion or Creation Wizard ?
    r.- The installer is going to request from you the option but the default is dedicated
    we can verify from the database?
    lsnrctl services
    It is one of the method to realize if the database is in shared or dedicated way.
    another can be checking the parameters.
    Depending if you are working in 8i or 9i the parameters
    are different for a Shared Server(9i) or Multi-Thread Server(8i)
    parameters in 8i for a dedicated Server:
    mts_dispatchers = "(protocol=TCP)(disp=15)(con=25)"
    mts_max_dispatchers = 20
    mts_servers = 12
    mts_max_servers = 18
    I wanna know how we can manually configure a database to dedicated or shared architecture ?
    The parameters to set the kind of mode is going to depend of what release you are using.
    What release you are using, 8i or 9i ?
    Joel P�rez

  • OCI8 - dedicated or shared connection

    Does anyone know what type of connection is created through ruby-OCI8 using database.yml? Is it a dedicated or shared connection?
    Thanks,
    James

    I think it's a shared connection.
    In rails/activerecord/lib/active_record/base.rb, it says:
    Connections are usually created through ActiveRecord::Base.establish_connection and retrieved by ActiveRecord::Base.connection. All classes inheriting from ActiveRecord::Base will use this connection. But you can also set a class-specific connection. For example, if Course is a ActiveRecord::Base, but resides in a different database you can just say Course.establish_connection and Course and all its subclasses will use this connection instead.
    This feature is implemented by keeping a connection pool in ActiveRecord::Base that is a Hash indexed by the class. If a connection is requested, the retrieve_connection method will go up the class-hierarchy until a connection is found in the connection pool.

  • Safari Sharing Session Info With Air

    Hi Guys,
    I'm having issues with safari sharing session information
    with my air application. What i'm doing is using a URLLoader to
    send a URLRequest to a web server. When I send the request in my
    app, AIR is applying its own header vars to the request. When i try
    to prevent this by setting URLRequest.manageCookies to false, I
    lose some of the custom header variables that are sent by the
    server in the response. Is there any way of preventing air from
    cookie sharing and still retrieve all the header variables
    including cusom vars?

    This crash seems to be caused by a bug in iCloud. The only workaround that I know of at the moment is to disable Safari synchronization in the iCloud preference pane. Sync bookmarks with iOS devices in iTunes instead. You may also need to do as follows.
    Back up all data.
    Triple-click the text on the line below to the clipboard, then copy it to the Clipboard (command-C):
    ~/Library/Safari/Bookmarks.plist
    Quit Safari.
    Select
    Go ▹ Go to Folder
    from the Finder menu bar. Paste into the text box that opens (command-V), then press return.
    A folder window should open with a file named "Bookmarks.plist" selected. Move the selected file to the Desktop, leaving the folder open.
    Relaunch Safari. It will open with the default set of bookmarks. Delete them all. Select
    File ▹ Import Bookmarks
    from the Safari menu bar. Import from the bookmarks file you moved to the Desktop. Arrange the bookmarks as you wish.
    If Safari now performs normally, you can delete the old bookmarks file. Otherwise, quit Safari again and put back the file you moved, replacing the newer one with the same name. Close the Finder window and post again.

  • Session backing beans and multiple navigator windows sharing session

    Hi let's suppose i have a web and page1, page2 and page3 that should share the backingbean. Normal navigation goes from page 1 to page 2 to page 3.
    I do not want a backing bean per page because i need to share data between my pages. The immediate solution is to put this bean in session context and use it in each page. But this has severe drawbacks:
    - The backing bean is the same each time I access any page, and I want a new bb to be used each time the user requests for page 1
    - When a user has more than one navigator window sharing session, and on each window he is navigating through pages 1 to 3, there can be a big mess because he is accessing to the same bb from both windows.
    So I would like to find a solution that permit the user to navigate from both windows as if the windows had its own session.
    Any hint?
    Thnx

    I have a similar problem as described .
    I hava one window with enterable fields and when you click on a button it opens another window .Both forms are backed by the same bean .since both forms are nearly the same .
    The bean is a managed bean in request scope .
    when I fill in the first window with values and click on the link it opens the second but the first windows elements and now empty .
    Even though it is in Request scope when the second window is being loaded the bean is re-initialized . I would expect a new intance of this bean to be created for the second window .
    This is how I am calling the second window .
    <h:commandButton id="newRequestItem" action="#{requestItem.createNewRequestItem}" rendered="#{createActivationRequest.displayCreateLinks}" onclick="openNewPage('NewRequestItem.jsp');"
    image="images/show_all.gif" title="new request">
    <h:outputText value="new request" styleClass="toolbar-command"></h:outputText>
    </h:commandButton>
    function openNewPage(url)
         aqcbwin= window.open(url, "newRequestItem","toolbar=no, scrollbars=1");
    aqcbwin.moveTo(50, 50);
    target="_new";
    //target="_blank";
    aqcbwin.focus();
    any ideas to what is wrong and how I can correct this .
    Thanks for your help .
    Mark

  • JBoss cluster shared session not working always

    Hi all,
    I am using JBoss AS 4.0 for my Application, recently we need to scale the application, so we added another JBoss AS 4.0 in cluster. It is working fine with sticky session.
    But we need to share the session state so we made the changes in JBoss service .xml and the Appache for shared session, as described in the Jboss administration documentation, but the session shareing is not working always, some time it is working, suddenly the session in the clustered server gone out,
    please advice me what if i am missing, i cannot figure out
    thanks in advance

    Hello. I actually raised a support request to Microsoft about this. It seems from my testing that when using user profile disks in 2012 r2 that shared activation doesn't work. Last update this was with engineering team at MS. Will update when they have
    confirmed this is an actual bug.

  • Dedicated vs shared vs processes vs cpu - how much to set

    hi guys,
    straight to the question ;)
    I am running on dedicated mode.
    I am on ORACLE 10G redhat linux.
    q1) is there a limit on the parameter file processes parameter ?
    q2) how do i calculate how much processes can be created on my machine ?
    q2.1) is there any way to know how much resource each of my process is taking up ?
    I am going to simultaneous handle a few hundred/thousand transaction at a time.
    q1) i need to know how much shared process can be created on my machine
    q2) how do you calculate or gauge
    i) how much process will be needed for x volume of concurrent transaction / requests / connection
    ii) how much process can be supported by your machine ?
    Regards
    Noob
    Edited by: user12050668 on May 23, 2011 1:59 AM

    Number of processes (Oracle) depend on limits kernel.
    This is probe and error.
    To monitoring dispatcher use v$dispatcher
    To monitoring shared_server use v$shared_server, if all process are status = EXEC, you need more process, usually only 15-20% of process in EXEC status is fine.
    Remember
    - To kill sessions using MTS use "disconnect session" if you use kill you are killing shared process or dispatcher process.
    - Don't use MTS for batch processes, only OLTP
    HTH
    Antonio NAVARRO

  • How get whethere server is dedicated or shared

    How i can get information while database is open that is database is in shared or dedicated server mode.
    its information is also in tsname.ora file but what the way else???????

    V$SHARED_SERVER
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2109.htm#sthref4028
    or
    V$SESSION (column server)
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2088.htm#sthref3985

  • Dedicated or Shared

    Hai all,
    How to identfy the database runnung whether shared server mode or dedicated mode.. What parameter relating with this.. please help..
    Shiju

    What is your Oracle version?
    If on 8i, use
    SQL> show parameter mts;
    9i onwards
    SQL> show parameter shared;
    Message was edited by:
    Satish Kandi
    Forgot to add... If they are set, then you are running in shared server/mts mode. Another method would be to look at server column in v$session.

Maybe you are looking for

  • Send a json string to an HTTP in labview

    Hi, I need to assing values to an HTTP site by sending a json string, I have been trying using the HTTP client PUT vi with no success, does anyone have an easy way of sending a json string to an HTTP site in labview thru the PUT method??? Thank you

  • Macbook Pro back-up

    New to Apple.  How do I back-up my macbook pro?

  • Change log on PO (Invoicing Plan)

    Is there anyway we can display the changes made on a PO within the Invoicing Plan section? Example, I changed the invoice date under the Invoicing Plan section? I was not able to see any changes under PO >> Environment >> Header changes or Item chang

  • Agent restart results in loss of management plug-in deployment

    A hardware provider provided us 3 management plug-ins for the Grid Control Enterprise Manager (V11g). The Plug-ins are deployed on one single agent. The agent is located on our OMS. Overall, we've got 20 instances of these plug-ins on the same agent.

  • Customize the subject of a mail

    I want to change the subject of an alert functional email, but I cant find where can I do that. Searching in the forum, I notice that I cant do this in BPM; instead I go to ALRTCATDEF TCode and surprise!!!! I found tecnical and functional alerts, but