//Artefact:ModelClass/org/uml/stereotypes/operations/Transactional
Description
Usage example:
<Signature ReturnType="void">
<Argument Name="MyArgumentOne" Type="TypeOne" XMTransactional.Managed="true"/>
<Argument Name="MyArgumentTwo" Type="TypeTwo" />
<Argument Name="MyArgumentThree" Type="TypeThree" XMTransactional.Managed="true"/>
</Signature>
XMTransactional.Managed means that the annotated attribute is
introduced into the transaction scope. If XMTransactional.ReadAnew
is 'false', it is merged into the scope (i.e. using values and
version from the calling scope), while if it is 'true' it is
(freshly) read into the scope (i.e. read from the database by
using it's object id).
XMTransactional.Managed can also be used to annotate the operation
itself. In that case, the "this" instance is managed, and a local
variable "this_in_transaction" is created.
Normally, if XMTransactional.Managed is used, the instance is
also refreshed in the container after completion of the transcation.
if XMTransactional.Isolated is used, this is not the case, and
the container transaction is not modified.
XMTransactional.Independent, XMTransactional.Embedded and
XMTransactional.Final are passed to TSMContext.openScope and
finally to TSMBackend.createScope.
XMTransactional.PerCall is presently not used.
XMTransactional.Return can be used to annotate one of the
arguments. If so, it's value is used as the return value
from the operation, properly remerged into the calling
scope.