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

Keith Wall commented on QPID-7625:
----------------------------------

The problem is that we need to tell the queue about the link, and the queue 
will need to know to kill itself on the death of that link.  We said:

* Queue will have a new lifetime policy {{DELETE_ON_CREATING_LINK_CLOSE}}
* New attribute {{Queue#creatingLink}}.  {{creatingLink}} will be a persisted 
derived attribute.  This will be supplied by the caller on creation of 
(temporary) queue with the new lifetime policy.
* The queue will need to find out about link death so it can delete itself.   
We think the Queue will somehow register itself with the LinkRegistry so that 
it can hear about a links death.

 

> AMQP 1.0 temporary queues are not deleted in response to JMS 
> TemporaryQueue#delete
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-7625
>                 URL: https://issues.apache.org/jira/browse/QPID-7625
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>            Reporter: Keith Wall
>             Fix For: qpid-java-7.0
>
>
> As shown by system test 
> {{TemporaryQueueTest#testExplictTemporaryQueueDeletion}}. When the 
> application calls {{TemporaryQueue#delete()}} the temporary queue ought to be 
> deleted immediately.  This currently does not happen.
> The following describes how sending links with certain properties are used to 
> establish temporary queues.
> https://www.oasis-open.org/committees/download.php/56418/amqp-bindmap-jms-v1.0-wd06.pdf
> The Qpid JMS Client correctly sends the detach in response to the {{#delete}} 
> call, but it appears that the broker's AMQP 1.0 protocol layer does not 
> organise itself to act upon the {{expiryPolicy=link-detach}} once the link is 
> detached.
> The temporary queue _is_ deleted once the connection closes.
> The attach establishing the temporary queue looks like this:
> {noformat}
> Attach{name=qpid-jms:temp-queue-creator:ID:d591b0c0-169d-4895-a227-e1e18c9709ab:1:1,handle=0,role=sender,sndSettleMode=unsettled,rcvSettleMode=first,source=Source{},target=Target{durable=none,expiryPolicy=link-detach,timeout=0,dynamic=true,dynamicNodeProperties={lifetime-policy=DeleteOnClose{}},capabilities=[temporary-queue]},incompleteUnsettled=false,initialDeliveryCount=0}
> {noformat}
> The detach sent by the client:
> {noformat}
> 017-01-17 12:22:24,665         DEBUG [IO-/127.0.0.1:62572] o.a.q.s.p.frame 
> RECV[/127.0.0.1:62572|0] : Detach{handle=0,closed=true}
> {noformat}



--
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