On Wed, 22 Jun 2011 12:36:13 -0500, Daniel Rose <[email protected]> 
wrote:

>I had a COBOL programmer ask me how they could get the LPAR name, 
SYSNAME,
>or SMFSID from a COBOL program.  I could not find a LE Function that would
>do that.  So, a co-worker located a sample program that chases controls to
>get that information.
>
>Does anybody know of any LE Functions or a cleaner way to do this.
>
>BTW, the programmer does not want to add a SORT step before the COBOL
>program nor do they want to change the execution JCL.  Hence the restriction
>of only obtaining this from inside the COBOL program.
>

AFAIK, there is no LE run-time service for this.
However, we use code similar to the quoted below to interrogate system 
control blocks and extract what we need.
 
The code addresses control blocks by manipulating POINTER data items, and by 
reference modifier in parentheses. The "Inspect" command translates x'FA' to 
the character A, x'FB' to B,...x'FF' to F.
 
CBL  QUOTE,OPT,DUMP,RENT,DATA(31)
       ID  Division.
        Program-ID.  SYSWALK.
       Environment  Division.
        Input-Output  Section.
       Data  Division.
        Working-Storage Section.
         01 F-B.
           05 PT4                                   Pointer.
           05 PL4      Redefines  PT4  PIC  9(7)  COMP-3.
           05 XL4      Redefines  PT4  PIC  X(4).
           05 ZL5                      PIC  9(5).
           05 CL4      Redefines  ZL5  PIC  X(4).
         01 Huge-Area.
           05 filler                   PIC  X(1024) Occurs 16383.
        Linkage Section.
         01 CB.
           05 PTR      Pointer  Occurs  512.
       Procedure  Division.
      *       Address PSA (zero address)
           Set  Address Of  CB   To  NULL
      *       Address CVT by picking 5th word of PSA (x'10')
           Set  Address Of  CB   To  PTR(5)
      *       Pick CVTDATE from CVT + x'38' (0cyydddF)
           Move  CB(57:4)        To  XL4
      *       Convert 0cyydddF to yyyydddF
           Add  1900000          To  PL4
           Display  "Date (yyyyddd): "  PL4
      *       Address SMCA by picking 50th word of CVT (x'C4')
           Set  Address Of  CB   To  PTR(50)
      *       Pick system name from SMCA + x'10'
           Display  "System name: "  CB(17:4)
      *       Address PSA (zero address) again
           Set  Address Of  CB   To  NULL
      *       Address CVT by picking 5th word of PSA (x'10')
           Set  Address Of  CB   To  PTR(5)
      *       Address System Residence UCB
           Set  Address Of  CB   To  PTR(13)
      *       Pick VOLSER at UCB + x'1C'
           Display  "SYSRES: "   CB(29:6)
      *       Pick Unit Address at UCB + x'4'
           Move  Zero            To  PL4
           Move  CB(5:2)         To  XL4(2:2)
           Move  PL4             To  ZL5
           Inspect  CL4  Replacing
                                    All "³" By "A"
                                    All "&#63637;" By "B"
                                    All "&#63638;" By "C"
                                    All "&#8206;" By "D"
                                    All "&#8207;" By "E"
                                    All "." By "F"
           Display  "SYSRES Address: "  CL4
      *       Address PSA (zero address) again
           Set  Address Of  CB   To  NULL
      *       Address CVT by picking 5th word of PSA (x'10')
           Set  Address Of  CB   To  PTR(5)
      *       Address ECVT (Extended CVT) at CVT + x'8C'
           Set  Address Of  CB   To  PTR(36)
       *       Pick sysplex-name at ECVT + x'8'
           Display  "SYSPLEX: "  CB(9:8)
      *       Pick hardware-name at ECVT + x'150'
           Display  "HWNAME: "   CB(337:8)
      *       Pick LPAR-name at ECVT + x'158'
           Display  "LPAR: "     CB(345:8)
      *       Pick VM-name at ECVT + x'160'
           Display  "VM: "       CB(353:8)
      *       Pick system VRM at ECVT + x'200'
           Display  "z/OS (vvrrmm): "   CB(513:6)
      *       Pick IPL parameter at ECVT + x'A8'
           Display  "LOAD parameter (iiiillpn): "   CB(169:8)
           Goback.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to