HELPLIB.HLB  —  System Services, $START BRANCH
    Adds a new branch to a transaction.

    Format

      SYS$START_BRANCH  [efn] ,[flags] ,iosb ,[astadr] ,[astprm]

                        ,tid ,tm_name ,bid [,[timout], [acmode],

                        [tx_class]]

    C Prototype

      int sys$start_branch  (unsigned int efn, unsigned int

                            flags, struct _iosb *iosb, void

                            (*astadr)(__unknown_params), int astprm,

                            unsigned int tid [4], void *tm_name,

                            unsigned int bid [4],...);

1  –  Arguments

 efn

    OpenVMS usage:ef_number
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Number of the event flag that is set when the service completes.
    If this argument is omitted, event flag 0 is used.

 flags

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Flags specifying options for the service. The flags argument is
    a longword bit mask in which each bit corresponds to an option
    flag. The $DDTMDEF macro defines symbolic names for these option
    flags, described in $START_BRANCH Option Flags. All undefined
    bits must be 0. If this argument is omitted, no flags are used.

    Table SYS-26 $START_BRANCH Option Flags

    Flag Name          Description

    DDTM$M_BRANCH_     Specifies that the new branch is
    UNSYNCHED          unsynchronized.

                       If this flag is clear, the new branch is
                       synchronized.
    DDTM$M_NONDEFAULT  Set this flag if you do not want the
                       transaction to be the default transaction
                       of the calling process. If this flag is
                       clear, the transaction becomes the default
                       transaction of the calling process.

                       An error is returned if this flag is clear
                       and the calling process has an current default
                       transaction.
    DDTM$M_SYNC        Specifies successful synchronous completion
                       by returning SS$_SYNCH. When SS$_SYNCH is
                       returned, the AST routine is not called, the
                       event flag is not set, and the I/O status
                       block is not filled in.

 iosb

    OpenVMS usage:io_status_block
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by reference
    The I/O status block in which the completion status of the
    service is returned as a condition value.

    To view the I/O status block diagram, see the VSI OpenVMS System
    Services Reference Manual.

 astadr

    OpenVMS usage:ast_procedure
    type:         procedure entry mask
    access:       call without stack unwinding
    mechanism:    by reference
    The AST routine executed when the service completes, if SS$_
    NORMAL is returned in R0. The astadr argument is the address
    of the entry mask of this routine. The routine is executed in
    the same access mode as that of the caller of the $START_BRANCH
    service.

 astprm

    OpenVMS usage:user_arg
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    The AST parameter passed to the AST routine specified by the
    astadr argument.

 tid

    OpenVMS usage:trans_id
    type:         octaword (unsigned)
    access:       read only
    mechanism:    by reference
    The identifier (TID) of the transaction to which the new branch
    will be added.

 tm_name

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    The name of the node on which the call was made to $ADD_BRANCH
    that authorized the new branch to be added to the transaction.
    Note that this cannot be a cluster alias.

    To ensure smooth operation in a mixed-network environment,
    refer to the chapter entitled Managing DECdtm Services in the
    VSI OpenVMS System Manager's Manual, for information on defining
    node names.

 bid

    OpenVMS usage:branch_id
    type:         octaword (unsigned)
    access:       read only
    mechanism:    by reference
    The identifier (BID) of the new branch that is to be added to the
    transaction.

    An BID value of zero is invalid.

 timout

    OpenVMS usage:date_time
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by reference
    Reserved to VSI.

 acmode

    OpenVMS usage:access_mode
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    The access mode of the new branch in this process. This is the
    least privileged mode that a caller must be in to remove this
    branch from the transaction by calling $END_BRANCH. Note that it
    can be removed from the transaction by calling $ABORT_TRANS from
    any access mode.

    This argument only influences the access mode of the first branch
    in this process. Subsequent branches have the same access mode
    as the first. The access mode of the new branch is the least
    privileged of:

    o  The access mode of the caller.

    o  The access mode specified by the acmode argument.

    Note that if a branch already exists in this process, then
    neither the access mode of the caller nor the access mode
    specified by the acmode argument may be less privileged than
    that branch.

    The default value of this argument is the access mode of the
    caller.

 tx_class

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    A string that specifies the transaction class for the transaction
    on the local node if the transaction does not already have a
    transaction class on the local node. This string is passed in the
    event reports delivered to Resource Manager identifiers (RMIs)
    and Resource Manager (RM) participants on the local node.

    This argument is ignored if the transaction already has a
    transaction class on the local node.

    This string must be no longer than 31 characters.
Close Help