On 03/13/2010 06:18 PM, Joan Bellver Faus wrote:
Hi, I have a problem when trying to connect to a broker in order to
manage a session with the managament, well my code is as follows:


String connectionBroker =
"amqp://guest:guest@/test?brokerlist='tcp://localhost:5671?ssl='true',sasl_mechs='EXTERNAL''";

sess.addBroker(connectionBroker);


The error is this:

Exception in thread "Thread-3" org.apache.qpid.console.ConsoleException:
org.apache.qpid.transport.SessionException: ch=0 id=0
ExecutionException(errorCode=NOT_ALLOWED, commandId=10, classCode=7,
commandCode=1, fieldIndex=0, description=not-allowed: Exchange names
beginning with "amq." or "qpid." are reserved.
(exchange="qpid.management") (qpid/broker/SessionAdapter.cpp:89),
errorInfo={})
at org.apache.qpid.console.Broker.tryToConnect(Broker.java:421)
at org.apache.qpid.console.Broker.<init>(Broker.java:87)
at org.apache.qpid.console.Session.addBroker(Session.java:70)

I am using the trunk version for both the broker c++ as for the java
client.

thank you very much.

As a workaround you could perhaps turn off declaring of exchanges using the system property -Dqpid.declare_exchanges=false.

However I think this really requires a minor change along the lines of the patch attached. (Some refactoring may be appropriate here to avoid repeating the same check in two different places).
Index: java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
===================================================================
--- java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java	(revision 921956)
+++ java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java	(working copy)
@@ -72,7 +72,7 @@
                 (name,
                  destination.getExchangeClass().toString(),
                  null, null,
-                 name.startsWith("amq.") ? Option.PASSIVE : Option.NONE);
+                 (name.startsWith("amq.") || name.startsWith("qpid.")) ? Option.PASSIVE : Option.NONE);
         }
         else
         {       
Index: java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
===================================================================
--- java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java	(revision 921956)
+++ java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java	(working copy)
@@ -647,7 +647,7 @@
                 type,
                 alternateExchange,
                 args,
-                name.toString().startsWith("amq.") ? Option.PASSIVE
+                (name.toString().startsWith("amq.") || name.toString().startsWith("qpid.")) ? Option.PASSIVE
                         : Option.NONE);
         // We need to sync so that we get notify of an error.
         if (!nowait)

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to