Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: A single dedicated server shared between multiple sessions?

Re: A single dedicated server shared between multiple sessions?

From: Billy Verreynne <vslabs_at_onwe.co.za>
Date: 12 Aug 2003 01:32:50 -0700
Message-ID: <1a75df45.0308120032.6fd631de@posting.google.com>


"Anton Buijs" <remove_aammbuijs_at_xs4all.nl> wrote

> It *IS* correct, even in dedicated server mde. When you start Oracle Forms you
> get a server process (can be found in V$PROCESS and as a Unix "oracleSID"
> process) and one session (can be found in V$SESSION). For each new window the
> user opens a new session is created within the *same* server proces.

I think the term "session" is a problem. With that I refer to a session handle on the client side - its connection pipe to the database.

In dedicated mode, that pipe runs into a single shadow process. Period.

How many make believe "sessions" the client creates, are not the point. Of course these can be run (serialised) over a single session handle to the database.

In Delphi for example, a session handle/pipe is encapsulated in two classes. TSession (the actual connection) and TDatabase (the db driver/layer). I can have multiple "client sessions" over a single TConnection/TDatabase session pipe in the form of TSQL and TTable objects.

However, access is serialised. Only a single TSQL (or TTable) can "execute" at a time. Even so, I can still have as many TSQL & TTable cursors open as Oracle allows for that single session pipe.

To multi-thread properly and have two active/executing TSQLs at the _same_ time, I need two separate and distinct TConnection/TDatabase objects. Then I can have TSQL1 running over TConnection1/TDatabase1 at the same time as TSQL2 over TConnection2/TDatabase2.

In dedicated server mode, this translates into two session pipes from a single client that results into two shadows.

Oracle only allows a _single_ SQL statement to be executed over a session handle at a time (ditto for SQL-Server, DB2, Ingress, Informix, Sybase and Interbase).

So to answer the question in this thread's title:

Q. A single dedicated server shared between multiple

   sessions?

  1. No. If "session" implies Oracle sessions. In dedicated server mode the relationship is 1:1 between physical server process and Oracle session. (unlike MTS where it is a 1:n relationship)
  2. If by "session" you imply a client "session" (which can be anything), then yes. Like you can have 20 cursors open in a single SQL*Plus session, you can have 20 "client sessions" active over a single Oracle server connection/session. (no magic to it at all - except for confusing "client sessions" for "Oracle sessions")
--
Billy
Received on Tue Aug 12 2003 - 03:32:50 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US