Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > this.Connection.Close(); does not close the Oracle session! Pleasehelp!

Reply
Thread Tools

this.Connection.Close(); does not close the Oracle session! Pleasehelp!

 
 
S_K
Guest
Posts: n/a
 
      12-06-2007
Hi all!

I'm writing an ASP.NET web application that uses an Oracle database.

I OPEN the Oracle connection by using the following code:

if (this.ConnectionString != "")
{
this.Connection = new OracleConnection(this.ConnectionString);
this.Connection.Open();
return;
}

I then create the command object by using the following:

OracleCommand DBCmd = new
OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
objConnect.Connection);
DBCmd.CommandType = System.Data.CommandType.StoredProcedure;

I then I run the OracleCommand.ExecuteReader method to execute the
stored procedure.

I then CLOSE the connection by using the
this.Connection.Close(); command.

However, the sessions stay active!!!
I have a very angry DBA on my tail about this one!
Please help!

Thanks
Steve
 
Reply With Quote
 
 
 
 
Scott Roberts
Guest
Posts: n/a
 
      12-06-2007
I'm pretty sure "OracleConnection" is not a standard Framework class. You'll
probably have better luck asking the component vendor (or in their forums).
My guess is that it has to do with connection pooling. Do the number of
connections grow endlessly, or are they reused over and over? If it's the
later, then you should actually have a very happy DBA.

Scott



"S_K" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi all!
>
> I'm writing an ASP.NET web application that uses an Oracle database.
>
> I OPEN the Oracle connection by using the following code:
>
> if (this.ConnectionString != "")
> {
> this.Connection = new OracleConnection(this.ConnectionString);
> this.Connection.Open();
> return;
> }
>
> I then create the command object by using the following:
>
> OracleCommand DBCmd = new
> OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
> objConnect.Connection);
> DBCmd.CommandType = System.Data.CommandType.StoredProcedure;
>
> I then I run the OracleCommand.ExecuteReader method to execute the
> stored procedure.
>
> I then CLOSE the connection by using the
> this.Connection.Close(); command.
>
> However, the sessions stay active!!!
> I have a very angry DBA on my tail about this one!
> Please help!
>
> Thanks
> Steve


 
Reply With Quote
 
 
 
 
sloan
Guest
Posts: n/a
 
      12-06-2007

Did you close the reader?

if(null!=reader)
{
reader.Close();
}

???

A reader is a live firehouse....thus you use it, then you tidy up.
You can't get reader, close the connection , then use the reader. That
doesn't make sense.

Use the reader as quickly as possible, then close it.




"S_K" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi all!
>
> I'm writing an ASP.NET web application that uses an Oracle database.
>
> I OPEN the Oracle connection by using the following code:
>
> if (this.ConnectionString != "")
> {
> this.Connection = new OracleConnection(this.ConnectionString);
> this.Connection.Open();
> return;
> }
>
> I then create the command object by using the following:
>
> OracleCommand DBCmd = new
> OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
> objConnect.Connection);
> DBCmd.CommandType = System.Data.CommandType.StoredProcedure;
>
> I then I run the OracleCommand.ExecuteReader method to execute the
> stored procedure.
>
> I then CLOSE the connection by using the
> this.Connection.Close(); command.
>
> However, the sessions stay active!!!
> I have a very angry DBA on my tail about this one!
> Please help!
>
> Thanks
> Steve



 
Reply With Quote
 
bruce barker
Guest
Posts: n/a
 
      12-06-2007
you will need to turn connection pooling off (see your connect string
properties). with pooling on, connection.close only returns the connection to
the pool, it does not close it. you may make your dba happy by lowing the
pool timeout.

-- bruce (sqlwork.com)


"S_K" wrote:

> Hi all!
>
> I'm writing an ASP.NET web application that uses an Oracle database.
>
> I OPEN the Oracle connection by using the following code:
>
> if (this.ConnectionString != "")
> {
> this.Connection = new OracleConnection(this.ConnectionString);
> this.Connection.Open();
> return;
> }
>
> I then create the command object by using the following:
>
> OracleCommand DBCmd = new
> OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
> objConnect.Connection);
> DBCmd.CommandType = System.Data.CommandType.StoredProcedure;
>
> I then I run the OracleCommand.ExecuteReader method to execute the
> stored procedure.
>
> I then CLOSE the connection by using the
> this.Connection.Close(); command.
>
> However, the sessions stay active!!!
> I have a very angry DBA on my tail about this one!
> Please help!
>
> Thanks
> Steve
>

 
Reply With Quote
 
S_K
Guest
Posts: n/a
 
      12-06-2007
On Dec 6, 3:13 pm, bruce barker
<(E-Mail Removed)> wrote:
> you will need to turn connection pooling off (see your connect string
> properties). with pooling on, connection.close only returns the connection to
> the pool, it does not close it. you may make your dba happy by lowing the
> pool timeout.
>
> -- bruce (sqlwork.com)
>
>
>
> "S_K" wrote:
> > Hi all!

>
> > I'm writing an ASP.NET web application that uses an Oracle database.

>
> > I OPEN the Oracle connection by using the following code:

>
> > if (this.ConnectionString != "")
> > {
> > this.Connection = new OracleConnection(this.ConnectionString);
> > this.Connection.Open();
> > return;
> > }

>
> > I then create the command object by using the following:

>
> > OracleCommand DBCmd = new
> > OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
> > objConnect.Connection);
> > DBCmd.CommandType = System.Data.CommandType.StoredProcedure;

