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.
