Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » Error binding to externally managed transaction
Error binding to externally managed transaction [message #1410865] Thu, 21 August 2014 20:40
Shelli Orton is currently offline Shelli OrtonFriend
Messages: 76
Registered: September 2009
Member
Hi,

We are trying to implement a JPA application using EclipseLink 2.4 in JBoss EAP 6.2.0. We are getting this error:

07:55:57,295 ERROR [org.jboss.as.ejb3] (EJB default - 10) javax.ejb.EJBTransactionRolledbackException:
Exception Description: Error binding to externally managed transaction
Internal Exception: javax.transaction.RollbackException: ARJUNA016083: Can't register synchronization because the transaction is in aborted state
07:55:57,295 ERROR [org.jboss.as.ejb3.invocation] (EJB default - 10) JBAS014134: EJB Invocation failed on component DVCDataService for method public java.lang.Object ca.shaw.tno.oss.dvctool.datamodel.service.DVC
DataService.find(java.lang.Class,java.lang.Object) throws java.lang.IllegalArgumentException: javax.ejb.EJBTransactionRolledbackException:
Exception Description: Error binding to externally managed transaction
Internal Exception: javax.transaction.RollbackException: ARJUNA016083: Can't register synchronization because the transaction is in aborted state

Full stack trace attached.

The application is a batch processor and it makes calls to other services/applications as part of its workflow. It appears that the error occurs after we make a RESTful call to another service, but I don't know why that would cause our JPA transaction to be aborted. We've disabled the call to the REST service and haven't seen the error (although there's no guarantee that's the cause).

I have been unable to find anything that explains why I am getting this error or how to troubleshoot it. Can anyone give me some clues?

UPDATE:

After combing thru the logs, what is happening is that the batch processor has a loop to process the items in the batch. The item processor class is a stateless session bean and via the use of a semaphore we restrict the number of items that can be processed concurrently. While we can't acquire a permit from the semaphore, the batch process loops and keeps trying until one can be acquired. On each loop, it also checks the database to see if the batch status has been halted via an outside process. So, we have lots of hits to the database while waiting for a response back from the RESTful service which it's not receiving for another reason.

So, it appears that the transaction is aborted because too much time has passed?

UPDATE TWO:

We refactored the code a bit and have isolated that the problem occurs when our item processor makes a call to a RESTful webservice. Sometimes that call results in a

java.net.SocketException: Unexpected end of file from server

We're still stumped as to why that (or any exception) in the processing would result in an aborted transaction.

[Updated on: Fri, 29 August 2014 16:57]

Report message to a moderator

Previous Topic:Entity Maintenance
Next Topic:DescriptorEventAdapter and Invoice Header/Line
Goto Forum:
  


Current Time: Mon May 25 06:02:04 GMT 2015

Powered by FUDForum. Page generated in 0.01548 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software