Well, After a lot of head scratching, I completely rebooted the DB server machine, and that solved the problem (at least for now). Even though MySQLWorkbench only showed a handful connection it looks like somehow the OS or DB engine ran out of 'something'.
Thanks for your attention, Erwin On Tuesday, May 23, 2017 at 9:06:23 AM UTC-4, Dutch Dude wrote: > > 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.
