Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
-
Hi All, I am trying to connect to Oracle database via C# service application. When I try to open the connection i get the exception "Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached." This happens at very first instance(not after some interval...) I have tried to search this on the net, but all in vain. Most of them have given the answere as to check with the connection. Below is the code snippit I am using to connect to database. string csQuery = "prc_ins_sample"; string strConnection = "User ID=xxxx;Password=xxxx;Data Source=xxxxx;"; OracleConnection OraConn = new OracleConnection(); try { OraConn.ConnectionString = strConnection; HMLog.WriteEntry("OraConn.Open();"); OraConn.Open(); OracleCommand OraCmd = new OracleCommand(csQuery, OraConn); OraCmd.CommandType = CommandType.StoredProcedure; HMLog.WriteEntry("OraConn.Open()"); OracleParameter arg_month = new OracleParameter(); arg_month.OracleType = OracleType.Number; arg_month.Direction = ParameterDirection.Input; arg_month.ParameterName = "arg_month"; arg_month.Value = 10; OraCmd.Parameters.Add(arg_month); arg_month = new OracleParameter(); arg_month.ParameterName = "arg_mybal"; arg_month.Direction = ParameterDirection.Output; arg_month.OracleType = OracleType.Number; OraCmd.Parameters.Add(arg_month); HMLog.WriteEntry("Before execution"); int iRecordCount = OraCmd.ExecuteNonQuery(); if ( iRecordCount > 0 ) { } OraConn.Close(); OraConn.Dispose(); } catch(Exception ex) { HMLog.WriteEntry(ex.Message); if (OraConn.State != ConnectionState.Closed ) OraConn.Close(); OraConn.Dispose(); } Does any one know to get out of this problem. Srinath
-
Hi All, I am trying to connect to Oracle database via C# service application. When I try to open the connection i get the exception "Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached." This happens at very first instance(not after some interval...) I have tried to search this on the net, but all in vain. Most of them have given the answere as to check with the connection. Below is the code snippit I am using to connect to database. string csQuery = "prc_ins_sample"; string strConnection = "User ID=xxxx;Password=xxxx;Data Source=xxxxx;"; OracleConnection OraConn = new OracleConnection(); try { OraConn.ConnectionString = strConnection; HMLog.WriteEntry("OraConn.Open();"); OraConn.Open(); OracleCommand OraCmd = new OracleCommand(csQuery, OraConn); OraCmd.CommandType = CommandType.StoredProcedure; HMLog.WriteEntry("OraConn.Open()"); OracleParameter arg_month = new OracleParameter(); arg_month.OracleType = OracleType.Number; arg_month.Direction = ParameterDirection.Input; arg_month.ParameterName = "arg_month"; arg_month.Value = 10; OraCmd.Parameters.Add(arg_month); arg_month = new OracleParameter(); arg_month.ParameterName = "arg_mybal"; arg_month.Direction = ParameterDirection.Output; arg_month.OracleType = OracleType.Number; OraCmd.Parameters.Add(arg_month); HMLog.WriteEntry("Before execution"); int iRecordCount = OraCmd.ExecuteNonQuery(); if ( iRecordCount > 0 ) { } OraConn.Close(); OraConn.Dispose(); } catch(Exception ex) { HMLog.WriteEntry(ex.Message); if (OraConn.State != ConnectionState.Closed ) OraConn.Close(); OraConn.Dispose(); } Does any one know to get out of this problem. Srinath
Do you have the Oracle client software installed, version 8i release 3 or better? Depending on your Oracle installation, you might have to add the
Integrated Security=no;
option to your connection string.@"Data Source=xxxxx;User ID=xxxxassword=xxxx;Integrated Security=no;";
Dave Kreskowiak Microsoft MVP - Visual Basic
-
Do you have the Oracle client software installed, version 8i release 3 or better? Depending on your Oracle installation, you might have to add the
Integrated Security=no;
option to your connection string.@"Data Source=xxxxx;User ID=xxxxassword=xxxx;Integrated Security=no;";
Dave Kreskowiak Microsoft MVP - Visual Basic
Thanks for the reply. Your hint did not help me. This is a strange behaviour, If I connect to the same database from a desktop application developed in C# with the same connection string, it does executes the procedure. But the same tried from C# service application it hangs for a min and then throw this exception. Let me know if am doing somthing wrong... :(. I am in a pretty bad state with this exception. Srinath
-
Thanks for the reply. Your hint did not help me. This is a strange behaviour, If I connect to the same database from a desktop application developed in C# with the same connection string, it does executes the procedure. But the same tried from C# service application it hangs for a min and then throw this exception. Let me know if am doing somthing wrong... :(. I am in a pretty bad state with this exception. Srinath
As a test, go into the Services manager (Start/Run Services.msc), stop your service and change the userid and password that the service runs under to your id and password. Then restart the service and see what happens.
Dave Kreskowiak Microsoft MVP - Visual Basic
-
As a test, go into the Services manager (Start/Run Services.msc), stop your service and change the userid and password that the service runs under to your id and password. Then restart the service and see what happens.
Dave Kreskowiak Microsoft MVP - Visual Basic
-
Even this did not help me. Is there any initial setup that has to be done on my system even before accessing the database from service applications ? like user creation, giving persmissions etc..etc...? Srinath
Nope. It would appear that the database code is not the same as what you've tested in the non-service version.
Dave Kreskowiak Microsoft MVP - Visual Basic
-
Hi All, I am trying to connect to Oracle database via C# service application. When I try to open the connection i get the exception "Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached." This happens at very first instance(not after some interval...) I have tried to search this on the net, but all in vain. Most of them have given the answere as to check with the connection. Below is the code snippit I am using to connect to database. string csQuery = "prc_ins_sample"; string strConnection = "User ID=xxxx;Password=xxxx;Data Source=xxxxx;"; OracleConnection OraConn = new OracleConnection(); try { OraConn.ConnectionString = strConnection; HMLog.WriteEntry("OraConn.Open();"); OraConn.Open(); OracleCommand OraCmd = new OracleCommand(csQuery, OraConn); OraCmd.CommandType = CommandType.StoredProcedure; HMLog.WriteEntry("OraConn.Open()"); OracleParameter arg_month = new OracleParameter(); arg_month.OracleType = OracleType.Number; arg_month.Direction = ParameterDirection.Input; arg_month.ParameterName = "arg_month"; arg_month.Value = 10; OraCmd.Parameters.Add(arg_month); arg_month = new OracleParameter(); arg_month.ParameterName = "arg_mybal"; arg_month.Direction = ParameterDirection.Output; arg_month.OracleType = OracleType.Number; OraCmd.Parameters.Add(arg_month); HMLog.WriteEntry("Before execution"); int iRecordCount = OraCmd.ExecuteNonQuery(); if ( iRecordCount > 0 ) { } OraConn.Close(); OraConn.Dispose(); } catch(Exception ex) { HMLog.WriteEntry(ex.Message); if (OraConn.State != ConnectionState.Closed ) OraConn.Close(); OraConn.Dispose(); } Does any one know to get out of this problem. Srinath
Could it be that (part of) your Oracle is installed "for this user only" instead of "for all users" ? As a test: use another user account on the same machine and try again. :)
Luc Pattyn
-
Nope. It would appear that the database code is not the same as what you've tested in the non-service version.
Dave Kreskowiak Microsoft MVP - Visual Basic
Code is very much the same. I am executing that in a console application. While carrying out your previous instruction I was given the permission to execute services(Log on services). So I restarted the machine and then carried out your instruction. Now I have strong feeling that some permission has to be given to my USERID and PWD on the local machine. And the serive was installed using "LocalSystem" property. More over I am logging to a domain. Keeping this in mind I asked you about those question. Let me know if you need more info from my side. Srinath
-
Could it be that (part of) your Oracle is installed "for this user only" instead of "for all users" ? As a test: use another user account on the same machine and try again. :)
Luc Pattyn
Your are right. If I log into machine as a local user i am not able to access the database. Another strange problem, I right click on my console application and then select "Run As" option. Here I am using loginID and PWD, which I have been using so far and working fine. But the application throws an error OCI.DLL The specified module could not be found. Could not create an environment: OCIEnvCreate returned -1. But the same application if double clicked returns the correct answere from the procedure. Srinath
-
Your are right. If I log into machine as a local user i am not able to access the database. Another strange problem, I right click on my console application and then select "Run As" option. Here I am using loginID and PWD, which I have been using so far and working fine. But the application throws an error OCI.DLL The specified module could not be found. Could not create an environment: OCIEnvCreate returned -1. But the same application if double clicked returns the correct answere from the procedure. Srinath
Googling oci.dll I found http://www.dll-files.com/dllindex/dll-files.shtml?oci[^] which seems to indicate the file somehow could have been installed on your machine separate from the normal Oracle files, so all is not lost. Search your PC for it, and move or copy it to a more appropriate location (where ever that might be). :)
Luc Pattyn
-
Googling oci.dll I found http://www.dll-files.com/dllindex/dll-files.shtml?oci[^] which seems to indicate the file somehow could have been installed on your machine separate from the normal Oracle files, so all is not lost. Search your PC for it, and move or copy it to a more appropriate location (where ever that might be). :)
Luc Pattyn
-
Actually all those dlls are picked up from my env path variables. So that seems to be ok....:) But the acutal problem still exists. Srinath
Just checking, is your env path the same for everyone ? And is it set before the service gets started ? -- modified at 18:04 Tuesday 9th January, 2007
Luc Pattyn
-
Nope. It would appear that the database code is not the same as what you've tested in the non-service version.
Dave Kreskowiak Microsoft MVP - Visual Basic