Thank you for comments,
I will change to preferredTestQuery ...
One more question,
A friend offered setting socket read time out for such a problem
Is there any way to set this value regardless of the underlying driver?
Because my application works on oracle and postgres as well..
Or this is not a c3p0 issue either :D
sorry for questions
On 31 May 2012 10:03, <Vamshi.x.Tekuru@ampf.com>
Agree with Steve,
Default connection test is very slow
during peak loads and changing it to preferredTestQuery
improves the performance a lot.We had a similar issue and changing the
Connection type fixed the issue.
"This message and any attachments are solely for the intended
recipient and may contain confidential or privileged information.
If you are not the intended recipient, any disclosure, copying,
use, or distribution of the information included in this message
and any attachments is prohibited. If you have received this
communication in error, please notify us by reply e-mail and
immediately and permanently delete this message and any
attachments. Thank you."
It seems like most of your issues are more likely
to be Oracle-related than c3p0 related. c3p0 has no queryTimeout; it's
an Oracle thing, see http://stackoverflow.com/questions/2376615/how-is-oracles-jdbc-query-timeout-implemented
(Note the difference in case: queryTimeout, not queryTimeOut)
Your app is hanging inside of a c3p0 Connection test, which is occurring
in response to an Exception thrown by an attempted use of the Connection.
c3p0 is doing what it should, your database is failing to respond. It might
be helpful for you to track down the earlier failure. That may give some
indication of why subsequent database operations are hanging.
There is a c3p0 issue. You are using the default Connection test, which
is very portable, but which is also slow and high-overhead. You'd be better
off setting (in c3p0) either a preferredTestQuery or an automaticTestTable.
On May 31, 2012, at 1:59 AM, sakin cali wrote:
> I have a clustered, multi threaded application which uses c3p0 as
connection pool to connect oracle database. My oracle driver is ojdbc6.jar...
> I don't know whether the problem is related to c3p0 or ojdbc6.jar...
> Below are the problem symptoms:
> 1. Lets say I have 10 threads in machine. This hanging problem is
occured in every computer, but in someone all threads are hanged, in others
some threads are hanged.. Hanging reason is not machine depended
> 2. Threads are hanged while going to different databases, so hanging
is not related to database
> 3. In some cases threads are hanged on dual queries ( light-simple
queries), hanging is not related to query time..
> 4. I have set queryTimeOut to 5 sn but threads hanged at socketRead0
method and cancelling is not working. At that point I want to ask a question.
Who manages the query cancelling process. Does c3p0 spawns a thread for
this cancelling issues or database manages the query cancelling or ojdbc?
> And why my queries are not cancelled although I have set queryTimeOut?
> 5. My application is working well until "something" happens.
After that point my threads start hanging... They are not hanged at the
same time... ( someone is hanged 1 hour later)
> Please give any idea about the origin of the problem
> king regards...
> Related thread dump:
> Thread 0x592dce808
> at java.net.SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I
> at java.net.SocketInputStream.read([BII)I (SocketInputStream.java:129)
> at oracle.net.ns.Packet.receive()V (Packet.java:300)
> at oracle.net.ns.DataPacket.receive()V (DataPacket.java:106)
> at oracle.net.ns.NetInputStream.getNextPacket()V (NetInputStream.java:315)
> at oracle.net.ns.NetInputStream.read([BII)I (NetInputStream.java:260)
> at oracle.net.ns.NetInputStream.read([B)I (NetInputStream.java:185)
> at oracle.net.ns.NetInputStream.read()I (NetInputStream.java:102)
> at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket()V
> at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read()I (T4CSocketInputStreamWrapper.java:80)
> at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1()S (T4CMAREngine.java:1137)
> at oracle.jdbc.driver.T4CTTIfun.receive()V (T4CTTIfun.java:290)
> at oracle.jdbc.driver.T4CTTIfun.doRPC()V (T4CTTIfun.java:192)
> at oracle.jdbc.driver.T4C8Oall.doOALL(ZZZZZLoracle/jdbc/internal/OracleStatement$SqlKind;I[BI[Loracle/jdbc/driver/Accessor;I[Loracle/jdbc/driver/Accessor;I[B[C[SILoracle/jdbc/driver/DBConversion;[B[[Ljava/io/InputStream;[[[B[[Loracle/jdbc/oracore/OracleTypeADT;Loracle/jdbc/driver/OracleStatement;[B[C[S[Loracle/jdbc/driver/T4CTTIoac;[I[I[ILoracle/jdbc/driver/NTFDCNRegistration;)V
> at oracle.jdbc.driver.T4CPreparedStatement.doOall8(ZZZZZ)V
> at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe()V
> at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe()V
> at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout()V
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal()I
> at oracle.jdbc.driver.OraclePreparedStatement.executeQuery()Ljava/sql/ResultSet;
> at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery()Ljava/sql/ResultSet;
> at oracle.jdbc.OracleDatabaseMetaData.getTables(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet;
> at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnectionNoQuery(Ljava/sql/Connection;[Ljava/lang/Throwable;)I
> at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(Ljava/sql/Connection;Ljava/lang/String;[Ljava/lang/Throwable;)I
> at com.mchange.v2.c3p0.impl.DefaultConnectionTester.statusOnException(Ljava/sql/Connection;Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Throwable;)I
> at com.mchange.v2.c3p0.AbstractConnectionTester.statusOnException(Ljava/sql/Connection;Ljava/lang/Throwable;Ljava/lang/String;)I
> at com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(Ljava/lang/Throwable;)Ljava/sql/SQLException;
> at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet;
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
> c3p0-users mailing list
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
c3p0-users mailing list