Hello Ted,

You say "They delete themselves when the address is no longer in use". In my 
reduced test case, the dispatch router is alone and there are no 
consumers/producers attached to it. Shouldn't it be deleted then?


As for the "why you want to delete the operational addresses", we wanted a way 
to monitor the traffic on the dispatch router and debug how messages are 
traversing across the router every time we send messages.

In the Java Broker, when you delete a queue, its statistics are gone and reset 
when you recreate it. We were expecting the same thing here.

In my tests, at the start of each run, we delete/re-create all queues on the 
brokers and we do the same on the dispatch router(We delete/re-create using 
qdmanage all needed connectors, listeners, addresses and autoLinks).
Then we send messages to the dispatch router twice (Once using JMS producers 
and once using Proton-c producers). If I sent 3 messages in each run, I want to 
verify that the router received 3 messages on the "In" and redirected them to 
the "out".
At the start of each run and because we delete the addresses on the dispatch 
router, we would except the stats to be reset. However for the second run 
(Proton-c), I end up with 6 messages (3 old ones + 3 new ones) and I cannot 
assert the dispatch router has just received 3 messages.
As a workaround, I am calculating the difference in the number of messages 
between the end and the start of each test run.

However, as stated before, the behavior is not similar to the Qpid Java Broker 
and at the start I was convinced my producers were really sending 6 messages 
and not 3.

In my opinion, in a multi-component system, it would make it easier if every 
component behaved the same way. So if a queue deletion on the Broker would 
delete its statistics, I would expect the same behavior on the router.

What do you think?
Is there really any usefulness to keep stats of a deleted addresses?

Regards,
Adel

________________________________
From: Ted Ross <[email protected]>
Sent: Friday, September 30, 2016 2:38 PM
To: [email protected]
Subject: Re: [Dispatch router 0.6.1] Configuration bugs

Adel,

There are actually two separate entity types for addresses:  The
'router.config.address' and the 'router.address'.  The config address is
the one that is driven by the config file and the one that you create
and delete using qdmanage.  router.config.address is a lookup for how
addresses are supposed to be treated when they appear on the network.

The other type: router.address, is the one that is shown with qdstat -a.
  This is a table of addresses seen on the network.  Entries in this
table can't be deleted manually.  They delete themselves when the
address is no longer in use (i.e. no producers or consumers on the local
router and no consumers on reachable remote routers).

I think we should step back and talk about why you want to delete the
operational addresses.  Do you have requirements around the gathering of
statistics?

-Ted

On 09/30/2016 05:57 AM, Adel Boutros wrote:
> Hello again,
>
>
> Now to the next issue: I can see the "name attribute in the query but I 
> cannot delete the address (It still appears in "qdstat -a")
>
>
> Steps to reproduce using the same router configuration below:
>
>
> qdstat -b amqp://localhost:10801 -a
>
>
> Router Addresses
>   class   addr                   phs  distrib    in-proc  local  remote  
> cntnr  in  out  thru  to-proc  from-proc
>   
> ==============================================================================
>   mobile  testQueue              1    balanced   0        0      0       0    
>   0   0    0     0        0
>   mobile  testQueue              0    balanced   0        1      0       0    
>   0   0    0     0        0
> -------------------------------------------------------------
>
> qdmanage -b amqp://localhost:10801 query --type=address
> [
>   {
>     "name": "testQueue.addr",
>     "ingressPhase": 0,
>     "prefix": "testQueue",
>     "waypoint": true,
>     "distribution": "balanced",
>     "type": "org.apache.qpid.dispatch.router.config.address",
>     "identity": "1",
>     "egressPhase": 1
>   }
> ]
> --------------------------------
>
> qdmanage -b amqp://localhost:10801 delete --type=address --name testQueue.addr
> ---------------------------------
>
> qdmanage -b amqp://localhost:10801 query --type=address
> []
> -------------------------------
>
> qdstat -b amqp://localhost:10801 -a
>
>
> Router Addresses
>   class   addr                   phs  distrib    in-proc  local  remote  
> cntnr  in  out  thru  to-proc  from-proc
>   
> ==============================================================================
>   mobile  testQueue              1    balanced   0        0      0       0    
>   0   0    0     0        0
>   mobile  testQueue              0    balanced   0        1      0       0    
>   0   0    0     0        0
>
>
> Regards,
>
> Adel
>
>
> ________________________________
> From: Adel Boutros <[email protected]>
> Sent: Friday, September 30, 2016 11:30 AM
> To: [email protected]
> Subject: Re: [Dispatch router 0.6.1] Configuration bugs
>
> Thank you Gordon!!
>
>
> I manually applied the commit of DISPATCH-500 and tested it on top of 0.6.1 
> version and it solved my issue.
>
>
> Regards,
>
> Adel
>
> ________________________________
> From: Gordon Sim <[email protected]>
> Sent: Friday, September 30, 2016 10:12:23 AM
> To: [email protected]
> Subject: Re: [Dispatch router 0.6.1] Configuration bugs
>
> On 30/09/16 08:59, Adel Boutros wrote:
>> Hello,
>>
>>
>> As a follow up to my previous thread, I am having some issues with the 
>> dispatch router.
>>
>> I will start with the first one here:
>>
>> It seems the "name" attribute doesn't work for all types of entities. So, I 
>> cannot delete them using the "name" attribute.
>
> I think this may be https://issues.apache.org/jira/browse/DISPATCH-500,
> which is now fixed on master.
>
>> I have tested it on 4 types of entities and here are my findings:
>>
>> * Connector --> It works
>>
>> * Listener --> It works
>>
>> * Address --> It fails
>>
>> * AutoLink --> It fails
>>
>>
>> With the below config, when I query the dispatch router, it doesn't show the 
>> "name" attribute for my "address":
>>
>>
>> qdmanage -b amqp://localhost:10801 query --type=address
>> [
>>   {
>>     "egressPhase": 1,
>>     "ingressPhase": 0,
>>     "prefix": "testQueue",
>>     "waypoint": true,
>>     "distribution": "balanced",
>>     "type": "org.apache.qpid.dispatch.router.config.address",
>>     "identity": "1"
>>   }
>> ]
>>
>> qdmanage -b amqp://localhost:10801 query --type=listener
>> [
>>   {
>>     "stripAnnotations": "both",
>>     "addr": "0.0.0.0",
>>     "requireSsl": false,
>>     "idleTimeoutSeconds": 16,
>>     "saslMechanisms": "ANONYMOUS",
>>     "maxFrameSize": 16384,
>>     "requireEncryption": false,
>>     "host": "127.0.0.1",
>>     "cost": 1,
>>     "role": "normal",
>>     "authenticatePeer": false,
>>     "type": "org.apache.qpid.dispatch.listener",
>>     "port": "10801",
>>     "identity": "listener/127.0.0.1:10801:mainListener",
>>     "name": "mainListener"
>>   }
>> ]
>>
>>
>> -----------------------------------------------------------
>> Router config:
>> router {
>>     mode: interior
>>     routerId: router.10801
>> }
>>
>> listener {
>>     name: mainListener
>>     addr: 0.0.0.0
>>     port: 10801
>>     role: normal
>>     saslMechanisms: ANONYMOUS
>>     requireSsl: no
>>     authenticatePeer: no
>> }
>>
>> address {
>>     name: testQueue.addr
>>     prefix: testQueue
>>     waypoint: yes
>> }
>>
>>
>> Regards,
>>
>> Adel
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to