jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg" <stefan.guggisb...@day.com>
Subject Re: Exceptions with Repository running against DB2
Date Wed, 25 Jun 2008 08:47:00 GMT
hi vikas

On Tue, Jun 24, 2008 at 5:46 PM, Vikas Phonsa
<VPhonsa@mercuryinsurance.com> wrote:
> Hi All,
>
> I'm using JBOSS Rules BRMS application, which uses Jackrabbit.
>
> The repository is connected to a DB2 database.
>
> I've deployed the application on Weblogic. It works fine for the most
> part.
>
> But every time the repository starts up I see the exception listed
> below.
>
> And eventually, I start seeing OutofMemory errors in the server log.
>
> Can't say if the two issues are related, but has anybody experienced any
> such problem ?

they're probably related. the jboss rules app seems to use a
TransientRepository.
TransientRepository shuts down the repo as soon as the last session is
logging out.
this is exactly what's happening in your case. a session logout triggers
the repo shutdown. i'd advise to rather not use TransientRepository in this
case, the rules app should probably control the repository lifecycle.

the real problem however is that closing the jdbc connection fails due
to the driver complaining about an open transaction. if this happens
repeatedly this might explain the OOM errors.

the 'open tx' problem could be caused by the autocommit=false connection
setting, some drivers require read stmts to be committed as well.

please feel free to create a jira issue.

using another persistence manager might also solve your issue,
the bunde db pm's e.g. use a different autocommit default.

cheers
stefan

