Hi Vadim
The "sender will block until resumed" means that if your broker dies
(or when your broker is down) while your application calls send (or
commit) then that call will just wait until your broker is back up or
the slave broker has taken over. This is normally desired behavior.
However it can lead to applications waiting forever, so to deal with
that you can set timeouts or add the TransportListener.
I see you're using AMQ-5.1.0 and transacted sessions. I've had
problems with that (AMQ-1710 and AMQ-1925), it does not work
consistently with this version. The consumer will mostly throw an
exception (as seen im AMQ-1710). However your behavior seems a but
different, can you create a jira-issue and attach your test-case? I'd
like to try in on my patched version and see what happens.

--Mario

On Wed, Sep 10, 2008 at 11:51 PM, vadimos <[EMAIL PROTECTED]> wrote:
>
> Below is the output from a unit test I wrote to demonstrate the problem.
> here is the summary from what is highlighted:
> 14:34:28 - send "Hello, World!"
> 14:34:29 - receive "Hello, World!"
> 14:34:34 - remind myself to shutdown master broker, i.e. localhost:61626
> 14:34:40 - amq detects transport failure on master
> 14:34:51 - amq reconnects to slave, i.e. localhost:61616. Also 2 onCommand()
> invocations
> 14:35:04 - send "Hello, World!"
> 14:35:34 - shutdown because I gave up on waiting to receive.
>
> What is going on after 14:34:51? no continuous onCommand() invocations nor
> ability to receive the second message!
>
> thanks,
> vadim
>
>
> 14:34:27 INFO  org.springframework.test.context.TestContextManager
> @TestExecutionListeners is not present for class [class
> vadim.sample.jms.activemq.JobSenderTest]: using defaults.
> 14:34:27 INFO  org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> Loading XML bean definitions from class path resource
> [applicationContext.xml]
> 14:34:27 INFO  org.springframework.context.support.GenericApplicationContext
> Refreshing
> [EMAIL PROTECTED]:
> display name
> [EMAIL PROTECTED];
> startup date [Wed Sep 10 14:34:27 PDT 2008]; root of context hierarchy
> 14:34:27 INFO  org.springframework.context.support.GenericApplicationContext
> Bean factory for application context
> [EMAIL PROTECTED]:
> [EMAIL PROTECTED]
> 14:34:27 INFO
> org.springframework.beans.factory.support.DefaultListableBeanFactory
> Pre-instantiating singletons in
> [EMAIL PROTECTED]:
> defining beans
> [jmsExceptionListener,jmsPrefetchPolicy,jmsRedeliveryPolicy,activeMQConnectionFactory,activeMQPooledConnectionFactory,jmsTemplate,destination,listenerContainer,messageListener,jobReceiver,jobSender,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor];
> root of factory hierarchy
> 14:34:28 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener
> transportResumed is called
> 14:34:28 INFO  org.apache.activemq.transport.failover.FailoverTransport
> Successfully connected to tcp://localhost:61626
> 14:34:28 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:28 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:28 INFO  vadim.sample.jms.activemq.JobSender Sending message: Hello,
> World!
> 14:34:28 INFO  org.springframework.jms.connection.SingleConnectionFactory
> Established shared JMS Connection: PooledConnection {
> [EMAIL PROTECTED] }
> 14:34:28 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:28 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener
> transportResumed is called
> 14:34:28 INFO  org.apache.activemq.transport.failover.FailoverTransport
> Successfully connected to tcp://localhost:61626
> 14:34:28 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:29 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:29 INFO  vadim.sample.jms.activemq.JobReceiver Received message:
> Hello, World!
> 14:34:30 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:31 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:32 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:33 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:34 INFO  vadim.sample.jms.activemq.JobSenderTest Shutdown master
> broker!!!
> 14:34:34 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:35 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:36 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:37 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:38 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:39 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:40 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:40 WARN  org.apache.activemq.transport.failover.FailoverTransport
> Transport failed to tcp://localhost:61626 , attempting to automatically
> reconnect due to: java.io.EOFException
> 14:34:40 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener
> transportInterupted is called
> 14:34:41 WARN  org.apache.activemq.transport.failover.FailoverTransport
> Transport failed to tcp://localhost:61626 , attempting to automatically
> reconnect due to: java.io.EOFException
> 14:34:41 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener
> transportInterupted is called
> 14:34:51 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:51 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener
> transportResumed is called
> 14:34:51 INFO  org.apache.activemq.transport.failover.FailoverTransport
> Successfully reconnected to tcp://localhost:61616
> 14:34:51 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:51 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener
> transportResumed is called
> 14:34:51 INFO  org.apache.activemq.transport.failover.FailoverTransport
> Successfully reconnected to tcp://localhost:61616
> 14:34:51 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:34:51 INFO  vadim.sample.jms.activemq.ActiveMQTransportListener onCommand
> is called
> 14:35:04 INFO  vadim.sample.jms.activemq.JobSender Sending message: Hello,
> World!
> 14:35:34 INFO  org.springframework.context.support.GenericApplicationContext
> Closing
> [EMAIL PROTECTED]:
> display name
> [EMAIL PROTECTED];
> startup date [Wed Sep 10 14:34:27 PDT 2008]; root of context hierarchy
> 14:35:34 INFO
> org.springframework.beans.factory.support.DefaultListableBeanFactory
> Destroying singletons in
> [EMAIL PROTECTED]:
> defining beans
> [jmsExceptionListener,jmsPrefetchPolicy,jmsRedeliveryPolicy,activeMQConnectionFactory,activeMQPooledConnectionFactory,jmsTemplate,destination,listenerContainer,messageListener,jobReceiver,jobSender,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor];
> root of factory hierarchy
>
>
> --
> View this message in context: 
> http://www.nabble.com/sends-receives-block-during-failover-tp19415060p19423862.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>

Reply via email to