Hi -

I am experiencing a driver lockup with pax-jdbc 1.1.0. It always seems to 
happen when a new connection is being created (which, BTW shouldn’t happen 
that often because I should be using a connection pool).
It does’t happen all the time, but often enough to take the entire 
application down.

Would anyone have a suggestion how/where to start debugging this?

All the relevant info should be below.

This is the thread dump, starting with the entityTransaction.commit()
Thread [qtp149708915-159] (Suspended) 
 owns: ReadAheadInputStream  (id=912) 
 owns: JDBC4Connection  (id=913) 
 owns: DatabaseAccessor  (id=914) 
 owns: SessionRepositoryImpl  (id=718) 
 owns: PhaseInterceptorChain  (id=915) 
 SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: 
not available [native method] 
 SocketInputStream.socketRead(FileDescriptor, byte[], int, int, int) line: 
116 
 SocketInputStream.read(byte[], int, int, int) line: 170 
 SocketInputStream.read(byte[], int, int) line: 141 
 ReadAheadInputStream.fill(int) line: 101 
 ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(byte[], int, int) 
line: 144 
 ReadAheadInputStream.read(byte[], int, int) line: 174 
 MysqlIO.readFully(InputStream, byte[], int, int) line: 3005 
 MysqlIO.readPacket() line: 567 
 MysqlIO.doHandshake(String, String, String) line: 1016 
 JDBC4Connection(ConnectionImpl).coreConnect(Properties) line: 2253 
 JDBC4Connection(ConnectionImpl).connectOneTryOnly(boolean, Properties) line
: 2284 
 JDBC4Connection(ConnectionImpl).createNewIO(boolean) line: 2083 
 JDBC4Connection(ConnectionImpl).<init>(String, int, Properties, String, 
String) line: 806 
 JDBC4Connection.<init>(String, int, Properties, String, String) line: 47 
 NativeConstructorAccessorImpl.newInstance0(Constructor<?>, Object[]) line: 
not available [native method] 
 NativeConstructorAccessorImpl.newInstance(Object[]) line: 62 
 DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45 
 Constructor<T>.newInstance(Object...) line: 423 
 Util.handleNewInstance(Constructor<?>, Object[], ExceptionInterceptor) line
: 425 
 ConnectionImpl.getInstance(String, int, Properties, String, String) line: 
410 
 NonRegisteringDriver.connect(String, Properties) line: 328 
 MysqlDataSource.getConnection(Properties) line: 428 
 MysqlDataSource.getConnection(String, String) line: 136 
 MysqlDataSource.getConnection() line: 107 
 DataSourceConnectionFactory.createConnection() line: 44 
 PoolableConnectionFactory.makeObject() line: 256 
 GenericObjectPool<T>.create() line: 868 
 GenericObjectPool<T>.borrowObject(long) line: 435 
 GenericObjectPool<T>.borrowObject() line: 363 
 PoolingDataSource<C>.getConnection() line: 134 
 JNDIConnector.connect(Properties, Session) line: 135 
 DatabaseLogin(DatasourceLogin).connectToDatasource(Accessor, Session) line: 
162 
 DatabaseAccessor(DatasourceAccessor).connectInternal(Login, AbstractSession
) line: 346 
 DatabaseAccessor.connectInternal(Login, AbstractSession) line: 309 
 DatabaseAccessor(DatasourceAccessor).reconnect(AbstractSession) line: 581 
 DatabaseAccessor.reconnect(AbstractSession) line: 1634 
 DatabaseAccessor(DatasourceAccessor).incrementCallCount(AbstractSession) 
line: 321 
 DatabaseAccessor.basicExecuteCall(Call, AbstractRecord, AbstractSession, 
boolean) line: 615 
 DatabaseAccessor.executeCall(Call, AbstractRecord, AbstractSession) line: 
