I have an application run on geronimo(websphere community edition) with ActiveMQ 4.1.2 # org.apache.activemq/activemq-core/4.1.2/jar # org.apache.geronimo.configs/activemq-broker/2.1.4/car # org.apache.geronimo.configs/activemq-ra/2.1.4/car
Messages are exchanged between MDB with following code connection = factory.createQueueConnection(); connection.start(); session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); sender = session.createSender(requestQueue); replyQueue = session.createTemporaryQueue(); jmsRequestMessage = session.createTextMessage(); jmsRequestMessage.setJMSReplyTo(replyQueue); jmsRequestMessage.setText(payloadMessage); sender.send(jmsRequestMessage, DeliveryMode.NON_PERSISTENT, Message.DEFAULT_PRIORITY, timeToLive); receiver = session.createReceiver(replyQueue); jmsReplyMessage = receiver.receive(); When running the application, I got many warning message undeterministically. 2009-11-17 11:05:29,468 WARN [TransportConnection] Failed to remove producer: I D:......:1. Reason: java.lang.NullPointerExcept ion java.lang.NullPointerException at org.apache.activemq.broker.region.policy.FixedCountSubscriptionRecove ryPolicy.add(FixedCountSubscriptionRecoveryPolicy.java:50) at org.apache.activemq.broker.region.Topic.dispatch(Topic.java:404) at org.apache.activemq.broker.region.Topic.send(Topic.java:264) at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion. java:292) at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java :385) at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j ava:193) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBrok er.java:278) at org.apache.activemq.advisory.AdvisoryBroker.fireProducerAdvisory(Advi soryBroker.java:261) at org.apache.activemq.advisory.AdvisoryBroker.fireProducerAdvisory(Advi soryBroker.java:256) at org.apache.activemq.advisory.AdvisoryBroker.removeProducer(AdvisoryBr oker.java:233) at org.apache.activemq.broker.CompositeDestinationBroker.removeProducer( CompositeDestinationBroker.java:77) at org.apache.activemq.broker.MutableBrokerFilter.removeProducer(Mutable BrokerFilter.java:128) at org.apache.activemq.broker.TransportConnection.processRemoveProducer( TransportConnection.java:571) at org.apache.activemq.broker.TransportConnection.processRemoveSession(T ransportConnection.java:656) at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:62) at org.apache.activemq.broker.TransportConnection.service(TransportConne ction.java:294) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC onnection.java:185) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt er.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireForm atNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityM onitor.java:124) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSup port.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java: 137) at java.lang.Thread.run(Thread.java:619) It seems that the producer to remove is already removed before, or some other reasons? That problem happened when I explicitly use thread to simutaneously trigger message exchanges. Is that possiblly a thread-safe issue? How should I write my code (in EJB) to do message exchange with thread-safe? -- View this message in context: http://old.nabble.com/-WARN--TransportConnection-Failed-to-remove-producer-tp26387569p26387569.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.