1

I am trying to run a jee batch application. It works fine in my local machine but when I am trying to run the same jee application in a docker container, I am getting the below exception in joblogs

com.ibm.jbatch.container.exception.BatchContainerRuntimeException: Failure in Read-Process-Write Loop
    89          at com.ibm.jbatch.container.controller.impl.ChunkStepControllerImpl.invokeChunk(ChunkStepControllerImpl.java:704)
    90          at com.ibm.jbatch.container.controller.impl.ChunkStepControllerImpl.invokeCoreStep(ChunkStepControllerImpl.java:795)
    91          at com.ibm.jbatch.container.controller.impl.BaseStepControllerImpl.execute(BaseStepControllerImpl.java:295)
    92          at com.ibm.jbatch.container.controller.impl.ExecutionTransitioner.doExecutionLoop(ExecutionTransitioner.java:118)
    93          at com.ibm.jbatch.container.controller.impl.WorkUnitThreadControllerImpl.executeCoreTransitionLoop(WorkUnitThreadControllerImpl.java:96)
    94          at com.ibm.jbatch.container.controller.impl.WorkUnitThreadControllerImpl.executeWorkUnit(WorkUnitThreadControllerImpl.java:178)
    95          at com.ibm.jbatch.container.controller.impl.WorkUnitThreadControllerImpl$AbstractControllerHelper.runExecutionOnThread(WorkUnitThreadControllerImpl.java:503)
    96          at com.ibm.jbatch.container.controller.impl.WorkUnitThreadControllerImpl.runExecutionOnThread(WorkUnitThreadControllerImpl.java:92)
    97          at com.ibm.jbatch.container.util.BatchWorkUnit.run(BatchWorkUnit.java:117)
    98          at com.ibm.ws.context.service.serializable.ContextualRunnable.run(ContextualRunnable.java:79)
    99          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   100          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   101          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   102          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   103          at java.lang.Thread.run(Thread.java:748)
   104  Caused by: com.ibm.jbatch.container.exception.TransactionManagementException: javax.transaction.RollbackException
   105          at com.ibm.jbatch.container.transaction.impl.JTAUserTransactionAdapter.commit(JTAUserTransactionAdapter.java:108)
   106          at com.ibm.jbatch.container.controller.impl.ChunkStepControllerImpl.invokeChunk(ChunkStepControllerImpl.java:656)
   107          ... 14 more
   108  Caused by: javax.transaction.RollbackException
   109          at com.ibm.tx.jta.impl.TransactionImpl.stage3CommitProcessing(TransactionImpl.java:980)
   110          at com.ibm.tx.jta.impl.TransactionImpl.processCommit(TransactionImpl.java:778)
   111          at com.ibm.tx.jta.impl.TransactionImpl.commit(TransactionImpl.java:711)
   112          at com.ibm.tx.jta.impl.TranManagerImpl.commit(TranManagerImpl.java:165)
   113          at com.ibm.tx.jta.impl.TranManagerSet.commit(TranManagerSet.java:113)
   114          at com.ibm.tx.jta.impl.UserTransactionImpl.commit(UserTransactionImpl.java:162)
   115          at com.ibm.tx.jta.embeddable.impl.EmbeddableUserTransactionImpl.commit(EmbeddableUserTransactionImpl.java:101)
   116          at com.ibm.ws.transaction.services.UserTransactionService.commit(UserTransactionService.java:72)
   117          at com.ibm.jbatch.container.transaction.impl.JTAUserTransactionAdapter.commit(JTAUserTransactionAdapter.java:101)
   118          ... 15 more
   119  Caused by: oracle.jdbc.xa.OracleXAException: XAErr (-7): Resource manager is unavailable. ORA-17008 SQLErr (0)
   120          at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1112)
   121          at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:466)
   122          at com.ibm.ws.rsadapter.impl.WSRdbXaResourceImpl.end(WSRdbXaResourceImpl.java:417)
   123          at com.ibm.ejs.j2c.XATransactionWrapper.end(XATransactionWrapper.java:384)
   124          at com.ibm.ws.Transaction.JTA.JTAResourceBase.end(JTAResourceBase.java:218)
   125          at com.ibm.tx.jta.impl.RegisteredResources.sendEnd(RegisteredResources.java:941)
   126          at com.ibm.tx.jta.impl.RegisteredResources.distributeEnd(RegisteredResources.java:920)
   127          at com.ibm.tx.jta.impl.TransactionImpl.internalRollback(TransactionImpl.java:1624)
   128          at com.ibm.tx.jta.impl.TransactionImpl.internalRollback(TransactionImpl.java:1594)
   129          at com.ibm.tx.jta.impl.TransactionImpl.coreStage2CommitProcessing(TransactionImpl.java:865)
   130          at com.ibm.tx.jta.impl.TransactionImpl.stage2CommitProcessing(TransactionImpl.java:891)
   131          at com.ibm.tx.jta.impl.TransactionImpl.processCommit(TransactionImpl.java:771)
   132          ... 22 more
   133  Caused by: java.sql.SQLRecoverableException: Closed Connection
   134          at oracle.jdbc.driver.PhysicalConnection.needLine(PhysicalConnection.java:3247)
   135          at oracle.jdbc.driver.T4CXAResource.doEnd(T4CXAResource.java:384)
   136          at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:461)
   137          ... 32 more

used <transaction totalTranLifetimeTimeout="1200s" propogatedOrBMTTranLifetimeTimeout="1300s"/> for transaction timeout

Chirag
  • 211
  • 4
  • 16
  • Do any of the connections to Oracle work when your app runs in Docker? Perhaps you could try the connection validation utility described in this blog post? https://openliberty.io/blog/2019/09/13/testing-database-connections-REST-APIs.html – Andy Guibert Dec 08 '19 at 21:54
  • The connection must have been working up until this point if they have reached xaresource.end. But it would still be helpful to know the frequency with which the exception occurs. On every transaction/batch operation? Occasionally? Just once ever? – njr Dec 09 '19 at 14:13
  • @AndyGuibert I did telnet host ip by going inside the container. It was working. – Chirag Dec 09 '19 at 15:08
  • @njr its intermittent. – Chirag Dec 09 '19 at 15:09
  • I have fixed this issue by specifying --network host while running docker image. Command - docker run --network host -p port:port/tcp image – Chirag Dec 09 '19 at 15:10

0 Answers0