Cloning to Bugzilla just to see it during verification: The jms-bridge can be used to bridge a hornetq server to another and should work by specifying to use the org.hornetq.module to load the JMS implementation classes. However, this fails because this module does not have access to the JBoss remote-naming module that is required to connect to remote JBoss JNDI server.
Jeff Mesnil <jmesnil> made a comment on jira AS7-6549 PR merged in master branch
Changing status to ON_QA since jira was resolved.
Created attachment 717659 [details] logs and configuration of servers JMS bridge still could not be started. See configuration and log of both source and target servers in attachment.
Hi Jeff, fix for this issue did not get into EAP 6.1.0.ER3. Could you check with productization guys to where the fix should be committed? Thanks, Mirek
Pull request for EAP 6.1.x sent: https://github.com/jbossas/jboss-eap/pull/82
Created attachment 736280 [details] logs and configuration of servers after fix It seems that JMS bridge can be now started: 12:38:05,216 INFO [org.jboss.messaging] (ServerService Thread Pool -- 67) JBAS011610: Started JMS Bridge myBridge However when trying to send messages to source queue producer gets exception: 12:38:30,956 ERROR [org.jboss.qa.hornetq.apps.clients.ProducerClientAck:114] Producer got exception and ended: org.jboss.naming.remote.protocol.NamingIOException: Failed to lookup [Root exception is java.io.NotSerializableException: org.hornetq.core.client.impl.ClientSessionFactoryImpl] at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:49) at org.jboss.naming.remote.protocol.v1.Protocol$1.execute(Protocol.java:104) at org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1.lookup(RemoteNamingStoreV1.java:79) at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:79) at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:83) at javax.naming.InitialContext.lookup(InitialContext.java:392) at org.jboss.qa.hornetq.apps.clients.ProducerClientAck.run(ProducerClientAck.java:79) Caused by: java.io.NotSerializableException: org.hornetq.core.client.impl.ClientSessionFactoryImpl at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:891) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:585) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:998) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885) at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62) at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119) at org.jboss.naming.remote.protocol.v1.Protocol$1$2.write(Protocol.java:138) at org.jboss.naming.remote.protocol.v1.WriteUtil.write(WriteUtil.java:61) at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:128) at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: an exception which occurred: in field factories in field serverLocator in object org.hornetq.jms.client.HornetQXAConnectionFactory@7920f96a It is possible to send messages to the same queue while JMS Bridge is not connected. The exception occurs only when JMS Bridge is started. See configurations and logs in attachment.
Issue in the previous comment seems to be related to the way how connection factory is deployed and looked up from JNDI. Client and JMS bridge are using the same connection factory. When JMS bridge uses this connection factory first then JMS client gets this NotSerializableException.
There are some non-serializable fields that caused the problem. When a JMS bridge is deployed and started and if it uses a local Connection Factory to create connections, the Connection Factory will have such fields stored. When a remote client looks up the same connection factory via JNDI, the factory won't get serialized because of those fields. To workaround the client can use a different Connection Factory. I'll submit the fix soon. Howard
It seems that bz was lost from focus. Setting jboss-eap-6.2 flag to ?. @Howard Can you send an update, please? Thanks, Mirek
No NotSerializableExceptions anymore. Good job.
'Docs text' field NACK'd as it is too late to include this ticket in release notes without at least draft content.