I have an EJB of 5 entity beans and 5 corresponding session beans. The only 
methods are to create an instance of an entity (it is a toy test case). All 5 
entities must be created together due to FK constraints (each is created by 
invoking the 'create' method on the corresponding session bean). It works fine 
when invoked in a UserTransaction from a remtoe Java client program.

I also have an RA and MDB that implement JCA inbound transactions. In response 
to requests, the RA creates an XID and creates an execution context in which 
the MDB is invoked, which invokes the EJBs methods.

At the end, the RA tries to end (+ prepare + commit) the transaction, but this 
is failing because arjuna tries to update one of the created records but cannot 
find it, despite it logging earlier that it INSERTed it and that it found it 
using SELECT (I hand check each FK constraint in the SB's create method).

AFAIK this means that the end is being executed in the wrong thread/context as 
otherwise it should find it (again).

So, my questions are: is there any other reason the update could fail? how 
might I track down what's going wrong (I have turned on arjuna's DEBUG but it 
doesn't give enough detail for this)?

FWIW, the actual exception is:

  | 2009-05-19 09:50:42,557 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.AddressEB] Executing 
SQL: UPDATE ADDRESS SET CITY=?, STATE=?, SUBURB_CODE=?, COUNTRY=?, TELEPHONE=?, 
EMAIL=?, cname=? WHERE LINE1=?
  | 2009-05-19 09:50:42,561 DEBUG [com.arjuna.ats.jta.logging.logger] 
BaseTransaction.getStatus
  | 2009-05-19 09:50:52,014 DEBUG [com.arjuna.ats.jta.logging.logger] 
TransactionImple.setRollbackOnly
  | 2009-05-19 09:50:52,014 WARN  [com.arjuna.ats.arjuna.logging.arjLoggerI18N] 
[com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] 
TwoPhaseCoordinator.beforeCompletion - failed for 
com.arjuna.ats.internal.jta.resources.arjunacore.synchronizationim...@1971f66
  | javax.ejb.EJBException: Update failed. Expected one affected row: 
rowsAffected=0, id=875 Main St
  |     at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.execute(JDBCStoreEntityCommand.java:169)
  |     at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.storeEntity(JDBCStoreManager.java:666)
  |     at 
org.jboss.ejb.plugins.CMPPersistenceManager.storeEntity(CMPPersistenceManager.java:428)
  |     :
  |     :
  |     :
  | 

TIA!

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4231925#4231925

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4231925
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to