You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by titou10 <ti...@gmail.com> on 2017/03/31 10:53:28 UTC

Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

With Artemis 2.0, with this JMS code...

          Queue jmsQ = sessionJMS.createQueue("nonExistingQueue");
          TextMessage m = sessionJMS.createTextMessage();
          m.setText("whatever");
          try (MessageProducer p = sessionJMS.createProducer(jmsQ);) {
             p.send(m);
          }

...an address/queue (with routingType= ANYCAST) is created on the server but AFAIK, based on the JMS specs, none of the methods 
called (createQueue(), createProducer(),send()) should do this !

The address/queue is "visible" when calling getAddress() on ResourceName.BROKER via the management API, even after the server is restart

Not sure what method exactly creates the address/queue but from the JMS specs, for the Session:createQueue() method it is said:

    "...Note that this method simply creates an object that encapsulates the name of a queue. It does not create the physical queue 
in the JMS provider"

In fact, it seems that this the createProducer() method that creates the address/queue...

Also with this definition in broker.xml (From the documentation, chapter "Address  Model"):
    <address name="address.foo">
       <anycast>
         <queue name="q1"/>
       </anycast>
    </address>

The following code

          Queue jmsQ = sessionJMS.createQueue("q1");
          TextMessage m = sessionJMS.createTextMessage();
          m.setText("whatever");
          try (MessageProducer p = sessionJMS.createProducer(jmsQ);) {
             p.send(m);
          }

fails on the createProducer() method with this exception:

ActiveMQQueueExistsException[errorType=QUEUE_EXISTS message=AMQ119019: Queue already exists q1]
     at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:412)
     at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:322)
     at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.createQueue(ActiveMQSessionContext.java:635)
     at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.internalCreateQueue(ClientSessionImpl.java:1836)
     at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.createQueue(ClientSessionImpl.java:389)
     at org.apache.activemq.artemis.jms.client.ActiveMQSession.createBrowser(ActiveMQSession.java:820)
     at org.apache.activemq.artemis.jms.client.ActiveMQSession.createBrowser(ActiveMQSession.java:782)

This may be related to the "auto-create-jms-queues" and "auto-create-jms-topics" settings, mut IMHO this seems to break JMS specs 
and in the second case it should not try to create tyhe address/queue it it already exists..



Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by andytaylor <an...@gmail.com>.
nothing directly maps to JMS objects at the broker side, the addressing
schema is generic to be multi protocol, all of the JMS bits are just a
facade at the client. But in essence a message is sent to an address, if
its anycast it will pick 1 queue and if it is multicast it sends to all the
queues. In short a jms queue is:

<address name="myQueue">
            <anycast>
               <queue name="myQueue"/>
            </anycast>
         </address>

and a JMS topic is:

<address name="myTopic">
            <multicast/>
         </address>

From a consumer pov the protol decides how how it will consume, for JMS
Durable Subscriptions for example it will create a queue using its client
id as the queue name, for AMQP its similar.



On 1 April 2017 at 14:14, titou10 [via ActiveMQ] <
ml-node+s2283324n4724471h81@n4.nabble.com> wrote:

