Yes, exactly. JIRA: https://issues.apache.org/jira/browse/CAMEL-6950.

Regards,

*Raúl Kripalani*
Apache Camel PMC Member & Committer | Enterprise Architect, Open Source
Integration specialist
http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
http://blog.raulkr.net | twitter: @raulvk

On Sat, Nov 9, 2013 at 8:20 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> It does sounds like camel-sjms lacks the re-connect functionality that
> camel-jms has by the spring's default message listener container.
>
>
>
> On Fri, Nov 8, 2013 at 2:22 PM, Harald Wellmann <hwellmann...@gmail.com>
> wrote:
> > Here's a slightly different scenario demonstrating the issue with SJMS,
> > this time not involving stale temp queues:
> >
> > 1) Start ActiveMQ Broker
> > 2) Start JBoss with Camel/SJMS consumer application
> > 3) Run one-shot producer application (i.e. simple program which sends one
> > message and then exits).
> > 4) Everything working fine.
> > 5) Stop broker -> Error messages in JBoss console from stale connections.
> > 6) Restart broker
> > 7) Re-run producer -> Nothing happens. SJMS does not reconnect.
> >
> > Replacing SJMS by JMS, the communication is reestablished automatically
> > after broker restart. While the broker is down, camel-jms periodically
> > tries to reconnect without success.
> >
> > So it seems camel-sjms is missing the reconnection feature, or am I
> missing
> > a configuration option?
> >
> > Regards,
> > Harald
> >
> >
> > 2013/11/8 Harald Wellmann <hwellmann...@gmail.com>
> >
> >> The real problem is not that the temp queue is gone, the fatal thing is
> >> that SJMS stops working after one attempt to send to a missing queue.
> >>
> >> I've tried to debug the situation, and it seems that SJMS creates
> sessions
> >> in advance from connections obtained from JBoss, but JBoss closes each
> >> connection when an exception occurs, and SJMS doesn't seem to notice
> that
> >> it's session is invalid.
> >>
> >> Regards,
> >> Harald
> >>
> >>
> >>
> >> 2013/11/8 Raul Kripalani <r...@evosent.com>
> >>
> >>> I don't think the situation can be avoided – if anything, it can be
> >>> contained via AMQ broker configuration.
> >>>
> >>> Take a look at [1]. Should be a similar situation.
> >>>
> >>> [1]
> >>>
> >>>
> http://stackoverflow.com/questions/6432672/activemq-how-to-handle-broker-failovers-while-using-temporary-queues
> >>>
> >>> Regards,
> >>>
> >>> *Raúl Kripalani*
> >>> Apache Camel PMC Member & Committer | Enterprise Architect, Open Source
> >>> Integration specialist
> >>> http://about.me/raulkripalani |
> http://www.linkedin.com/in/raulkripalani
> >>> http://blog.raulkr.net | twitter: @raulvk
> >>>
> >>> On Fri, Nov 8, 2013 at 11:54 AM, Harald Wellmann <
> hwellmann...@gmail.com
> >>> >wrote:
> >>>
> >>> > That might help in some cases, but I don't see how it solves the
> >>> problem,
> >>> > when the producer dies before the message TTL is over.
> >>> >
> >>> > Regards,
> >>> > Harald
> >>> >
> >>> >
> >>> > 2013/11/8 Raul Kripalani <r...@evosent.com>
> >>> >
> >>> > > If these are request-reply interactions, producers should set a
> Time
> >>> To
> >>> > > Live when sending a message to the queue. The broker will then
> expire
> >>> > stale
> >>> > > messages automatically and they won't be delivered to the consumer,
> >>> thus
> >>> > > reducing the risk of the consumer sending out unexpected replies
> like
> >>> > this
> >>> > > one.
> >>> > >
> >>> > > Regards,
> >>> > >
> >>> > > *Raúl Kripalani*
> >>> > > Apache Camel PMC Member & Committer | Enterprise Architect, Open
> >>> Source
> >>> > > Integration specialist
> >>> > > http://about.me/raulkripalani |
> >>> http://www.linkedin.com/in/raulkripalani
> >>> > > http://blog.raulkr.net | twitter: @raulvk
> >>> > >
> >>> > >
> >>> > > On Fri, Nov 8, 2013 at 11:17 AM, Harald Wellmann <
> >>> hwellmann...@gmail.com
> >>> > > >wrote:
> >>> > >
> >>> > > > I'm using Camel 2.12.1 with SJMS on JBoss AS 7.2.0 with the
> ActiveMQ
> >>> > > 5.7.0
> >>> > > > resource adapter and an external broker.
> >>> > > >
> >>> > > > My application has a route consuming request-reply messages from
> an
> >>> > > > ActiveMQ queue via SJMS. The connection factory is obtained from
> >>> JBoss
> >>> > > via
> >>> > > > @Resource injection.
> >>> > > >
> >>> > > > When I stop my application, other producers may continue sending
> >>> > messages
> >>> > > > to the queue.
> >>> > > >
> >>> > > > When I restart my application, the producers and their associated
> >>> > > temporary
> >>> > > > reply queues may be gone.
> >>> > > >
> >>> > > > Now the restarted application connects to the queue,  processes a
> >>> > message
> >>> > > > and fails sending a reply to stale temp queue, resulting in an
> >>> > exception
> >>> > > > (see below) - as a result, the ActiveMQ connection is closed,
> and in
> >>> > the
> >>> > > > debugger I can see that all ActiveMQ worker threads are
> terminated.
> >>> > > >
> >>> > > > When producers send new messages (this time with active reply
> >>> queues),
> >>> > > > nothing happens. SJMS/ActiveMQ does not reconnect.
> >>> > > >
> >>> > > > Everything works fine when replacing camel-sjms by camel-jms.
> >>> > > >
> >>> > > > Is this a configuration issue, or a problem in SJMS? Any hints
> >>> > welcome...
> >>> > > >
> >>> > > > Best regards,
> >>> > > > Harald
> >>> > > >
> >>> > > > ----
> >>> > > >
> >>> > > > 11:48:45,506 WARN
> >>> > > >
> [org.jboss.jca.core.connectionmanager.listener.TxConnectionListener]
> >>> > > > (ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616
> >>> @49905)
> >>> > > > IJ000305: Connection error occured:
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@2bc948fb
> >>> > > > [state=NORMAL
> >>> > > > managed
> >>> > > >
> >>> > >
> >>> >
> >>>
> connection=org.apache.activemq.ra.ActiveMQManagedConnection@29d997e5connection
> >>> > > > handles=1 lastUse=1383907703668 trackByTx=false
> >>> > > >
> >>> > >
> >>> >
> >>>
> pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@c8350dapool
> >>> > > > internal context=SemaphoreArrayListManagedConnectionPool@1311ea1
> >>> > > > [pool=ConnectionFactory]
> >>> > > > xaResource=LocalXAResourceImpl@3fd1dca3
> [connectionListener=2bc948fb
> >>> > > > connectionManager=6aec7210 warned=false currentXid=null
> >>> > > > productName=ActiveMQ productVersion=5.7.0
> >>> > > > jndiName=java:jboss/exported/jms/ConnectionFactory] txSync=null]:
> >>> > > > javax.jms.JMSException: The destination
> >>> > > > temp-queue://ID:tehh2d002-51935-1383907217133-1:2:2 does not
> exist.
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:149)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:289)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:175)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.region.RegionBroker.addProducer(RegionBroker.java:361)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.jmx.ManagedRegionBroker.addProducer(ManagedRegionBroker.java:281)
> >>> > > >     at
> >>> > > >
> >>> >
> >>>
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.advisory.AdvisoryBroker.addProducer(AdvisoryBroker.java:163)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.CompositeDestinationBroker.addProducer(CompositeDestinationBroker.java:56)
> >>> > > >     at
> >>> > > >
> >>> >
> >>>
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:511)
> >>> > > >     at
> >>> > > >
> >>> org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:152)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:256)
> >>> > > >     at
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> >>> > > >     at
> >>> > > >
> >>> > >
> >>> >
> >>>
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
> >>> > > >     at
> >>> > > >
> >>> >
> >>>
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
> >>> > > >     at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
> >>> > > >
> >>> > >
> >>> >
> >>>
> >>
> >>
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cib...@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>

Reply via email to