>
> I'm also listing my FileSystem and PersistanceManager configurations
> below.
>
> Thanks in advance for any feedback.
>
> Regards,
> Vikas
>
>
>
> ------------------------ Repository Config------------------------------
>
>                <FileSystem
> class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
>                        <param name="driver"
> value="com.ibm.db2.jcc.DB2Driver"/>
>                        <param name="url"
> value="jdbc:db2://localhost:50000/Drools"/>
>                        <param name="schema" value="db2"/>
>
>                        <param name="user" value="test"/>
>                      <param name="password" value="testpw"/>
>                      <param name="schemaObjectPrefix"
> value="${wsp.name}_FS_"/>
>             </FileSystem>
>
>
>         <PersistenceManager
> class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceMana
> ger">
>               <param name="driver" value="com.ibm.db2.jcc.DB2Driver"/>
>               <param name="url"
> value="jdbc:db2://localhost:50000/Drools"/>
>               <param name="schema" value="test"/>
>               <param name="user" value="vphonsa"/>
>                 <param name="password" value="testpw"/>
>               <param name="schemaObjectPrefix" value="${wsp.name}_"/>
>               <param name="externalBLOBs" value="false"/>
>           </PersistenceManager>
>
>
>
> --------------------Exception Stack Trace------------------------------
>
> ERROR 23-06 17:45:34,571 (RepositoryImpl.java:dispose:1890)      error
> while closing persistence manager of workspace MBR_WS
> com.ibm.db2.jcc.b.SqlException: [jcc][t4][10251][10308][3.50.152]
> java.sql.Connection.close() requested while a transaction is in progress
> on the connection.
> The transaction remains active, and the connection cannot be closed.
> ERRORCODE=-4471, SQLSTATE=null
>        at com.ibm.db2.jcc.b.wc.a(wc.java:55)
>        at com.ibm.db2.jcc.b.wc.a(wc.java:119)
>        at com.ibm.db2.jcc.b.eb.t(eb.java:996)
>        at com.ibm.db2.jcc.b.eb.w(eb.java:1019)
>        at com.ibm.db2.jcc.b.eb.u(eb.java:1005)
>        at com.ibm.db2.jcc.b.eb.close(eb.java:989)
>        at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.clo
> seConnection(DatabasePersistenceManager.java:765)
>        at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.clo
> se(DatabasePersistenceManager.java:253)
>        at
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.dispose(Reposito
> ryImpl.java:1888)
>        at
> org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java
> :1009)
>        at
> org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:9
> 63)
>        at
> org.apache.jackrabbit.core.TransientRepository.stopRepository(TransientR
> epository.java:275)
>        at
> org.apache.jackrabbit.core.TransientRepository.loggedOut(TransientReposi
> tory.java:427)
>        at
> org.apache.jackrabbit.core.SessionImpl.notifyLoggedOut(SessionImpl.java:
> 559)
>        at
> org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1295)
>        at
> org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:379)
>        at
> org.drools.brms.server.repository.BRMSRepositoryConfiguration.create(BRM
> SRepositoryConfiguration.java:66)
>        at
> org.drools.brms.server.repository.BRMSRepositoryConfiguration.create(BRM
> SRepositoryConfiguration.java:56)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:64)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:615)
>        at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
>        at
> org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationCon
> text.java:31)
>        at
> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationCon
> text.java:56)
>        at
> org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInte
> rceptor.java:31)
>        at
> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationCon
> text.java:68)
>        at
> org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextI
> nterceptor.java:42)
>        at
> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationCon
> text.java:68)
>        at
> org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106
> )
>        at
> org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBea
> nInterceptor.java:155)
>        at
> org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.
> java:91)
>        at
> org.drools.brms.server.repository.BRMSRepositoryConfiguration_$$_javassi
> st_0.create(BRMSRepositoryConfiguration_$$_javassist_0.java)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:64)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:615)
>        at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
>        at
> org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
>        at
> org.jboss.seam.Component.callComponentMethod(Component.java:2087)
>        at
> org.jboss.seam.Component.callCreateMethod(Component.java:2010)
>        at org.jboss.seam.Component.newInstance(Component.java:1981)
>        at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
>        at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
>        at
> org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecy
> cle.java:95)
>        at
> org.jboss.seam.init.Initialization.init(Initialization.java:554)
>        at
> org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java
> :34)
>        at
> weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(Ev
> entsManager.java:376)
>        at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSu
> bject.java:321)
>        at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121
> )
>        at
> weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(Events
> Manager.java:82)
>        at
> weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppSe
> rvletContext.java:1609)
>        at
> weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContex
> t.java:2764)
>        at
> weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:8
> 89)
>        at
> weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
>        at
> weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateD
> river.java:204)
>        at
> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriv
> er.java:26)
>        at
> weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDr
> iver.java:60)
>        at
> weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModule
> Driver.java:200)
>        at
> weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleLis
> tenerInvoker.java:117)
>        at
> weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateD
> river.java:204)
>        at
> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriv
> er.java:26)
>        at
> weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDr
> iver.java:60)
>        at
> weblogic.application.internal.flow.StartModulesFlow.activate(StartModule
> sFlow.java:26)
>        at
> weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:
> 635)
>        at
> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriv
> er.java:26)
>        at
> weblogic.application.internal.BaseDeployment.activate(BaseDeployment.jav
> a:212)
>        at
> weblogic.application.internal.DeploymentStateChecker.activate(Deployment
> StateChecker.java:154)
>        at
> weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppCo
> ntainerInvoker.java:80)
>        at
> weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDepl
> oyment.java:181)
>        at
> weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServer
> Lifecycle(BasicDeployment.java:358)
>        at
> weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(Deplo
> ymentAdapter.java:52)
>        at
> weblogic.management.deploy.internal.DeploymentAdapter.activate(Deploymen
> tAdapter.java:186)
>        at
> weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTra
> nsition.java:30)
>        at
> weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps
> (ConfiguredDeployments.java:254)
>        at
> weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps
> (ConfiguredDeployments.java:239)
>        at
> weblogic.management.deploy.internal.ConfiguredDeployments.activate(Confi
> guredDeployments.java:169)
>        at
> weblogic.management.deploy.internal.ConfiguredDeployments.deploy(Configu
> redDeployments.java:123)
>        at
> weblogic.management.deploy.internal.DeploymentServerService.resume(Deplo
> ymentServerService.java:173)
>        at
> weblogic.management.deploy.internal.DeploymentServerService.start(Deploy
> mentServerService.java:89)
>        at
> weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
>        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
>        at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>
> This email and/or any files or attachments transmitted with it are confidential and intended
solely for the use of the individual or entity to whom they are addressed, and may contain
information that is privileged, confidential and exempt from disclosure under applicable law.
If you are not the intended recipient, or the employee or agent responsible for delivering
the message to the intended recipient, you are hereby notified that any dissemination, distribution
or copying of this e-mail and/or any files or attachments transmitted with it is strictly
forbidden. If you have received this email in error, please delete the e-mail and/or any files
or attachments, and also notify the system manager (PostMaster@mercuryinsurance.com) of the
error. Please note that any views or opinions presented in this email are solely those of
the author and do not necessarily represent those of the company. Finally, the recipient should
check this email and any attachments for the presence of viruses. The company accepts no liability
for any damage caused by any virus transmitted by this email and/or any files or attachments
transmitted with it.
>
>
>

Mime
View raw message