|
| IliTransactionManager () |
| Initializes an anonymous transaction manager.
|
|
IlBoolean | accept () |
| Accepts all recorded events. More...
|
|
void | addErrorSink (IliErrorSink *sink) |
| Adds an error sink to the transaction manager. More...
|
|
IlBoolean | cancel () |
| Cancels all recorded events. More...
|
|
IlInt | getEventCount () const |
| Returns the number of events recorded in the transaction manager. More...
|
|
IliTable * | getEventTable (IlInt idx) const |
| Returns an event table. More...
|
|
EventType | getEventType (IlInt idx) const |
| Returns an event type. More...
|
|
const char * | getName () const |
| Returns the transaction manager name. More...
|
|
IlBoolean | hasAName () const |
| Indicates whether the transaction manager has a name. More...
|
|
IlBoolean | isRecording () const |
| Returns IlTrue if the transaction manager has been started and if events should be recorded. More...
|
|
IlBoolean | isStarted () const |
| Returns IlTrue if the transaction manager has been started. More...
|
|
void | recordDeleteRow (IliTable *tbl, IlInt row) |
| This member function should be called just before a row is deleted. More...
|
|
void | recordExchangeRows (IliTable *tbl, IlInt row1, IlInt row2) |
| This member function should be called when a row in the table has been exchanged with another. More...
|
|
void | recordInsertRow (IliTable *tbl, IlInt row, const IliTableBuffer *buff) |
| This member function should be called when a row is inserted. More...
|
|
void | recordMoveRow (IliTable *tbl, IlInt from, IlInt to) |
| This member function should be called when a row is moved to another position. More...
|
|
void | recordUpdateRow (IliTable *tbl, IlInt row, const IliTableBuffer *buff) |
| This member function should be called when a row is updated. More...
|
|
void | removeErrorSink (IliErrorSink *sink) |
| Removes an error sink from this transaction manager. More...
|
|
void | start () |
| Starts the transaction manager.
|
|
void | stop () |
| Stops the transaction manager.
|
|
IlInt | getRefCount () const |
| Returns the reference count of the object. Initially, this property is set to 0 . More...
|
|
void | lock () const |
| Increments the reference count of the object.
|
|
void | unLock () const |
| Decrements the reference count of the object. More...
|
|
Table class.
Library: dataccess
The IliTransactionManager
class manages so-called local transactions where one or more IliTable
objects can defer the propagation of changes they undergo until a later function call occurs. The transaction manager is responsible for recording all these changes as they happen so that it can do one of the following:
-
Revert the
IliTable
objects to their initial state if the transaction is canceled.
-
Direct the
IliTable
objects to propagate these changes to their remote storage manager. (This applies only to two-tier table objects.)
- See also
IliTable
.
Accessors
Accessors provide a scriptable and uniform way to inspect and modify an object by using its base class methods IlvValueInterface::queryValue()
, IlvValueInterface::queryValues()
, IlvValueInterface::changeValue()
, IlvValueInterface::changeValues()
. This class defines the following accessors:
Data accessors
Method accessors
[start]: The following Rogue Wave Views Script code assigns the same transaction manager to two given IliTable
objects and then starts the transaction manager:
var tbl_EMP = IliRepository.EMP_DS.table;
var tbl_DEPT = IliRepository.DEPT_DS.table;
tbl_EMP.transactionManagerName = 'TM_1';
tbl_DEPT.transactionManagerName = 'TM_1';
var tm = tbl_EMP.transactionManager;
tm.start();
[errorSink]: The sink parameter can be one of the following:
-
An
IliErrorList
object var errList = new IliErrorList();
tm.addErrorSink(errList);
-
An
IliObserver
object whose func property contains a Rogue Wave Views Script function having the following signature: fct(IliErrorMessage msg)
function OnError(msg) {
writeln(msg.prettyMessage);
}
tm.addErrorSink(new IliObserver(OnError));
Accepts all recorded events.
This typically involves having all two-tier tables propagate updates to their remote storage manager. If successful, the event count is reset to 0
. Otherwise, the event count remains unchanged. Note that if a two-tier table (such as an IliSQLTable
object) is involved in one or more of the events, a rollback should be issued by the user to its SQL session or else the state of the database transaction may become inconsistent with the state of the IliSQLTable
object. Events are accepted in order of occurrence (from the oldest to the most recent). In the case where one event fails, no attempt is made to accept the subsequent events in the chain and IlFalse
is immediately returned.
- Returns
IlTrue
if successful.