|
1972 | 1972 | / C:ACK
|
1973 | 1973 | / S:ACK
|
1974 | 1974 | / C:REJECT
|
| 1975 | + / C:NACK |
1975 | 1976 | / C:RECOVER-ASYNC
|
1976 | 1977 | / C:RECOVER S:RECOVER-OK
|
1977 | 1978 | </doc>
|
|
2734 | 2735 | </doc>
|
2735 | 2736 | <chassis name = "client" implement = "MUST" />
|
2736 | 2737 | </method>
|
| 2738 | + |
| 2739 | + <method name = "nack" index = "120" label = "reject one or more incoming messages"> |
| 2740 | + <doc> |
| 2741 | + This method allows a client to reject one or more incoming messages. It can be |
| 2742 | + used to interrupt and cancel large incoming messages, or return untreatable |
| 2743 | + messages to their original queue. |
| 2744 | + </doc> |
| 2745 | + |
| 2746 | + <rule name = "01"> |
| 2747 | + <doc> |
| 2748 | + The server SHOULD be capable of accepting and processing the Nack method while |
| 2749 | + sending message content with a Deliver or Get-Ok method. I.e. the server should |
| 2750 | + read and process incoming methods while sending output frames. To cancel a |
| 2751 | + partially-send content, the server sends a content body frame of size 1 (i.e. |
| 2752 | + with no data except the frame-end octet). |
| 2753 | + </doc> |
| 2754 | + </rule> |
| 2755 | + |
| 2756 | + <rule name = "02"> |
| 2757 | + <doc> |
| 2758 | + The server SHOULD interpret this method as meaning that the client is unable to |
| 2759 | + process the message at this time. |
| 2760 | + </doc> |
| 2761 | + <doc type = "scenario"> |
| 2762 | + TODO. |
| 2763 | + </doc> |
| 2764 | + </rule> |
| 2765 | + |
| 2766 | + <rule name = "03"> |
| 2767 | + <doc> |
| 2768 | + The client MUST NOT use this method as a means of selecting messages to process. |
| 2769 | + </doc> |
| 2770 | + <doc type = "scenario"> |
| 2771 | + TODO. |
| 2772 | + </doc> |
| 2773 | + </rule> |
| 2774 | + |
| 2775 | + <chassis name = "server" implement = "MUST" /> |
| 2776 | + |
| 2777 | + <field name = "delivery-tag" domain = "delivery-tag" /> |
| 2778 | + |
| 2779 | + <field name = "multiple" domain = "bit" label = "reject multiple messages"> |
| 2780 | + <doc> |
| 2781 | + If set to 1, the delivery tag is treated as "up to and |
| 2782 | + including", so that multiple messages can be rejected |
| 2783 | + with a single method. If set to zero, the delivery tag |
| 2784 | + refers to a single message. If the multiple field is 1, and |
| 2785 | + the delivery tag is zero, this indicates rejection of |
| 2786 | + all outstanding messages. |
| 2787 | + </doc> |
| 2788 | + <rule name = "exists" on-failure = "precondition-failed"> |
| 2789 | + <doc> |
| 2790 | + A message MUST not be rejected more than once. The |
| 2791 | + receiving peer MUST validate that a non-zero delivery-tag |
| 2792 | + refers to an unacknowledged, delivered message, and |
| 2793 | + raise a channel exception if this is not the case. |
| 2794 | + </doc> |
| 2795 | + <doc type = "scenario"> |
| 2796 | + TODO. |
| 2797 | + </doc> |
| 2798 | + </rule> |
| 2799 | + </field> |
| 2800 | + |
| 2801 | + <field name = "requeue" domain = "bit" label = "requeue the message"> |
| 2802 | + <doc> |
| 2803 | + If requeue is true, the server will attempt to requeue the message. If requeue |
| 2804 | + is false or the requeue attempt fails the messages are discarded or dead-lettered. |
| 2805 | + </doc> |
| 2806 | + |
| 2807 | + <rule name = "01"> |
| 2808 | + <doc> |
| 2809 | + The server MUST NOT deliver the message to the same client within the |
| 2810 | + context of the current channel. The recommended strategy is to attempt to |
| 2811 | + deliver the message to an alternative consumer, and if that is not possible, |
| 2812 | + to move the message to a dead-letter queue. The server MAY use more |
| 2813 | + sophisticated tracking to hold the message on the queue and redeliver it to |
| 2814 | + the same client at a later stage. |
| 2815 | + </doc> |
| 2816 | + <doc type = "scenario"> |
| 2817 | + TODO. |
| 2818 | + </doc> |
| 2819 | + </rule> |
| 2820 | + </field> |
| 2821 | + </method> |
| 2822 | + |
2737 | 2823 | </class>
|
2738 | 2824 |
|
2739 | 2825 | <!-- == TX =============================================================== -->
|
|
0 commit comments