Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 1107 invoked from network); 25 Aug 2010 13:49:38 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 25 Aug 2010 13:49:38 -0000 Received: (qmail 64870 invoked by uid 500); 25 Aug 2010 13:49:38 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 64713 invoked by uid 500); 25 Aug 2010 13:49:36 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 64705 invoked by uid 99); 25 Aug 2010 13:49:35 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 Aug 2010 13:49:35 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of gary.tully@gmail.com designates 209.85.216.178 as permitted sender) Received: from [209.85.216.178] (HELO mail-qy0-f178.google.com) (209.85.216.178) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 Aug 2010 13:49:13 +0000 Received: by qyk34 with SMTP id 34so697529qyk.2 for ; Wed, 25 Aug 2010 06:48:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=tzHHVaE5Aw3Ht1baI05XwJKYW7WO7BA7L8htvlWF2Cs=; b=VkMFKJfELW/FJvGFWo4h+Bv+k+nR14BFVkrT77QR/SeXFwAT5gxp8cvvORB8IWlP4f KDdk2mSnrIvoiltdsIvdz5DaIqViplfOARK3z3tAj5OZbO5IH48Hb/1fFhePMPwBcHfw xoaabR9oyo/oG1shdDFfI4UX+CxkR9bSFs5HA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=qiPmIIxGdzyTXV4iSS7IItVO+hdHUkQ8/OaU0n+8R6N87sdCKF9n2Q5EVtQsZVKXCa NAa0YyywoeMAdE5OUo/vssfsDXR6/YCWe/Ndhs5+Ig4Bm1gmaQ74Nnqbf1UAbeYTrbwS uPnNIeoZ+Ujnn4rWOxLR6kDg7/4Qa5NxJHi7Y= MIME-Version: 1.0 Received: by 10.224.65.169 with SMTP id j41mr5577638qai.154.1282744131161; Wed, 25 Aug 2010 06:48:51 -0700 (PDT) Received: by 10.229.249.134 with HTTP; Wed, 25 Aug 2010 06:48:22 -0700 (PDT) In-Reply-To: References: Date: Wed, 25 Aug 2010 14:48:22 +0100 Message-ID: Subject: Re: Cryptic error time! From: Gary Tully To: users@activemq.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org yea, it looks like it warrants an issue. Have a look at the java stomp tests, that use a trivial java stomp client. org.apache.activemq.transport.stomp.StompTest in activemq-core for some inspiration for a junit test. On 25 August 2010 14:29, James Green wrote: > Hmm, I'm connecting to both hub and spoke using PHP with the PECL > Stomp library (1.0.1). > > To the hub I'm sending to /topic/accounts with a header 'persistent' =3D>= 'true'. > > To the spoke I am subscribing to /topic/accounts with a client-id of > 'sutton_accounts'. I use the same 'sutton_accounts' value for the > 'activemq.subscriptionName' header. > > On the spoke my networkConnectors: > =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0name=3D"hub" > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0duplex=3D"true" > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0conduitSubscriptions=3D"false" > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dynamicOnly=3D"false"> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 > > If this all looks good then I can open a Jira ticket - I've not done > anything in junit before so forgive me if I'm not the most forthcoming > on that one (can't be that different to phpunit, right?). > > Just don't want to pollute Jira with what might be configuration issues m= y end! > > James > > On 25 August 2010 14:12, Gary Tully wrote: >> What frames are being used to the create the stomp subscription. >> >> From the code, there is a subscription name present in the consumer >> info so it is attempting to treat it as a durable topic subscription >> when in fact it is a queue subscription. >> >> Can you post the relevant stomp frames, and possibly open a jira issue >> to track this and collect the relevant information. >> Ideally a test case that can reproduce would be great. This seems to >> be a stomp/openwire mismatch or a series of stomp commands in the >> wrong order or is there a composite destination? >> >> On 25 August 2010 13:55, James Green wrote: >>> Both servers are 5.4.0 on Ubuntu. >>> >>> From the hub in full: >>> [ .. ] >>> java.lang.ClassCastException: >>> org.apache.activemq.broker.region.QueueSubscription cannot be cast to >>> org.apache.activemq.broker.region.DurableTopicSubscription >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.jmx.DurableSubscriptionVie= w.(DurableSubscriptionView.java:46) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.jmx.ManagedRegionBroker.re= gisterSubscription(ManagedRegionBroker.java:188) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.jmx.ManagedQueueRegion.cre= ateSubscription(ManagedQueueRegion.java:45) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.region.AbstractRegion.addC= onsumer(AbstractRegion.java:268) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.region.RegionBroker.addCon= sumer(RegionBroker.java:420) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.advisory.AdvisoryBroker.addConsum= er(AdvisoryBroker.java:91) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.MutableBrokerFilter.addCon= sumer(MutableBrokerFilter.java:95) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.TransportConnection.proces= sAddConsumer(TransportConnection.java:548) >>> =A0 =A0 =A0 =A0at org.apache.activemq.command.ConsumerInfo.visit(Consum= erInfo.java:349) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.TransportConnection.servic= e(TransportConnection.java:309) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.TransportConnection$1.onCo= mmand(TransportConnection.java:185) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.TransportFilter.onComma= nd(TransportFilter.java:69) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.stomp.StompTransportFil= ter.sendToActiveMQ(StompTransportFilter.java:81) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.stomp.ProtocolConverter= .sendToActiveMQ(ProtocolConverter.java:140) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.stomp.ProtocolConverter= .onStompSubscribe(ProtocolConverter.java:425) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.stomp.ProtocolConverter= .onStompCommand(ProtocolConverter.java:188) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.stomp.StompTransportFil= ter.onCommand(StompTransportFilter.java:70) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.TransportSupport.doCons= ume(TransportSupport.java:83) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.tcp.TcpTransport.doRun(= TcpTransport.java:219) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.tcp.TcpTransport.run(Tc= pTransport.java:201) >>> =A0 =A0 =A0 =A0at java.lang.Thread.run(Thread.java:636) >>> >>> The spoke: >>> [ ... ] >>> java.lang.ClassCastException: >>> org.apache.activemq.broker.region.QueueSubscription cannot be >>> cast to org.apache.activemq.broker.region.DurableTopicSubscription >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.jmx.DurableSubscriptionVie= w.(DurableSubscription >>> View.java:46) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.jmx.ManagedRegionBroker.re= gisterSubscription(ManagedRe >>> gionBroker.java:188) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.jmx.ManagedQueueRegion.cre= ateSubscription(ManagedQueue >>> Region.java:45) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.region.AbstractRegion.addC= onsumer(AbstractRegion.java: >>> 268) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.region.RegionBroker.addCon= sumer(RegionBroker.java:420) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.advisory.AdvisoryBroker.addConsum= er(AdvisoryBroker.java:91) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.BrokerFilter.addConsumer(B= rokerFilter.java:89) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.MutableBrokerFilter.addCon= sumer(MutableBrokerFilter.ja >>> va:95) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.TransportConnection.proces= sAddConsumer(TransportConnec >>> tion.java:548) >>> =A0 =A0 =A0 =A0at org.apache.activemq.command.ConsumerInfo.visit(Consum= erInfo.java:349) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.TransportConnection.servic= e(TransportConnection.java:309) >>> =A0 =A0 =A0 =A0at org.apache.activemq.broker.TransportConnection$1.onCo= mmand(TransportConnection.java:185) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.ResponseCorrelator.onCo= mmand(ResponseCorrelator.java:116) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.TransportFilter.onComma= nd(TransportFilter.java:69) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.vm.VMTransport.dispatch= (VMTransport.java:121) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.vm.VMTransport.oneway(V= MTransport.java:112) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.MutexTransport.oneway(M= utexTransport.java:40) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.ResponseCorrelator.onew= ay(ResponseCorrelator.java:60) >>> =A0 =A0 =A0 =A0at org.apache.activemq.network.DemandForwardingBridgeSup= port.addSubscription(DemandForwardingBridgeSupport.java:652) >>> =A0 =A0 =A0 =A0at org.apache.activemq.network.DemandForwardingBridgeSup= port.addConsumerInfo(DemandForwardingBridgeSupport.java:1017) >>> =A0 =A0 =A0 =A0at org.apache.activemq.network.DemandForwardingBridgeSup= port.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:587) >>> =A0 =A0 =A0 =A0at org.apache.activemq.network.DemandForwardingBridgeSup= port.serviceRemoteCommand(DemandForwardingBridgeSupport.java:492) >>> =A0 =A0 =A0 =A0at org.apache.activemq.network.DemandForwardingBridgeSup= port$2.onCommand(DemandForwardingBridgeSupport.java:173) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.ResponseCorrelator.onCo= mmand(ResponseCorrelator.java:116) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.TransportFilter.onComma= nd(TransportFilter.java:69) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.WireFormatNegotiator.on= Command(WireFormatNegotiator.java:113) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.InactivityMonitor.onCom= mand(InactivityMonitor.java:217) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.TransportSupport.doCons= ume(TransportSupport.java:83) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.tcp.SslTransport.doCons= ume(SslTransport.java:91) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.tcp.TcpTransport.doRun(= TcpTransport.java:219) >>> =A0 =A0 =A0 =A0at org.apache.activemq.transport.tcp.TcpTransport.run(Tc= pTransport.java:201) >>> =A0 =A0 =A0 =A0at java.lang.Thread.run(Thread.java:636) >>> >>> On 25 August 2010 12:36, Gary Tully wrote: >>>> is there a stack trace? please post if there is. >>>> what version of broker? >>>> >>>> On 25 August 2010 12:31, James Green wrote: >>>>> On our hub I see the following: >>>>> >>>>> 2010-08-25 12:09:47,378 | ERROR | Failed to register subscription >>>>> QueueSubscription: consumer=3DID:billing-59361-1282733145999-6:14:-1:= 1, >>>>> destinations=3D0, dispatched=3D0, delivered=3D0, pending=3D0 | >>>>> org.apache.activemq.broker.jmx.ManagedRegionBroker | ActiveMQ >>>>> Transport: tcp:///127.0.0.1:46902 >>>>> java.lang.ClassCastException: >>>>> org.apache.activemq.broker.region.QueueSubscription cannot be cast to >>>>> org.apache.activemq.broker.region.DurableTopicSubscription >>>>> >>>>> On one of our spokes I see: >>>>> >>>>> 2010-08-25 12:25:25,513 | ERROR | Failed to register subscription >>>>> QueueSubscription: consume >>>>> r=3DID:sutton-47959-1282733262236-4:1:1:29, destinations=3D0, >>>>> dispatched=3D0, delivered=3D0, pending >>>>> =3D0 | org.apache.activemq.broker.jmx.ManagedRegionBroker | ActiveMQ >>>>> Transport: ssl://the-hub/x.x.x.x.x:61617 >>>>> java.lang.ClassCastException: >>>>> org.apache.activemq.broker.region.QueueSubscription cannot be >>>>> cast to org.apache.activemq.broker.region.DurableTopicSubscription >>>>> >>>>> On the spoke I do have a durable subscriber. Not sure there's a >>>>> problem with that though. >>>>> >>>>> Any ideas? >>>>> >>>>> James >>>>> >>>> >>>> >>>> >>>> -- >>>> http://blog.garytully.com >>>> >>>> Open Source Integration >>>> http://fusesource.com >>>> >>> >> >> >> >> -- >> http://blog.garytully.com >> >> Open Source Integration >> http://fusesource.com >> > --=20 http://blog.garytully.com Open Source Integration http://fusesource.com