> andytaylor wrote
> Im not sure I mentioned a topic, however for clarification jms queue =
> anycast and jms topic = multicast in general
>
> OK. q1 = "anycast" in this case, so it should be a JMS queue, right? The
> doc with this example says it is a queue, not a topic nor an alias...
>
> andytaylor wrote
> > > For the second exception, this is because you send to an address not a
> queue, so it tries to create a new queue under the address q1 which fails
> because it already exists under address address.foo
>
> With this in broker.xml:   <address name="orders">
>       <anycast>
>         <queue name="orders"/>
>       </anycast>
>    <address name="pubsub.foo">
>       <multicast/>
>    </address>
>    <address name="address.foo">
>       <anycast>
>         <queue name="q1"/>
>       </anycast>
>    </address>
>
> From a client, using the "activemq.management" queue,
> Calling ResourceNames.BROKER::queueNames returns this list of queues:-
> orders
>   -> JMS createQueue + createProducer + createBrowser = OK
> - q1
>   -> JMS createProducer fails with "ActiveMQQueueExistsException:
> AMQ119019: Queue already exists q1"
> - 1358977c-57dd-4e29-9a3d-65200f437c44
>   -> Temporary queue
>   -> JMS createQueue + createProducer + createBrowser = seems OK
>   -> Sometime calling ResourceNames.QUEUE::messageCount fails with the
> following exception (Another problem I guess):
>   java.lang.IndexOutOfBoundsException: readerIndex(19) + length(1)
> exceeds writerIndex(19): UnpooledDuplicatedByteBuf(ridx: 19, widx: 19,
> cap: 260, unwrapped: UnpooledUnsafeHeapByteBuf(ridx: 0, widx: 260, cap:
> 260))
>
> Q: how do I distinguish here between
> - queues that directly map to "JMS queues" like "orders"
> - queues which are "adresses but not queues" (quoting you) like "q1"
> - others queues like "1358..." that seems to act like a regular "JMS
> queues" but do not respond well to some admin commands
>
> Calling ResourceNames.BROKER::addressNames returns this list of addresses:-
> pubsub.foo deliveryMode ["MULTICAST"] queues:[]
>   -> JMS createTopic + createProducer + MessageConsumer.setMessageListener
> = OK
> - orders deliveryMode ["ANYCAST"] queues:[orders]
>   -> JMS createQueue + createProducer + createBrowser = OK
> - address.foo deliveryMode: ["ANYCAST"] queues: [q1]
>   -> JMS createQueue + createProducer = OK
>   -> JMS createBrowser fails with "ActiveMQNonExistentQueueException:
> AMQ119017: Queue address.foo does not exist"
>   -> JMS createTopic + createProducer + MessageConsumer.setMessageListener
> = OK
>   -> so it acts like a Topic even if deliveryMode=ANYCAST!
> - 1358977c-57dd-4e29-9a3d-65200f437c44 deliveryMode: ["ANYCAST"] queues:
> [1358977c-57dd-4e29-9a3d-65200f437c44] temporary
>   -> see above
>
> To summarize.- what Artemis "objects" map to JMS queues?
>   -> the "queues" returned by ResourceNames.BROKER::queueNames
>   -> ...except the ones like "q1". how to distinguish those ones ??
> - what Artemis "objects" map to JMS topics?
>   -> the "addresses" returned by ResourceNames.BROKER::addressNames with
> deliveryMode=MULTICAST
>   -> some "addresses" returned by ResourceNames.BROKER::addressNames with
> deliveryMode=ANYCAST like "address.foo" above.
>      -> how to distinguish the one in that category ??
>
> Is that correct?
>
> Thanks
>
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> tp4724415p4724471.html
> To start a new topic under ActiveMQ - User, email
> ml-node+s2283324n2341805h35@n4.nabble.com
> To unsubscribe from ActiveMQ - User, click here
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2341805&code=YW5keS50YXlsczY3QGdtYWlsLmNvbXwyMzQxODA1fC05MDE1NDk1MzM=>
> .
> NAML
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724487.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by titou10 <ti...@gmail.com>.
andytaylor wrote
> Im not sure I mentioned a topic, however for clarification jms queue =
> anycast and jms topic = multicast in general

OK. q1 = "anycast" in this case, so it should be a JMS queue, right? The doc
with this example says it is a queue, not a topic nor an alias...

andytaylor wrote
>> > For the second exception, this is because you send to an address not a
>> queue, so it tries to create a new queue under the address q1 which fails
>> because it already exists under address address.foo

With this in broker.xml:

   <address name="orders">
      <anycast>
        <queue name="orders"/>
      </anycast>
   <address name="pubsub.foo">
      <multicast/>
   </address>
   <address name="address.foo">
      <anycast>
        <queue name="q1"/>
      </anycast>
   </address>

