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

Lorenz Quack commented on QPID-7605:
------------------------------------

After reading through the above comments I'll try to summarise what is 
currently needed:
 * On Connection#receiveOpen check for 'sole-connection-for-container' desired 
capability and always set it on offeredCapabilities
 * if capability present look up remoteContainerId
 ** If it does not exist register this connection with that id
 ** If it does exist 
 *** on the response Open set
 **** the containerId to the empty string
 **** add the EMPTY_CONTAINER_ID_ON_OPEN_FAILS offered capability
 **** the property Symbol("amqp:connection-establishment-failed") to 
Boolean(True)
 *** immediately close the connection. The Close should have key/value of 
Symbol("invalid-field")/"container-id" in its info map.
 * when connection closes and is currently registered remove the 
remoteContainerId from registration

 
There are a couple of points that are unclear to me:
 * 'sole-connection-for-container' capability is not defined in the bindmap spec
 * EMPTY_CONTAINER_ID_ON_OPEN_FAILS and the semantics of an empty container-id 
is not defined anywhere
 * details on how to set the error reason in the info map is not defined in the 
bindmap spec
 * Are the above gaps in the spec already JIRAed?
 * If a connection with 'sole-connection-for-container' is established and 
subsequently a connection without the capability is attempted, what should 
happen? allow?
 * If a connection without 'sole-connection-for-container' is established and 
subsequently a connection with the capability is attempted, what should happen? 
allow?
 * Is the scope of this feature VH or Broker?


> [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-broker-7.0.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.15#6346)

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

Reply via email to