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

  • From: "Singh, Ratnesh (GEI, GEFA, Contractor)" <Ratnesh.Singh@xxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 12 May 2004 19:45:48 -0400

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@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Tanel P=F5der
Sent: Saturday, May 01, 2004 11:57 AM
To: oracle-l@xxxxxxxxxxxxx
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@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //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@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: