VMS Help  —  SQLMOD72  SQLMOD Command Line, Arguments  CONTEXT=
    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.
Close Help