qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matej Lesko (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DISPATCH-641) Make containerId attribute work with clients
Date Thu, 23 Feb 2017 18:09:44 GMT
Matej Lesko created DISPATCH-641:

             Summary: Make containerId attribute work with clients
                 Key: DISPATCH-641
                 URL: https://issues.apache.org/jira/browse/DISPATCH-641
             Project: Qpid Dispatch
          Issue Type: Improvement
          Components: Router Node
    Affects Versions: 0.7.0
            Reporter: Matej Lesko

During verification of issue https://issues.apache.org/jira/browse/DISPATCH-628
I found out that when I set this _containerId_ in the clients, router can see it but it can
not route it. 

E.g. I have sender with the _containerId_ "xxx" and autoLink entity with the _containerId_
"xxx" ->
this autoLink does not activate in this scenario. 

Simply said when I have sender/receiver with the _containerId_ set and matching the _containerId_
attribute in the configuration file, it does 
*not* accept the connection. e.g. _linkRoute_ usage ends with the  "Link error: No route to
the destination node".

Possible configuration to use(same applies for _autoLink_ entities)
router {
    mode: standalone
    id: Router.A

listener {
    port: amqp
    authenticatePeer: no
    saslMechanisms: ANONYMOUS

connector {
    name: broker
    host: MY-HOST
    role: route-container
    port: amqp

address {
    prefix: jms.queue
    waypoint: yes
    distribution: balanced

linkRoute {
    name: myqueueIn
    dir: in
    prefix: jms.queue.myqueue
    connection: broker
    containerId: dtest

linkRoute {
    name: myqueueOut
    dir: out
    prefix: jms.queue.myqueue
    connection: broker
    containerId: dtest

log {
    module: MESSAGE
    enable: debug
    timestamp: yes

Right now, router works only as described e.g. here [https://issues.apache.org/jira/browse/DISPATCH-640|DISPATCH-640]

In such a case, it is important to set a *name* (aka container_id) for the broker, matching
the value of _containerId_ attribute of the chosen linkRoute/autoLink entity. Then all messages
are routed to this broker, ignoring the value of _container_id_ of the actual client itself.

Request is that this value would be used to "specify" which clients would actually be allowed
to make a connection to the broker.

Scenario A:
1. Client has containerId=xxx, address="myqueue"
2. linkRoute has containerId=yyy, prefix="myqueue"
resolution: connection won't be established, not matching containerId

Scenario B:
1. Client has containerId=xxx, address="myqueue"
2. linkRoute has containerId=xxx, prefix="myqueue"
resolution: connection will be established, client sends messages to the broker

As described in [https://issues.apache.org/jira/browse/DISPATCH-639|DISPATCH-639]  -> 
"if there is a container field, use it otherwise use the connection_field to specify the connection
to use."

This could be elevated to the use case, where an condition as:
"if there is container field and also connection_field specified, demand matching containerId
from the client"

This message was sent by Atlassian JIRA

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

View raw message