[ https://issues.apache.org/jira/browse/JCR-769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12480020 ]
Claus Köll commented on JCR-769: -------------------------------- hi dominique, yes you have understood me i have read the JCR-335 and you are right. but let see this szenario you must open a "Admin"Session next to a normal "User"Session so you have 2 XASession in one Transaction and this wil not work now. you are right the second session makes no updates but maybe it will. i think we must look that we use the same TransactionContext as "shareable" like a shareable DataSource in EJBContainer. so we can check it in the XAResources before we make a exclusive lock. The same behaviour we have in EJBContainer with DataSources. If you have a Transaction with 2 Entity Beans and a IsolationLevel like serializeable you must also look to get a reference from the the same DataSource (Connection) to prevent a lock on db from the first ejb. > Unable to login with two different Credentials to same workspace in one > Transaction > ----------------------------------------------------------------------------------- > > Key: JCR-769 > URL: https://issues.apache.org/jira/browse/JCR-769 > Project: Jackrabbit > Issue Type: Bug > Components: jca > Affects Versions: 1.2.1 > Environment: Websphere 5.1.1 J2C Adapter > Reporter: Claus Köll > Attachments: patch.txt, stacktrace.txt > > > I'm using the Jackrabbit 1.2.1 JCA adapter and trying to access in a > SessionBean-Method with Container Transaction a Workspace with 2 different > Credentials. > The Method takes about 400ms to finish but no commit on TransactionContextr > occurs (Debugging ..) only the prepare was called 2 times . > The Container hangs on the PostInvoke Method about 5 seconds and then i get a > "javax.transaction.xa.XAException" > with the Warn Message: Transaction rolled back because timeout expired > The code .. > Context ctx = new InitialContext(); > Repository repository = (Repository) ctx.lookup("java:comp/env/jackrabbit"); > Credentials credentials = new SimpleCredentials("user1", > "password1".toCharArray()); > Credentials credentials2 = new SimpleCredentials("user2", > "password2".toCharArray()); > Session session1 = repository.login(credentials, "default"); > Session session2 = repository.login(credentials2, "default"); > Session1 adds a node to the workspace .. and with the session2 i do nothing > except the login ! > If i make no second login the Method works fine. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.