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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-msg message

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


Subject: [ebxml-msg] ConversationId's status attribute


I heard from Ralph Berwanger that you discussed my suggestion regarding
ConversationId in previous teleconference on Monday 10, but did not
reach conclusion. So I'd like to show my suggestion and its rationale
again.

Suggestion:
  Add status attribute to ConversationId element. The status attribute
  takes one of following four values:

       Start:  First message in messages belong with the conversation.
       Middle: A message except for first and last message in messages
               belong with the conversation.
       End:    Last message in messages belong with the conversation.
       Alone:  First and last message in the conversation which consist
               of only one message. It MUST be specified when the
               conversation have only one message.

Rationale:
  The Receiving MSH needs to know when conversation ends. Because the
  Receiving MSH has to hold the last message's SequenceNumber of the
  conversation in persistent storage for guarantee of message order
  until the conversation ends. If the Receiving MSH misses the end of
  conversation, the SequencNumber information remains in persistent
  storage forever.
  
  If we add the status attribute to ConversationId element, the
  Receiving MSH can know the end of conversation and can remove the
  SequencNumber information of conversation at correct time.

  As Marty mentions, even if we don't add the status attribute to
  ConversationId element, the Receiving Application can notify the
  Receiving MSH of the status of conversation (Start, End, etc.) instead.
  But I think it is not good idea. Because,
  
    - If the Sending Application also notifies the Sending MSH of the
      status of conversation, why same information should be notified
      from the Receiving Application too? If the status information from
      the Sending Application is not same as the status information from
      the Receiving Application, which is correct?
    - How and when the Receiving Application notifies the Receiving MSH
      of the status of conversation? The Receiving MSH will passes
      received message to the Receiving Application through the
      application's callback routine asynchronously. Thus if we force
      the Receiving Application to notify the Receiving MSH of the end
      of conversation, the Receiving Application has to call the
      Receiving MSH's API to notify the end of conversation after the
      last message in the conversation was passed. It makes complex of
      MSH's API and add extra work to the Receiving Application.
    - If unexpected error occurs in business process and the Sending
      Application decides to terminate the conversation emergency at
      unexpected time in the business process definition, how do the
      Receiving Application know the termination of the conversation
      without the status attribute of the ConversationId element?

  Adding status attribute to ConversationId element can resolve the
  problems above.
  
  A conversation is initiated by the Sending Application and the
  ConversationId value is also determined by the Sending Application and
  then propagated to the Receiving Application. Thus the conversation's
  status should also be specified by the Sending Application and then
  propagated to the Receiving Application. I think it is the natural way.


Regards, 

--
SHIMAMURA Masayoshi <shima.masa@jp.fujitsu.com>
TEL:+81-45-476-4590(ext.7128-4241)  FAX:+81-45-476-4726(ext.7128-6783)
Planning Dep., Strategic Planning Div., Software Group, FUJITSU LIMITED



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


Powered by eList eXpress LLC