From a client, using the "activemq.management" queue, 
Calling ResourceNames.BROKER::queueNames returns this list of queues:

- orders 
  -> JMS createQueue + createProducer + createBrowser = OK
- q1 
  -> JMS createProducer fails with "ActiveMQQueueExistsException: AMQ119019:
Queue already exists q1"
- 1358977c-57dd-4e29-9a3d-65200f437c44 
  -> Temporary queue
  -> JMS createQueue + createProducer + createBrowser = seems OK
  -> Sometime calling ResourceNames.QUEUE::messageCount fails with the
following exception (Another problem I guess): 
  java.lang.IndexOutOfBoundsException: readerIndex(19) + length(1) exceeds
writerIndex(19): UnpooledDuplicatedByteBuf(ridx: 19, widx: 19, cap: 260,
unwrapped: UnpooledUnsafeHeapByteBuf(ridx: 0, widx: 260, cap: 260))

Q: how do I distinguish here between 
- queues that directly map to "JMS queues" like "orders"
- queues which are "adresses but not queues" (quoting you) like "q1"
- others queues like "1358..." that seems to act like a regular "JMS queues"
but do not respond well to some admin commands
  
Calling ResourceNames.BROKER::addressNames returns this list of addresses:

- pubsub.foo deliveryMode ["MULTICAST"] queues:[]
  -> JMS createTopic + createProducer + MessageConsumer.setMessageListener =
OK
- orders deliveryMode ["ANYCAST"] queues:[orders] 
  -> JMS createQueue + createProducer + createBrowser = OK
- address.foo deliveryMode: ["ANYCAST"] queues: [q1] 
  -> JMS createQueue + createProducer = OK
  -> JMS createBrowser fails with "ActiveMQNonExistentQueueException:
AMQ119017: Queue address.foo does not exist"
  -> JMS createTopic + createProducer + MessageConsumer.setMessageListener =
OK
  -> so it acts like a Topic even if deliveryMode=ANYCAST!
- 1358977c-57dd-4e29-9a3d-65200f437c44 deliveryMode: ["ANYCAST"] queues:
[1358977c-57dd-4e29-9a3d-65200f437c44] temporary
  -> see above

To summarize.

- what Artemis "objects" map to JMS queues?
  -> the "queues" returned by ResourceNames.BROKER::queueNames 
  -> ...except the ones like "q1". how to distinguish those ones ??
- what Artemis "objects" map to JMS topics?
  -> the "addresses" returned by ResourceNames.BROKER::addressNames with
deliveryMode=MULTICAST
  -> some "addresses" returned by ResourceNames.BROKER::addressNames with
deliveryMode=ANYCAST like "address.foo" above.
     -> how to distinguish the one in that category ??

Is that correct?  

Thanks
  




--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724471.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by andytaylor <an...@gmail.com>.
Im not sure I mentioned a topic, however for clarification jms queue =
anycast and jms topic = multicast in general

On 31 March 2017 at 13:30, titou10 [via ActiveMQ] <
ml-node+s2283324n4724423h93@n4.nabble.com> wrote:

