Search code examples
activemq-classic

Why does a client throw java.io.IOException: Transport scheme NOT recognized: [failovertcp] error while connecting to ActiveMQ?


From our application we are trying to connect to ActiveMQ service hosted on a different server. We were able to connect to it earlier, but we started facing the following error recently ? What are possible reasons for this error & how to resolve it ?

ERROR 2015-06-08 05:00:27.986    0x0  ' message=Could not create Transport. Reason: java.io.IOException: Transport scheme NOT recognized: [failovertcp],  class.method=MessageService.connect '  MSSL_Integration_Producer_Thread
javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Transport scheme NOT recognized: [failovertcp]
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
        at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:245)
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:258)
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
        at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:178)
        at org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:125)
        at org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:110)
        at org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:81)
        at com.test.common.messagequeue.impl.JMSConnectionFactory.createConnection(JMSConnectionFactory.java:153)
        at com.test.common.messagequeue.impl.MessageService.connect(MessageService.java:55)
        at com.test.common.queue.MessageQueuer.connecMessageService(MessageQueuer.java:191)
        at com.test.common.queue.MessageQueuer.connecMessageService(MessageQueuer.java:183)
        at com.test.common.queue.MessageQueuer.queueMessage(MessageQueuer.java:173)
        at com.test.common.queue.MessageQueuer.queueMessage(MessageQueuer.java:166)
        at com.test.TestIntegration.queueTickets(TestIntegration.java:370)
        at com.test.testIntegration.TestIntegration.performJob(TestIntegrationJob.java:54)
        at com.test.common.scheduler.AbstractJob.execute(AbstractJob.java:188)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.io.IOException: Transport scheme NOT recognized: [failovertcp]
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
        at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:204)
        at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:79)
        at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:243)
        ... 17 more
Caused by: java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/transport/failovertcp
        at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.loadProperties(FactoryFinder.java:96)
        at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.create(FactoryFinder.java:58)
        at org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:146)
        at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:201)
        ... 19 more

Solution

  • Because 'failovertcp' is not a valid Transport type. You should refer to the Failover Transport page at ActiveMQ for some education.

    The Failover URI takes the following form:

    failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false