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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: understanding orphaned processes (v$process > v$session)

RE: understanding orphaned processes (v$process > v$session)

From: Singh, Ratnesh (GEI, GEFA, Contractor) <Ratnesh.Singh_at_ge.com>
Date: Wed, 12 May 2004 19:45:48 -0400
Message-ID: <53C7726C165C4B46B5470C1A20EDBC4A012833F0@LYHMLVEM01.e2k.ad.ge.com>


Thanks to all who replied.

I raised a tar with Oracle, they said that=20 1. orphaned processes are caused by abnormal exits by = applications/clients.
2. These can be cleared by using Dead Connection Detection, however DCD = does not work if u use thin jdbc.
3. v$process can be greater then v$session if one uses parallel query or = MTS. We are now tracing this problem from the application side, to determine = what caused the sessions to die.

thanks & regards
ratnesh=20

-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Tanel P=F5der Sent: Saturday, May 01, 2004 11:57 AM
To: oracle-l_at_freelists.org
Subject: Re: understanding orphaned processes (v$process > v$session)

> I too have seen this condition. I'm not sure I understand the
> client side mechanics, but from a server perspective, a process
> is created when an attempt to connect to the database is made,
> but a session is only created when the connection is actually
> made.
>
> sqlplus /nolog <--- creates a process
> connect scott/tiger <----- actually creates a session for the
> process

When you run sqlplus /nolog, no server processes are created, sqlplus = won't
make any connections in this mode.

When you issue connect command, then sqlplus automatically does both connection and session creation for you. Connection requires a new = server
process to be allocated (in dedicated server mode, either by spawning a = new
process or using a prespawned process). The session is then created = through
this connection using the spawned server process.

If you'd use OCI, you could separately call OCIServerAttach() function = for
creating the connection and OCISessionBegin() for creating a session (through the existing connection if connection pooling isn't used).

Note that in connection pooling and migratable session environments = there is
no one-to-one relationship between connection(server process) and = session
anymore.

So if the application has a bug in it which always creates a new = connection
for session but forgets to use OCIServerDetach() to end the connection = when
it's not needed anymore, you could end up with lots of open connections = &
server processes which aren't used by any sessions..

Tanel.



Please see the official ORACLE-L FAQ: http://www.orafaq.com

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--
Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------
----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request_at_freelists.org
put 'unsubscribe' in the subject line.
--
Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------
Received on Wed May 12 2004 - 18:43:28 CDT

Original text of this message

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