> I must admit I'm lost here..
>
> The example is from https://activemq.apache.org/
> artemis/docs/2.0.0/address-model.html, section "Point-to-Point Address
> multiple
> Queues" and there is no question about Topics here
>
> Do you say that q1 is a Topic from a JMS perspective, even if it is
> attached to an "ANYCAST" Address?
>
> Quoting the section "Mapping JMS Concepts to the Core API"
>
> "A JMS topic is implemented in core as an address with name=(the topic
> name) and with a MULTICAST routing type with zero or more
> queues bound to it. Each queue bound to that address represents a topic
> subscription.Likewise, a JMS queue is implemented as an
> address with name=(the JMS queue name) with an ANYCAST routing type
> assocatied with it."
>
> Please help me understand the rules to determine if an "Artemis Address"
> is a JMS Topic or a JMS Queue and also how to determine if
> an "Artemis Queue" is a JMS Topic or a JMS Queue because the definition
> above is either incomplete or the assumption on q1 are wrong
>
> Thanks !
>
>
>
>
> Le 31/03/2017 à 08:12, andytaylor a écrit :
>
> > It does adhere to the JMS spec, the destinations are just created
> > dynamically not explicitly because of the call.NB mos vendors do this
> >
> > For the second exception, this is because you send to an address not a
> > queue, so it tries to create a new queue under the address q1 which
> fails
> > because it already exists under address address.foo
> >
> > On 31 March 2017 at 13:05, titou10 [via ActiveMQ] <
> > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724423&i=0>>
> wrote:
> >
> >> OK...
> >>
> >> I'm not sure that setting the server in this mode respects the JMS
> >> specs...maybe it may be considered as a JMS extension?
> >>
> >> And what about the ActiveMQQueueExistsException[errorType=QUEUE_EXISTS
> >> message=AMQ119019: Queue already exists q1]exception for the
> >> second case ?
> >>
> >>
> >> Le 31/03/2017 à 07:51, andytaylor a écrit :
> >>
> >>> This happens if you have auto create for queues/topics configured on
> the
> >>> address settings, you can turn this off if you desire
> >>>
> >>> On 31 March 2017 at 12:17, titou10 [via ActiveMQ] <
> >>> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724421&i=0>>
>
> >> wrote:
> >>>> FYI, same code to an IBM MQ server fails as expected with an
> >>>> "UNKNOWN_OBJECT_NAME" on the createProducer() method
> >>>>
> >>>> com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode
> >> '2'
> >>>> ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').
> >>>>           at com.ibm.msg.client.wmq.common.internal.Reason.
> >>>> createException(Reason.java:203) ~[na:na]
> >>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> >>>> checkJmqiCallSuccess(WMQMessageProducer.java:1248) ~[na:na]
> >>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> >>>> checkJmqiCallSuccess(WMQMessageProducer.java:1205) ~[na:na]
> >>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> >>>> access$800(WMQMessageProducer.java:75) ~[na:na]
> >>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer$
> >>>> SpiIdentifiedProducerShadow.initialise(WMQMessageProducer.java:801)
> >>>> ~[na:na]
> >>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.<
> >>>> init>(WMQMessageProducer.java:1181) ~[na:na]
> >>>>           at com.ibm.msg.client.wmq.internal.WMQSession.
> >>>> createProducer(WMQSession.java:1077) ~[na:na]
> >>>>           at com.ibm.msg.client.jms.internal.JmsSessionImpl.
> >>>> createProducer(JmsSessionImpl.java:1498) ~[na:na]
> >>>>           at com.ibm.mq.jms.MQSession.createProducer(MQSession.java:661)
>
> >>>> ~[na:na]
> >>>>
> >>>>
> >>>>
> >>>> ------------------------------
> >>>> If you reply to this email, your message will be added to the
> >> discussion
> >>>> below:
> >>>> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> >>>> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> >>>> tp4724415p4724416.html
> >>>> To start a new topic under ActiveMQ - User, email
> >>>> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724421&i=1>
>
> >>>> To unsubscribe from ActiveMQ - User, click here
> >>>> <
> >>>> .
> >>>> NAML
> >>>> <http://activemq.2283324.n4.nabble.com/template/
> >> NamlServlet.jtp?macro=macro_viewer&id=instant_html%
> >> 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
> >> BasicNamespace-nabble.view.web.template.NabbleNamespace-
> >> nabble.view.web.template.NodeNamespace&breadcrumbs=
> >> notify_subscribers%21nabble%3Aemail.naml-instant_emails%
> >> 21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
> >>>
> >>>
> >>> --
> >>> View this message in context: http://activemq.2283324.n4.
> >> nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-
> queue-on-jmsSession-
> >> createProducer-calls-tp4724415p4724418.html
> >>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> >>
> >>
> >> ------------------------------
> >> If you reply to this email, your message will be added to the
> discussion
> >> below:
> >> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> >> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> >> tp4724415p4724421.html
> >> To start a new topic under ActiveMQ - User, email
> >> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724423&i=1>
> >> To unsubscribe from ActiveMQ - User, click here
> >> <
> >> .
> >> NAML
> >> <http://activemq.2283324.n4.nabble.com/template/
> NamlServlet.jtp?macro=macro_viewer&id=instant_html%
> 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
> BasicNamespace-nabble.view.web.template.NabbleNamespace-
> nabble.view.web.template.NodeNamespace&breadcrumbs=
> notify_subscribers%21nabble%3Aemail.naml-instant_emails%
> 21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
> >>
> >
> >
> >
> > --
> > View this message in context: http://activemq.2283324.n4.
> nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-
> createProducer-calls-tp4724415p4724422.html
> > Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> tp4724415p4724423.html
> To start a new topic under ActiveMQ - User, email
> ml-node+s2283324n2341805h35@n4.nabble.com
> To unsubscribe from ActiveMQ - User, click here
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2341805&code=YW5keS50YXlsczY3QGdtYWlsLmNvbXwyMzQxODA1fC05MDE1NDk1MzM=>
> .
> NAML
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724426.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by titou10 <ti...@gmail.com>.
I must admit I'm lost here..

