Must connect EJB3 MDB in server X to remote topic on server Y.
|
| First confirmed that server Y is up and topic deployed (via JMXConsole to Y).
|
| I added a Remote provider to deploy/jms-ds.xml on server X.
|
| <!-- Remote JMS provider -->
| <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
|
name="jboss.messaging:service=JMSProviderLoader,name=RemoteJMSProvider,server=remotehost">
| <attribute
name="ProviderName">RemoteJMSProvider</attribute>
| <attribute
name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
| <!-- The connection factory -->
| <attribute
name="FactoryRef">java:/XAConnectionFactory</attribute>
| <!-- The queue connection factory -->
| <attribute
name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
| <!-- The topic factory -->
| <attribute
name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
| <!-- Connect to JNDI on the host "the-remote-host-name" port
1099-->
| <attribute name="Properties">
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| java.naming.factory.url.pkgs=org.jnp.interfaces
| java.naming.provider.url=10.86.147.208:1099
| </attribute>
| </mbean>
|
| Annotations on the topic listener MDB as below (running on server X).
|
|
| @MessageDriven(activationConfig = {
| @ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Topic"),
| @ActivationConfigProperty(propertyName = "destination", propertyValue =
"topic/edgeGroupRequestTopic"),
| @ActivationConfigProperty(propertyName = "providerAdapterJNDI",
propertyValue="java:/RemoteJMSProvider"),
| @ActivationConfigProperty(propertyName = "maxSession", propertyValue =
"60"),
| // TBD: need ability to setup selector at installation/configuration time.
| @ActivationConfigProperty(propertyName = "messageSelector",
propertyValue = "EDU_ID IN ('ALL', 'EDU_0001')")})
|
| AS startup on server X gives the following error when MDB tries to connect to remote
topic (typical of a JNDI problem?).
|
|
| 2007-12-19 18:58:37,342 WARN [org.jboss.ejb3.mdb.MessagingContainer] Could not find
the topic destination-jndi-name=/topic/edgeGroupRequestTopic
| 2007-12-19 18:58:37,342 WARN [org.jboss.ejb3.mdb.MessagingContainer] destination not
found: topic/topic/edgeGroupRequestTopic reason: javax.naming.NameNotFoundException: topic
not bound
| 2007-12-19 18:58:37,342 WARN [org.jboss.ejb3.mdb.MessagingContainer] creating a new
temporary destination: topic/topic/edgeGroupRequestTopic
| 2007-12-19 18:58:37,358 WARN [org.jboss.system.ServiceController] Problem starting
service
jboss.j2ee:ear=mdpe-1.0-SNAPSHOT.ear,jar=eduRequestRouter-ejb-1.0-SNAPSHOT.jar,name=EDURequestRouterMDB,service=EJB3
| javax.management.InstanceNotFoundException: jboss.mq:service=DestinationManager is not
registered.
| at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:523)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:653)
| at
org.jboss.ejb3.JmxClientKernelAbstraction.invoke(JmxClientKernelAbstraction.java:44)
| at
org.jboss.ejb3.jms.DestinationManagerJMSDestinationFactory.createDestination(DestinationManagerJMSDestinationFactory.java:75)
| at
org.jboss.ejb3.mdb.MessagingContainer.createTemporaryDestination(MessagingContainer.java:557)
| at
org.jboss.ejb3.mdb.MessagingContainer.createDestination(MessagingContainer.java:496)
|
|
| What am I doing wrong?
|
|
| --------------------
|
| Further DEBUG turned up...llosk like the DefaultJMSProvider is being used tot he
remote lookup instead of RemoteJMSProvider?
|
|
|
| 2007-12-20 11:51:08,744 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] Initializing
| 2007-12-20 11:51:08,744 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] Looking up
provider adapter: java:/DefaultJMSProvider
| 2007-12-20 11:51:08,744 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] Provider
adapter: org.jboss.jms.jndi.JNDIProviderAdapter@1781288
| 2007-12-20 11:51:08,744 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] context:
javax.naming.InitialContext@e8a298
| 2007-12-20 11:51:08,744 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] Got destination
type Topic for EDURequestRouterMDB
| 2007-12-20 11:51:08,744 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] jndiSuffix:
topic/edgeGroupRequestTopic
| 2007-12-20 11:51:08,744 WARN [org.jboss.ejb3.mdb.MessagingContainer] Could not find
the topic destination-jndi-name=/topic/edgeGroupRequestTopic
| 2007-12-20 11:51:08,744 WARN [org.jboss.ejb3.mdb.MessagingContainer] destination not
found: topic/topic/edgeGroupRequestTopic reason: javax.naming.NameNotFoundException: topic
not bound
| 2007-12-20 11:51:08,744 WARN [org.jboss.ejb3.mdb.MessagingContainer] creating a new
temporary destination: topic/topic/edgeGroupRequestTopic
| 2007-12-20 11:51:08,759 DEBUG [org.jboss.ejb3.mdb.MdbDelegateWrapper] Starting failed
jboss.j2ee:ear=mdpe-1.0-SNAPSHOT.ear,jar=eduRequestRouter-ejb-1.0-SNAPSHOT.jar,name=EDURequestRouterMDB,service=EJB3
| javax.management.InstanceNotFoundException: jboss.mq:service=DestinationManager is not
registered.
| at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:523)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:653)
|
|
|
|
| [code]
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114736#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...