Hi everybody ! I am using Hello.java sample of qpid-client-0.30 to publish and consume messages from a RabbitMQ queue, but i get this error:
--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.-- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. javax.jms.JMSException: Error registering consumer: org.apache.qpid.AMQConnectionClosedException: Error: NOT_IMPLEMENTED - active=false [error code 540: not implemented] at org.apache.qpid.client.AMQSession.toJMSException(AMQSession.java:3719) at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2169) at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2121) at org.apache.qpid.client.AMQConnectionDelegate_8_0.executeRetrySupport(AMQConnectionDelegate_8_0.java:341) at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:652) at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:96) at org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:2119) at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:1067) at info.intix.rabbitmq.samples.Hello.runTest(Hello.java:53) at info.intix.rabbitmq.samples.Hello.main(Hello.java:28) Caused by: org.apache.qpid.AMQConnectionClosedException: Error: NOT_IMPLEMENTED - active=false [error code 540: not implemented] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.qpid.AMQException.cloneForCurrentThread(AMQException.java:126) at org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:693) at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:730) at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:724) at org.apache.qpid.client.AMQSession_0_8.sendConsume(AMQSession_0_8.java:539) at org.apache.qpid.client.AMQSession_0_8.sendConsume(AMQSession_0_8.java:71) at org.apache.qpid.client.AMQSession.consumeFromQueue(AMQSession.java:2716) at org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:3143) at org.apache.qpid.client.AMQSession.access$400(AMQSession.java:97) at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2146) ... 8 more Caused by: org.apache.qpid.AMQConnectionClosedException: Error: NOT_IMPLEMENTED - active=false [error code 540: not implemented] at org.apache.qpid.client.handler.ConnectionCloseMethodHandler.methodReceived(ConnectionCloseMethodHandler.java:92) at org.apache.qpid.client.handler.ClientMethodDispatcherImpl.dispatchConnectionClose(ClientMethodDispatcherImpl.java:197) at org.apache.qpid.framing.amqp_0_91.ConnectionCloseBodyImpl.execute(ConnectionCloseBodyImpl.java:127) at org.apache.qpid.client.state.AMQStateManager.methodReceived(AMQStateManager.java:116) at org.apache.qpid.client.protocol.AMQProtocolHandler.methodBodyReceived(AMQProtocolHandler.java:533) at org.apache.qpid.client.protocol.AMQProtocolSession.methodFrameReceived(AMQProtocolSession.java:467) at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:99) at org.apache.qpid.client.protocol.AMQProtocolHandler.received(AMQProtocolHandler.java:490) at org.apache.qpid.client.protocol.AMQProtocolHandler.received(AMQProtocolHandler.java:118) at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161) at java.lang.Thread.run(Thread.java:744) --.--.--.--.--.--.--.--.--.--.--.--.--.--.--.-- Seems there is an issue about this here: https://issues.apache.org/jira/browse/QPID-5906 My JNDI config is: connectionfactory.myRabbitMQConnectionFactory1 = amqp://admin:xxx@clientid /DES_DEV?brokerlist='tcp://10.105.135.53:5672' # queueName: des_queue1 destination.myJndiDestQueue1 = BURL:direct://amq.direct//?routingkey='des_rk_queue1' But if I add the next line in Hello.java (System.setProperty("IMMEDIATE_PREFETCH", "true")) I can publish and consume the message but with collateral effects: 1) In the RabbitMQ side will be created a TemporalQueue every time that i run Hello.java. 2) The message "read" in the original queue is not removed. My question is: Is there any workaround to create just a MessageConsumer without IMMEDIATE_PREFETCH=true ? If I can not create a MessageConsumer for RabbitMQ queue, I should try change RabbitMQ for other as Qpid :( Any idea will be welcome. Regards. -- wr