Return-Path: Delivered-To: apmail-geronimo-activemq-dev-archive@www.apache.org Received: (qmail 76095 invoked from network); 2 Jun 2006 19:37:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 2 Jun 2006 19:37:49 -0000 Received: (qmail 64721 invoked by uid 500); 2 Jun 2006 19:37:49 -0000 Delivered-To: apmail-geronimo-activemq-dev-archive@geronimo.apache.org Received: (qmail 64696 invoked by uid 500); 2 Jun 2006 19:37:48 -0000 Mailing-List: contact activemq-dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-dev@geronimo.apache.org Delivered-To: mailing list activemq-dev@geronimo.apache.org Received: (qmail 64686 invoked by uid 99); 2 Jun 2006 19:37:48 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2006 12:37:48 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [209.237.227.198] (HELO brutus.apache.org) (209.237.227.198) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2006 12:37:46 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id A1FD07141E9 for ; Fri, 2 Jun 2006 19:36:51 +0000 (GMT) Message-ID: <11978744.1149277011660.JavaMail.jira@brutus> Date: Fri, 2 Jun 2006 19:36:51 +0000 (GMT+00:00) From: "Christopher G. Stach II (JIRA)" To: activemq-dev@geronimo.apache.org Subject: [jira] Commented: (AMQ-731) Redeliveries don't work with resource adapter and Jencks In-Reply-To: <4327346.1149016915091.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ https://issues.apache.org/activemq/browse/AMQ-731?page=comments#action_36228 ] Christopher G. Stach II commented on AMQ-731: --------------------------------------------- Okay, this is the stack trace with a breakpoint put at TransactionContext line 560. It happens over and over and over, each time the transaction is suspended. Thread [resin-30] (Suspended (breakpoint at line 560 in TransactionContext)) TransactionContext.setXid(Xid) line: 560 TransactionContext.end(Xid, int) line: 327 LocalAndXATransaction.end(Xid, int) line: 89 WrapperNamedXAResource.end(Xid, int) line: 51 TransactionImpl.suspend() line: 448 TransactionManagerImpl.suspend() line: 201 TreeCache.suspend() line: 101 TreeCache.put(Object, Object) line: 71 UpdateTimestampsCache.preinvalidate(Serializable[]) line: 54 ActionQueue.execute(Executable) line: 244 DefaultSaveOrUpdateEventListener(AbstractSaveEventListener).performSaveOrReplicate(Object, EntityKey, EntityPersister, boolean, Object, EventSource, boolean) line: 290 DefaultSaveOrUpdateEventListener(AbstractSaveEventListener).performSave(Object, Serializable, EntityPersister, boolean, Object, EventSource, boolean) line: 180 DefaultSaveOrUpdateEventListener(AbstractSaveEventListener).saveWithGeneratedId(Object, String, Object, EventSource, boolean) line: 108 DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(SaveOrUpdateEvent) line: 186 DefaultSaveOrUpdateEventListener.entityIsTransient(SaveOrUpdateEvent) line: 175 DefaultSaveOrUpdateEventListener.performSaveOrUpdate(SaveOrUpdateEvent) line: 98 DefaultSaveOrUpdateEventListener.onSaveOrUpdate(SaveOrUpdateEvent) line: 70 SessionImpl.fireSaveOrUpdate(SaveOrUpdateEvent) line: 509 SessionImpl.saveOrUpdate(String, Object) line: 501 SessionImpl.saveOrUpdate(Object) line: 497 HibernateTemplate$18.doInHibernate(Session) line: 693 HibernateTemplate.execute(HibernateCallback, boolean) line: 366 HibernateTemplate.saveOrUpdate(Object) line: 690 LeadDAOImpl(AbstractDAOImpl).saveOrUpdate(E) line: 281 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) line: 287 ReflectiveMethodInvocation.invokeJoinpoint() line: 181 ReflectiveMethodInvocation.proceed() line: 148 TransactionInterceptor.invoke(MethodInvocation) line: 96 ReflectiveMethodInvocation.proceed() line: 170 JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 176 $Proxy46.saveOrUpdate(Object) line: not available RefinanceLeadImpl(LeadImpl).save() line: 545 ProcessorImpl.processLead(DistributionContext, Lead) line: 126 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) line: 287 ReflectiveMethodInvocation.invokeJoinpoint() line: 181 ReflectiveMethodInvocation.proceed() line: 148 TransactionInterceptor.invoke(MethodInvocation) line: 96 ReflectiveMethodInvocation.proceed() line: 170 JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 176 $Proxy74.processLead(DistributionContext, Lead) line: not available ProcessorFacadeImpl$1.run() line: 92 ProcessorFacadeImpl(DistributionContextWrapper).wrap(DistributionContextWrapper$DistributionContextRunnable) line: 124 ProcessorFacadeImpl.processLead(Lead) line: 89 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) line: 287 ReflectiveMethodInvocation.invokeJoinpoint() line: 181 ReflectiveMethodInvocation.proceed() line: 148 TransactionInterceptor.invoke(MethodInvocation) line: 96 ReflectiveMethodInvocation.proceed() line: 170 JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 176 $Proxy75.processLead(Lead) line: not available NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) line: 287 ReflectiveMethodInvocation.invokeJoinpoint() line: 181 ReflectiveMethodInvocation.proceed() line: 148 RemoteInvocationTraceInterceptor.invoke(MethodInvocation) line: 68 ReflectiveMethodInvocation.proceed() line: 170 JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 176 $Proxy0.processLead(Lead) line: not available NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 LingoInvocation(RemoteInvocation).invoke(Object) line: 179 DefaultRemoteInvocationExecutor.invoke(RemoteInvocation, Object) line: 33 JmsServiceExporterMessageListener(RemoteInvocationBasedExporter).invoke(RemoteInvocation, Object) line: 76 JmsServiceExporterMessageListener(RemoteInvocationBasedExporter).invokeAndCreateResult(RemoteInvocation, Object) line: 112 JmsServiceExporterMessageListener(JmsServiceExporterSupport).onMessage(Message) line: 85 XAEndpoint.onMessage(Message) line: 126 MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy, Message) line: 120 MessageEndpointProxy.onMessage(Message) line: 60 ActiveMQSession.run() line: 692 ServerSessionImpl.run() line: 163 WorkThread.run() line: 99 ThreadPool.runTasks() line: 490 ThreadPool.run() line: 423 Thread.run() line: 595 > Redeliveries don't work with resource adapter and Jencks > -------------------------------------------------------- > > Key: AMQ-731 > URL: https://issues.apache.org/activemq/browse/AMQ-731 > Project: ActiveMQ > Type: Bug > Components: Connector > Versions: 4.0 > Environment: Sun JDK 1.5.0_06, Jencks 1.1.3, AMQ 4.0, Resin Pro 3.0.14 > Reporter: Christopher G. Stach II > > > During a rollback in a JTA transaction, this exception is generated a few times: > org.apache.activemq.broker.AbstractConnection.serviceException Async > error occurred: javax.jms.JMSException: Could not correlate > acknowledgment with dispatched message: MessageAck {commandId = 137, > responseRequired = false, ackType = 1, consumerId = > ID:xxx-2276-1148335783189-2:5:-1:2, firstMessageId = > ID:xxx-2276-1148335783189-2:1:1:1:2, lastMessageId = > ID:xxx-2276-1148335783189-2:1:1:1:2, destination = queue://xxxQueue, > transactionId = null, messageCount = 1} > javax.jms.JMSException: Could not correlate acknowledgment with > dispatched message: MessageAck {commandId = 137, responseRequired = > false, ackType = 1, consumerId = ID:xxx-2276-1148335783189-2:5:-1:2, > firstMessageId = ID:xxx-2276-1148335783189-2:1:1:1:2, lastMessageId = > ID:xxx-2276-1148335783189-2:1:1:1:2, destination = queue://xxxQueue, > transactionId = null, messageCount = 1} > at > org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:175) > at > org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:233) > at > org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:362) > at > org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:176) > at > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:65) > at > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:65) > at > org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:78) > at > org.apache.activemq.broker.AbstractConnection.processMessageAck(AbstractConnection.java:356) > at org.apache.activemq.command.MessageAck.visit(MessageAck.java:178) > at > org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62) > at > org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97) > at > org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63) > at > org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:76) > at > org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44) > at > org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60) > at > org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1111) > at > org.apache.activemq.ActiveMQSession.asyncSendPacket(ActiveMQSession.java:1655) > at > org.apache.activemq.ActiveMQSession$2.afterRollback(ActiveMQSession.java:720) > at > org.apache.activemq.TransactionContext.afterRollback(TransactionContext.java:134) > at > org.apache.activemq.TransactionContext.rollback(TransactionContext.java:409) > at > org.apache.activemq.ra.LocalAndXATransaction.rollback(LocalAndXATransaction.java:126) > at > org.apache.geronimo.transaction.manager.WrapperNamedXAResource.rollback(WrapperNamedXAResource.java:78) > at > com.caucho.transaction.TransactionImpl.rollbackInt(TransactionImpl.java:787) > at > com.caucho.transaction.TransactionImpl.commit(TransactionImpl.java:560) > at org.jencks.XAEndpoint.afterDelivery(XAEndpoint.java:103) > at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:125) > at > org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:64) > at > org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:214) > at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:751) > at > org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:163) > at com.caucho.jca.WorkThread.run(WorkThread.java:99) > at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490) > at com.caucho.util.ThreadPool.run(ThreadPool.java:423) > at java.lang.Thread.run(Thread.java:595) > Note that the ackType is a poison ack. This shouldn't be the case as the configuration (below) on the resource adapter and the managed connection factory both specify 9 redeliveries. Redelivery does not happen. > Broker configuration: > > > > > > > > > > > > Spring configuration: > class="org.springframework.jca.support.LocalConnectionFactoryBean"> > > > > false > > > false > > > > > > true > > > > > > > > > > > > > > > > class="org.apache.activemq.ra.ActiveMQManagedConnectionFactory"> > > 1 > > > 2000 > > > 9 > > > 2 > > > true > > > > > > > > classpath:activemq.xml > > > true > > > class="org.apache.activemq.ra.ActiveMQResourceAdapter" > depends-on="jms.broker"> > > 1 > > > 2000 > > > 9 > > > 2 > > > true > > > vm://localhost > > > I have written a test case using Geronimo's TM, but it succeeds. The configuration is very different, so I don't think it can be attributed to just a simple change in TM. A lot of other configuration changes had to be made. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira