[ 
https://issues.apache.org/jira/browse/QPID-7605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15798421#comment-15798421
 ] 

Robbie Gemmell commented on QPID-7605:
--------------------------------------

What we are doing for the JMS mapping is for the client to send a 
'sole-connection-for-container' connection capability to request that the 
broker/peer grant exclusive use of the container-id (which would be the 
ClientID) to the connection, or fail the Open if it cant because another is 
already using it. The broker signals it is honouring the request by supporting 
the same capability in its reply Open frame.

If the broker fails the connection attempt, it should add an entry to the Close 
error info map to hint that the container-id was the cause, allowing the client 
to throw InvalidClientIDException specifically, by adding an symbol key/value 
of "invalid-field"/"container-id". We also specified it should add a symbol 
keyed boolean property of "amqp:connection-establishment-failed" as a hint that 
the Open has failed and a Close will be following immediately with the reason 
(since the spec has no way to convey that scenario, unlike with Attach/Detach 
where it does by leaving the source/target as null)

> [Java Broker] [AMQP1.0] Container id uniqueness
> -----------------------------------------------
>
>                 Key: QPID-7605
>                 URL: https://issues.apache.org/jira/browse/QPID-7605
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Broker
>            Reporter: Keith Wall
>             Fix For: qpid-java-7.0
>
>
> The AMQP 1.0 protocol layer implementation must ensure that the AMQP Open 
> performative container-id is unique amongst existing established connections.
> As the JMS client id maps to the container-id, so this will fulfil the JMS 
> requirement.  
> https://docs.oracle.com/javaee/7/api/javax/jms/Connection.html#setClientID-java.lang.String-
> Note that the Qpid JMS Client requires the Close performative with an Error 
> containing a hint to generate to correct JMS exception.  How will the Qpid 
> Broker know to do this?
> org.apache.qpid.jms.integration.FailedConnectionsIntegrationTest#testConnectWithInvalidClientIdThrowsICIDEWhenInvalidContainerHintPresent



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to