Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: A single dedicated server shared between multiple sessions?
Billy Verreynne <vslabs_at_onwe.co.za> schreef in berichtnieuws
1a75df45.0308120032.6fd631de_at_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.
A session is what can be seen in Oracle in the V$SESSION view.
| In dedicated mode, that pipe runs into a single shadow process.
| Period.
A don't argue with that.
| 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?
|
| A. 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)
|
| A. 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")
Don't overcomplicate things. A session is a session. I don't want to make the
difference you make here. Makes no sense to me.
Don't give your own interpretation to 'session'. Oracle has clear terms for what
a process and a session is.
Don't use MTS in this context, it makes things even more unclear.
Received on Tue Aug 12 2003 - 04:04:24 CDT
![]() |
![]() |