[ 
https://issues.apache.org/jira/browse/ARTEMIS-1431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeff Mesnil updated ARTEMIS-1431:
---------------------------------
    Summary: AMQ154003: Unable to reconnect 
org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec  (was: AMQ154003: 
AMQ154003: Unable to reconnect 
org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec)

> AMQ154003: Unable to reconnect 
> org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec
> -------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1431
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1431
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 1.5.5
>            Reporter: Jeff Mesnil
>
> Use case:
> Artemis 1.5.x Resource adapter that connects to a remote HornetQ broker.
> The RA is configured to use the protocol-manager-factory for HornetQ 
> (protocol-manager-factory="org.apache.activemq.artemis.core.protocol.hornetq.client.HornetQClientProtocolManagerFactory")
>  and use Artemis remote connector to connect to HornetQ.
> When the RA is activated and its JMS resources are setup, it creates 15 
> ClientSessions.
> The first one is created without any issue and manage to connect to HornetQ 
> broker.
> However in 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl#getConnection,
>  it will subscribes to cluster topology from the remote HornetQ broker.
> The HornetQ boker will send back its topology with the remote connector 
> information (that uses the 
> org.hornetq.core.remoting.impl.netty.NettyConnectorFactory).
> The ServerLocator will be updated to use this topology info instead of the 
> initialConnectors and 
> subsequent creations of Connection will fail because of the 
> ClassCastException at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl#instantiateConnectorFactory:
> {code}
> 2017-09-18 09:05:14,006 ERROR [org.apache.activemq.artemis.ra] 
> (default-threads - 1) AMQ154003: Unable to reconnect 
> org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec(ra=org.apache.activemq.artemis.ra.ActiveMQResourceAdapter@3ca2957
>  destination=inQueue destinationType=javax.jms.Queue ack=Auto-acknowledge 
> durable=false clientID=null user=null maxSession=15): 
> java.lang.ClassCastException: 
> org.hornetq.core.remoting.impl.netty.NettyConnectorFactory cannot be cast to 
> org.apache.activemq.artemis.spi.core.remoting.ConnectorFactory
>       at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$2.run(ClientSessionFactoryImpl.java:952)
>       at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$2.run(ClientSessionFactoryImpl.java:950)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.instantiateConnectorFactory(ClientSessionFactoryImpl.java:950)
>       at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.<init>(ClientSessionFactoryImpl.java:179)
>       at 
> org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:757)
>       at 
> org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setup(ActiveMQActivation.java:316)
>       at 
> org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.reconnect(ActiveMQActivation.java:681)
>       at 
> org.apache.activemq.artemis.ra.inflow.ActiveMQActivation$SetupActivation.run(ActiveMQActivation.java:725)
>       at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223)
>       at 
> org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
>       at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)
>       at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
>       at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)
>       at java.lang.Thread.run(Thread.java:748)
>       at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> {code}
> I propose that we enhance the ClientProtocolManagerFactory to handle this 
> case. When it receives topology (and TransportConfiguration), it should be 
> possible to "adapt" the transport configuration.
> This would be a no-op for Artemis ClientProtocolManagerFactory but it would 
> allow the HornetQClientProtocolManagerFactory to adapt its transport 
> configuration to replace the use of the HornetQ NettyConnectorFactory by the 
> use of the Netty one.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to