OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrm message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [wsrm] Discussion on Issues Rel 108 and 115


Sunil Kunisetty wrote:

>  
>  Tom,
>
>  Here are the consolidated list of problems with this proposal. Some 
> of them have
>  been already mentioned, just listing them again for completeness. 
> Some of them
>  are critical and some of them are minor:
>
First of all, I am proposing this syntax for discussion, to show how we 
could modify the syntax to make poll response more
functional.  I am not tied to this proposal strongly.  However, we have 
to decided whether poll is useful without fault information
being present.  The cost to make fault info present involves keeping a 
list of message ids for each fault code type which occurs, until
the group expires.

>  Conceptual changes (major):
>
>    1. Changes in persistence model:
>          1. We now end up persisting  non-expired some faulty
>             messages. Note that messages that caused
>             PermanentProcessingFailures may or not be persisted in the
>             first place.
>
The persistence involves saving the fault code for messages which were 
not delivered.  The alternative, is to have polling which gives no
information about the faults which casse messages not to be delivered.

>          1. Definition of MessageOrder and DuplicateElimination has to
>             change (slightly) since we persist faulty messages also.
>             So a duplicate message is deleted only if the earlier
>             message was not faulted. Something similar has to be said
>             for Message Ordering.
>
I do not understand.  A faulted message is not delivered, and that is 
all that matter as far as duplicate elimination is concerned. 
A duplicate is
 not be delivered if the earlier message was delivrered.  The poll 
reporting syntax has nothing to do with the definitions of
duplicate elimination.  Same for message ordereing, do not deliver if 
the prior is not delivered.

>  Conceptual changes (minor):
>
>    1. Poll response will  now be different than Callback and Response
>       reply pattern responses. So implementation logic to handle them
>       will have to be different.
>
The semanitics of response reply is that it only holds the ack for one 
message.  IT IS DIFFERENT semantically.  The syntax allows
the response to carry multiple messages, however for Response reply 
pattern only one message may be acked.  The callback allows
multiple acks but only one fault to be reported.  The new proposal for 
poll response allows multiple acks and multiple fault info to be reported.

>    1. Have to be mentioned that only non-expired message faults will
>       be sent back.
>
agree

>    1. Have to be mentioned that not all non-expired faulty message's
>       faults can be sent back as some messages can cause fatal errors
>       (those that cause PermanentProcessingFailures faults).
>
If the receiving rmp can send the fault on a response or a callback, why 
could it not send it on a poll response?

> Problems with the proposed schema (minor, can be fixed):
>
>    1. Both RefToMessageIds and RefToFaults doesn't have minOccurs=0,
>       so essentially you cannot send either just one fault or one
>       regular RefToMessageId. If you add minOccurs=0 to both the
>       subelements, then a PollResponse could be empty. Schema
>       validation could be difficult in that case.
>
The intent is to allow zero or more fauld codes to be sent.  For each 
fault code, there must be at least one message that had that fault.

>    1. RefToFaults should not extend RmBaseType as only top-level
>       elements (Header elements) should extend it. Sub-elements
>       shouldn't extend it. Because RefToFaults extends RmBaseType, it
>       has soap:mustUnderstand=true on a sub-element, which doesn't
>       make sense.
>
I agree, i just cribbed together a schema since you asked for one.  This 
is an easy fix, as you say.

>    1. If we have to go this route, it will be much simpler to add an
>       attribute (faultCode) to SequenceNumber rather than add a new
>       RefToFaults element.
>

>  While we can still address all the above either explicitly saying so 
> in the specification,
>  it will have a big impact on the schema and specification and will 
> delay the public draft
>  atleast by a month. What concerns me more is why this issue is being 
> raised so
>  late in the game, when we already decided not to have this fault 
> sending feature for polls
>  long time back. I wish the issue was raised at that time only.

The issue has been raised, not by me but by Tony Graham, both at the jan 
f2f and on last week's call..

The alternative resolution for this issue (other than enhancing the 
schema) is for us to live with polling having no ability to report fault 
information.



