[ 
https://issues.apache.org/jira/browse/JCR-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12997936#comment-12997936
 ] 

Andreas Zschorn commented on JCR-2901:
--------------------------------------

Just some additional information, after reading javadoc and the spec for the 
resource adapter, this is the normal behaviour. The managed connection and the 
xa resource have two different purposes, but need to be in sync. Because the 
managed connections are cached by the pool it is not allowed just to recreate 
the xa resource in the managed connection. It will have no effect. Thats the 
reason i assigned the transactionboundxaresource the newly created xaresource 
from the new created session. Hope there is not an threading problem with this, 
but i don't see any at the moment.

> JCR-2523 break the transaction handling in container managed environment
> ------------------------------------------------------------------------
>
>                 Key: JCR-2901
>                 URL: https://issues.apache.org/jira/browse/JCR-2901
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jca
>    Affects Versions: 2.1.3, 2.2.4
>         Environment: Container managed transactions on jboss 4.2.3  with 
> spring-jcr-modules
>            Reporter: Andreas Zschorn
>            Assignee: Claus Köll
>            Priority: Blocker
>              Labels: Transaction,, container, managed
>         Attachments: JCR-2901-working.patch, JCR-2901.patch, testproject.zip
>
>
> during the cleanup (returning to the pool) of an jca managed connection,  an 
> new internal session is created in the object JCAManagedConnection in the 
> method cleanup, this is supposed to fix JCR-2523, The sideeffect is, that the 
> XA-Resource (variable-xaResource) in JCAManagedConnection is not anymore the 
> same XASessionImpl Object like the session Object. Subsequent calls on this 
> connection, lead that the internal session variable is not anymore informed 
> about the current transaction context. (XAItemStateManager, variables tx and 
> txLog are null), because only the xaResource is informed about the new 
> transaction context. Result is that the complete transaction handling does 
> not work anymore.
> I attached a sample project which shows this behaviour.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to