Hi
I am using Slide Server as back-end repository and connecting to it using Slide
JCA 2.1. The client is a JBoss 3.2.3 JMX Service I am implementing.
I am using the code similar the testServlet in the connector example to get the
UserConnection
private static UserTransaction userTransactionMgr = (UserTransaction)
((new InitialContext()).lookup("UserTransaction")));
userTransactionMgr.begin();
...
Context ic = new InitialContext();
connFactory = (WebDAVConnectionFactory)
ic.lookup("java:/WebDAV-Connector");
...
webDAVConnection = (WebDAVConnection) connFactory.getConnection(new
WebDAVConnectionSpec(
<serverURL>, <username>, <password>, <timeout>));
webDAVResource = webDAVConnection.getWebdavResource();
Then I use the webDAVResource that I get and perform whatever actions I need to
perform on the WebDAV server and it all works. At the end of it when I try to
use
userTransactionMgr.commit();
I get the following exception:
[WARN,TransactionImpl] XAException: tx=TransactionImpl:XidImpl [FormatId=257,
GlobalId=<Machine Name>//1165, BranchQual=] errorCode=XAER_NOTA
javax.transaction.xa.XAException
at
org.apache.commons.transaction.util.xa.AbstractXAResource.end(AbstractXAResource.java:133)
at org.jboss.tm.TransactionImpl.endResource(TransactionImpl.java:1205)
at org.jboss.tm.TransactionImpl.endResources(TransactionImpl.java:1278)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:355)
at org.jboss.tm.TxManager.commit(TxManager.java:141)
at
org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:126)
at
com.viviport.business.services.documentmanager.DocumentManagerTransaction.commit(DocumentManagerTransaction.java:79)
I checked the userTransactionMgr.getStatus() return value and it is equal to
Status.STATUS_ACTIVE before I call the commit.
The JCA connector was deployed in JBoss by dropping webdav-2.1.rar and
webdav-connector-ds.xml in server deploy directory. The webdav-connector-ds.xml
looks like:
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
<tx-connection-factory>
<jndi-name>WebDAV-Connector</jndi-name>
<xa-transaction/>
<track-connection-by-tx/>
<adapter-display-name>WebDAV-Connector</adapter-display-name>
</tx-connection-factory>
</connection-factories>
Anybody know what I am doing wrong?
BTW Instead of userTransactionMgr.commit(); I could use webDAVResource.
commitTransaction(); and it works, but is it really committing the JBoss
UserTransaction transaction I started or just the WebDAV transaction? It would
seem only the WebDAV transaction - since JBoss keeps telling me that I have
timed out transactions (presumably the ones I opened and did not commit).
Any help greatly appreciated.
Thanks