>  -Sunil
>
> Tom Rutt wrote:
>
>> These issues deal with the semantics of poll response for messages which
>> were not delivered due to a fault
>>
>> Current semantics of returning fault are as follows:
>>
>> For resposne reply pattern a single message fault is returned in the
>> response to the reliable request.
>>
>> For callback reply pattern, a single message fault is returned in the
>> callback containing the Fault element.
>>
>> It is not clearly stated, but the receving RMP could batch a bunch of
>> acks in a single callback message, but there is not way to do this
>> for faults.
>>
>> Currently there is not way to indicate in a response to a poll that a
>> message was not delivered due to  a fault.  The response to the
>> poll merely lists all message IDs in the poll range which were
>> delivered.  Messages not in that list may be held, or may have been not
>> delivered due to a fault condition.
>>
>> A fault element in a response to a poll, only indicates a problem wiht
>> the poll request itself.  It cannot be used to indicate a fault on a 
>> prior
>> reliable messasge request.
>>
>> The current Response syntax is as follows:
>>
>> <!--
>>
>>  Response Header Type and it's elements
>>
>>   -->
>> - <#> <xsd:complexType name="*ResponseType*">
>> - <#> <xsd:complexContent>
>> - <#> <xsd:extension base="*wsrm:RmBaseType*">
>> - <#>       <xsd:sequence>
>>               <xsd:element name="*RefToGroupId*"
>> type="*wsrm:ResponseElementType*" maxOccurs="*unbounded*" />
>>      </xsd:sequence>
>>   </xsd:extension>
>>  </xsd:complexContent>
>> </xsd:complexType>
>>
>> We could add a new element to the responst type as follows
>>
>> <xsd:complexType name="*ResponseType*">
>> - <#> <xsd:complexContent>
>> - <#> <xsd:extension base="*wsrm:RmBaseType*">
>> - <#>       <xsd:sequence>
>>               <xsd:element name="*RefToGroupId*"
>> type="*wsrm:ResponseElementType*" maxOccurs="*unbounded*" />
>>            <xsd:element name="*RefToFaults*" type="*wsrm:FaultsRefType*"
>> maxOccurs="*unbounded*" />
>>
>>      </xsd:sequence>
>>   </xsd:extension>
>>  </xsd:complexContent>
>> </xsd:complexType>
>>
>> <xsd:complexType name="*FaultsRefType*">
>> - <#> <xsd:complexContent>
>> - <#>       <xsd:sequence>
>>                <xsd:element name="*FaultCode*" type="xsd:string"
>> maxOccurs="*1*" />
>>               <xsd:element name="*RefToGroupId*"
>> type="*wsrm:ResponseElementType*" maxOccurs="*unbounded*" />
>>     </xsd:sequence>
>> </xsd:complexContent>
>> </xsd:complexType>
>>
>> An example of the structure of the RefToFaults element (repeated here
>> twice) would be as follows
>>
>>    <RefToFaults>
>>
>>          <FaultCode>  processingError </FaultCode>
>>
>>           <RefToGroupID> ... list of message ids in group a which had 
>> processing error fault ... </RefToGroupID>
>>            <RefToGroupID> ... list of message ids , in group b which 
>> had processing error fault ... </RefToGroupID>
>>     </RefToFaults>
>>
>>    <RefToFaults>
>>
>>          <FaultCode>  BadHeader </FaultCode>
>>
>>           <RefToGroupID ... list of message ids  in group a which had 
>> Bad header fault ... </RefToGroupID>
>>
>>     </RefToFaults>
>>
>> The major problem with this is the requirmenet for the receiver to 
>> remember which fault codes arose for each non-delivered message.
>>
>> However, it would give full functionality to the poll response.
>>
>> Tom Rutt
>>
>> -- 
>>
>> ----------------------------------------------------
>> Tom Rutt                email: tom@coastin.com; trutt@fsw.fujitsu.com
>> Tel: +1 732 801 5744          Fax: +1 732 774 5133
>>
>> To unsubscribe from this mailing list (and be removed from the roster 
>> of the OASIS TC), go to 
>> http://www.oasis-open.org/apps/org/workgroup/wsrm/members/leave_workgroup.php.
>>


-- 
----------------------------------------------------
Tom Rutt		email: tom@coastin.com; trutt@fsw.fujitsu.com
Tel: +1 732 801 5744          Fax: +1 732 774 5133






[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]