[ 
https://issues.apache.org/jira/browse/JCR-3475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Richard van Nieuwenhoven updated JCR-3475:
------------------------------------------

    Description: 
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.

  was:
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.

    
> 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
>
>
> 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

Reply via email to