<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>6472</bug_id>
          
          <creation_ts>2009-01-26 13:58:32 +0000</creation_ts>
          <short_desc>Eventing-EventSourceUnableToProcess: Distinguish temporary v permanent failure</short_desc>
          <delta_ts>2009-05-26 13:48:54 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WS-Resource Access</product>
          <component>Eventing</component>
          <version>FPWD</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>REMIND</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Katy Warr">katy_warr</reporter>
          <assigned_to name="Katy Warr">katy_warr</assigned_to>
          <cc>bob</cc>
    
    <cc>dug</cc>
          
          <qa_contact name="notifications mailing list for WS Resource Access">public-ws-resource-access-notifications</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>23244</commentid>
    <comment_count>0</comment_count>
    <who name="Katy Warr">katy_warr</who>
    <bug_when>2009-01-26 13:58:32 +0000</bug_when>
    <thetext>Eventing spec section 5.6 EventSourceEnableToProcess

Consider allowing subscribing clients to be able to distinguish between a temporary fault (such as event source has too many subscribers) and a permanent fault (such as endpoint is no longer an event source).  This would allow clients to retry only in cases of temporary failure.

We could do this via differing subcodes or different detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23576</commentid>
    <comment_count>1</comment_count>
    <who name="Robert Freund">bob</who>
    <bug_when>2009-02-09 00:53:01 +0000</bug_when>
    <thetext>Proposals from http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jan/0062.html
Suggestion 1: Introduction of &quot;retryAfter&quot;
------------------------------------------

Introduce an optional retryAfter element  (in homage to ws-addressing soap 
;o) ) in the detail of EventSourceUnableToProcess and UnableToRenew. 
Absence of the retryAfter element would mean: don&apos;t bother to retry. 

This suggestion has the advantage that it reuses an existing pattern from 
another spec.  It also is more useful to the client as it gives some 
indication as to when it might be worth retrying.  This may be useful (for 
example) if an event source had too many subscribers and was therefore 
being taken off-line for a while.

Here&apos;s an example fault using this suggestion:

 &lt;S:Fault&gt;
   &lt;S:Code&gt;
     &lt;S:Value&gt;
        S:Sender
     &lt;/S:Value&gt;
     &lt;S:Subcode&gt;
        &lt;S:Value&gt;wse:EventSourceUnableToProcess&lt;/S:Value&gt;
     &lt;/S:Subcode&gt;
   &lt;/S:Code&gt;
   &lt;S:Reason&gt;
     &lt;S:Text xml:lang=&quot;en&quot;&gt;The event source has too many 
subscribers&lt;/S:Text&gt;
   &lt;/S:Reason&gt;
   &lt;S:Detail&gt;
     &lt;wse:RetryAfter&gt;1000&lt;/wse:RetryAfter&gt;
   &lt;/S:Detail&gt; 
 &lt;/S:Fault&gt;


Required Changes to the specification:

1) Add to Section 5:Faults

Fault detail elements:

The following element is used to convey additional information in the 
faults.
Retry After
  The following describes the &lt;wse:RetryAfter&gt; element:
  /wse:RetryAfter
  This element (whose content is of type xs:unsignedLong) is a suggested 
minimum duration in milliseconds to wait before retransmitting the 
message. Omission of this element indicates that a retry is never likely 
to succeed.
  /wse:RetryAfter/@{any}
  Optional extensibility attributes that do not affect processing.

2) Add &quot;&lt;wsa:RetryAfter&gt; Optional&quot; to the [Detail] section of 5.6 
EventSourceUnableToProcess and 5.7 UnableToRenew


Suggestion 2: PermanentFailure Subsubcode
-----------------------------------------

A simpler, but less powerful solution, would be to enable an event source 
to set a subsubcode in the fault to indicate that the error was permanent. 
 Absence of this subsubcode would indicate to clients that it may be worth 
retrying the request.

Here&apos;s an example fault using this suggestion:

  &lt;S:Fault&gt;
   &lt;S:Code&gt;
     &lt;S:Value&gt;
        S:Sender
     &lt;/S:Value&gt;
     &lt;S:Subcode&gt;
        &lt;S:Value&gt;wse:EventSourceUnableToProcess&lt;/S:Value&gt;
        &lt;S:Subcode&gt;wse:PermanentFailure&lt;/S:Subcode&gt;
     &lt;/S:Subcode&gt;
   &lt;/S:Code&gt;
   &lt;S:Reason&gt;
     &lt;S:Text xml:lang=&quot;en&quot;&gt;The endpoint is no longer acting as an event 
source&lt;/S:Text&gt;
   &lt;/S:Reason&gt;

  &lt;/S:Fault&gt;

Required Changes to the specification:

1) Section 5 Faults.
In the table following &quot;The definitions of faults use the following 
properties:&quot;
change the text in the subcode row from 
&quot;The fault subcode&quot; 
to 
&quot;The fault subcode (with optional nested subcode)&quot;.

2)Change [subcode] row of section of 5.6 EventSourceUnableToProcess and 
5.7 UnableToRenew to:

wse:EventSourceUnableToProcess
The EventSourceUnableToProcess subcode can be further narrowed in scope by 
use of an optional nested subcode &lt;wse:PermanentFailure&gt;. Inclusion of 
this nested subcode indicates that a retry is never likely to succeed.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23871</commentid>
    <comment_count>2</comment_count>
    <who name="Robert Freund">bob</who>
    <bug_when>2009-02-23 15:15:44 +0000</bug_when>
    <thetext>Resolved 2009-02-17 with suggestion 1 in comment#1</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>