edmiStartModelWriteTransaction
EdmiError edmiStartModelWriteTransaction(SdaiModel modelID);
Reserves exclusive write privileges to a model. Any number of clients may open a model for write access at the same time. This is possible because all persistent changes within model must be done within a model write transaction. Conflicts are avoided by only allowing one open model write transaction within a model at any point of time. If a client attempts to start a model write transaction while an other client has already reserved exclusive write privileges for him self by starting a model write transaction, the first client will have to wait until the ongoing transaction is either committed or aborted. In order to start a model write transaction, the model must be opened for write. Ordinary transactions may be nested within a model write transaction with edmiStartTransaction. However, model write transactions may not be nested within ordinary transactions. Closing a model write transaction is done by one of the following EDMInterface operations; edmiCommitTransaction, edmiAbortTransaction, edmiCommitAllTransactions, edmiAbortAllTransactions
Arguments
Type | Name | Comment |
SdaiModel | modelID | A numeric modelID that uniquely identifies the data model of interest in the EDMdatabase |
Return Value
Options
Example
EdmiError rstat; SdaiModel modId; . . . modeId = edmiGetModelBN("ourRepository", "ourModel"); /* Start outer model write X-action */ if (edmiStartModelWriteTransaction(modId)) { printf("\nError %d in edmiStartModelWriteTransaction: %s, rstat, edmiGetErrorText(rstat)); goto error; } /* Nested X-actions */ edmiStartTransaction(); . . . if (rstat) { edmiAbortTransaction(); } else { edmiCommitTransaction(); } /* Commit outer model write X-action */ edmiCommitTransaction(); . . .
See also
Filter by label
There are no items with the selected labels at this time.