We have the following topology Service A is connected to Broker X using failover. Broker X is part of a Network of Brokers. One of these Brokers is Y.
When Broker Y is shutdown, crashes or loses network connection then we get exceptions on broker X that Servce A cannot send messages anymore because it has an invalid (null) producer state. From the log on X we see that immediatly after loosing connection to Y the connection from A fails due to a EOFException: 2013-04-12 00:03:22,751 | INFO | X bridge to Y stopped | org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ BrokerService[X] Task-24587 2013-04-12 00:03:22,814 | WARN | Transport Connection to: tcp://0:0:0:0:0:0:0:1:62254 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///0:0:0:0:0:0:0:1:62254@61616 The connection and all sessions are then removed. Because of the failover configuration the connection is immediatly reestablished but the system is not in a state where no messages can be sent anymore due to the following exception raised on every send: 2013-04-12 00:03:23,094 | WARN | Send failed for: ActiveMQTextMessage {...}, missing producer state for: org.apache.activemq.broker.ProducerBrokerExchange@47a65f28 | org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///0:0:0:0:0:0:0:1:57089@61616 2013-04-12 00:03:23,094 | WARN | Async error occurred: javax.jms.JMSException: Cannot send message to * with invalid (null) producer state | org.apache.activemq.broker.TransportConnection.Service | ActiveMQ Transport: tcp:///0:0:0:0:0:0:0:1:57089@61616 javax.jms.JMSException: Cannot send message to * with invalid (null) producer state at org.apache.activemq.broker.region.Queue.send(Queue.java:599) at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407) at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503) at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:311) at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129) at org.apache.activemq.broker.scheduler.SchedulerBroker.send(SchedulerBroker.java:189) at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129) at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96) at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:317) at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135) at org.apache.activemq.broker.util.LoggingBrokerPlugin.send(LoggingBrokerPlugin.java:287) at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135) at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:450) at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:680) 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(Unknown Source) Has anyone an idea what we are doing wrong, that a broker instance can get a client, that is not even connected to that broker directly, to a state in which it is not able to send messages anymore? -- View this message in context: http://activemq.2283324.n4.nabble.com/Excpetion-javax-jms-JMSException-Cannot-send-message-to-with-invalid-null-producer-state-tp4665891.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.