The example is from https://activemq.apache.org/artemis/docs/2.0.0/address-model.html, section "Point-to-Point Address multiple 
Queues" and there is no question about Topics here

Do you say that q1 is a Topic from a JMS perspective, even if it is attached to an "ANYCAST" Address?

Quoting the section "Mapping JMS Concepts to the Core API"

"A JMS topic is implemented in core as an address with name=(the topic name) and with a MULTICAST routing type with zero or more 
queues bound to it. Each queue bound to that address represents a topic subscription.Likewise, a JMS queue is implemented as an 
address with name=(the JMS queue name) with an ANYCAST routing type assocatied with it."

Please help me understand the rules to determine if an "Artemis Address" is a JMS Topic or a JMS Queue and also how to determine if 
an "Artemis Queue" is a JMS Topic or a JMS Queue because the definition above is either incomplete or the assumption on q1 are wrong

Thanks !




Le 31/03/2017 � 08:12, andytaylor a �crit :
> It does adhere to the JMS spec, the destinations are just created
> dynamically not explicitly because of the call.NB mos vendors do this
>
> For the second exception, this is because you send to an address not a
> queue, so it tries to create a new queue under the address q1 which fails
> because it already exists under address address.foo
>
> On 31 March 2017 at 13:05, titou10 [via ActiveMQ] <
> ml-node+s2283324n4724421h31@n4.nabble.com> wrote:
>
>> OK...
>>
>> I'm not sure that setting the server in this mode respects the JMS
>> specs...maybe it may be considered as a JMS extension?
>>
>> And what about the ActiveMQQueueExistsException[errorType=QUEUE_EXISTS
>> message=AMQ119019: Queue already exists q1]exception for the
>> second case ?
>>
>>
>> Le 31/03/2017 � 07:51, andytaylor a �crit :
>>
>>> This happens if you have auto create for queues/topics configured on the
>>> address settings, you can turn this off if you desire
>>>
>>> On 31 March 2017 at 12:17, titou10 [via ActiveMQ] <
>>> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724421&i=0>>
>> wrote:
>>>> FYI, same code to an IBM MQ server fails as expected with an
>>>> "UNKNOWN_OBJECT_NAME" on the createProducer() method
>>>>
>>>> com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode
>> '2'
>>>> ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').
>>>>           at com.ibm.msg.client.wmq.common.internal.Reason.
>>>> createException(Reason.java:203) ~[na:na]
>>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
>>>> checkJmqiCallSuccess(WMQMessageProducer.java:1248) ~[na:na]
>>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
>>>> checkJmqiCallSuccess(WMQMessageProducer.java:1205) ~[na:na]
>>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
>>>> access$800(WMQMessageProducer.java:75) ~[na:na]
>>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer$
>>>> SpiIdentifiedProducerShadow.initialise(WMQMessageProducer.java:801)
>>>> ~[na:na]
>>>>           at com.ibm.msg.client.wmq.internal.WMQMessageProducer.<
>>>> init>(WMQMessageProducer.java:1181) ~[na:na]
>>>>           at com.ibm.msg.client.wmq.internal.WMQSession.
>>>> createProducer(WMQSession.java:1077) ~[na:na]
>>>>           at com.ibm.msg.client.jms.internal.JmsSessionImpl.
>>>> createProducer(JmsSessionImpl.java:1498) ~[na:na]
>>>>           at com.ibm.mq.jms.MQSession.createProducer(MQSession.java:661)
>>>> ~[na:na]
>>>>
>>>>
>>>>
>>>> ------------------------------
>>>> If you reply to this email, your message will be added to the
>> discussion
>>>> below:
>>>> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
>>>> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
>>>> tp4724415p4724416.html
>>>> To start a new topic under ActiveMQ - User, email
>>>> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724421&i=1>
>>>> To unsubscribe from ActiveMQ - User, click here
>>>> <
>>>> .
>>>> NAML
>>>> <http://activemq.2283324.n4.nabble.com/template/
>> NamlServlet.jtp?macro=macro_viewer&id=instant_html%
>> 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
>> BasicNamespace-nabble.view.web.template.NabbleNamespace-
>> nabble.view.web.template.NodeNamespace&breadcrumbs=
>> notify_subscribers%21nabble%3Aemail.naml-instant_emails%
>> 21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>>
>>>
>>> --
>>> View this message in context: http://activemq.2283324.n4.
>> nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-
>> createProducer-calls-tp4724415p4724418.html
>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
>> ------------------------------
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
>> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
>> tp4724415p4724421.html
>> To start a new topic under ActiveMQ - User, email
>> ml-node+s2283324n2341805h35@n4.nabble.com
>> To unsubscribe from ActiveMQ - User, click here
>> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2341805&code=YW5keS50YXlsczY3QGdtYWlsLmNvbXwyMzQxODA1fC05MDE1NDk1MzM=>
>> .
>> NAML
>> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724422.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by andytaylor <an...@gmail.com>.
It does adhere to the JMS spec, the destinations are just created
dynamically not explicitly because of the call.NB mos vendors do this

