I'm using the C3P0PooledDataSource with my Hibernate in Jboss.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE server> <server> <mbean code="com.mchange.v2.c3p0.mbean.C3P0PooledDataSource" name="jboss:service=CamasC3P0PooledDataSource"> <attribute name="JndiName">java:/****DS</attribute> <attribute name="JdbcUrl">jdbc:oracle:thin:@********:1521:*****</attribute> <attribute name="DriverClass">oracle.jdbc.driver.OracleDriver</attribute> <attribute name="User">****</attribute> <attribute name="Password">****</attribute> <!-- Uncomment and set any of the optional parameters below --> <!-- See c3p0's docs for more info. --> <attribute name="AcquireIncrement">1</attribute> <attribute name="AcquireRetryAttempts">10</attribute> <attribute name="AcquireRetryDelay">5000</attribute> <attribute name="AutoCommitOnClose">false</attribute> <attribute name="AutomaticTestTable">C3P0TEST</attribute> <attribute name="CheckoutTimeout">5000</attribute> <attribute name="Description">C3P0 Pooled Datasource</attribute> <attribute name="IdleConnectionTestPeriod">30</attribute> <attribute name="InitialPoolSize">1</attribute> <attribute name="MaxIdleTime">600</attribute> <attribute name="MaxPoolSize">3</attribute> <attribute name="MinPoolSize">1</attribute> <attribute name="NumHelperThreads">3</attribute> <attribute name="TestConnectionOnCheckin">true</attribute> <depends>jboss:service=Naming</depends> </mbean> </server>
This may be caused by fetching from a SELECT FOR UPDATE cursor after a commit.