Hi,
I have ActiveMQ 5.0 running embedded in JBoss 4.2.2 using the rar
adapter.
I see the following stack trace every time a message is written to a
queue from within a EJB.
09:11:44,225 WARN [Service] Failed to remove connection
ConnectionInfo {commandId = 1, responseRequired = true, connectionId
= ID:cebra.local-50034-1209560921622-2:2, clientId = null, userName =
admin, password = ***, brokerPath = null, brokerMasterConnector =
false, manageable = true, clientMaster = true}
javax.jms.InvalidClientIDException: No clientID specified for
connection disconnect request
at org.apache.activemq.broker.region.RegionBroker.removeConnection
(RegionBroker.java:218)
at org.apache.activemq.broker.TransactionBroker.removeConnection
(TransactionBroker.java:248)
at org.apache.activemq.advisory.AdvisoryBroker.removeConnection
(AdvisoryBroker.java:208)
at org.apache.activemq.broker.BrokerFilter.removeConnection
(BrokerFilter.java:109)
at org.apache.activemq.broker.MutableBrokerFilter.removeConnection
(MutableBrokerFilter.java:119)
at
org.apache.activemq.broker.TransportConnection.processRemoveConnection
(TransportConnection.java:697)
at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:60)
at org.apache.activemq.broker.TransportConnection.service
(TransportConnection.java:281)
at org.apache.activemq.broker.TransportConnection$1.onCommand
(TransportConnection.java:178)
at org.apache.activemq.transport.ResponseCorrelator.onCommand
(ResponseCorrelator.java:100)
at org.apache.activemq.transport.TransportFilter.onCommand
(TransportFilter.java:67)
at org.apache.activemq.transport.vm.VMTransport.iterate
(VMTransport.java:202)
at org.apache.activemq.thread.PooledTaskRunner.runTask
(PooledTaskRunner.java:118)
at org.apache.activemq.thread.PooledTaskRunner$1.run
(PooledTaskRunner.java:42)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:613)
In my ra.xml I'm not setting the client ID.
<config-property>
<description>The client id that will be set on the
connection that is established to the ActiveMQ server.</description>
<config-property-name>Clientid</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
<!--
<config-property-value></config-property-value>
-->
</config-property>
If I do, then I get other errors indicating duplicate client IDs.
My connection factory is defined in the file "activemq-ds.xml" as:
<tx-connection-factory>
<jndi-name>ConnectionFactory</jndi-name>
<xa-transaction/>
<track-connection-by-tx/>
<rar-name>activemq-ra.rar</rar-name>
<connection-definition>javax.jms.ConnectionFactory</connection-
definition>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>3</idle-timeout-minutes>
<ServerUrl>vm://localhost</ServerUrl>
<use-java-context>false</use-java-context>
</tx-connection-factory>
The EJB gets the connection factory injected:
@Resource(mappedName="ConnectionFactory")
private ConnectionFactory fact;
The EJB itself does not fail, i.e. it does not get the exception.
It's just in the log file that I see the stack trace.
Does anybody know why is this, and how to solve it?
Any help will be appreciated.
Thanks,
Alex Soto