For the second exception, this is because you send to an address not a
queue, so it tries to create a new queue under the address q1 which fails
because it already exists under address address.foo

On 31 March 2017 at 13:05, titou10 [via ActiveMQ] <
ml-node+s2283324n4724421h31@n4.nabble.com> wrote:

> OK...
>
> I'm not sure that setting the server in this mode respects the JMS
> specs...maybe it may be considered as a JMS extension?
>
> And what about the ActiveMQQueueExistsException[errorType=QUEUE_EXISTS
> message=AMQ119019: Queue already exists q1]exception for the
> second case ?
>
>
> Le 31/03/2017 à 07:51, andytaylor a écrit :
>
> > This happens if you have auto create for queues/topics configured on the
> > address settings, you can turn this off if you desire
> >
> > On 31 March 2017 at 12:17, titou10 [via ActiveMQ] <
> > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724421&i=0>>
> wrote:
> >
> >> FYI, same code to an IBM MQ server fails as expected with an
> >> "UNKNOWN_OBJECT_NAME" on the createProducer() method
> >>
> >> com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode
> '2'
> >> ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').
> >>          at com.ibm.msg.client.wmq.common.internal.Reason.
> >> createException(Reason.java:203) ~[na:na]
> >>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> >> checkJmqiCallSuccess(WMQMessageProducer.java:1248) ~[na:na]
> >>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> >> checkJmqiCallSuccess(WMQMessageProducer.java:1205) ~[na:na]
> >>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> >> access$800(WMQMessageProducer.java:75) ~[na:na]
> >>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer$
> >> SpiIdentifiedProducerShadow.initialise(WMQMessageProducer.java:801)
> >> ~[na:na]
> >>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.<
> >> init>(WMQMessageProducer.java:1181) ~[na:na]
> >>          at com.ibm.msg.client.wmq.internal.WMQSession.
> >> createProducer(WMQSession.java:1077) ~[na:na]
> >>          at com.ibm.msg.client.jms.internal.JmsSessionImpl.
> >> createProducer(JmsSessionImpl.java:1498) ~[na:na]
> >>          at com.ibm.mq.jms.MQSession.createProducer(MQSession.java:661)
>
> >> ~[na:na]
> >>
> >>
> >>
> >> ------------------------------
> >> If you reply to this email, your message will be added to the
> discussion
> >> below:
> >> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> >> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> >> tp4724415p4724416.html
> >> To start a new topic under ActiveMQ - User, email
> >> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4724421&i=1>
> >> To unsubscribe from ActiveMQ - User, click here
> >> <
> >> .
> >> NAML
> >> <http://activemq.2283324.n4.nabble.com/template/
> NamlServlet.jtp?macro=macro_viewer&id=instant_html%
> 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
> BasicNamespace-nabble.view.web.template.NabbleNamespace-
> nabble.view.web.template.NodeNamespace&breadcrumbs=
> notify_subscribers%21nabble%3Aemail.naml-instant_emails%
> 21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
> >>
> >
> >
> >
> > --
> > View this message in context: http://activemq.2283324.n4.
> nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-
> createProducer-calls-tp4724415p4724418.html
> > Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> tp4724415p4724421.html
> To start a new topic under ActiveMQ - User, email
> ml-node+s2283324n2341805h35@n4.nabble.com
> To unsubscribe from ActiveMQ - User, click here
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2341805&code=YW5keS50YXlsczY3QGdtYWlsLmNvbXwyMzQxODA1fC05MDE1NDk1MzM=>
> .
> NAML
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724422.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by titou10 <ti...@gmail.com>.
OK...

