Richard van Nieuwenhoven created JCR-3475:
---------------------------------------------
Summary: Workaround force LocalTX to a GlobalTX with a UserTX
throws Exception in Events
Key: JCR-3475
URL: https://issues.apache.org/jira/browse/JCR-3475
Project: Jackrabbit Content Repository
Issue Type: Sub-task
Components: jackrabbit-jca
Affects Versions: 2.4.2
Environment: zLinux
Webshere 8.5
Jackrabbit deployed as (XA) resource adapter
jndi datasources (non XA as jackrabbit requests)
database db2 (version 9)
repository.xml attached
servlet code attached
Reporter: Richard van Nieuwenhoven
Attachments: EquestJackrabbitFilter.java, repository.xml
Workaround force LocalTX to a GlobalTX with a UserTX throws Exception in Events
Because Our Applicationserver optimizes the web accesses throug the webdav-api
to local transaction, we are trying to use a servlet filter that wraps a
Usertransaction around every http requests. This results in the use of Glocal
transactions. So far so good, it works in all normal jackrabbit accesses. But
not with observation events! In case of event listening on repository changes
the folowing exception occures:
{code}
[11/19/12 12:41:24:421 CET] 000000a3 servlet E
com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception
was thrown by one of
the service methods of the servlet [JCRWebdavServer] in application
[eQuest-jackrabbit-webdav]. Exception created :
[java.lang.IllegalStateException: I
nactive logical session handle called
at
org.apache.jackrabbit.jca.JCAManagedConnection.getSession(JCAManagedConnection.java:237)
at
org.apache.jackrabbit.jca.JCASessionHandle.getSession(JCASessionHandle.java:90)
at
org.apache.jackrabbit.jca.JCASessionHandle.getUserID(JCASessionHandle.java:104)
at
org.apache.jackrabbit.server.jcr.JCRWebdavServer$SessionCache.getUserID(JCRWebdavServer.java:409)
at
org.apache.jackrabbit.server.jcr.JCRWebdavServer$SessionCache.get(JCRWebdavServer.java:239)
at
org.apache.jackrabbit.server.jcr.JCRWebdavServer$SessionCache.access$200(JCRWebdavServer.java:165)
at
org.apache.jackrabbit.server.jcr.JCRWebdavServer.attachSession(JCRWebdavServer.java:103)
at
org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:247)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
{code}
I hope that somebody can help us solving/working around this one! We would be
willing to do the testing an debugging if necessary. But we do not have the
time to dig into the code and solve it ourself.
If somebody helps us getting Jackrabbit running XA under Webspere, i will go to
the Management and try to get a donation to Apache-Jackrabbit.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira