hi, i am facing a problem regarding calling an EJB within another EJB. the situation is like this:
system configuration: wls8.1sp2, oracle 9i
scenario: one EJB does some business crap, validates data, updates DB. if the data meets certain condition, this EJB will call the other EJB in the other server to update some data in another DB.
at first, the 2 EJBs are from different servers (physically different, i mean, different machine and different domain), and they are accessing different databases. when one EJB calls the other, the following exception was thrown:
javax.transaction.TransactionRolledbackException: Current server is the coordinator and transaction is not found. It was probably rolled back and forgotten already.
then i put the 2 servers under the same domain(still different machine) and tried again. this time the inter-EJB call went through, but another exception was thrown telling me that the JNDI name for the target EJB's datasource not found. it looks like the system was trying to lookup the target EJB's datasource in caller EJB's server.
then i deploy the target EJB's datasource to the caller EJB's server (yeah, i am desperately trying to make the thing work), another exception was thrown telling that the transaction was already created for the pool A, unable to create another transaction.
i tried to use XA driver for my connection pools, then got this error msg:
XA error: XAER_PROTO : Routine was invoked in an inproper context start() failed on resource 'XXX'
i did some researches through the net, but failed to find any solutions. any advise will be greatly appreciated. thanks!