jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anand Bhagwat" <abbhagwa...@gmail.com>
Subject Re: Need configuration details for running jackrabbit in managed mode (XA transactions)
Date Mon, 14 Jul 2008 13:00:30 GMT
Thanks for the inputs.
One more observations from myside regarding error. When I use jackrabbit as
one of the XA resource and if I start a new transaction I am getting this
error. The scenario is given below and strange thing is it comes only when I
use JBoss transaction manager and managed database connections. Everything
works fine when I use Jencks and Geronimo.

Note: For jackrabbit I am not getting db connections from container.

Transasction Start (using PROPOGATION_REQUIRED)
-->calls to jackrabbit api
--> calls to JDBC api in a NEW transaction using PROPOGATION_REQUIRES_NEW
(Here I get the problem which i have listed below)

Regards,
Anand.

2008/7/14 Marcel Reutegger <marcel.reutegger@gmx.net>:

> you just have to make sure that the database connections used by jackrabbit
> are not managed by the container.
>
> btw, the stacktrace does not contain any reference to jackrabbit classes.
> maybe this is not a jackrabbit issues?
>
>
> regards
>  marcel
>
> Anand Bhagwat wrote:
>
>> Do I need to do anything specific for that?
>> Currently I am using Mysql Bundle persistant manager and DBFileManager on
>> mysql database. The user with which jackrabbit connects to database has
>> full
>> access to the corresponding schema.
>>
>> Regards,
>> Anand.
>>
>> 2008/7/14 Marcel Reutegger <marcel.reutegger@gmx.net>:
>>
>>  Hi,
>>>
>>> please note that jackrabbit needs full control over the database
>>> connections it operates on. that also includes committing a transaction.
>>>
>>> in a XA environment jackrabbit itself will act as a XA resource and
>>> control
>>> when changes to the underlying database are committed.
>>>
>>> regards
>>>  marcel
>>>
>>> Anand Bhagwat wrote:
>>>
>>>  I want to use jackrabbit in a managed environment. Operations on
>>>>  jackrabbit
>>>> content repository should participate in  XA  transactions.
>>>>
>>>> 1) Please let me know appropriate repository configuration.
>>>>
>>>> Here are the details of my env:
>>>> Server : JBoss 4.2.2 GA
>>>> Spring : 2.5.4
>>>> Hibernate: 3.x
>>>> Jackrabbit 1.4
>>>> springmodules 0.8
>>>> jackrabbit-jca 1.4
>>>>
>>>> I am using *org.apache.jackrabbit.core.fs.db.DbFileSystem* and *
>>>> org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager.
>>>>
>>>> *2) I get an error when I create a new transaction from an existing
>>>> transaction using PROPOGATION_REQUIRES_NEW especially when I do some
>>>> operation on jackrabbit like addNode, addProperty etc. Am I missing
>>>> something?
>>>>
>>>> java.lang.IllegalStateException: Can't enlist - already a tx!
>>>>   at
>>>>
>>>>
>>>> org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:516)
>>>>   at
>>>>
>>>>
>>>> org.jboss.resource.connectionmanager.TxConnectionManager.transactionStarted(TxConnectionManager.java:328)
>>>>   at
>>>>
>>>>
>>>> org.jboss.resource.connectionmanager.CachedConnectionManager.userTransactionStarted(CachedConnectionManager.java:360)
>>>>   at
>>>>
>>>>
>>>> org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:127)
>>>>   at
>>>>
>>>>
>>>> org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:886)
>>>>   at
>>>>
>>>>
>>>> org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:843)
>>>>   at
>>>>
>>>>
>>>> org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:423)
>>>>   at
>>>>
>>>>
>>>> org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:356)
>>>>   at
>>>>
>>>>
>>>> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:125)
>>>>   at
>>>>
>>>>
>>>> com.sungard.cs.docrepos.util.InfinityIdentityGenerator.generate(InfinityIdentityGenerator.java:44)
>>>>   at
>>>>
>>>>
>>>> org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:91)
>>>>   at
>>>>
>>>>
>>>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
>>>>   at
>>>>
>>>>
>>>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
>>>>   at
>>>>
>>>>
>>>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:98)
>>>>   at
>>>>
>>>>
>>>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>>   at
>>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:502)
>>>>   at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:494)
>>>>   at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:490)
>>>>   at
>>>>
>>>>
>>>> org.springframework.orm.hibernate3.HibernateTemplate$16.doInHibernate(HibernateTemplate.java:747)
>>>>   at
>>>>
>>>>
>>>> org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
>>>>   at
>>>>
>>>>
>>>> org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
>>>>   at
>>>>
>>>>
>>>> org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:744)
>>>>   at
>>>>
>>>>
>>>> com.sungard.framework.base.dao.hibernate.BaseDaoHibernate.add(BaseDaoHibernate.java:68)
>>>>   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:585)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:50)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>>>>   at $Proxy58.add(Unknown Source)
>>>>   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:585)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
>>>>   at $Proxy99.add(Unknown Source)
>>>>   at
>>>>
>>>>
>>>> com.sungard.framework.base.service.impl.ServiceImpl.add(ServiceImpl.java:87)
>>>>   at
>>>>
>>>>
>>>> com.sungard.cs.admin.firmprofile.service.impl.FirmProfileServiceImpl.saveFirmProfile(FirmProfileServiceImpl.java:240)
>>>>   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:585)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>>>>   at
>>>>
>>>>
>>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>>>>   at
>>>>
>>>>
>>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>>>>   at $Proxy101.saveFirmProfile(Unknown Source)
>>>>   at
>>>>
>>>>
>>>> com.sungard.cs.admin.firmprofile.action.FirmProfileAction.saveProfile(FirmProfileAction.java:1043)
>>>>   at
>>>>
>>>>
>>>> com.sungard.cs.admin.firmprofile.action.FirmProfileAction.doUpdate(FirmProfileAction.java:605)
>>>>   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:585)
>>>>   at
>>>>
>>>>
>>>> com.sungard.framework.base.action.BaseAction.dispatchMethod(BaseAction.java:402)
>>>>   at
>>>>
>>>> com.sungard.framework.base.action.BaseAction.execute(BaseAction.java:176)
>>>>   at
>>>>
>>>>
>>>> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
>>>>   at
>>>>
>>>>
>>>> com.sungard.framework.controller.CSARequestProcessor.processActionPerform(CSARequestProcessor.java:252)
>>>>   at
>>>>
>>>>
>>>> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>>>>   at
>>>> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>>>>   at
>>>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>>>>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>>>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>>>   at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>   at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>   at
>>>>
>>>>
>>>> com.sungard.cs.admin.sessionmanager.SessionManagerFilter.doFilter(SessionManagerFilter.java:65)
>>>>   at
>>>>
>>>>
>>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
>>>>   at
>>>>
>>>>
>>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>>>>   at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>   at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>   at
>>>>
>>>>
>>>> org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:112)
>>>>   at
>>>>
>>>>
>>>> com.sungard.framework.web.multipart.support.CSAMultipartFilter.doFilterInternal(CSAMultipartFilter.java:55)
>>>>   at
>>>>
>>>>
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>   at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>   at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
>>>>
>>>> Thanks,
>>>> Anand.*
>>>>
>>>> *
>>>>
>>>>
>>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message