You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Adel Boutros <ad...@live.com> on 2016/08/02 09:02:40 UTC

RE: [Qpid dispatch router] Do we need a broker to send/receive messages?

Hello again,

If the address is configured with "balanced", I am unable to exchange messages. When using "multicast" it worked.
Is this expected?

Regards,
Adel

> From: adelboutros@live.com
> To: users@qpid.apache.org
> Subject: RE: [Qpid dispatch router] Do we need a broker to send/receive messages?
> Date: Thu, 28 Jul 2016 16:51:50 +0200
> 
> Thank you Ted and Paolo,
> Actually I tried to have only a publisher connected and it was hanging. Now I understand why: It is because I need a consumer connected to get credits.
> Regards,Adel
> 
> > Subject: Re: [Qpid dispatch router] Do we need a broker to send/receive messages?
> > To: users@qpid.apache.org
> > From: tross@redhat.com
> > Date: Thu, 28 Jul 2016 10:47:43 -0400
> > 
> > 
> > On 07/28/2016 10:17 AM, Adel Boutros wrote:
> > > Hello,
> > >
> > > Out of curiosity, Can I send/receive messages with a queue defined directly on the dispatch router or do I need to have a real instance of a broker connected to that dispatcher?
> > 
> > Like Paolo said, you only need a broker if you want to store the message 
> > in a queue.
> > 
> > You can use the router(s) to communicate directly by having the senders 
> > and receivers use the same address.  In this case, the exchange of 
> > messages (acknowledgement, settlement, etc.) are routed directly between 
> > the senders and the receivers.
> > 
> > To do this, you don't need a route-container connection and you don't 
> > need auto-links or link-routes.  You only need to configure the address 
> > prefix to control whether the deliveries are multicast (all receivers 
> > for the address) or anycast (one receiver for the address).  Addresses 
> > that don't match any configured prefix default to balanced-anycast.
> > 
> > You can use a hybrid approach as well, with some addresses defined as 
> > "waypoint" with autolinks and other addresses that are not "waypoint" 
> > that are used for direct producer-to-consumer communication.
> > 
> > >
> > > I am asking because it seems that the dispatch router has by default some "Addresses" used for internal communication and I was wondering if I could create an "address" of a type queue and use it directly without adding connectors.
> > >
> > > Router Addresses
> > >   class   addr                   phs  distrib  in-proc  local  remote  cntnr  in  out  thru  to-proc  from-proc
> > >   ===============================================================================================================
> > >   local   $_management_internal       closest  1        0      0       0      0   0    0     0        0
> > >   local   $displayname                closest  1        0      0       0      0   0    0     0        0
> > >   mobile  $management            0    closest  1        0      0       0      3   0    0     3        0
> > >   local   $management                 closest  1        0      0       0      0   0    0     0        0
> > >   local   temp.9yqNIIHanFkSZbe        closest  0        1      0       0      0   0    0     0        0
> > >
> > >
> > > Regards,
> > > Adel
> > >  		 	   		
> > >
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> > For additional commands, e-mail: users-help@qpid.apache.org
> > 
>  		 	   		  
 		 	   		  

RE: [Qpid dispatch router] Do we need a broker to send/receive messages?

Posted by Adel Boutros <ad...@live.com>.


The process was actually hanging on the send call.
JMS CodeJmsConnectionFactory jmsConnectionFactory = new JmsConnectionFactory("amqp://MACHINE_NAME:10254");Connection connection = jmsConnectionFactory.createConnection();try {    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);    Queue perfQueue = session.createQueue("perf.topic");    Topic topic = session.createTopic("perf.topic");    MessageProducer producer = session.createProducer(topic);    MessageConsumer consumer = session.createConsumer(perfQueue);    connection.start();    producer.send(session.createTextMessage("Hello"));    Message receive = consumer.receive(3000);    assertThat(((TextMessage) receive).getText()).isEqualTo("Hello");} finally {    connection.close();}Dispatcher configrouter {    id: router.10254    mode: interior    worker-threads: 8}address {   prefix: perf.topic
   waypoint: false
   distribution: balanced
}listener {    host: 0.0.0.0    port: 10254    role: standalone    saslMechanisms: ANONYMOUS    requireSsl: no    authenticatePeer: no}Adel
> Subject: Re: [Qpid dispatch router] Do we need a broker to send/receive messages?
> To: users@qpid.apache.org
> From: tross@redhat.com
> Date: Tue, 2 Aug 2016 09:05:44 -0400
> 
> 
> On 08/02/2016 05:02 AM, Adel Boutros wrote:
> > Hello again,
> >
> > If the address is configured with "balanced", I am unable to exchange messages. When using "multicast" it worked.
> > Is this expected?
> 
> No, both distributions work, albeit with different behavior when there 
> are multiple consumers.
> 
> When you have direct consumers attached to the router, the address 
> appears in the list from "qdstat -a".  What does your setup look like?
> 
> -Ted
> 
> >
> > Regards,
> > Adel
> >
> >> From: adelboutros@live.com
> >> To: users@qpid.apache.org
> >> Subject: RE: [Qpid dispatch router] Do we need a broker to send/receive messages?
> >> Date: Thu, 28 Jul 2016 16:51:50 +0200
> >>
> >> Thank you Ted and Paolo,
> >> Actually I tried to have only a publisher connected and it was hanging. Now I understand why: It is because I need a consumer connected to get credits.
> >> Regards,Adel
> >>
> >>> Subject: Re: [Qpid dispatch router] Do we need a broker to send/receive messages?
> >>> To: users@qpid.apache.org
> >>> From: tross@redhat.com
> >>> Date: Thu, 28 Jul 2016 10:47:43 -0400
> >>>
> >>>
> >>> On 07/28/2016 10:17 AM, Adel Boutros wrote:
> >>>> Hello,
> >>>>
> >>>> Out of curiosity, Can I send/receive messages with a queue defined directly on the dispatch router or do I need to have a real instance of a broker connected to that dispatcher?
> >>>
> >>> Like Paolo said, you only need a broker if you want to store the message
> >>> in a queue.
> >>>
> >>> You can use the router(s) to communicate directly by having the senders
> >>> and receivers use the same address.  In this case, the exchange of
> >>> messages (acknowledgement, settlement, etc.) are routed directly between
> >>> the senders and the receivers.
> >>>
> >>> To do this, you don't need a route-container connection and you don't
> >>> need auto-links or link-routes.  You only need to configure the address
> >>> prefix to control whether the deliveries are multicast (all receivers
> >>> for the address) or anycast (one receiver for the address).  Addresses
> >>> that don't match any configured prefix default to balanced-anycast.
> >>>
> >>> You can use a hybrid approach as well, with some addresses defined as
> >>> "waypoint" with autolinks and other addresses that are not "waypoint"
> >>> that are used for direct producer-to-consumer communication.
> >>>
> >>>>
> >>>> I am asking because it seems that the dispatch router has by default some "Addresses" used for internal communication and I was wondering if I could create an "address" of a type queue and use it directly without adding connectors.
> >>>>
> >>>> Router Addresses
> >>>>   class   addr                   phs  distrib  in-proc  local  remote  cntnr  in  out  thru  to-proc  from-proc
> >>>>   ===============================================================================================================
> >>>>   local   $_management_internal       closest  1        0      0       0      0   0    0     0        0
> >>>>   local   $displayname                closest  1        0      0       0      0   0    0     0        0
> >>>>   mobile  $management            0    closest  1        0      0       0      3   0    0     3        0
> >>>>   local   $management                 closest  1        0      0       0      0   0    0     0        0
> >>>>   local   temp.9yqNIIHanFkSZbe        closest  0        1      0       0      0   0    0     0        0
> >>>>
> >>>>
> >>>> Regards,
> >>>> Adel
> >>>>  		 	   		
> >>>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> >>> For additional commands, e-mail: users-help@qpid.apache.org
> >>>
> >>  		 	   		
> >  		 	   		
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
> 

 		 	   		  

