Subject: transaction in H.248

From: Wai-tak Siu <[email-masked]>
Date: Mon, 15 Nov 1999 13:13:56 -0800

Hi,

    I have a few questions on how transactions are handled in error
cases.
    Scenario: A transaction consists of multiple commands, and the
transaction processing stops at the last command that generates an
error, unless the command is optional. The commands before the one that
generates the error are not rolled back.
    Question: Is the command that generates the error atomic, and
treated as if it has not been processed? Specifically, if this command
contains an EventDescriptor, will it not replace the existing one at the
termination?
    Making it a bit more complicated... If the command applies to
multiple terminations, and the command fails only at one termination T.
I suppose the descriptors of this command still apply to all
terminations other than T, and the whole transaction is stopped. Is my
interpretation correct?
    Thank you in advance for your explanations.

Regards,
Waitak
Cisco Systems

---

From: Vikas Bansal <[email-masked]>
Date: Tue, 16 Nov 1999 14:40:19 -0500

Wai-tak Siu wrote:

> error, unless the command is optional.

If a command is marked "optional", it means that the command may be executed

even if a previous command results in an error. So in case of an error,
stopping the transaction processing does not depend on whether the erred
command is optional or not, it only depends on whether the subsequent
command(s) are optional. Rephrasing ur sentence
"A transaction consists of multiple commands, and the
transaction processing stops at the last command that generates an
error, unless the SUBSEQUENT command(s) are optional AND gateway decides to
execute these optional commands".

> The commands before the one that

ok.

> contains an EventDescriptor, will it not replace the existing one at the

Gateway implementation should take care that any command which results in a
an error does not have any side effects. I suppose thats the way it should
work. The draft is silent about this.

> terminations other than T, and the whole transaction is stopped. Is my

The draft says "if a command contains a wildcarded TerminationID, the
command is attempted with each of the actual TermIds matching the wildcard.
A response within the TransactionReply is included for each matching TermID,

even if one or more instances generated an error".
So, ur interpretation is correct that the descriptors of the command spplies

to all terminations other than T.

Regards
Vikas Bansal
mailto:[email-masked]
http://www.ficon-tech.com

---

From: Wai-tak Siu <[email-masked]>
Date: Tue, 16 Nov 1999 11:51:38 -0800

Vikas,

> even if a previous command results in an error. So in case of an error,

Your interpretation of "optional" is contratry to what is described in the
specification, that "if an optional command results in an error, subsequent
commands in the Transaction will be executed." Therefore, whether to stop a
transaction or not DOES depend on whether the command that results in errors is
optional or not. I would keep my statement, hence my question, unchanged.

> work. The draft is silent about this.

This is exactly what I am asking for. If the protocol does not specify things
clearly, how can MGC's and MG's built from different implementations interact?
Developers are going to use their own assumptions.

Thanks!

Waitak
Cisco Systems