hi
This is regarding a performance issue in my windows application... Maximum possible process in my oracle server is 150...
Sometimes my users wont be able to log on to my application since it exceeds maximum processes.. so we have to restart my oracle server....
Can anyone suggest the best practise to avoid this...im using Visual studio 2003 and coding in VB.Net
Thanks

.Net Oracle process error
rmillerii
hi
i changed my max pool size to 20 and tried to execute....i opened 20 screens.. but my program quits on selecting 21st screen..saying connection is closed.... i think a conection is pooled in every screens(not in every database operations) ... any method to reuse opened conection instead of opening new connections
Regards
Derek Moffett
hi
i tried in my current application itself...having more than 30 forms.. but result is same
i changed my close conection method as below
Protected Function CloseConnection() As Boolean
Try
_conOracle.Close()
Catch ex As Exception
Return False
Finally
_conOracle.Dispose()
End Try
Return True
End Function
any problem with the code... i each form load , data is populated...so inactive conections keeps on increasing on loading every forms....any other solution
Regards
Mauricio hevs
i wil change the exception to oraclexception... i tried to debug closeconection method..no exception in that code... i hav heard abt using key word in C#... will the result b the same if we write the same code in c# with 'using' block
and..when i call mybase.closeconnection , its closing the same conection we hav used to iterate records ...right but i have read articles saying that using keyword has more performance than the above method.....
edotcom
You are catching all exceptions and returning false (which is typically a bad idea), can you see Close is throwing an exception.
Can you please try using a small console application Simply open a connection, run a query and close the connection. That way we can it is related to your application.
Steven Ramacher
Aksi-
Raju,
I don't have any Oracle knowledge, but at a guess, are you making sure that you are calling Dispose on your database connections when finished with them
How are you connected to the Oracle server
Hiya
hi
i called close connection at the end of my all functions that returns dataset/array list etc and analysed the process using Oracle Enterprise Manager... many of the connection opened are shown as inactive...but this stil counts in total processes and when this exceeds 150...by database stops working...
is there any method to kill connection forcefully using vb.net program
Regards
Hubman
hi
now im bit confused..whether to use Pooling or Not .. many articles suggest to use pooling... im creating connection using same conection string.. what should be the minimum pool size
if min pool size is 1 , why the oracle keeps more than 10 connections in which one is active and rest inactive anyone reported same problem in MS SQL Server 2005
please view the code used to connect with oracle
Public Class BaseData
Private _conOracle As OracleConnection
Private _strQuery As String
Public Sub New()
Me.OpenConnection()
End Sub
Protected Function OpenConnection() As Boolean
Dim strCon As String = "Data Source=csbora;User id=casy;Password=casy;Min Pool Size=1;Max Pool Size=150"
_conOracle = New OracleConnection(strCon)
Try
_conOracle.Open()
Catch ex As Exception
Return False
End Try
Return True
End Function
Protected Function CloseConnection() As Boolean
Try
_conOracle.Close()
Catch ex As Exception
Return False
End Try
Return True
End Function
Public ReadOnly Property Connection() As OracleConnection
Get
Return _conOracle
End Get
End Property
End Class
End Namespace
FreddieCode
Min Pool Size controls the minimum number of connections in the pool, whereas Max Pool Size control the maximum number of connections in the pool.
Can you just lowering the Max Pool Size, to see if this is the issue
Drea27
I don't think forcefully closing connections will be a good solution.
These open connections could be caused by the pooling of connections. When you call Close() on a connection, the connection gets sent back to a pool where it continues to stay open (for a while). When you next open a connection with the same connection string, instead of the physically creating another connection, it returns the one from the pool.
This usually works well, however, it you are creating lots of connections with connection strings that are not the same (even a little different), then this could be causing a problem.
You might want to try disabling connection pooling to see if this is actually causing the problem. However, be aware that is not going to be a solution.
After I did some searching, it appears that others are the same issue, see the following: http://weblogs.asp.net/ngur/archive/2004/01/21/61207.aspx.
Liew Vai Teng
I would highly recommend that you explicitly close the connection and not rely on dispose or the object going out of scope to release it.
Nasty
NJC
If you have a wrapper class that encapsulates an OracleClient.OracleConnection connection, then I recommend you implement Dispose in your class and have your Dispose method call OracleConnection.Dispose method. You can also implement CloseConnection. Main reason for this is to improve pooling performance, calling Close or Dispose will put the connection back in the pool immediately.
Kripa
hi
i used System.data.oracleclient class for connecting to oracle... for this i created a class with protected methods for opening and closing connection.. the class has a public property Connection to return active connection... also openconnection will be called in constructor
my data access clases are inherited from the above class...and use mybase.Connection object to specify connection...
do i have to specifically call mybase.CloseConnection or it will be done automatically when i call dispose
is it necessary to override dispose in the super class by implementing idisposable
thanks