I am very interested in this feature because, potentially, it could deliver
more performance in concurrent operations. However, I think that linking one
connection to a session is not a suitable approach since session must remain
independent of the actual PersistenceManager implementation. I'm more
looking into a general solution that allows the use of multiple connections
in the PersistenceManager. Perhaps the main developers could give some light
on this subject.

Thanks,

On 25/05/07, Nick Stolwijk < [EMAIL PROTECTED]> wrote:

We've found the cause of our problem. Our database connection is being
dropped by a firewall between the application server and the database
server. That causes the database driver (oracle) to hang itself by not
specifying a read time out on java.net.Socket.read. (This feature is
implemented in a later version of the driver)

However, we also want to use a database pool instead of the one
connection Jackrabbit uses. For this I'm looking into a one connection
per session. Are there any known drawbacks in that scenario? Would this
be a patch the jackrabbit community would be interested in?

With regards,

Nick Stolwijk


Marcel Reutegger wrote:
> Hi Nick,
>
> the three thread dumps do not show a deadlock.
>
> thread 20 executes a SQL statement in the persistence manager. threads
> 19 and 21 wait until thread 20 returns from the call to Oracle.
>
> regards
>  marcel
>
> Nick Stolwijk wrote:
>> Has someone an idea in which direction we have to search this? Is it
>> a bug in our usage, or maybe in jackrabbit?
>>
>> With regards,
>>
>> Nick Stolwijk
>>
>> Nick Stolwijk wrote:
>>> Sorry for the lack of information. I will try to draw a bigger
picture.
>>>
>>> Our modification on the 1.2.1 tag consists of combining the Oracle
>>> and JNDI classes to use them both. See [1] Patching the
>>> OracleFileSystem and OraclePersistenceManager for use with JNDI.
>>>
>>> The stacktraces of the threaddump is as following:
>>>
>>> <"ExecuteThread: '21' for queue: 'weblogic.kernel.Default'" daemon
>>> prio=1 tid=0x76888760 nid=0x569a waiting for monitor entry
>>> [7574f000..7575187c]
>>> <    at
>>>
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists
(DatabasePersistenceManager.java:645)
>>>
>>> <    - waiting to lock <0x8a7ae690> (a java.lang.String)
>>> <    at
>>>
org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState
(SharedItemStateManager.java:1050)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(
SharedItemStateManager.java:287)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.LocalItemStateManager.hasItemState (
LocalItemStateManager.java:180)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(
XAItemStateManager.java:252)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(
SessionItemStateManager.java:163)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState (
HierarchyManagerImpl.java:120)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(
HierarchyManagerImpl.java:267)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:132)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath (
HierarchyManagerImpl.java:203)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(
HierarchyManagerImpl.java:341)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:193)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath (
NodeImpl.java:243)
>>>
>>> <    at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java
:2507)
>>> <    at
>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl$1.doInJcr (
MediaRepositoryImpl.java:44)
>>>
>>> <    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:76)
>>> <    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:108)
>>> <    at
>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl.getMedia(
MediaRepositoryImpl.java:40)
>>>
>>> <    at
>>> nl.anwb.autoportaal.facade.impl.CommonContextFacadeImpl.getMedia (
CommonContextFacadeImpl.java:117)
>>>
>>> <    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> <    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke (
NativeMethodAccessorImpl.java:39)
>>>
>>> <    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
>>>
>>> <    at java.lang.reflect.Method.invoke(Method.java:324)
>>> <    at
>>>
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(
AopUtils.java:280)
>>>
>>> <    at
>>>
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:187)
>>>
>>> <    at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (
ReflectiveMethodInvocation.java:154)
>>>
>>> <    at
>>>
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(
TransactionInterceptor.java:107)
>>>
>>> <    at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:176)
>>>
>>> <    at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke (
JdkDynamicAopProxy.java:210)
>>>
>>> <    at $Proxy19.getMedia(Unknown Source)
>>> <    at
>>> nl.anwb.autoportaal.web.search.ModelTekstSearchBean.getModelTekst(
ModelTekstSearchBean.java :39)
>>>
>>> <    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> <    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java :39)
>>>
>>> <    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
>>>
>>> <    at java.lang.reflect.Method.invoke (Method.java:324)
>>> <    at
>>> org.apache.myfaces.el.PropertyResolverImpl.getProperty(
PropertyResolverImpl.java:438)
>>>
>>> <    at
>>> org.apache.myfaces.el.PropertyResolverImpl.getValue (
PropertyResolverImpl.java:82)
>>>
>>> <    at
>>> com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(
LegacyELContext.java:141)
>>>
>>> <    at com.sun.el.parser.AstValue.getValue(AstValue.java:96)
>>> <    at
>>> com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:183)
>>> <    at
>>> com.sun.facelets.el.ELText$ELTextVariable.writeText (ELText.java:184)
>>> <    at
>>> com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java
:45)
>>>
>>> <    at
>>> com.sun.facelets.compiler.UIInstructions.encodeBegin (
UIInstructions.java:39)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:232)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java :239)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
>>>
>>> <    at
>>> com.sun.facelets.FaceletViewHandler.renderView (
FaceletViewHandler.java:580)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ViewHandlerWrapper.renderView(
ViewHandlerWrapper.java:101)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(
AjaxViewHandler.java:222)
>>>
>>> <    at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
:384)
>>>
>>> <    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
>>> <    at
>>> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
ServletStubImpl.java :1006)
>>>
>>> <    at
>>> weblogic.servlet.internal.ServletStubImpl.invokeServlet(
ServletStubImpl.java:419)
>>>
>>> <    at
>>> weblogic.servlet.internal.TailFilter.doFilter (TailFilter.java:28)
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter (
ExtensionsFilter.java:144)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(
BaseXMLFilter.java:75)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(
BaseFilter.java:213)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage (
PageFilter.java:119)
>>>
>>> <    at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(
PageFilter.java:55)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
(OpenSessionInViewFilter.java:174)
>>>
>>> <    at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:264)
>>>
>>> <    at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(
FilterSecurityInterceptor.java:107)
>>>
>>> <    at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter (
FilterSecurityInterceptor.java:72)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(
ExceptionTranslationFilter.java:110)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter (
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(
AbstractProcessingFilter.java:217)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(
HttpSessionContextIntegrationFilter.java:191)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java
:148)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(
FilterToBeanProxy.java :90)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal (
RequestContextFilter.java:61)
>>>
>>> <    at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> nl.anwb.autoportaal.web.filters.SessionExpireFilter.doFilter(
SessionExpireFilter.java :74)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>>
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(
WebAppServletContext.java:6724)
>>>
>>> <    at
>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:321)
>>>
>>> <    at
>>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java
:121)
>>>
>>> <    at
>>> weblogic.servlet.internal.WebAppServletContext.invokeServlet(
WebAppServletContext.java :3764)
>>>
>>> <    at
>>> weblogic.servlet.internal.ServletRequestImpl.execute(
ServletRequestImpl.java:2644)
>>>
>>> <    at weblogic.kernel.ExecuteThread.execute (ExecuteThread.java:219)
>>> <    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>>>
>>> <"ExecuteThread: '20' for queue: 'weblogic.kernel.Default'" daemon
>>> prio=1 tid=0x76887c10 nid=0x569a runnable [757d0000..757d287c]
>>> <    at java.net.SocketInputStream.socketRead0(Native Method)
>>> <    at java.net.SocketInputStream.read(SocketInputStream.java :129)
>>> <    at oracle.net.ns.Packet.receive(Unknown Source)
>>> <    at oracle.net.ns.DataPacket.receive(Unknown Source)
>>> <    at oracle.net.ns.NetInputStream.getNextPacket (Unknown Source)
>>> <    at oracle.net.ns.NetInputStream.read(Unknown Source)
>>> <    at oracle.net.ns.NetInputStream.read(Unknown Source)
>>> <    at oracle.net.ns.NetInputStream.read (Unknown Source)
>>> <    at
>>> oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:971)
>>> <    at
>>> oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java :941)
>>> <    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:432)
>>> <    at
>>> oracle.jdbc.driver.T4CPreparedStatement.doOall8(
T4CPreparedStatement.java:181)
>>>
>>> <    at
>>> oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(
T4CPreparedStatement.java:543)
>>>
>>> <    at
>>> oracle.jdbc.driver.OracleStatement.execute_maybe_describe (
OracleStatement.java:913)
>>>
>>> <    at
>>> oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(
T4CPreparedStatement.java:452)
>>>
>>> <    at
>>> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
OracleStatement.java:984)
>>>
>>> <    at
>>> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(
OraclePreparedStatement.java :2885)
>>>
>>> <    at
>>> oracle.jdbc.driver.OraclePreparedStatement.execute(
OraclePreparedStatement.java:2976)
>>>
>>> <    - locked <0x8a7da210> (a oracle.jdbc.driver.T4CPreparedStatement)
>>> <    - locked <0x8a7b5ba8> (a oracle.jdbc.driver.T4CConnection)
>>> <    at
>>> weblogic.jdbc.wrapper.PreparedStatement.execute(
PreparedStatement.java:102)
>>>
>>> <    at
>>>
weblogic.jdbc.wrapper.PreparedStatement_oracle_jdbc_driver_T4CPreparedStatement.execute
(Unknown
>>> Source)
>>> <    at
>>>
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt
(DatabasePersistenceManager.java:835)
>>>
>>> <    at
>>>
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists(
DatabasePersistenceManager.java:647)
>>>
>>> <    - locked <0x8a7ae690> (a java.lang.String)
>>> <    at
>>>
org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(
SharedItemStateManager.java:1050)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(
SharedItemStateManager.java:287)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.LocalItemStateManager.hasItemState(
LocalItemStateManager.java:180)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState (
XAItemStateManager.java:252)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(
SessionItemStateManager.java:163)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(
HierarchyManagerImpl.java:120)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath (
HierarchyManagerImpl.java:267)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:132)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(
HierarchyManagerImpl.java:203)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath (
HierarchyManagerImpl.java:341)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:193)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath(
NodeImpl.java:243)
>>>
>>> <    at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java
:2507)
>>> <    at
>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl$1.doInJcr(
MediaRepositoryImpl.java:44)
>>>
>>> <    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:76)
>>> <    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java
:108)
>>> <    at
>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl.getMedia(
MediaRepositoryImpl.java:40)
>>>
>>> <    at
>>> nl.anwb.autoportaal.facade.impl.CommonContextFacadeImpl.getMedia(
CommonContextFacadeImpl.java:117)
>>>
>>> <    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> <    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
>>>
>>> <    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke (
DelegatingMethodAccessorImpl.java:25)
>>>
>>> <    at java.lang.reflect.Method.invoke(Method.java:324)
>>> <    at
>>>
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection (
AopUtils.java:280)
>>>
>>> <    at
>>>
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:187)
>>>
>>> <    at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:154)
>>>
>>> <    at
>>>
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(
TransactionInterceptor.java:107)
>>>
>>> <    at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:176)
>>>
>>> <    at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
JdkDynamicAopProxy.java:210)
>>>
>>> <    at $Proxy19.getMedia(Unknown Source)
>>> <    at
>>> nl.anwb.autoportaal.web.search.ModelTekstSearchBean.getModelTekst(
ModelTekstSearchBean.java:39)
>>>
>>> <    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> <    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
>>>
>>> <    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java :25)
>>>
>>> <    at java.lang.reflect.Method.invoke(Method.java:324)
>>> <    at
>>> org.apache.myfaces.el.PropertyResolverImpl.getProperty(
PropertyResolverImpl.java:438)
>>>
>>> <    at
>>> org.apache.myfaces.el.PropertyResolverImpl.getValue(
PropertyResolverImpl.java:82)
>>>
>>> <    at
>>> com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue (
LegacyELContext.java:141)
>>>
>>> <    at com.sun.el.parser.AstValue.getValue(AstValue.java:96)
>>> <    at
>>> com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java :183)
>>> <    at
>>> com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:184)
>>> <    at
>>> com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)
>>>
>>> <    at
>>> com.sun.facelets.compiler.UIInstructions.encodeBegin(
UIInstructions.java:39)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive (
ComponentSupport.java:232)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java :239)
>>>
>>> <    at
>>> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java
:580)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ViewHandlerWrapper.renderView (
ViewHandlerWrapper.java:101)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(
AjaxViewHandler.java:222)
>>>
>>> <    at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
:384)
>>>
>>> <    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
>>> <    at
>>> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
ServletStubImpl.java:1006)
>>>
>>> <    at
>>> weblogic.servlet.internal.ServletStubImpl.invokeServlet(
ServletStubImpl.java :419)
>>>
>>> <    at
>>> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
ExtensionsFilter.java:144)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(
BaseXMLFilter.java:75)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(
BaseFilter.java:213)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(
PageFilter.java:119)
>>>
>>> <    at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(
PageFilter.java:55)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
(OpenSessionInViewFilter.java:174)
>>>
>>> <    at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java :27)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:264)
>>>
>>> <    at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke (
FilterSecurityInterceptor.java:107)
>>>
>>> <    at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(
FilterSecurityInterceptor.java:72)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter (
ExceptionTranslationFilter.java:110)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(
AbstractProcessingFilter.java:217)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter (
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter
(HttpSessionContextIntegrationFilter.java:191)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy.doFilter (
FilterChainProxy.java:148)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(
FilterToBeanProxy.java:90)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(
RequestContextFilter.java :61)
>>>
>>> <    at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> nl.anwb.autoportaal.web.filters.SessionExpireFilter.doFilter(
SessionExpireFilter.java:74)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>>
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(
WebAppServletContext.java:6724)
>>>
>>> <    at
>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:321)
>>>
>>> <    at
>>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java
:121)
>>>
>>> <    at
>>> weblogic.servlet.internal.WebAppServletContext.invokeServlet(
WebAppServletContext.java :3764)
>>>
>>> <    at
>>> weblogic.servlet.internal.ServletRequestImpl.execute(
ServletRequestImpl.java:2644)
>>>
>>> <    at weblogic.kernel.ExecuteThread.execute (ExecuteThread.java:219)
>>> <    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>>>
>>>
>>> <"ExecuteThread: '19' for queue: 'weblogic.kernel.Default '" daemon
>>> prio=1 tid=0x768870c0 nid=0x569a waiting for monitor entry
>>> [75851000..7585387c]
>>> <    at
>>>
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists(
DatabasePersistenceManager.java:645)
>>>
>>> <    - waiting to lock <0x8a7ae690> (a java.lang.String)
>>> <    at
>>>
org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(
SharedItemStateManager.java:1050)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(
SharedItemStateManager.java:287)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.LocalItemStateManager.hasItemState(
LocalItemStateManager.java:180)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState (
XAItemStateManager.java:252)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(
SessionItemStateManager.java:163)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(
HierarchyManagerImpl.java:120)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath (
HierarchyManagerImpl.java:267)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:132)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(
HierarchyManagerImpl.java:203)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath (
HierarchyManagerImpl.java:341)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:193)
>>>
>>> <    at
>>> org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath(
NodeImpl.java:243)
>>>
>>> <    at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java
:2507)
>>> <    at
>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl$1.doInJcr(
MediaRepositoryImpl.java:44)
>>>
>>> <    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:76)
>>> <    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java
:108)
>>> <    at
>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl.getMedia(
MediaRepositoryImpl.java:40)
>>>
>>> <    at
>>> nl.anwb.autoportaal.facade.impl.CommonContextFacadeImpl.getMedia(
CommonContextFacadeImpl.java:117)
>>>
>>> <    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> <    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
>>>
>>> <    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke (
DelegatingMethodAccessorImpl.java:25)
>>>
>>> <    at java.lang.reflect.Method.invoke(Method.java:324)
>>> <    at
>>>
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection (
AopUtils.java:280)
>>>
>>> <    at
>>>
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:187)
>>>
>>> <    at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:154)
>>>
>>> <    at
>>>
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(
TransactionInterceptor.java:107)
>>>
>>> <    at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:176)
>>>
>>> <    at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
JdkDynamicAopProxy.java:210)
>>>
>>> <    at $Proxy19.getMedia(Unknown Source)
>>> <    at
>>> nl.anwb.autoportaal.web.search.ModelTekstSearchBean.getModelTekst(
ModelTekstSearchBean.java:39)
>>>
>>> <    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> <    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
>>>
>>> <    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java :25)
>>>
>>> <    at java.lang.reflect.Method.invoke(Method.java:324)
>>> <    at
>>> org.apache.myfaces.el.PropertyResolverImpl.getProperty(
PropertyResolverImpl.java:438)
>>>
>>> <    at
>>> org.apache.myfaces.el.PropertyResolverImpl.getValue(
PropertyResolverImpl.java:82)
>>>
>>> <    at
>>> com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue (
LegacyELContext.java:141)
>>>
>>> <    at com.sun.el.parser.AstValue.getValue(AstValue.java:96)
>>> <    at
>>> com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java :183)
>>> <    at
>>> com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:184)
>>> <    at
>>> com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)
>>>
>>> <    at
>>> com.sun.facelets.compiler.UIInstructions.encodeBegin(
UIInstructions.java:39)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive (
ComponentSupport.java:232)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
>>>
>>> <    at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java :239)
>>>
>>> <    at
>>> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java
:580)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ViewHandlerWrapper.renderView (
ViewHandlerWrapper.java:101)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(
AjaxViewHandler.java:222)
>>>
>>> <    at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
:384)
>>>
>>> <    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
>>> <    at
>>> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
ServletStubImpl.java:1006)
>>>
>>> <    at
>>> weblogic.servlet.internal.ServletStubImpl.invokeServlet(
ServletStubImpl.java :419)
>>>
>>> <    at
>>> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
ExtensionsFilter.java:144)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(
BaseXMLFilter.java:75)
>>>
>>> <    at
>>> org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(
BaseFilter.java:213)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(
PageFilter.java:119)
>>>
>>> <    at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(
PageFilter.java:55)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
(OpenSessionInViewFilter.java:174)
>>>
>>> <    at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java :27)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:264)
>>>
>>> <    at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke (
FilterSecurityInterceptor.java:107)
>>>
>>> <    at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(
FilterSecurityInterceptor.java:72)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter (
ExceptionTranslationFilter.java:110)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(
AbstractProcessingFilter.java:217)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter (
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter
(HttpSessionContextIntegrationFilter.java:191)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
FilterChainProxy.java:274)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterChainProxy.doFilter (
FilterChainProxy.java:148)
>>>
>>> <    at
>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(
FilterToBeanProxy.java:90)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(
RequestContextFilter.java :61)
>>>
>>> <    at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter (
FilterChainImpl.java:27)
>>>
>>> <    at
>>> nl.anwb.autoportaal.web.filters.SessionExpireFilter.doFilter(
SessionExpireFilter.java:74)
>>>
>>> <    at
>>> weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
>>>
>>> <    at
>>>
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(
WebAppServletContext.java:6724)
>>>
>>> <    at
>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:321)
>>>
>>> <    at
>>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java
:121)
>>>
>>> <    at
>>> weblogic.servlet.internal.WebAppServletContext.invokeServlet(
WebAppServletContext.java :3764)
>>>
>>> <    at
>>> weblogic.servlet.internal.ServletRequestImpl.execute(
ServletRequestImpl.java:2644)
>>>
>>> <    at weblogic.kernel.ExecuteThread.execute (ExecuteThread.java:219)
>>> <    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>>>
>>>
>>> We first used jackrabbit to only query existing nodes. A while ago
>>> we also started to query non-existing nodes (Files with text) The
>>> method
>>> nl.anwb.autoportaal.web.search.ModelTekstSearchBean.getModelTekst(
ModelTekstSearchBean.java:39
>>> is used for this.
>>>
>>> It is hard to test, because the only place we have been able to
>>> reproduce this is the acceptance server at our customers site.
>>>
>>> I hope this is enough information. If not, please ask.
>>>
>>> Nick Stolwijk
>>>
>>> [1] http://wiki.apache.org/jackrabbit/ExamplesPage
>>>
>>> Stefan Guggisberg wrote:
>>>> hi nick,
>>>>
>>>> On 5/21/07, Nick Stolwijk <[EMAIL PROTECTED]> wrote:
>>>>> We have a problem with a deadlock in Jackrabbit. We are using
version
>>>>> 1.2.1 with some modifications to use a Oracle connection through
>>>>> JNDI.
>>>>>
>>>>> Now we have a deadlock in the DatabasePersistenceManager. Can
someone
>>>>> explain to me what we're doing wrong.
>>>>
>>>> well that's going to be very difficult without knowing what exactly
>>>> you're doing
>>>> and what exactly your modifcations consist of ;) we'd also need a
>>>> jvm thread
>>>> dump including all threads involved in the dead lock.
>>>>
>>>> btw: are you also experiencing dead locks with an out-of-the-box
>>>> jackrabbit
>>>> release?
>>>>
>>>> cheers
>>>> stefan
>>>>
>>>>>
>>>>> Stacktrace:
>>>>>
>>>>> "ExecuteThread: '21' for queue: ' weblogic.kernel.Default'" daemon
>>>>> prio=1 tid=0x76888760 nid=0x569a waiting for monitor entry
>>>>> [7574f000..7575187c]
>>>>> <       at
>>>>>
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists
(DatabasePersistenceManager.java:645)
>>>>>
>>>>> <       - waiting to lock <0x8a7ae690> (a java.lang.String )
>>>>> <       at
>>>>>
org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState
(SharedItemStateManager.java:1050)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState
(SharedItemStateManager.java:287)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.state.LocalItemStateManager.hasItemState(
LocalItemStateManager.java:180)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(
XAItemStateManager.java:252)
>>>>>
>>>>> <       at
>>>>>
org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(
SessionItemStateManager.java:163)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(
HierarchyManagerImpl.java:120)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath (
HierarchyManagerImpl.java:267)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(
CachingHierarchyManager.java:132)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(
HierarchyManagerImpl.java:203)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(
HierarchyManagerImpl.java:341)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath (
CachingHierarchyManager.java:193)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath(
NodeImpl.java:243)
>>>>>
>>>>> <       at
>>>>> org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java:2507)
>>>>> <       at
>>>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl$1.doInJcr (
MediaRepositoryImpl.java:44)
>>>>>
>>>>> <       at
>>>>> org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:76)
>>>>> <       at
>>>>> org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:108)
>>>>> <       at
>>>>> nl.anwb.autoportaal.dao.jackrabbit.MediaRepositoryImpl.getMedia(
MediaRepositoryImpl.java:40)
>>>>>
>>>>>
>>>>>
>>>>> Environment:
>>>>> Weblogic 8.1
>>>>> Oracle 9
>>>>> Weblogic connection pool with 15 connections
>>>>> Jackrabbit 1.2.1
>>>>>
>>>>> I hope someone can help me.
>>>>>
>>>>> Nick Stolwijk
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>




--
Miguel.

Reply via email to