while implementing the OCP server prototype, I got two questions
regarding the CE message:
0a. While TE has a result parameter, CE has not.
Both have an optional error parameter.
I know we had this discussion on the list but cannot
Section 8.13: "error ... that cannot be expressed via result"
What kind of error could that be?
I cannot think of a good example. An explicit error flag was added
because Oskar Batuner suggested that abnormal termination must be
distinguished from a normal (but possibly also erroneous) termination.
Oskar suggested a dedicated "xaction-abort" message or similar.
Somebody pointed out that the same semantics can be expressed via
special bit in a result code, but we may want to be explicit and have
an "error" flag.
We should make a decision how to express the "abnormal termination"
For me defining a result code value as status or error would work good enough.
Such as in HTTP and many other protocols. 2xx success, 4xx and 5xx errors.
2. The CE messages implies closing of all open transactions.
I would like to restrict this to happen only for the error case.
Only if the processor wants to close the connection but does not
expect to get any response for open transactions.
If a transaction should close without error, a TE
message must be sent.
I am still fine that TE implies AME.
This should be already the case, essentially. Perhaps we need to
polish documentation. AME means "I am done sending my data". AME does
not imply disinterest in the other side data. TE means "I am no longer
interested in this transaction". TE implies disinterest in other side
data for the same transaction. TE does not imply disinterest in other
transactions on the same connection. CE means "I am not longer
interested in anything on this connection and am going to close it".
CE does not imply disinterest in other connections.
Does this semantics meet your needs?
Did you change your mind or is there a misunderstanding?
In another mail your wrote that the AME messages in my example
http://www.martin-stecher.de/opes/sample1.html are obsolete.
But if the OPES processor sends TE before it receives all data from the callout
servr, it signals disinterest which is wrong. The callout server often needs a
signal to know that no DUM messages will show up in this transaction and to
return the last chunk of data.