Transact/iX A.04.00 [ COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.5 ] MPE/iX Communicators
COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.5
Transact/iX A.04.00
by Susan Scotten
Software Technology Division
This release of Transact/iX, A.04.00, adds seven enhancements.
SUPPORT OF TURBOIMAGE DYNAMIC ROLLBACK
The LOGTRAN verb has been extended to support TurboIMAGE Dynamic
Rollback. Dynamic Rollback allows uncommitted logical transactions to be
rolled back dynamically, online, while other database activity is
occurring. Access to Dynamic Rollback is provided by the addition of
modifiers XBEGIN, XUNDO, and XEND to the LOGTRAN verb.
A LOGTRAN(XUNDO) aborts the logical transaction and dynamically backs out
all the transactions started by the LOGTRAN(XBEGIN). A logical
transaction can also be rolled back automatically when the application
aborts or a system failure occurs within the transaction.
Users should see better performance with dynamic transactions than with
user logging.
The following example illustrates the use of Dynamic Rollback within the
Transact language.
SET(OPTION) NOLOCK;
LOGTRAN(XBEGIN) FLIGHT, "BEGIN - Add one passenger transaction",
LOCK(FLIGHT-MAST,ROSTER-DETL);
GET FLIGHT-MAST,LIST=(@);
IF (NUM-EMPTY-SEATS) <> 0 THEN
DO
LET (NUM-EMPTY-SEATS) = (NUM-EMPTY-SEATS) - 1;
UPDATE FLIGHT-MAST,LIST=(@),STATUS;
IF STATUS = 0 THEN
PUT ROSTER-DETL, LIST=(PASSENGER:FLIGHT),STATUS;
IF STATUS <> 0 THEN
LOGTRAN(XUNDO) FLIGHT, "ROLLBACK Add Passenger Failed";
DISPLAY "Transaction failed, contact system administrator.";
ELSE
LOGTRAN(XEND) FLIGHT, "END - Add one passenger";
DISPLAY "Passenger added.";
DOEND
ELSE
DO
DISPLAY "Sorry, no seats available at this time.";
LOGTRAN(XEND) FLIGHT, "END - of add passenger - no room";
DOEND;
RESET(OPTION) LOCK;
LIST=(#) OPTION ON FILE I/O VERBS
The LIST=(#) option of the file/database verbs allows programmers to
enumerate the data items of a MPE file, KSAM file, or a TurboIMAGE
dataset. The data items are specified in the order of their occurrence
in the physical record or form as defined in the data dictionary. This
order need not match the order of the data items in the list register.
This enhancement should help ease program maintenance.
BREAKPOINT SET ON DATA ITEM VALUE IN TRANDEBUG
The TRANDEBUG command DATA BREAK SET has been modified to allow
breakpoints based on the value of a data item. If a data value
breakpoint is set, anytime the item value changes and the desired
relation between the data item and the supplied value becomes true, a
breakpoint occurs. Valid relational operators are LT, LE, EQ, GE, GT,
and NE.
SYSTEM NAME INCLUDED IN ERROR MESSAGE
Error messages displayed at run-time includes the system name in which
the error occurred. This improves program debugging.
ARCHITECTED CALL INTERFACE
The Architected Call Interface (ACI) allows you to call an existing
Transact/iX subprogram from either COBOL or Pascal.
ACI is provided as a single intrinsic call. It provides a means of
invoking a Transact/iX system and then returning a status value that
indicates the success or failure of the call. It also allows data to be
passed by reference to the Transact/iX subprogram. These subprograms
must reside in an executable library (XL) that has been provided in the
RUN command.
ABILITY TO INITIALIZE ITEMS IN BINARY, HEX, OR OCTAL
The INIT option of DEFINE(ITEM) now allows you to initialize I, J, and K
type items to binary, hex, or octal values.
The primary use for initializing an item in terms of another base is for
setting the bit map parameter in PROC calls to option variable
intrinsics.
SUPPORT TURBOIMAGE CRITICAL ITEM UPDATE
Transact now supports TurboIMAGE critical item update with the UPDATE
verb and the REPLACE verb through the UPDATE option. Detail dataset
search and sort items can be updated with the UPDATE and REPLACE verbs if
the database has been opened with modes 1, 3, or 4.
MPE/iX Communicators