Hi all ,
So we have a non-HA JNDI cluster along with a HornetQ setup that we want to
migrate to HA-JNDI. I have followed the documented steps in my test
environment - started a two node JBoss cluster that runs the HA-JNDI
service. My understanding is that the JBoss server exposes two ports - one
for a local JNDI (1099, 1199) and one for the HA-JNDI (1100, 1200). If
that's not right can someone please correct me.
Now to setup the HornetQ server, I makes the changes in the run.sh of the
HornetQ distribution to point it to the new remote JNDI (the one of 1099
port), and allow my HornetQ clients (my application) to point to the
HA-JNDI cluster (the ones running on 1100, 1200). However, my HornetQ
server fails to attach its objects to the remote JNDI (1098, 1099) with the
following exception:
07:06:10,946 ERROR [org.hornetq.core.server] HQ224005: Unable to deply node
[queue: null]: java.lang.RuntimeException:
javax.naming.CommunicationException [Root exception is
java.rmi.ServerException: RemoteException occurred in server thread; nested
exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested
exception is:
java.lang.ClassNotFoundException:
org.hornetq.jms.referenceable.SerializableObjectRefAddr]
at
org.hornetq.core.registry.JndiBindingRegistry.bind(JndiBindingRegistry.java:70)
[hornetq-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerManagerImpl.bindToJndi(JMSServerManagerImpl.java:1655)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerManagerImpl.access$400(JMSServerManagerImpl.java:105)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerManagerImpl$1.runException(JMSServerManagerImpl.java:606)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerManagerImpl.runAfterActive(JMSServerManagerImpl.java:1832)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerManagerImpl.createQueue(JMSServerManagerImpl.java:579)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerDeployer.deployQueue(JMSServerDeployer.java:171)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerDeployer.createAndBindObject(JMSServerDeployer.java:112)
[hornetq-jms-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerDeployer.deploy(JMSServerDeployer.java:95)
[hornetq-jms-server.jar:]
at
org.hornetq.core.deployers.impl.XmlDeployer.deploy(XmlDeployer.java:182)
[hornetq-server.jar:]
at
org.hornetq.core.deployers.impl.FileDeploymentManager.registerDeployer(FileDeploymentManager.java:130)
[hornetq-server.jar:]
at
org.hornetq.core.deployers.impl.XmlDeployer.start(XmlDeployer.java:212)
[hornetq-server.jar:]
at
org.hornetq.jms.server.impl.JMSServerManagerImpl.activated(JMSServerManagerImpl.java:244)
[hornetq-jms-server.jar:]
at
org.hornetq.core.server.impl.HornetQServerImpl.callActivateCallbacks(HornetQServerImpl.java:1368)
[hornetq-server.jar:]
at
org.hornetq.core.server.impl.HornetQServerImpl.initialisePart2(HornetQServerImpl.java:1591)
[hornetq-server.jar:]
at
org.hornetq.core.server.impl.HornetQServerImpl.access$1400(HornetQServerImpl.java:169)
[hornetq-server.jar:]
Can't seem to really get around this. Seems like I need to configure some
serialization between the client and the remote server?