>
> > I then I run the OracleCommand.ExecuteReader method to execute the
> > stored procedure.

>
> > I then CLOSE the connection by using the
> > this.Connection.Close(); command.

>
> > However, the sessions stay active!!!
> > I have a very angry DBA on my tail about this one!
> > Please help!

>
> > Thanks
> > Steve- Hide quoted text -

>
> - Show quoted text -


I don't actually CLOSE the reader but I DO Dispose the reader:
reader.Dispose();

Doesn't that close the reader as well???

Also, how do you turn off the connection pooling in the connection
string? All I have is the basic connection string.

Thanks for your quick replies.

Steve
 
Reply With Quote
 
bruce barker
Guest
Posts: n/a
 
      12-06-2007
no, dispose will return it to the pool if pooling is enabled (all dispose
does is call close if needed).

you will need the connection string settings docs for the driver you are
using..

-- bruce (sqlwork.com)


"S_K" wrote:

> On Dec 6, 3:13 pm, bruce barker
> <(E-Mail Removed)> wrote:
> > you will need to turn connection pooling off (see your connect string
> > properties). with pooling on, connection.close only returns the connection to
> > the pool, it does not close it. you may make your dba happy by lowing the
> > pool timeout.
> >
> > -- bruce (sqlwork.com)
> >
> >
> >
> > "S_K" wrote:
> > > Hi all!

> >
> > > I'm writing an ASP.NET web application that uses an Oracle database.

> >
> > > I OPEN the Oracle connection by using the following code:

> >
> > > if (this.ConnectionString != "")
> > > {
> > > this.Connection = new OracleConnection(this.ConnectionString);
> > > this.Connection.Open();
> > > return;
> > > }

> >
> > > I then create the command object by using the following:

> >
> > > OracleCommand DBCmd = new
> > > OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
> > > objConnect.Connection);
> > > DBCmd.CommandType = System.Data.CommandType.StoredProcedure;

> >
> > > I then I run the OracleCommand.ExecuteReader method to execute the
> > > stored procedure.

> >
> > > I then CLOSE the connection by using the
> > > this.Connection.Close(); command.

> >
> > > However, the sessions stay active!!!
> > > I have a very angry DBA on my tail about this one!
> > > Please help!

> >
> > > Thanks
> > > Steve- Hide quoted text -

> >
> > - Show quoted text -

>
> I don't actually CLOSE the reader but I DO Dispose the reader:
> reader.Dispose();
>
> Doesn't that close the reader as well???
>
> Also, how do you turn off the connection pooling in the connection
> string? All I have is the basic connection string.
>
> Thanks for your quick replies.
>
> Steve
>

 
Reply With Quote
 
Russell
Guest
Posts: n/a
 
      12-07-2007
OracleConnection is in the System.Data.OracleClient namespace.

Although Oracle also provides such a class, in their
Oracle.DataAccess.Client namespace.

If the connection pool advice doesn't work out, try also calling
Dispose on the connection. Unless the issue has been resolved in a
recent version, there's a flaw in the Framework class that
necessitates this. And it can't hurt in any event.

On Dec 6, 4:52 pm, "Scott Roberts" <(E-Mail Removed)-webworks-
software.com> wrote:
> I'm pretty sure "OracleConnection" is not a standard Framework class. You'll
> probably have better luck asking the component vendor (or in their forums).
> My guess is that it has to do with connection pooling. Do the number of
> connections grow endlessly, or are they reused over and over? If it's the
> later, then you should actually have a very happy DBA.
>
> Scott
>
> "S_K" <(E-Mail Removed)> wrote in message
>
> news:(E-Mail Removed)...
>
>
>
> > Hi all!

>
> > I'm writing an ASP.NET web application that uses an Oracle database.

>
> > I OPEN the Oracle connection by using the following code:

>
> > if (this.ConnectionString != "")
> > {
> > this.Connection = new OracleConnection(this.ConnectionString);
> > this.Connection.Open();
> > return;
> > }

>
> > I then create the command object by using the following:

>
> > OracleCommand DBCmd = new
> > OracleCommand("PRL_STORE_PAYMENT_REQ_PKG.GET_PAYME NT_REQ_LOOKUP",
> > objConnect.Connection);
> > DBCmd.CommandType = System.Data.CommandType.StoredProcedure;

>
> > I then I run the OracleCommand.ExecuteReader method to execute the
> > stored procedure.

>
> > I then CLOSE the connection by using the
> > this.Connection.Close(); command.

>
> > However, the sessions stay active!!!
> > I have a very angry DBA on my tail about this one!
> > Please help!

>
> > Thanks
> > Steve- Hide quoted text -

>
> - Show quoted text -


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to close a TCP socket? (TCPSocket#close doesn't close it) IƱaki Baz Castillo Ruby 7 01-12-2010 01:32 PM
file.close() does not really close under Windows? Dani Python 3 12-17-2009 02:49 PM
document.close() on dynamic iframe on firefox does not close the connection. hyejin Javascript 8 08-29-2006 02:01 PM
install_driver(Oracle) failed: Can't load 'C:/Perl/site/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:The specified procedure could not be found at C:/Perl/lib/DynaLoader.pm line 230. Feyruz Perl Misc 4 10-14-2005 06:47 PM
Why does JdbcRowSetImpl.close() close the database connection? Paul van Rossem Java 0 04-07-2005 07:01 PM



Advertisments