I'm not sure that setting the server in this mode respects the JMS specs...maybe it may be considered as a JMS extension?

And what about the ActiveMQQueueExistsException[errorType=QUEUE_EXISTS message=AMQ119019: Queue already exists q1]exception for the 
second case ?


Le 31/03/2017  07:51, andytaylor a crit :
> This happens if you have auto create for queues/topics configured on the
> address settings, you can turn this off if you desire
>
> On 31 March 2017 at 12:17, titou10 [via ActiveMQ] <
> ml-node+s2283324n4724416h76@n4.nabble.com> wrote:
>
>> FYI, same code to an IBM MQ server fails as expected with an
>> "UNKNOWN_OBJECT_NAME" on the createProducer() method
>>
>> com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2'
>> ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').
>>          at com.ibm.msg.client.wmq.common.internal.Reason.
>> createException(Reason.java:203) ~[na:na]
>>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
>> checkJmqiCallSuccess(WMQMessageProducer.java:1248) ~[na:na]
>>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
>> checkJmqiCallSuccess(WMQMessageProducer.java:1205) ~[na:na]
>>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
>> access$800(WMQMessageProducer.java:75) ~[na:na]
>>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer$
>> SpiIdentifiedProducerShadow.initialise(WMQMessageProducer.java:801)
>> ~[na:na]
>>          at com.ibm.msg.client.wmq.internal.WMQMessageProducer.<
>> init>(WMQMessageProducer.java:1181) ~[na:na]
>>          at com.ibm.msg.client.wmq.internal.WMQSession.
>> createProducer(WMQSession.java:1077) ~[na:na]
>>          at com.ibm.msg.client.jms.internal.JmsSessionImpl.
>> createProducer(JmsSessionImpl.java:1498) ~[na:na]
>>          at com.ibm.mq.jms.MQSession.createProducer(MQSession.java:661)
>> ~[na:na]
>>
>>
>>
>> ------------------------------
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
>> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
>> tp4724415p4724416.html
>> To start a new topic under ActiveMQ - User, email
>> ml-node+s2283324n2341805h35@n4.nabble.com
>> To unsubscribe from ActiveMQ - User, click here
>> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2341805&code=YW5keS50YXlsczY3QGdtYWlsLmNvbXwyMzQxODA1fC05MDE1NDk1MzM=>
>> .
>> NAML
>> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724418.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by andytaylor <an...@gmail.com>.
This happens if you have auto create for queues/topics configured on the
address settings, you can turn this off if you desire

