There would seem to be
two possible reasons why BEGIN didn't work:
a) the
Factory has an internal problem - such as running out of
resources
b) the BEGIN has
an associated CONTEXT, but the BT identified in the CONTEXT is not in an
appropriate state to
enrol another Inferior.
The second can be
treated as a FAULT(wrong-state) - it's not strictly the state of the
Factory that is the problem, so this will need a bit of modification of the
explanation of WrongState (it will also mean the NOTE at the end of FAULT
description will need changing.)
Running out of resources
would seem to be the same as any other transient (one hopes) failure of a
BTP component to do what it is asked - FAULT(General) would seem
appropriate
Tony now writes: I agree with this. Also the
BEGIN may have incorrect parameter values or be malformed. The FAULT
message is the general negative reply and is the appropriate message to use as a
negative reply to begin. The FAULT message already has a number of fault
types which could be used. Also implementers could add qualifiers if there
are particular problems that could occur for which there does not seem to be an
appropriate fault-type and fault-data combination.
The definition of the FAULT message indicates that it is sent as a
reply to various messages to report an error
condition.
PS The spec. does not allow a 'Will not do' response to any
message - only a 'Can not do' response
Proposed Resolution:
No change apart from: modify the explanation of WrongState and
amend the NOTE at the end of FAULT description.
Change meaning of WrongState to: The message has arrived
when the recipient or the transaction is in an inappropriate
state.
If people feel that this is still not clear then could add a
paragraph just above section on 'Roles involved in the outcome relationships' )
line 588 in Version 0.9.1 to say.
The FAULT message is used on all the
relationships as a general negative reply to a
message. Thus all roles are required to be able to send and receive FAULT
messages, where appropriate, even though they are not shown in the list for
each role below.