-
Notifications
You must be signed in to change notification settings - Fork 72
Description
As described in documentation there are few settings to set Read/Write timeouts for DB Requests:
javax.jdo.option.DatastoreReadTimeoutMillis
javax.jdo.option.DatastoreWriteTimeoutMillis
datanucleus.datastoreWriteTimeout
datanucleus.datastoreReadTimeout
But WriteTimeout does not work if DB Request is inited by JDO update event.
When we update a state of JDO object, the executeUpdate request calls without any timeout set for PreparedStatement
Here is a callstack (for old 4.1.19 release but problem is also actual for newest releases):
... org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393) at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431) at org.datanucleus.store.rdbms.request.UpdateRequest.execute(UpdateRequest.java:395) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.updateObjectInTable(RDBMSPersistenceHandler.java:409) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.updateObject(RDBMSPersistenceHandler.java:383) at org.datanucleus.state.StateManagerImpl.flush(StateManagerImpl.java:4585) at org.datanucleus.flush.FlushOrdered.execute(FlushOrdered.java:106) at org.datanucleus.ExecutionContextImpl.flushInternal(ExecutionContextImpl.java:4055) at org.datanucleus.ExecutionContextThreadedImpl.flushInternal(ExecutionContextThreadedImpl.java:450) at org.datanucleus.ExecutionContextImpl.markDirty(ExecutionContextImpl.java:3811) at org.datanucleus.ExecutionContextThreadedImpl.markDirty(ExecutionContextThreadedImpl.java:422) at org.datanucleus.state.StateManagerImpl.postWriteField(StateManagerImpl.java:4374) at org.datanucleus.state.StateManagerImpl.replaceField(StateManagerImpl.java:3047) at org.datanucleus.state.StateManagerImpl.updateField(StateManagerImpl.java:1865) at org.datanucleus.state.StateManagerImpl.setStringField(StateManagerImpl.java:1615) at org.apache.hadoop.hive.metastore.model.MStorageDescriptor.dnSetlocation(MStorageDescriptor.java) ...