blob: 0a61de413642777dae51a9eafe1afa61cda205b7 [file] [log] [blame]
{\rtf1\ansi\deff1\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq0\fcharset0 Times New Roman;}{\f2\froman\fprq0\fcharset0 Times New Roman;}{\f3\fnil\fprq0\fcharset0 Tahoma;}}
{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033\snext1 Default;}
{\s2\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033\sbasedon1\snext2 Text body;}
{\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033\sbasedon2\snext3 List;}
{\s4\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ai\ltrch\dbch\af1\afs20\langfe255\ai\loch\f1\fs20\lang1033\i\sbasedon1\snext4 Caption;}
{\s5\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033\sbasedon1\snext5 Index;}
{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033\sbasedon2\snext6 Table Contents;}
{\s7\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ai\ab\ltrch\dbch\af1\afs24\langfe255\ai\ab\loch\f1\fs24\lang1033\i\b\sbasedon6\snext7 Table Heading;}
}
{\info{\creatim\yr2005\mo11\dy28\hr17\min44}{\revtim\yr1601\mo1\dy1\hr0\min0}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6450}}\deftab720
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Default;}}
{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \ltrpar\s1\cf1\ul\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs36\lang255\ab\ltrch\dbch\af1\afs36\langfe255\ab\loch\f1\fs36\lang1033\b {\loch\f1\fs36\lang1033\i0\b Scenario for Sandesha2}
\par \pard\plain \ltrpar\s1\cf1\ul\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs32\lang255\ab\ltrch\dbch\af1\afs32\langfe255\ab\loch\f1\fs32\lang1033\b
\par \pard\plain \ltrpar\s1\cf1\ul{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs32\lang255\ab\ltrch\dbch\af1\afs32\langfe255\ab\loch\f1\fs32\lang1033\b
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Sandesha2 is aims to use permanent storage to support true reliability. This document introduces a database schema that can be used to implement this. It also gives a scenario that explains how it is used.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\ul\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs32\lang255\ab\ltrch\dbch\af1\afs32\langfe255\ab\loch\f1\fs32\lang1033\b {\loch\f1\fs32\lang1033\i0\b Database schema}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b CreateSeq }
\par \trowd\trql\trleft-1080\trrh413\trpaddft3\trpaddt0\trpaddfl3\trpaddl10\trpaddfb3\trpaddb0\trpaddfr3\trpaddr10\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx1950\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx3960\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx8578
\pard\intbl\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 CreateSeqMsgId}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 InternalSequenceId{\*\bkmkstart DDE_LINK1}{\*\bkmkend DDE_LINK1}}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 SequenceId}
\cell\row\pard \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b Sender}
\par \trowd\trql\trleft-1065\trrh413\trpaddft3\trpaddt0\trpaddfl3\trpaddl10\trpaddfb3\trpaddb0\trpaddfr3\trpaddr10\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx811\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx1816\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx2940\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx4186\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx5251\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx6388\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx8354\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx9717
\pard\intbl\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 MessageId}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Key}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Sent Count}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 timeToSend}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Send (boolean)}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Resend}
\par \pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 (boolean)}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 InternalSequenceId}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 MessageType}
\cell\row\pard \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b NextMsg}
\par \trowd\trql\trleft-1065\trrh413\trpaddft3\trpaddt0\trpaddfl3\trpaddl10\trpaddfb3\trpaddb0\trpaddfr3\trpaddr10\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx3733\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx8580
\pard\intbl\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 SequenceId}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 NextMsgNoToProcess}
\cell\row\pard \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b Invoker Table}
\par \trowd\trql\trleft-1065\trrh413\trpaddft3\trpaddt0\trpaddfl3\trpaddl10\trpaddfb3\trpaddb0\trpaddfr3\trpaddr10\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx2625\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx5608\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx8580
\pard\intbl\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Key}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 MsgNo}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 sequenceId}
\cell\row\pard \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b SequenceProperty Table}
\par \trowd\trql\trleft-1050\trrh413\trpaddft3\trpaddt0\trpaddfl3\trpaddl10\trpaddfb3\trpaddb0\trpaddfr3\trpaddr10\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx2625\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx5608\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx8580
\pard\intbl\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 SequenceID}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Name}
\cell\pard\plain \intbl\ltrpar\s1\cf1\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Value}
\cell\row\pard \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ai\ltrch\dbch\af1\afs24\langfe255\ai\loch\f1\fs24\lang1033\i {\loch\f1\fs24\lang1033\i\b0 Here key is the id returned by the storage mechanism of Axis2 when a MessageContext get saved.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 There will be four handlers}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 RMServerInHandler}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 RMServerOutHandler}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 RMClientInHandler}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 RMClientOutHandler}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\ul\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs36\lang255\ab\ltrch\dbch\af1\afs36\langfe255\ab\loch\f1\fs36\lang1033\b {\loch\f1\fs36\lang1033\i0\b scenario }
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 Following scenario will further explain this.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\ul\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b Client Side}
\par \pard\plain \ltrpar\s1\cf1\ul\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1 When the user enters the first message {\b RMClientInHandler }will pause it and create new Create Sequence message. An entry to {\b CreateSeq Table }will be put as (msgIdOfCreateSeq , null).}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 Two entries will be put to }}{\loch\f1\fs24\lang1033\cf1{\b Retransmitter Table} for the Application message and the Create Sequence message. Send will be {\i false} for the application message and will be {\i true} for the create sequence message.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 A Retransmitter thread who keeps looking at }}{\loch\f1\fs24\lang1033\cf1{\b Retransmitter Table} will see that there is an entry with Send=true and LastSendTime=0. So it will send this message (this is the create sequence msg).}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 All subsequent application messages that come will be paused and entries will be added to }}{\loch\f1\fs24\lang1033\cf1{\b Retransmitter Table} with send=false.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 The Retransmitter thread will always re-send the messages that have passed the re-transmission interval since the last send time.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033 {\loch\f1\fs24\lang1033\i0\b0 \'85\'85\'85.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 Sometime later the client will receive a create sequence response message. It will update the sequence field of }}{\loch\f1\fs24\lang1033\cf1{\b CreateSeq Table}. Will remove the entry for the create sequence message from {\b Retransmitter Table} and will set the Send=true for all the messages
of that sequence (it can use the CreateSeqMsgId of {\b Retransmitter Table} to identify messages belong to that sequence).}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf1\ul\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ab\ltrch\dbch\af1\afs24\langfe255\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs24\lang1033\i0\b Server Side}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 In the server side, when }}{\loch\f1\fs24\lang1033\cf1{\b Server In Handler} receives a create sequence request he will add an entry to {\b NextMsg Table }as (generatedSeqId, 1). After that the create sequence response will be sent.}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 When }}{\loch\f1\fs24\lang1033\cf1{\b Server In Handler} receives an application response he will check {\b NextMsg Table} to make sure that it belong to a valid sequence (if not the message will be discarded). }
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 After that the message will be saved and an entry will be put to }}{\loch\f1\fs24\lang1033\cf1{\b StorageMap Table}. {\b Server In Handler} will check {\b NextMsg Table }to find out what the next message id that should be processed from that sequence (for in-order delivery assurance). If the obtain
ed NextMsgNoToProcess value is the message no. of the correct message, it will be processed. Otherwise it will be paused. }
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s1\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033{\loch\f1\fs24\lang1033\i0\b0\cf1{\b0\ulnone\i0\lang1033\fs24\f1 After letting a message to be processed, }}{\loch\f1\fs24\lang1033\cf1{\b Server In Handler} will check the {\b NextMsg }and {\b StorageMap }again to see weather there are any other processable messages.If there are it will let them be processed (by resuming the message context )}
\par \pard\plain \ltrpar\s1\cf1\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\afs24\langfe255\loch\f1\fs24\lang1033
\par }