[ https://issues.apache.org/jira/browse/UIMA-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jörn Kottmann closed UIMA-1657. ------------------------------- Resolution: Fixed Thanks :-) It works in our setup as expected. > UIMA AS client fails if a failover broker uri with multiple endpoints is used > ----------------------------------------------------------------------------- > > Key: UIMA-1657 > URL: https://issues.apache.org/jira/browse/UIMA-1657 > Project: UIMA > Issue Type: Bug > Components: Async Scaleout > Affects Versions: 2.3AS > Reporter: Jörn Kottmann > Fix For: 2.3AS > > > The initialize time out if a failover broker uri with multiple endpoints is > used e.g.: > failover:(tcp://XXX1:61616,tcp://XXX2:61616)?randomize=false > On the client side it results in a time out exception: > Caused by: org.apache.uima.resource.ResourceInitializationException > at > org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngine_impl.initialize(BaseUIMAAsynchronousEngine_impl.java:637) > at org.apache.uima.camel.UimaAsProducer.<init>(UimaAsProducer.java:142) > at > org.apache.uima.camel.UimaAsEndpoint.createProducer(UimaAsEndpoint.java:89) > at org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:93) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42) > at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53) > at > org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42) > at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53) > at > org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42) > at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53) > at > org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42) > at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53) > at > org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:54) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42) > at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53) > at org.apache.camel.impl.DefaultConsumer.doStart(DefaultConsumer.java:85) > at org.apache.camel.component.jms.JmsConsumer.doStart(JmsConsumer.java:58) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at > org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:422) > at > org.apache.camel.impl.DefaultCamelContext.startRoutes(DefaultCamelContext.java:664) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:635) > at > org.apache.camel.spring.SpringCamelContext.maybeDoStart(SpringCamelContext.java:166) > at > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:161) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:96) > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:115) > ... 12 more > Caused by: org.apache.uima.aae.error.UimaASMetaRequestTimeout > ... 46 more > And on the worker node it results in this exception: > rg.apache.uima.aae.error.AsynchAEException: javax.jms.JMSException: Could not > create Transport. Reason: java.lang.IllegalArgumentException: Invalid connect > parameters: {randomize=false} > at > org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.openChannel(JmsEndpointConnection_impl.java:284) > at > org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.openChannel(JmsEndpointConnection_impl.java:147) > at > org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.open(JmsEndpointConnection_impl.java:301) > at > org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.open(JmsEndpointConnection_impl.java:290) > at > org.apache.uima.adapter.jms.activemq.JmsOutputChannel.getEndpointConnection(JmsOutputChannel.java:493) > at > org.apache.uima.adapter.jms.activemq.JmsOutputChannel.sendReply(JmsOutputChannel.java:1153) > at > org.apache.uima.aae.controller.BaseAnalysisEngineController.sendMetadata(BaseAnalysisEngineController.java:2627) > at > org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.sendMetadata(AggregateAnalysisEngineController_impl.java:2585) > at > org.apache.uima.aae.handler.input.MetadataRequestHandler_impl.handle(MetadataRequestHandler_impl.java:69) > at > org.apache.uima.adapter.jms.activemq.JmsInputChannel.onMessage(JmsInputChannel.java:643) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:518) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:479) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) > at java.lang.Thread.run(Thread.java:619) > Caused by: javax.jms.JMSException: Could not create Transport. Reason: > java.lang.IllegalArgumentException: Invalid connect parameters: > {randomize=false} > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35) > at > org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:242) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:255) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:227) > at > org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:175) > at > org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.openChannel(JmsEndpointConnection_impl.java:195) > ... 18 more > Caused by: java.lang.IllegalArgumentException: Invalid connect parameters: > {randomize=false} > at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:144) > at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:51) > at > org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:80) > at > org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:240) > ... 22 more > It looks like that JmsMessageContext.chooseServerUri transform it > from > failover:(tcp://XXX1:61616,tcp://XXX2:61616)?randomize=false > into > tcp://XXX2:61616)?randomize=false > which is then later rejected. > The removal of the call to chooseServerUir fixed the problem in my particular > case, but might fail > if http is used. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.