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.

Reply via email to