Previous Topic
Table Of Contents
Parent Topic
Next Topic

High-Level Language SWSINFO (SWCPGI) Function

Related Topics

Web Server API Function Index

May be used in Shadow/REXX
May be used from Other REXX Interpreters
HLL entry point name is SWCPGI

SWSINFO is the Web Server API function used to fetch information about the current transaction execution environment and return it to the caller.

CALL Arguments

The SWSINFO function takes five arguments. All five arguments must be specified on the call.

HLL Argument Type I/O Description of Argument
1 HDBC USAGE POINTER PTR Input The Web Server connection handle. The connection handle is an opaque, four-byte address pointer. The connection handle is currently not used, and must be set to zero (NULL).
2 UDWORD PIC S9(5) COMP FIXED BIN(31) Input A four-byte binary integer indicating the information item to be returned by the function. Specify any one of the manifest constants, shown in the table below, to indicate the data item to be fetched.
3 UCHAR * PIC X(nnn) CHAR(nnn) Output The data buffer to receive the fetched information. Depending on the value of the second argument, the returned data may be a null-terminated string; a 16-bit integer value, a 32-bit flag-word value, or a 32-bit signed or unsigned integer.
4 SDWORD PIC S9(5) COMP FIXED BIN(31) Input The size of the data buffer area given by the third argument.
5 SDWORD * PIC S9(5) COMP FIXED BIN(31) Output Return area receiving the total size, in bytes, of the requested information value, regardless of whether the fetched value could be completely stored within the buffer area. For character format data items, which are null terminated, this value does not include the null termination byte.

For requests which return character data: If the total size of the requested information is greater than or equal to the size of the data buffer the returned character string is truncated, and a null termination byte is placed into the last available of the buffer area.

For requests which return any other data type: The value given by the forth argument is ignored. The size of the return buffer area is assumed to be at least four bytes.

The following table shows the values which can be specified for the second argument. Note that for COBOL, the value names contain hyphens instead of underbar characters.

Manifest Constant Value Returned  
SWS_GET_ASID Return the ASID as a 2-byte binary value.
SWS_GET_BYTES Return the number of saved bytes
SWS_GET_CLOCK Return the current TOD clock value as an 8-byte binary TOD format. Note that this is the unadjusted STCK value.
SWS_GET_CONNECTID Return the unique CONNECTION ID value as a 4-byte binary value.
SWS_GET_CPUDELTA Return the 8-byte task CPU time delta value.
SWS_GET_CPUTIME Return the 8-byte task CPU time value in TOD format. Divide by 4096 to get microseconds.
SWS_GET_DB2PLAN Return the DB2 plan name.
SWS_GET_DB2SUBSYS Return the DB2 subsystem name.
SWS_GET_EVENTTYPE Return an indication of the event type associated with the invocation of the rule/program.
SWS_GET_HOSTDOMAIN Return the host (server) domain associated with the current request.
SWS_GET_HOSTNAME Return the HOSTNAME (CLIENT) associated with the current request.
SWS_GET_HTTPDOMAIN Return a string containing the full server domain name, including the 'http://' prefix string, and TCP/IP port number. The port number is omitted if set to the standard HTTP port (80).
SWS_GET_HTTPSDOMAIN Return a string containing the full server domain name, including the 'https://' prefix string, and TCP/IP port number. The string returned can be used to construct HTML HREF tags which utilize an SSL connection. The port number is omitted in the string if set to the standard SSL HTTPS port (443).

A NULL string is returned if the server is not configured to support SSL connections.

SWS_GET_IPADDRESS Return the IP Address for the current connection. The returned value is 4-byte binary value.
SWS_GET_JOBNAME Return the MVS job name related to the current primary address space.
SWS_GET_LASTCONNECTID Return the last CONNECTION ID used on the current link.
SWS_GET_LASTUSERID Returns the last Userid used on the current link
SWS_GET_LINKTYPE Return the link type for the current request
SWS_GET_LU Return the LU NAME for the current request
SWS_GET_MAINPGM Return the name of the main REXX program or rule.
SWS_GET_MODE Return the mode name for the current request
SWS_GET_PRODUCT Return the Product Identification string
SWS_GET_PRODUCTSTATUS Returns the current product status
SWS_GET_PROGRAM Return the name of the REXX program or rule.
SWS_GET_ROWS Return the number of source rows
SWS_GET_SEFFEATURE Returns a single blank if SEF is not enabled.
SWS_GET_SUBSYS Return the accessed subsystem ID from the current OPMS image.
SWS_GET_SUBSYSASID Return the ASID of the active subsystem from the real OPMS as a two-byte binary value.
SWS_GET_SMFID Return the SMFID of the MVS system.
SWS_GET_TASKTYPE Return the task type.
SWS_GET_TRANSTYPE Return the transaction program type.
SWS_GET_USERID Return the Userid value.
SWS_GET_VERSION Return the version string of the product subsystem under which this rule/program is running. 


Return Values

SWSINFO always sets a signed numeric return code value. Possible values are:

The operation succeeded. The requested data has been fetched and placed into the buffer area. The actual size of the data is set into the sixth argument.
The return buffer area was not large enough to store the fetched item. The fetched item was truncated. The size of the fetched item, before truncation, is returned to the sixth argument. For character data, a null termination byte is always placed into the last buffer position.
A parameter validation or run-time error was encountered. Error information is available using the SWSERROR function.
The request can not be processed because of a run-time environmental error. For example, you invoked the API service outside of a Web transaction procedure or from outside the server's address space. Use the server's wrap-around trace to obtain diagnostic information.
The connection handle argument is invalid. No error information can be returned using SWSERROR.

PL/I Example

Note that SWSGETINFO may be used as an alias for the pre-processor symbol SWSINFO.

    DCL  SCONN     PTR;                 /* Connection Handle       */
    DCL  SBUFF     CHAR(256);           /* Return Buffer area      */
    DCL  SBFSZ     FIXED BIN(31) INIT(256);  /*  Size of buffer    */
    DCL  SRTSZ     FIXED BIN(31);       /* Actual item size        */
    DCL  RC        FIXED BIN(31);       /* return code             */
    DCL  DMHX      FIXED BIN(31) BASED; /* Dummy Handle field      */
    ADDR(SCONN)->DMHX = 0;              /* Clear Connection Handle */
    CALL SWSINFO( SCONN                 /* fetch the IP address    */
                  SRTSZ );
    RC = PLIRETV();                     /* get return code         */
    IF RC ^= SWS_SUCCESS THEN           /* exit program if bad RC  */


C Example

Note that SWSGetInfo may be used as an alias for the pre-processor symbol SWSInfo.

    HDBC   sConn   = NULL;              /* Connection Handle       */
    char   sBuff[256];                  /* Return Buffer Area      */
    SDWORD sRTSZ;                       /* Return item size        */
    long   RC;                          /* return code             */
    rc = SWSInfo( &sConn,               /* obtain the IP Address   */
                  (SDWORD) sizeof(sBuff),
                  &sRTSZ );
    if (rc ^= SWS_SUCCESS) return;      /* exit program if bad RC  */


COBOL Example

    77  SCONN                USAGE IS POINTER.
    77  SBUFF                PIC X(80).
    77  SBFSZ                PIC S9(5) COMP VALUE 80.
    77  SRTSZ                PIC S9(5) COMP.