On 31 March 2017 at 12:17, titou10 [via ActiveMQ] <
ml-node+s2283324n4724416h76@n4.nabble.com> wrote:

> FYI, same code to an IBM MQ server fails as expected with an
> "UNKNOWN_OBJECT_NAME" on the createProducer() method
>
> com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2'
> ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').
>         at com.ibm.msg.client.wmq.common.internal.Reason.
> createException(Reason.java:203) ~[na:na]
>         at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> checkJmqiCallSuccess(WMQMessageProducer.java:1248) ~[na:na]
>         at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> checkJmqiCallSuccess(WMQMessageProducer.java:1205) ~[na:na]
>         at com.ibm.msg.client.wmq.internal.WMQMessageProducer.
> access$800(WMQMessageProducer.java:75) ~[na:na]
>         at com.ibm.msg.client.wmq.internal.WMQMessageProducer$
> SpiIdentifiedProducerShadow.initialise(WMQMessageProducer.java:801)
> ~[na:na]
>         at com.ibm.msg.client.wmq.internal.WMQMessageProducer.<
> init>(WMQMessageProducer.java:1181) ~[na:na]
>         at com.ibm.msg.client.wmq.internal.WMQSession.
> createProducer(WMQSession.java:1077) ~[na:na]
>         at com.ibm.msg.client.jms.internal.JmsSessionImpl.
> createProducer(JmsSessionImpl.java:1498) ~[na:na]
>         at com.ibm.mq.jms.MQSession.createProducer(MQSession.java:661)
> ~[na:na]
>
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-
> seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-
> tp4724415p4724416.html
> To start a new topic under ActiveMQ - User, email
> ml-node+s2283324n2341805h35@n4.nabble.com
> To unsubscribe from ActiveMQ - User, click here
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2341805&code=YW5keS50YXlsczY3QGdtYWlsLmNvbXwyMzQxODA1fC05MDE1NDk1MzM=>
> .
> NAML
> <http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724418.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis 2.0: JMS seems to create an address/queue on jmsSession.createProducer() calls

Posted by titou10 <ti...@gmail.com>.
FYI, same code to an IBM MQ server fails as expected with an
"UNKNOWN_OBJECT_NAME" on the createProducer() method

com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2'
('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').
	at
com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)
~[na:na]
	at
com.ibm.msg.client.wmq.internal.WMQMessageProducer.checkJmqiCallSuccess(WMQMessageProducer.java:1248)
~[na:na]
	at
com.ibm.msg.client.wmq.internal.WMQMessageProducer.checkJmqiCallSuccess(WMQMessageProducer.java:1205)
~[na:na]
	at
com.ibm.msg.client.wmq.internal.WMQMessageProducer.access$800(WMQMessageProducer.java:75)
~[na:na]
	at
com.ibm.msg.client.wmq.internal.WMQMessageProducer$SpiIdentifiedProducerShadow.initialise(WMQMessageProducer.java:801)
~[na:na]
	at
com.ibm.msg.client.wmq.internal.WMQMessageProducer.<init>(WMQMessageProducer.java:1181)
~[na:na]
	at
com.ibm.msg.client.wmq.internal.WMQSession.createProducer(WMQSession.java:1077)
~[na:na]
	at
com.ibm.msg.client.jms.internal.JmsSessionImpl.createProducer(JmsSessionImpl.java:1498)
~[na:na]
	at com.ibm.mq.jms.MQSession.createProducer(MQSession.java:661) ~[na:na]





--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-2-0-JMS-seems-to-create-an-address-queue-on-jmsSession-createProducer-calls-tp4724415p4724416.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.