Instructs the SQL module processor to execute module language procedures in the context of a particular distributed transaction. When you use this qualifier, SQL generates an additional parameter for the procedures and places the parameter as the last parameter declared in the procedure. Following are the options you can specify with the CONTEXT= qualifier: o NONE Specifies that the SQL module processor does not add a context parameter to any procedure in the module. o ALL Specifies that the SQL module processor adds a context parameter to every procedure in the module. o procedure-list Specifies that the SQL module processor adds a context parameter to each procedure listed. If you specify an entry name for a procedure in the list, the SQL module processor changes the name of that procedure to the name specified. For example, you can specify the following qualifier on the command line: /CONTEXT=(OPEN_PROC :OPEN_PROC_DIST, FETCH_PROC :FETCH_PROC_DIST,- CLOS_PROC :CLOS_PROC_DIST) SQL passes the context parameter to the OPEN_PROC, FETCH_ PROC, and CLOS_PROC procedures and gives them the new names specified. For more information, see the Oracle Rdb7 Guide to Distributed Transactions. Your application must use the context structure to pass the address of the distributed TID from the host language program to procedures in the module that are involved in the distributed transaction. You pass the context structure to procedures that contain executable SQL statements, except statements that you cannot execute when a transaction is already started or statements that you cannot use when you explicitly call the DECdtm system services. the Oracle Rdb SQL Reference Manual lists the nonexecutable statements that do not take a context structure. You can also use the CONTEXT qualifier to specify a new name for a procedure. Qualifiers used with the CONTEXT qualifier specify which procedures receive context parameters, and whether or not the names of the procedures are changed. Because you cannot use batch-update transactions with distributed transactions, you should define the SQL$DISABLE_CONTEXT logical name as True before you start a batch-update transaction. (Distributed transactions require that you are able to roll back transactions. Because batch-update transactions do not write to recovery-unit journal (.ruj) files, batch-update transactions cannot be rolled back.) If you attempt to start a distributed transaction using a batch- update transaction, what happens depends upon whether you call the DECdtm system services implicitly or explicitly and which SQL statement you use to start the transaction: o If you start a batch-update transaction and explicitly call the DECdtm system services, SQL returns an error at compile time. o If you start a batch-update transaction and implicitly call the DECdtm system services, SQL takes the following actions: - If you use a SET TRANSACTION statement with the BATCH UPDATE clause, SQL starts a nondistributed transaction. - If you use a DECLARE TRANSACTION statement with the BATCH UPDATE clause, SQL returns an error at compile time. The two-phase commit protocol applies only to distributed transactions. For more information about distributed transactions, see the Oracle Rdb7 Guide to Distributed Transactions.