560 
 ServerSession(AbstractSession).basicExecuteCall(Call, AbstractRecord, 
DatabaseQuery) line: 2055 
 ServerSession.executeCall(Call, AbstractRecord, DatabaseQuery) line: 570 
 IsolatedClientSession(ClientSession).executeCall(Call, AbstractRecord, 
DatabaseQuery) line: 258 
 ExpressionQueryMechanism(DatasourceCallQueryMechanism).executeCall(
DatasourceCall) line: 242 
 ExpressionQueryMechanism(DatasourceCallQueryMechanism).executeCall() line: 
228 
 ExpressionQueryMechanism(DatasourceCallQueryMechanism).
selectRowForDoesExist(DatabaseField) line: 736 
 DoesExistQuery.executeDatabaseQuery() line: 241 
 DoesExistQuery(DatabaseQuery).execute(AbstractSession, AbstractRecord) line
: 904 
 DoesExistQuery(DatabaseQuery).executeInUnitOfWork(UnitOfWorkImpl, 
AbstractRecord) line: 803 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).internalExecuteQuery(
DatabaseQuery, AbstractRecord) line: 2896 
 RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery, 
AbstractRecord, int) line: 1857 
 RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery, 
AbstractRecord) line: 1839 
 RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery) line
: 1790 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).
checkForUnregisteredExistingObject(Object) line: 785 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).
discoverAndPersistUnregisteredNewObjects(Object, boolean, Map, Map, Map, Set
) line: 4192 
 ManyToOneMapping(ObjectReferenceMapping).
cascadeDiscoverAndPersistUnregisteredNewObjects(Object, Map, Map, Map, 
UnitOfWorkImpl, boolean, Set) line: 951 
 ManyToOneMapping(ObjectReferenceMapping).
cascadeDiscoverAndPersistUnregisteredNewObjects(Object, Map, Map, Map, 
UnitOfWorkImpl, Set) line: 929 
 ObjectBuilder.cascadeDiscoverAndPersistUnregisteredNewObjects(Object, Map, 
Map, Map, UnitOfWorkImpl, Set) line: 2515 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).
discoverAndPersistUnregisteredNewObjects(Object, boolean, Map, Map, Map, Set
) line: 4205 
 RepeatableWriteUnitOfWork.discoverUnregisteredNewObjects(Map, Map, Map, Map
) line: 308 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).calculateChanges(Map, 
UnitOfWorkChangeSet, boolean, boolean) line: 723 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).commitToDatabaseWithChangeSet(
boolean) line: 1516 
 RepeatableWriteUnitOfWork.commitRootUnitOfWork() line: 278 
 RepeatableWriteUnitOfWork(UnitOfWorkImpl).commitAndResume() line: 1169 
 EntityTransactionImpl.commit() line: 134



This is my DB config file:
#
https://ops4j1.jira.com/wiki/display/PAXJDBC/Pooling+and+XA+support+in+1.0.0
osgi.jdbc.driver.class=com.mysql.jdbc.Driver
url=jdbc:mysql://db_server:3306/mydb?useSSL=false
dataSourceName=jdbc/mydatasource
user=user
password=password
databaseName=mydb
pool=dbcp2
#pooling doesn’t appear to work, need to investigate
#jdbc.pool.timeBetweenEvictionRunsMillis=1000
#jdbc.pool.softMinEvictableIdleTimeMillis=7000
jdbc.pool.maxTotal=70
jdbc.pool.maxIdle=70
#jdbc.pool.minIdle=10


And these are the bundles involved:
0 ACTIVE      org.eclipse.osgi_3.10.2.v20150203-1939
52 ACTIVE      org.osgi.service.jdbc_1.0.0.201505202023
59 ACTIVE      org.ops4j.pax.jdbc_1.1.0
60 ACTIVE      org.ops4j.pax.jdbc.pool.dbcp2_1.1.0
61 ACTIVE      org.ops4j.pax.jdbc.config_1.1.0
62 ACTIVE      org.ops4j.pax.jdbc.pool.common_1.1.0
63 ACTIVE      org.ops4j.pax.jdbc.mysql_1.1.0
66 ACTIVE      com.mysql.jdbc_5.1.40



Both application server and DB server are Mac OS X.
Java: 8
Bundles running in a stand-alone OSGi container.

Any suggestions are greatly appreciated.

Erwin

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - [email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to