Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7625

[AMQP 1.0] Enforce lifetime-policy DeleteOnClose

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • qpid-java-broker-7.0.0
    • Broker-J
    • None

    Description

      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:

      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}
      

      The detach sent by the client:

      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}
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kwall Keith Wall
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: