[Messaging, JMS & JBossMQ] - HAJMS with durable topic subscribers; clientID already regis
by josey
I have two clustered JMS servers running JBoss [Zion] 4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000); the servers run linux (debian). JMS data is persisted to a postgres8.1 database; each server has the same configuration (same JMS destinations; same datasource for the JMS persistence manager, etc.) and the same ear files deployed.
I have a Topic with one non-durable subscriber (no client id required) and two durable topic subscribers as MDBs (durable subscribers have client ids 'myClientId' and 'anotherClientId'). I deploy the same ear file to each of the two nodes. The node that is not the master node outputs log entries (pasted below) for 'JMS provider failure'; each of the two messages indicate that the client id is already connected to the server. Now this makes sense because the master node has the same two MDBs deployed. I have read in another forum post that the JMS spec mentions that if another connection with the same clientID is already running the JMS provider should detect the duplicate ID and throw an InvalidClientIDException (I did not see this in the spec when I searched on "InvalidClientIDException" but it seems reasonable).
As you can see the log entries are only WARN level entries but they continue to be logged. I have seen a forum post that says to use the "ClientMonitorInterceptor" in jbossmq-service.xml but I am not confident that this is a good solution. Has anyone else who has run into this problem found a good solution? The posts that I have seen do not provide a solution. Perhaps it is nothing of high concern.
Thanks for any help.
| 10:55:54,538 INFO [EJB3 MDB Create Recovery Thread][MDB] Trying to reconnect to JMS provider
| 10:55:54,538 INFO [EJB3 MDB Create Recovery Thread][MDB] Reconnected to JMS provider
| 10:55:54,579 INFO [EJB3 MDB Create Recovery Thread][MDB] Reconnected to JMS provider
| 10:55:54,579 WARN [EJB3 MDB Create Recovery Thread][MDB] JMS provider failure detected:
| javax.jms.InvalidClientIDException: This client id 'myClientId' is already registered!
| at org.jboss.mq.sm.AbstractStateManager.addLoggedOnClientId(AbstractStateManager.java:196)
| at org.jboss.mq.server.JMSDestinationManager.checkID(JMSDestinationManager.java:384)
| at org.jboss.mq.server.JMSServerInterceptorSupport.checkID(JMSServerInterceptorSupport.java:138)
| at org.jboss.mq.server.TracingInterceptor.checkID(TracingInterceptor.java:226)
| at org.jboss.mq.server.JMSServerInvoker.checkID(JMSServerInvoker.java:139)
| at org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:120)
| at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:396)
| at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:392)
| at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
| at java.lang.Thread.run(Thread.java:595)
| 10:55:54,579 INFO [EJB3 MDB Create Recovery Thread][MDB] Trying to reconnect to JMS provider
| 10:56:04,577 WARN [EJB3 MDB Create Recovery Thread][MDB] JMS provider failure detected:
| javax.jms.JMSSecurityException: The login id has an assigned client id 'anotherClientId', that is already connected to the server!
| at org.jboss.mq.sm.AbstractStateManager.checkUser(AbstractStateManager.java:180)
| at org.jboss.mq.server.JMSDestinationManager.checkUser(JMSDestinationManager.java:627)
| at org.jboss.mq.server.JMSServerInterceptorSupport.checkUser(JMSServerInterceptorSupport.java:288)
| at org.jboss.mq.server.TracingInterceptor.checkUser(TracingInterceptor.java:704)
| at org.jboss.mq.server.JMSServerInvoker.checkUser(JMSServerInvoker.java:289)
| at org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:204)
| at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:396)
| at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:392)
| at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
| at java.lang.Thread.run(Thread.java:595)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3968472#3968472
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3968472
19 years, 7 months
[Installation, Configuration & Deployment] - Re: Deployment order - dependencies
by asack
"georgesberscheid" wrote :
| How do I force the Deployment service to deploy a EJB JAR file before a resource adapter RAR file?
|
| I have a EAR file that contains a .jar file with EJB3s and a @Service MBean. The EAR file also contains a RAR file with a resource adapter that looks up that service MBean when it starts. Therefore the .jar file needs to be deployed before the .rar file which is not possible using the standard DeploymentSorter.
| So I set up jboss-service.xml to use the PrefixDeploymentSorter instead and renamed my RAR file 9_MyResourceAdapter.rar.
|
| However, the RAR file is still deployed before the JAR file. Could it be because the JAR file also contains the message endpoint for the incoming resource adapter?
|
There is some JMX type annotation that can provide dependencies but in general intra deployment dependencies is undefined in the spec.
Moreover, the JBoss deployer I believe does thing by suffix alphabetical order (though I would have to recheck myself).
You can extend the Deployment comparator to some some custom deployments as well as turning on prefix order, i.e. name your files 1-firstdeployfile, 2-secondeployfile, etc.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3968461#3968461
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3968461
19 years, 7 months