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.

Reply via email to