Re: [Qpid dispatch router] Do we need a broker to send/receive messages?

Posted by Ted Ross <tr...@redhat.com>.
On 08/02/2016 05:02 AM, Adel Boutros wrote:
> Hello again,
>
> If the address is configured with "balanced", I am unable to exchange messages. When using "multicast" it worked.
> Is this expected?

No, both distributions work, albeit with different behavior when there 
are multiple consumers.

When you have direct consumers attached to the router, the address 
appears in the list from "qdstat -a".  What does your setup look like?

-Ted

>
> Regards,
> Adel
>
>> From: adelboutros@live.com
>> To: users@qpid.apache.org
>> Subject: RE: [Qpid dispatch router] Do we need a broker to send/receive messages?
>> Date: Thu, 28 Jul 2016 16:51:50 +0200
>>
>> Thank you Ted and Paolo,
>> Actually I tried to have only a publisher connected and it was hanging. Now I understand why: It is because I need a consumer connected to get credits.
>> Regards,Adel
>>
>>> Subject: Re: [Qpid dispatch router] Do we need a broker to send/receive messages?
>>> To: users@qpid.apache.org
>>> From: tross@redhat.com
>>> Date: Thu, 28 Jul 2016 10:47:43 -0400
>>>
>>>
>>> On 07/28/2016 10:17 AM, Adel Boutros wrote:
>>>> Hello,
>>>>
>>>> Out of curiosity, Can I send/receive messages with a queue defined directly on the dispatch router or do I need to have a real instance of a broker connected to that dispatcher?
>>>
>>> Like Paolo said, you only need a broker if you want to store the message
>>> in a queue.
>>>
>>> You can use the router(s) to communicate directly by having the senders
>>> and receivers use the same address.  In this case, the exchange of
>>> messages (acknowledgement, settlement, etc.) are routed directly between
>>> the senders and the receivers.
>>>
>>> To do this, you don't need a route-container connection and you don't
>>> need auto-links or link-routes.  You only need to configure the address
>>> prefix to control whether the deliveries are multicast (all receivers
>>> for the address) or anycast (one receiver for the address).  Addresses
>>> that don't match any configured prefix default to balanced-anycast.
>>>
>>> You can use a hybrid approach as well, with some addresses defined as
>>> "waypoint" with autolinks and other addresses that are not "waypoint"
>>> that are used for direct producer-to-consumer communication.
>>>
>>>>
>>>> I am asking because it seems that the dispatch router has by default some "Addresses" used for internal communication and I was wondering if I could create an "address" of a type queue and use it directly without adding connectors.
>>>>
>>>> Router Addresses
>>>>   class   addr                   phs  distrib  in-proc  local  remote  cntnr  in  out  thru  to-proc  from-proc
>>>>   ===============================================================================================================
>>>>   local   $_management_internal       closest  1        0      0       0      0   0    0     0        0
>>>>   local   $displayname                closest  1        0      0       0      0   0    0     0        0
>>>>   mobile  $management            0    closest  1        0      0       0      3   0    0     3        0
>>>>   local   $management                 closest  1        0      0       0      0   0    0     0        0
>>>>   local   temp.9yqNIIHanFkSZbe        closest  0        1      0       0      0   0    0     0        0
>>>>
>>>>
>>>> Regards,
>>>> Adel
>>>>  		 	   		
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
>>> For additional commands, e-mail: users-help@qpid.apache.org
>>>
>>  		 	   		
>  		 	   		
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org