[JBoss Seam] - Re: Problems using multiple datasources
by bmcgovern
I'm getting the exact same error only I'm using an XA-datasource. Im using SQL Server 2005. Any ideas?
One Data Source, the other is configured same just different DB instance.
| <datasources>
| <xa-datasource>
| <jndi-name>jdbc/myronepjndi</jndi-name>
| <use-java-context>false</use-java-context>
| <track-connection-by-tx/>
| <!--<xa-datasource-property name="URL">jdbc:jtds:sqlserver://192.168.100.9:1433;databasename=MyronEP5;tds=8.0;lastupdatecount=true</xa-datasource-property>-->
| <xa-datasource-property name="ServerName">localhost</xa-datasource-property>
| <xa-datasource-property name="DatabaseName">MyronEP5</xa-datasource-property>
| <xa-datasource-property name="SelectMethod">cursor</xa-datasource-property>
|
| <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
| <!--<xa-datasource-property name="User">myronep5</xa-datasource-property>
| <xa-datasource-property name="Password">myronep5</xa-datasource-property>-->
| <user-name>myron</user-name>
| <password>myron</password>
| <metadata>
| <type-mapping>MS SQLSERVER2000</type-mapping>
| </metadata>
|
| </xa-datasource>
| </datasources>
|
SPRING BEAN DEFINITION
| <bean id="myronTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
| <property name="userTransactionName" value="UserTransaction" />
| <!--<property name="userTransactionName" >null></null></property>
| <property name="transactionManager">
| <ref bean="jndiTransactionManager" />
| </property>-->
| </bean>
|
|
| <bean id="txProxyTemplate" abstract="true"
| class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
| <property name="transactionManager">
| <ref bean="myronTransactionManager" />
| </property>
| <property name="transactionAttributes">
| <props>
| <prop key="add*">PROPAGATION_REQUIRED</prop>
| <prop key="set*">PROPAGATION_REQUIRED</prop>
| <prop key="reset*">PROPAGATION_REQUIRED</prop>
| <prop key="update*">PROPAGATION_REQUIRED</prop>
| <prop key="save*">PROPAGATION_REQUIRED</prop>
| <prop key="remove*">PROPAGATION_REQUIRED</prop>
| <prop key="delete*">PROPAGATION_REQUIRED</prop>
| <prop key="process*">PROPAGATION_REQUIRED</prop>
| <prop key="exist*">PROPAGATION_REQUIRED</prop>
| <prop key="checkout">PROPAGATION_NEVER</prop>
| <prop key="getCartByCustomerSession">PROPAGATION_REQUIRED</prop>
| <prop key="releaseOrderShipment">
| PROPAGATION_NEVER
| </prop>
| <prop key="getNextOrderNumber">
| PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE
| </prop>
| <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
| </props>
| </property>
|
| <property name="preInterceptors">
| <ref bean="servicePreInterceptors"/>
| </property>
| </bean>
|
|
STACK TRACE
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Using transaction object [org.springframework.transaction.jta.JtaTransactionObject@5971c3]
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Initializing transaction synchronization
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Getting transaction for com.elasticpath.service.customer.CustomerSessionService.findByGuid
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Bound value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] to thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] bound to thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] bound to thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Invoking commit for transaction on com.elasticpath.service.customer.CustomerSessionService.findByGuid
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCommit synchronization
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCompletion synchronization
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Removed value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] from thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering afterCommit synchronization
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering afterCompletion synchronization
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Clearing transaction synchronization
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Using transaction object [org.springframework.transaction.jta.JtaTransactionObject@4976d6]
| 2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Creating new transaction with name [com.elasticpath.service.customer.CustomerSessionService.update]
| 2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Initializing transaction synchronization
| 2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Getting transaction for com.elasticpath.service.customer.CustomerSessionService.update
| 2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Bound value [org.springframework.orm.hibernate3.SessionHolder@11701fd] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] to thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@11701fd] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] bound to thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Invoking commit for transaction on com.elasticpath.service.customer.CustomerSessionService.update
| 2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCommit synchronization
| 2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
| 2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
| 2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
| 2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
| 2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
| org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:318)
| at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
| at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
| at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
| at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
| at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
| at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
| at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
| at $Proxy63.update(Unknown Source)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
| at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
| at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
| at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
| ... 50 more
| Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| ... 52 more
| Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
| ... 56 more
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCompletion synchronization
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Removed value [org.springframework.orm.hibernate3.SessionHolder@11701fd] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] from thread [http-127.0.0.1-8080-1]
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Initiating transaction rollback on commit exception
| org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
| Caused by:
| org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:318)
| at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
| at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
| at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
| at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
| at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
| at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
| at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
| at $Proxy63.update(Unknown Source)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
| at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
| at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
| at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
| ... 50 more
| Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| ... 52 more
| Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
| ... 56 more
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering afterCompletion synchronization
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Clearing transaction synchronization
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] FATAL com.elasticpath.commons.filter.impl.EncodingFilter - Exception caught in EncodingFilter:
| org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
| Caused by:
| org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:318)
| at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
| at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
| at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
| at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
| at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
| at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
| at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
| at $Proxy63.update(Unknown Source)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
| at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
| at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
| at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
| ... 50 more
| Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| ... 52 more
| Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
| ... 56 more
| 2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] ERROR org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/myron].[jsp] - Servlet.service() for servlet jsp threw exception
| javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
| at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
| at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
| at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
| at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
| at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
| at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
| at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
| at $Proxy63.update(Unknown Source)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
| at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
| at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
| at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
| at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062709#4062709
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4062709
18Â years, 10Â months
[Clustering/JBoss] - FD, replication timeouts, and shunning
by quinine
The short version of this question is: I have two nodes, A & B, with TreeCache hibernate 2nd-level cache replication. Node B will have several GCs during the day that make it unresponsive for minutes at a time. During these, Node A throws ReplicationExceptions. I want to set my jbosscache/jgroups configuration to enable node A to withstand these GC events on node B, either by temporarily shunning or by having appropriate timeouts, or some combination of both.
Long Version:
I have inherited a jboss cluster. I have been doing a great deal of reading, I have gone through the jgroups, jbosscache, & hibernate jbosscache wikis here on jboss.org.
We have 2 nodes , A & B, in a cluster. Both are running:
JBoss 4.0.5
JBossCache 1.4.1.SP3
JGroups 2.4.1-SP1.
The jboss-config.xml for the hibernate treecache (identical on both):
| <?xml version="1.0" encoding="UTF-8"?>
| <server>
| <mbean code="org.jboss.cache.TreeCache"
| name="jboss.cache:service=HibernateTreeCache">
|
| <depends>jboss:service=Naming</depends>
| <depends>jboss:service=TransactionManager</depends>
|
| <attribute name="ClusterName">Hibernate-${jboss.partition.name:Cluster}</attribute>
|
| <attribute name="IsolationLevel">READ_COMMITTED</attribute>
|
| <attribute name="CacheMode">REPL_SYNC</attribute>
|
| <attribute name="UseRegionBasedMarshalling">false</attribute>
|
| <attribute name="InactiveOnStartup">false</attribute>
|
| <attribute name="TransactionManagerLookupClass">org.jboss.cache.BatchModeTransactionManagerLookup</attribute>
|
| <attribute name="ClusterConfig">
| <config>
| <TCP bind_addr="${partition.tcphost:HIB3-MISCONFIGURED}"
| start_port="${partition.tcpport.hib3:HIB3-MISCONFIGURED}" loopback="false"
| tcp_nodelay="false" up_thread="false" down_thread="false"/>
| <TCPPING initial_hosts="${partition.tcphosts.hib3:HIB3-MISCONFIGURED}"
| port_range="3" timeout="3500"
| num_initial_members="3" up_thread="false" down_thread="false"/>
| <MERGE2 min_interval="20000" max_interval="100000"
| down_thread="false" up_thread="false"/>
| <FD_SOCK down_thread="false" up_thread="false"/>
| <FD shun="true" down_thread="false" up_thread="false"
| timeout="20000" max_tries="5"/>
| <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
| <pbcast.NAKACK up_thread="false" down_thread="false" gc_lag="100"
| retransmit_timeout="60000"/>
| <pbcast.STABLE desired_avg_gossip="50000" up_thread="false" down_thread="false" />
| <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="true"
| print_local_addr="true" down_thread="false" up_thread="false"/>
| <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>
| </config>
|
|
| </attribute>
|
| <attribute name="FetchInMemoryState">false</attribute>
| <attribute name="InitialStateRetrievalTimeout">20000</attribute>
|
| <attribute name="SyncReplTimeout">20000</attribute>
|
| <attribute name="LockAcquisitionTimeout">15000</attribute>
|
| <attribute name="BuddyReplicationConfig">
| <config>
| <buddyReplicationEnabled>false</buddyReplicationEnabled>
| <buddyLocatorClass>org.jboss.cache.buddyreplication.NextMemberBuddyLocator</buddyLocatorClass>
| <buddyLocatorProperties>
| numBuddies = 1
| ignoreColocatedBuddies = true
| </buddyLocatorProperties>
|
| <buddyPoolName>default</buddyPoolName>
| <buddyCommunicationTimeout>2000</buddyCommunicationTimeout>
|
| <autoDataGravitation>false</autoDataGravitation>
| <dataGravitationRemoveOnFind>true</dataGravitationRemoveOnFind>
| <dataGravitationSearchBackupTrees>true</dataGravitationSearchBackupTrees>
|
| </config>
| </attribute>
|
| </mbean>
|
| </server>
|
Our cluster-service.xml:
| <?xml version="1.0" encoding="UTF-8"?>
|
| <server>
|
| <mbean code="org.jboss.ha.framework.server.ClusterPartition"
| name="jboss:service=${jboss.partition.name:DefaultPartition}">
|
| <attribute name="PartitionName">${jboss.partition.name:DefaultPartition}</attribute>
|
| <attribute name="NodeAddress">${jboss.bind.address}</attribute>
|
| <attribute name="DeadlockDetection">False</attribute>
|
| <attribute name="StateTransferTimeout">30000</attribute>
|
| <attribute name="PartitionConfig">
| <Config>
| <TCP bind_addr="${partition.tcphost:CLUSTERCONFIG-MISCONFIGURED}" start_port="${partition.tcpport.cluster:CLUSTERCONFIG-MISCONFIGURED}" loopback="false"
| recv_buf_size="2000000" send_buf_size="640000"
| tcp_nodelay="true" up_thread="true" down_thread="true"/>
| <TCPPING initial_hosts="${partition.tcphosts.cluster:CLUSTERCONFIG-MISCONFIGURED}"
| port_range="3" timeout="3500"
| num_initial_members="3" up_thread="true" down_thread="true"/>
| <MERGE2 min_interval="10000" max_interval="20000" />
| <FD_SOCK down_thread="true" up_thread="true"/>
| <FD shun="true" up_thread="true" down_thread="true"
| timeout="10000" max_tries="5"/>
| <VERIFY_SUSPECT timeout="3000" down_thread="true" up_thread="true" />
| <pbcast.NAKACK up_thread="true" down_thread="true" gc_lag="100"
| retransmit_timeout="300,600,1200,2400,4800"/>
| <pbcast.STABLE desired_avg_gossip="20000" max_bytes="400000"
| down_thread="true" up_thread="true" />
| <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="true"
| print_local_addr="true" up_thread="true" down_thread="true"/>
| <FC max_credits="2000000" down_thread="true" up_thread="true"
| min_threshold="0.10"/>
| <FRAG2 frag_size="60000" down_thread="true" up_thread="true"/>
| <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
| </Config>
| </attribute>
| <depends>jboss:service=Naming</depends>
| </mbean>
|
|
| <mbean code="org.jboss.ha.hasessionstate.server.HASessionStateService"
| name="jboss:service=HASessionState">
| <depends>jboss:service=Naming</depends>
| <!-- We now inject the partition into the HAJNDI service instead
| of requiring that the partition name be passed -->
| <depends optional-attribute-name="ClusterPartition"
| proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>
| <!-- JNDI name under which the service is bound -->
| <attribute name="JndiName">/HASessionState/Default</attribute>
| <!-- Max delay before cleaning unreclaimed state.
| Defaults to 30*60*1000 => 30 minutes -->
| <attribute name="BeanCleaningDelay">0</attribute>
| </mbean>
|
| <mbean code="org.jboss.ha.jndi.HANamingService"
| name="jboss:service=HAJNDI">
| <!-- We now inject the partition into the HAJNDI service instead
| of requiring that the partition name be passed -->
| <depends optional-attribute-name="ClusterPartition"
| proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>
| <!-- Bind address of bootstrap and HA-JNDI RMI endpoints -->
| <attribute name="BindAddress">${jboss.bind.address}</attribute>
| <!-- Port on which the HA-JNDI stub is made available -->
| <attribute name="Port">1100</attribute>
| <!-- RmiPort to be used by the HA-JNDI service once bound. 0 => auto. -->
| <attribute name="RmiPort">1101</attribute>
| <!-- Accept backlog of the bootstrap socket -->
| <attribute name="Backlog">50</attribute>
| <!-- The thread pool service used to control the bootstrap and
| auto discovery lookups -->
| <depends optional-attribute-name="LookupPool"
| proxy-type="attribute">jboss.system:service=ThreadPool</depends>
|
| <!-- A flag to disable the auto discovery via multicast -->
| <attribute name="DiscoveryDisabled">false</attribute>
| <!-- Set the auto-discovery bootstrap multicast bind address. If not
| specified and a BindAddress is specified, the BindAddress will be used. -->
| <attribute name="AutoDiscoveryBindAddress">${jboss.bind.address}</attribute>
| <!-- Multicast Address and group port used for auto-discovery -->
| <attribute name="AutoDiscoveryAddress">${jboss.partition.udpGroup:230.0.0.4}</attribute>
| <attribute name="AutoDiscoveryGroup">1102</attribute>
| <!-- The TTL (time-to-live) for autodiscovery IP multicast packets -->
| <attribute name="AutoDiscoveryTTL">16</attribute>
| <!-- The load balancing policy for HA-JNDI -->
| <attribute name="LoadBalancePolicy">org.jboss.ha.framework.interfaces.RoundRobin</attribute>
|
| <!-- Client socket factory to be used for client-server
| RMI invocations during JNDI queries
| <attribute name="ClientSocketFactory">custom</attribute>
| -->
| <!-- Server socket factory to be used for client-server
| RMI invocations during JNDI queries
| <attribute name="ServerSocketFactory">custom</attribute>
| -->
| </mbean>
|
| <mbean code="org.jboss.invocation.jrmp.server.JRMPInvokerHA"
| name="jboss:service=invoker,type=jrmpha">
| <attribute name="ServerAddress">${jboss.bind.address}</attribute>
| <attribute name="RMIObjectPort">4447</attribute>
| <!--
| <attribute name="RMIClientSocketFactory">custom</attribute>
| <attribute name="RMIServerSocketFactory">custom</attribute>
| -->
| <depends>jboss:service=Naming</depends>
| </mbean>
|
| <!-- the JRMPInvokerHA creates a thread per request. This implementation uses a pool of threads -->
| <mbean code="org.jboss.invocation.pooled.server.PooledInvokerHA"
| name="jboss:service=invoker,type=pooledha">
| <attribute name="NumAcceptThreads">1</attribute>
| <attribute name="MaxPoolSize">300</attribute>
| <attribute name="ClientMaxPoolSize">300</attribute>
| <attribute name="SocketTimeout">60000</attribute>
| <attribute name="ServerBindAddress">${jboss.bind.address}</attribute>
| <attribute name="ServerBindPort">4446</attribute>
| <attribute name="ClientConnectAddress">${jboss.bind.address}</attribute>
| <attribute name="ClientConnectPort">0</attribute>
| <attribute name="EnableTcpNoDelay">false</attribute>
| <depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
| <depends>jboss:service=Naming</depends>
| </mbean>
|
| <mbean code="org.jboss.cache.invalidation.bridges.JGCacheInvalidationBridge"
| name="jboss.cache:service=InvalidationBridge,type=JavaGroups">
| <!-- We now inject the partition into the HAJNDI service instead
| of requiring that the partition name be passed -->
| <depends optional-attribute-name="ClusterPartition"
| proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>
| <depends>jboss.cache:service=InvalidationManager</depends>
| <attribute name="InvalidationManager">jboss.cache:service=InvalidationManager</attribute>
| <attribute name="BridgeName">DefaultJGBridge</attribute>
| </mbean>
|
| </server>
|
We occasionally get ReplicationExceptions on A, and we have been able to verify that these occur during long (up to 4-5 minutes) GCs on B, where the jvm becomes unresponsive.
As I read the config snippets above, node A will not shun until it doesn't receive a heartbeat for at least (20x5 + 1.5) = 101.5 seconds, but the replication timeout is 20 seconds.
So my questions are -
1) If I change the config so A will shun B before SyncReplTimeout, will this prevent replication during the time where B is unresponsive (hence preventing the ReplicationExceptions)?
2) I then am expecting B to be shunned somewhate regularly, but I always want B to be able to rejoin the cluster when it becomes responsive again. From what I'm reading, this means setting shun=false. Without shunning, how do I prevent replication to the unresponsive node B?
3) Are there further caveats that I need to consider? Will I need to make similar timeout/config changes to the cluster-config.xml?
Thank you very much for your time.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062708#4062708
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4062708
18Â years, 10Â months
[JBoss Seam] - seam v2.0beta takes ages to start on WebSphere v6.1.0.9
by titou09
seam v2.0beta takes ages to start on WebSphere v6.1.0.9
I use seam 2.0 beta, JSF 1.2 RI + facelets, and seam takes ages to start (1.5h+). In the log4j traces I see those messages related to a problem with a DTD validation
| ...
| DEBUG [core.Events ] - Processing event:org.jboss.seam.preSetVariable.org.jboss.seam.ui.entityConverterStore.component
| DEBUG [seam.Component ] - instantiating Seam component: org.jboss.seam.core.events
| DEBUG [seam.Component ] - initializing new instance of: org.jboss.seam.core.events
| DEBUG [seam.Component ] - done initializing: org.jboss.seam.core.events
| DEBUG [seam.Component ] - instantiating Seam component: org.jboss.seam.core.events
| DEBUG [seam.Component ] - initializing new instance of: org.jboss.seam.core.events
| DEBUG [seam.Component ] - done initializing: org.jboss.seam.core.events
| DEBUG [core.Events ] - Processing event:org.jboss.seam.postSetVariable.org.jboss.seam.ui.entityConverterStore.component
| DEBUG [util.DTDEntityResolver] - trying to resolve system-id [http://java.sun.com/dtd/ejb-jar_2_0.dtd]
| WARN [init.Initialization ] - Couldn't parse META-INF/ejb-jar.xml for component types Operation timed out: connect:could be due to invalid address Nested exception: Operation timed out: connect:could be due to invalid address
| DEBUG [util.DTDEntityResolver] - trying to resolve system-id [http://java.sun.com/dtd/ejb-jar_2_0.dtd]
| WARN [init.Initialization ] - Couldn't parse META-INF/ejb-jar.xml for component types Operation timed out: connect:could be due to invalid address Nested exception: Operation timed out: connect:could be due to invalid address
| DEBUG [util.DTDEntityResolver] - trying to resolve system-id [http://java.sun.com/dtd/ejb-jar_2_0.dtd]
| WARN [init.Initialization ] - Couldn't parse META-INF/ejb-jar.xml for component types Operation timed out: connect:could be due to invalid address Nested exception: Operation timed out: connect:could be due to invalid address
| INFO [seam.Component ] - Component: org.jboss.seam.ui.graphicImage.graphicImageResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.GraphicImageResource
| DEBUG [seam.Component ] - instantiating Seam component: org.jboss.seam.core.events
| ...
|
It seems it's trying to validate something against the ejb-jar_2_0.dtd file.
It does this for most of the classes present in jboss-seam.jar and jboss-seam-ui.jar.
Where does this come from? is there something missing in my classpath? is it related to seam or to WebSphere? is there a way to disable this validation? will I win to the lottery next saturday?
That makes a lot of questions indeed...
Any help appreciated
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062707#4062707
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4062707
18Â years, 10Â months