VMS Help  —  System Services, $JOIN RM
    Adds a new Resource Manager (RM) participant to a transaction.

    Format

      SYS$JOIN_RM  [efn] ,[flags] ,iosb ,[astadr] ,[astprm] ,rm_id

                   [,[tid] ,[part_name] ,[rm_context] ,[timout]

                   ,[bid]]

    C Prototype

      int sys$join_rm  (unsigned int efn, unsigned int flags, struct

                       _iosb *iosb, void (*astadr)(__unknown_params),

                       int astprm, unsigned int rm_id,...);

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 $JOIN_RM Option Flags. All undefined bits must
    be 0. If this argument is omitted, no flags are used.

    Table SYS-22 $JOIN_RM Option Flags

    Flag Name          Description

    DDTM$M_            Set this flag to specify that the new RM
    COORDINATOR        participant is to be a coordinator of the
                       transaction on this node.
    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.

    Refer to the VSI OpenVMS System Services Reference Manual to view
    the I/O status block diagram.

 astadr

    OpenVMS usage:ast_procedure
    type:         procedure entry mask
    access:       call without stack unwinding
    mechanism:    by reference
    The AST routine that is 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 $JOIN_RM service.

 astprm

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

 rm_id

    OpenVMS usage:identifier
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    The identifier of the RMI with which the new RM participant is
    associated. This identifies:

    o  Types of event that are to be reported to the new RM
       participant.

    o  Event handler to which these event reports are to be
       delivered, and the access mode in which its ASTs are to be
       fired.

    o  Minimum access mode that the new RM participant must be in to
       acknowledge one of these event reports by calling $ACK_EVENT.

    o  Whether or not the DECdtm transaction manager may log
       information about the new RM participant.

 tid

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

    If this argument is omitted (the default) or its value is zero,
    $JOIN_RM adds an RM participant to the default transaction of the
    calling process.

 part_name

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    The name of the new RM participant.

    Used by recoverable resource managers to specify the RM
    participant to use in a subsequent call to $GETDTI or $SETDTI
    during recovery.

    This argument has no effect if the RMI is volatile. If this
    argument is omitted (the default) or its value is zero, the name
    of the new RM participant is the same as that of the RMI with
    which it is associated.

    The string passed in this argument can be no longer than 32
    characters.

    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.

 rm_context

    OpenVMS usage:userarg
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    The context associated with the new RM participant. This is
    passed in the event reports subsequently delivered to the new
    RM participant.

    If this argument is omitted (the default) or is zero, the context
    associated with the new RM participant is the same as that of the
    RMI with which it is associated.

 timout

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

 bid

    OpenVMS usage:branch_id
    type:         octaword (unsigned)
    access:       write only
    mechanism:    by reference
    The identifier of an authorized branch (BID) that may be added
    to the transaction by a subsequent call to $START_BRANCH on the
    same node as that of the RMI. This argument is ignored if the
    DDTM$M_COORDINATOR flag is clear in the flags argument. The call
    to $START_BRANCH should specify the node of the RMI for the tm_
    name argument.
Close Help