midrange.com code scratchpad
Name:
Monitor connections to the IBM i
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
09/07/2021 06:04:34 pm
IP:
Logged
Description:
Monitor connections to the IBM i.
Code:
  1.  
  2.      **  Program . . : CBX105
  3.      **  Description : Print TCP/IP connection status
  4.      **  Author  . . : Carsten Flensburg
  5.      **  Published . : Club Tech iSeries Programming Tips Newsletter
  6.      **  Date  . . . : August 13, 2003
  7.      **
  8.      **
  9.      **  Program summary
  10.      **  ---------------
  11.      **
  12.      **  Object - User space APIs:
  13.      **    QUSCRTUS       Create user space    Creates a user space in either
  14.      **                                        user domain or system domain.
  15.      **                                        Only user domain user spaces are
  16.      **                                        accessible by the user space APIs.
  17.      **
  18.      **    QUSDLTUS       Delete user space    Deletes the user space specified.
  19.      **
  20.      **    QUSPTRUS       Retrieve pointer to  The address of the first byte
  21.      **                   user space           of the storage allocated by the
  22.      **                                        user space requested is returned.
  23.      **
  24.      **
  25.      **  Communication - TCP/IP management APIs:
  26.      **    QtocRtvTCPA       Retrieve TCP/IP   Retrieves TCP/IPv4 and TCP/IPv6
  27.      **                      attributes        (V5R2) stack attributes.
  28.      **
  29.      **    QtocLstNetCnn     List network      Returns a non-detailed list of
  30.      **                      connections       network connections based on a
  31.      **                                        set of selection criteria defined
  32.      **                                        in the list qualifier parameter.
  33.      **
  34.      **    QtocRtvNetCnnDta  List network      Retrieves detailed information
  35.      **                      connection data   and connection totals for the
  36.      **                                        specified network connection.
  37.      **
  38.      **
  39.      **  Sequence of events:
  40.      **    1. The current operational status of the TCP/IP stack is retrieved
  41.      **       to ensure that TCP/IP connection information is available.
  42.      **
  43.      **    2. A user space is created and a list of the current TCP/IP network
  44.      **       connections is loaded to the user space.
  45.      **
  46.      **    3. For each TCP/IP network connection retrieved from user space a
  47.      **       report line is printed and subsequently the associated network
  48.      **       connection data are retrieved.
  49.      **
  50.      **    4. The based data and list structures are allocated to the storage
  51.      **       adresses defined by the offsets found in the basic and additional
  52.      **       information API formats.
  53.      **
  54.      **    5. A report line is printed for each of the servicing jobs associated
  55.      **       with the current network connection.
  56.      **
  57.      **    6. Finally the user space is deleted, explicitly allocated storage
  58.      **       freed and the program is terminated.
  59.      **
  60.      **
  61.      **  Programmer's notes:
  62.      **    Earliest release program will run: V5R1
  63.      **
  64.      **    The examples here are all retrieving information about TCP/IPv4
  65.      **    stacks and connections. As of V5R2 new API formats are available
  66.      **    for retrieval of similar TCP/IPv6 stack and connection information.
  67.      **
  68.      **    Be careful to allocate sufficient storage for the return structure
  69.      **    of the QtocRtvNetCnnDta API initially. The returned value for bytes
  70.      **    actually available might not include the additional structures,
  71.      **    Socket options and Associated jobs/tasks.
  72.      **
  73.      **    The QtocRtvNetCnnDta API has a reported problem involving a memory
  74.      **    leak. The following PTFs have been released to fix the problem:
  75.      **      R510  SI09122   1000
  76.      **      R520  SI09175   1000
  77.      **
  78.      **
  79.      **  Compile options:
  80.      **
  81.      **    CrtRpgMod Module( CBX105 )  DbgView( *LIST )
  82.      **
  83.      **    CrtPgm    Pgm( CBX105 )
  84.      **              Module( CBX105 )
  85.      **
  86.      **-- Header specifications:  --------------------------------------------**
  87.      H Option( *SrcStmt ) dftactgrp(*no) actgrp('QILE')
  88.      **-- Printer file:  -----------------------------------------------------**
  89.      FQSYSPRT   O    F  132        Printer  InfDs( PrtLinInf )  OflInd( *InOf )
  90.      **-- Printer file information:  -----------------------------------------**
  91.      D PrtLinInf       Ds
  92.      D  PlOvfLin                      5i 0  Overlay( PrtLinInf: 188 )
  93.      D  PlCurLin                      5i 0  Overlay( PrtLinInf: 367 )
  94.      D  PlCurPag                      5i 0  Overlay( PrtLinInf: 369 )
  95.      **-- System information:  -----------------------------------------------**
  96.      D                SDs
  97.      D  PsPgmNam         *Proc
  98.      **-- Global declarations:  ----------------------------------------------**
  99.      D Lix             s             10u 0
  100.      D Dix             s             10u 0
  101.      D BytAlc          s             10u 0
  102.      D UsrSpc          c                   'LSTNETCNN QTEMP'
  103.      **
  104.      D Time            s              6s 0
  105.      D NbrRcds         s             10u 0
  106.      D TcpCnnStt       s              4a
  107.      D ConOpnTyp       s              3a
  108.      **-- Tcp state table:  --------------------------------------------------**
  109.      D SttTbl          Ds
  110.      D  TcpStt                        5a   Dim( 12 )
  111.      D                               60a   Overlay( SttTbl )
  112.      D                                     Inz( 'LST  SYNR SYNS EST  FIN1 FIN2 +
  113.      D                                           CLO2 CLO1 LACK WAIT CLO  n/s ')
  114.      **-- Open type table:  --------------------------------------------------**
  115.      D OpnTbl          Ds
  116.      D  OpnTyp                        4a   Dim( 3 )
  117.      D                               12a   Overlay( OpnTbl )
  118.      D                                     Inz( 'PSV ACT n/s ' )
  119.      **-- Api error data structure:  -----------------------------------------**
  120.      D ApiError        Ds
  121.      D  AeBytPro                     10i 0 Inz( %Size( ApiError ))
  122.      D  AeBytAvl                     10i 0 Inz
  123.      D  AeMsgId                       7a
  124.      D                                1a
  125.      D  AeMsgDta                    128a
  126.      **
  127.      **-- API Header information:  -------------------------------------------**
  128.      D HdrInf          Ds                  Based( pHdrInf )
  129.      D  HiUsrSpcNamSp                10a
  130.      D  HiUsrSpcLibSp                10a
  131.      **-- User space generic header:  ---------- -----------------------------**
  132.      D UsrSpcHdr       Ds                  Based( pUsrSpc )
  133.      D  UsOfsHdr                     10i 0 Overlay( UsrSpcHdr: 117 )
  134.      D  UsOfsLst                     10i 0 Overlay( UsrSpcHdr: 125 )
  135.      D  UsNumLstEnt                  10i 0 Overlay( UsrSpcHdr: 133 )
  136.      D  UsSizLstEnt                  10i 0 Overlay( UsrSpcHdr: 137 )
  137.      **-- User space pointers:  ----------------------------------------------**
  138.      D pUsrSpc         s               *   Inz( *Null )
  139.      D pHdrInf         s               *   Inz( *Null )
  140.      D pLstEnt         s               *   Inz( *Null )
  141.      **-- TCP/IP attributes:  ------------------------------------------------**
  142.      D TCPA0100        Ds
  143.      D  T1BytRtn                     10u 0
  144.      D  T1BytAvl                     10u 0
  145.      D  T1StkSts                     10u 0
  146.      D  T1ActTim                     10u 0
  147.      D  T1LstStrD                     8a
  148.      D  T1LstStrT                     6a
  149.      D  T1LstEndD                     8a
  150.      D  T1LstEndT                     6a
  151.      D  T1StrJob                     10a
  152.      D  T1StrUsr                     10a
  153.      D  T1StrNbr                      6a
  154.      D  T1StrJobInt                  16a
  155.      D  T1EndJob                     10a
  156.      D  T1EndUsr                     10a
  157.      D  T1EndNbr                      6a
  158.      D  T1EndJobInt                  16a
  159.      D  T1OfsAddInf                  10u 0
  160.      D  T1LenAddInf                  10u 0
  161.      **-- Connection list qualifier:  ----------------------------------------**
  162.      D NCLQ0100        Ds
  163.      D  N1NetCnnTyp                  10a   Inz( '*ALL' )
  164.      D  N1LstRqsTyp                  10a   Inz( '*ALL' )
  165.      D                               12a   Inz( *Allx'00' )
  166.      D  N1LocAdrLow                  10u 0 Inz( 0 )
  167.      D  N1LocAdrUpr                  10u 0 Inz( 0 )
  168.      D  N1LocPortLow                 10u 0 Inz( 0 )
  169.      D  N1LocPortUpr                 10u 0 Inz( 0 )
  170.      D  N1RmtAdrLow                  10u 0 Inz( 0 )
  171.      D  N1RmtAdrUpr                  10u 0 Inz( 0 )
  172.      D  N1RmtPortLow                 10u 0 Inz( 0 )
  173.      D  N1RmmPortUpr                 10u 0 Inz( 0 )
  174.      **-- Connection list entry:  --------------------------------------------**
  175.      D NCNN0100        Ds                  Based( pLstEnt )
  176.      D  C1RmtAdr                     15a
  177.      D                                1a
  178.      D  C1RmtAdrBin                  10u 0
  179.      D  C1LocAdr                     15a
  180.      D                                1a
  181.      D  C1LocAdrBin                  10u 0
  182.      D  C1RmtPort                    10u 0
  183.      D  C1LocPort                    10u 0
  184.      D  C1TcpState                   10u 0
  185.      D  C1IdlTimMs                   10u 0
  186.      D  C1BytIn                      20u 0
  187.      D  C1BytOut                     20u 0
  188.      D  C1ConOpnTyp                  10u 0
  189.      D  C1NetCnnTyp                  10a
  190.      D                                1a
  191.      **-- Following fields were added in V5R2 - do not reference in V5R1:
  192.      D                                1a
  193.      D  C1AscUsrPrf                  10a
  194.      D                                2a
  195.      **-- Socket connection request:  ----------------------------------------**
  196.      D SocCnnRqs       Ds
  197.      D  ScProtocol                   10u 0
  198.      D  ScLocIpAdr                   10u 0
  199.      D  ScLocPortNbr                 10u 0
  200.      D  ScRmtIpAdr                   10u 0
  201.      D  ScRmtPortNbr                 10u 0
  202.      **-- Connection data:  --------------------------------------------------**
  203.      D NCND0100        Ds                  Based( pCnnDta )
  204.      D  D1BytRtn                     10u 0
  205.      D  D1BytAvl                     10u 0
  206.      D  D1CurCnnEst                  10u 0
  207.      D  D1ActOpn                     10u 0
  208.      D  D1PasOpn                     10u 0
  209.      D  D1AttOpnFail                 10u 0
  210.      D  D1EstNxtRes                  10u 0
  211.      D  D1SegSnt                     10u 0
  212.      D  D1SegRtr                     10u 0
  213.      D  D1SegRsn                     10u 0
  214.      D  D1SegRcv                     10u 0
  215.      D  D1SegRcvErr                  10u 0
  216.      D  D1DtgSnt                     10u 0
  217.      D  D1DtgRcv                     10u 0
  218.      D  D1DtgNdlPort                 10u 0
  219.      D  D1DtgNdlOde                  10u 0
  220.      D  D1AddInfOfs                  10u 0
  221.      D  D1AddInfLen                  10u 0
  222.      **
  223.      D NCND0200        Ds                  Based( pCnnDtaInf )
  224.      D  D2Protocol                   10u 0
  225.      D  D2LocIpAdr                   10u 0
  226.      D  D2LocPortNbr                 10u 0
  227.      D  D2RmtIpAdr                   10u 0
  228.      D  D2RmtPortNbr                 10u 0
  229.      D  D2RndTrpTim                  10u 0
  230.      D  D2RndTrpVar                  10u 0
  231.      D  D2OutBytBuf                  10u 0
  232.      D  D2UsrSndNxt                  10u 0
  233.      D  D2SndNxt                     10u 0
  234.      D  D2SndUnack                   10u 0
  235.      D  D2OutPshNbr                  10u 0
  236.      D  D2OutUrgNbr                  10u 0
  237.      D  D2OutWdwNbr                  10u 0
  238.      D  D2IncBytBuf                  10u 0
  239.      D  D2RcvNxt                     10u 0
  240.      D  D2UsrRcvNxt                  10u 0
  241.      D  D2IncPshNbr                  10u 0
  242.      D  D2IncUrgNbr                  10u 0
  243.      D  D2IncWdwNbr                  10u 0
  244.      D  D2TotRtr                     10u 0
  245.      D  D2CurRtr                     10u 0
  246.      D  D2MaxWdwSiz                  10u 0
  247.      D  D2CurWdwSiz                  10u 0
  248.      D  D2LastUpd                    10u 0
  249.      D  D2LastUpdAck                 10u 0
  250.      D  D2CngWdw                     10u 0
  251.      D  D2SlwStrThr                  10u 0
  252.      D  D2MaxSegSiz                  10u 0
  253.      D  D2InzSndSeqNb                10u 0
  254.      D  D2InzRcvSeqNb                10u 0
  255.      D  D2CnnTspLayer                10u 0
  256.      D  D2TcpState                   10u 0
  257.      D  D2CnnOpnTyp                  10u 0
  258.      D  D2IdlTimMs                   10u 0
  259.      D  D2IpOpt                      40a
  260.      D  D2BytIn                      10u 0
  261.      D  D2BytOut                     10u 0
  262.      D  D2SocState                   10u 0
  263.      D  D2SocLstOfs                  10u 0
  264.      D  D2SocEntNbr                  10u 0
  265.      D  D2SocEntLen                  10u 0
  266.      D  D2JobLstOfs                  10u 0
  267.      D  D2JobEntNbr                  10u 0
  268.      D  D2JobEntLen                  10u 0
  269.      **-- Following fields were added in V5R2 - do not reference in V5R1:
  270.      D  D2AscUsrPrf                  10a
  271.      D                                2a
  272.      **-- Socket options list:
  273.      D SocOptLst       Ds                  Based( pSocOptLst )
  274.      D  SoSocOpt                     10u 0
  275.      D  SoOptVal                     10u 0
  276.      **-- Associated jobs/tasks list:
  277.      D JobCnnLst       Ds                  Based( pJobCnnLst )
  278.      D  JcFmtEnt                     10u 0
  279.      D  JcTskNam                     16a
  280.      D  JcJobNam                     10a
  281.      D  JcJobUsr                     10a
  282.      D  JcJobNbr                      6a
  283.      D  JcJobId                      16a
  284.      **-- Create user space: -------------------------------------------------**
  285.      D CrtUsrSpc       Pr                  ExtPgm( 'QUSCRTUS' )
  286.      D  CsSpcNamQ                    20a   Const
  287.      D  CsExtAtr                     10a   Const
  288.      D  CsInzSiz                     10i 0 Const
  289.      D  CsInzVal                      1a   Const
  290.      D  CsPubAut                     10a   Const
  291.      D  CsText                       50a   Const
  292.      **-- Optional 1:
  293.      D  CsReplace                    10a   Const Options( *NoPass )
  294.      D  CsError                   32767a         Options( *NoPass: *VarSize )
  295.      **-- Optional 2:
  296.      D  CsDomain                     10a   Const Options( *NoPass )
  297.      **-- Delete user space: -------------------------------------------------**
  298.      D DltUsrSpc       Pr                  ExtPgm( 'QUSDLTUS' )
  299.      D  DsSpcNamQ                    20a   Const
  300.      D  DsError                   32767a         Options( *VarSize )
  301.      **-- Retrieve pointer to user space: ------------------------------------**
  302.      D RtvPtrSpc       Pr                  ExtPgm( 'QUSPTRUS' )
  303.      D  RpSpcNamQ                    20a   Const
  304.      D  RpPointer                      *
  305.      D  RpError                   32767a         Options( *NoPass: *VarSize )
  306.      **-- Retrieve TCP/IP attributes:  ---------------------------------------**
  307.      D RtvTcpA         Pr                  ExtProc( 'QtocRtvTCPA' )
  308.      D  RtRcvVar                  32767a          Options( *VarSize )
  309.      D  RtRcvVarLen                  10i 0 Const
  310.      D  RtFmtNam                      8a   Const
  311.      D  RtError                   32767a          Options( *VarSize )
  312.      **-- List network connections:  -----------------------------------------**
  313.      D LstNetCnn       Pr                  ExtProc( 'QtocLstNetCnn' )
  314.      D  LcSpcNamQ                    20a   Const
  315.      D  LcFmtNam                      8a   Const
  316.      D  LcCnnQual                    64a   Const
  317.      D  LcCnnQualSiz                 10i 0 Const
  318.      D  LcCnnQualFmt                  8a   Const
  319.      D  LcError                   32767a         Options( *VarSize )
  320.      **-- Retrieve network connection data:  ---------------------------------**
  321.      D RtvCnnDta       Pr                  ExtProc( 'QtocRtvNetCnnDta' )
  322.      D  RcRcvVar                  65535a         Options( *VarSize )
  323.      D  RcRcvVarLen                  10i 0 Const
  324.      D  RcFmtNam                      8a   Const
  325.      D  RcSocCnnRqs                  20a   Const
  326.      D  RcError                   32767a         Options( *VarSize )
  327.      **
  328.      **-- Mainline:  ---------------------------------------------------------**
  329.      **
  330.      C                   Time                    Time
  331.      C                   Except    Header
  332.      C                   Dow       1=1
  333.      **
  334.      C                   CallP     RtvTcpA( TCPA0100
  335.      C                                    : %Size( TCPA0100 )
  336.      C                                    : 'TCPA0100'
  337.      C                                    : ApiError
  338.      C                                    )
  339.      **
  340.      C                   Select
  341.      C                   When      AeBytAvl    > *Zero
  342.      **-- Error occurred...
  343.      C                   Except    NoStack
  344.      **
  345.      C                   When      T1StkSts    = 0             Or
  346.      C                             T1StkSts    = 2
  347.      **-- TCP/IP stack not operational...
  348.      C                   Except    NoStack
  349.      **
  350.      C                   Other
  351.      C                   Eval      BytAlc      = 32767
  352.      C                   Eval      pCnnDta     = %Alloc( BytAlc )
  353.      **
  354.      C                   CallP     CrtUsrSpc( UsrSpc
  355.      C                                      : *Blanks
  356.      C                                      : 65535
  357.      C                                      : x'00'
  358.      C                                      : '*CHANGE'
  359.      C                                      : *Blanks
  360.      C                                      : '*YES'
  361.      C                                      : ApiError
  362.      C                                      )
  363.      **
  364.      C                   CallP     LstNetCnn( UsrSpc
  365.      C                                      : 'NCNN0100'
  366.      C                                      : NCLQ0100
  367.      C                                      : %Size( NCLQ0100 )
  368.      C                                      : 'NCLQ0100'
  369.      C                                      : ApiError
  370.      C                                      )
  371.      **
  372.      C                   If        AeBytAvl    = *Zero
  373.      C                   ExSr      PrcLstEnt
  374.      C                   EndIf
  375.      **
  376.      C                   CallP     DltUsrSpc( UsrSpc
  377.      C                                      : ApiError
  378.      C                                      )
  379.      **
  380.      C                   DeAlloc                 pCnnDta
  381.      C                   EndSl
  382.      C                   If        %Shtdn
  383.      C                   Goto      End
  384.      C                   EndIf
  385.      C                   EndDo
  386.      **
  387.      C     End           Tag
  388.      C                   If        NbrRcds    =  *Zero
  389.      C                   Except    NoRcds
  390.      C                   EndIf
  391.      **
  392.      C                   Eval      *InLr       = *On
  393.      C                   Return
  394.      **
  395.      **-- Process list entries:  ---------------------------------------------**
  396.      C     PrcLstEnt     BegSr
  397.      **
  398.      C                   CallP     RtvPtrSpc( UsrSpc
  399.      C                                      : pUsrSpc
  400.      C                                      )
  401.      **
  402.      C                   Eval      pHdrInf     = pUsrSpc + UsOfsHdr
  403.      C                   Eval      pLstEnt     = pUsrSpc + UsOfsLst
  404.      **
  405.      C                   For       Lix         = 1  to UsNumLstEnt
  406.      C                   If        C1LocPort = 8190
  407.      **
  408.      C                   ExSr      PrtCnnDtl
  409.      **
  410.      C                   Select
  411.      C                   When      C1NetCnnTyp = '*TCP'
  412.      C                   Eval      ScProtocol  = 1
  413.      **
  414.      C                   When      C1NetCnnTyp = '*UDP'
  415.      C                   Eval      ScProtocol  = 2
  416.      **
  417.      C                   Other
  418.      C                   Eval      ScProtocol  = 0
  419.      C                   EndSl
  420.      C
  421.      C                   If        ScProtocol  > 0
  422.      **
  423.      C                   Eval      ScLocIpAdr  = C1LocAdrBin
  424.      C                   Eval      ScLocPortNbr= C1LocPort
  425.      C                   Eval      ScRmtIpAdr  = C1RmtAdrBin
  426.      C                   Eval      ScRmtPortNbr= C1RmtPort
  427.      **
  428.      C                   DoU       D1BytAvl   <= BytAlc
  429.      **
  430.      C                   If        D1BytAvl    > BytAlc
  431.      C                   Eval      BytAlc      = D1BytAvl
  432.      C                   Eval      pCnnDta     = %ReAlloc( pCnnDta: BytAlc )
  433.      C                   EndIf
  434.      **
  435.      C                   CallP     RtvCnnDta( NCND0100
  436.      C                                      : BytAlc
  437.      C                                      : 'NCND0200'
  438.      C                                      : SocCnnRqs
  439.      C                                      : ApiError
  440.      C                                      )
  441.      C                   EndDo
  442.      **
  443.      C                   If        AeBytAvl    = *Zero
  444.      C                   ExSr      PrcDtaEnt
  445.      C                   EndIf
  446.      C                   EndIf
  447.      **
  448.      C                   EndIf
  449.      C                   If        Lix         < UsNumLstEnt
  450.      C                   Eval      pLstEnt     = pLstEnt + UsSizLstEnt
  451.      C                   EndIf
  452.      C                   EndFor
  453.      **
  454.      C                   EndSr
  455.      **-- Process data list entries:  ----------------------------------------**
  456.      C     PrcDtaEnt     BegSr
  457.      **
  458.      C                   Eval      pCnnDtaInf  = pCnnDta + D1AddInfOfs
  459.      **
  460.      **-- Socket options:
  461.      C                   Eval      pSocOptLst  = pCnnDta + D2SocLstOfs
  462.      C                   For       Dix         = 1  to D2SocEntNbr
  463.      **
  464.      **--
  465.      C                   If        Dix         < D2SocEntNbr
  466.      C                   Eval      pSocOptLst  = pSocOptLst + D2SocEntLen
  467.      C                   EndIf
  468.      C                   EndFor
  469.      **
  470.      **-- Associated jobs:
  471.      C                   Eval      pJobCnnLst  = pCnnDta + D2JobLstOfs
  472.      **
  473.      C                   For       Dix         = 1  to D2JobEntNbr
  474.      **
  475.      C                   If        JcFmtEnt    = 1
  476.      C                   ExSr      PrtJobDtl
  477.      C                   EndIf
  478.      **
  479.      C                   If        Dix         < D2JobEntNbr
  480.      C                   Eval      pJobCnnLst  = pJobCnnLst + D2JobEntLen
  481.      C                   EndIf
  482.      C                   EndFor
  483.      **
  484.      C                   EndSr
  485.      **-- Print connection detail line:  -------------------------------------**
  486.      C     PrtCnnDtl     BegSr
  487.      **
  488.      C                   If        PlCurLin    > PlOvfLin - 3
  489.      C                   Except    Header
  490.      C                   EndIf
  491.      **
  492.      C                   Eval      TcpCnnStt  =  TcpStt(C1TcpState  + 1)
  493.      C                   Eval      ConOpnTyp  =  OpnTyp(C1ConOpnTyp + 1)
  494.      **
  495.      C                   Eval      NbrRcds    =  NbrRcds + 1
  496.      C                   Except    CnnDtl
  497.      **
  498.      C                   EndSr
  499.      **-- Print connection job detail line:  ---------------------------------**
  500.      C     PrtJobDtl     BegSr
  501.      **
  502.      C                   If        PlCurLin    > PlOvfLin - 2
  503.      C                   Except    Header
  504.      C                   EndIf
  505.      **
  506.      C                   Except    JobDtl
  507.      **
  508.      C                   EndSr
  509.      **-- Print file definition:  --------------------------------------------**
  510.      OQSYSPRT   EF           Header         2  3
  511.      O                       UDATE         Y      8
  512.      O                       Time                18 '  :  :  '
  513.      O                                           75 'Print TCP/IP connection -
  514.      O                                              status'
  515.      O                                          107 'Program:'
  516.      O                       PsPgmNam           118
  517.      O                                          126 'Page:'
  518.      O                       PAGE             +   1
  519.      OQSYSPRT   EF           Header         1
  520.      O                                           14 'Remote address'
  521.      O                                           25 '- Port'
  522.      O                                           40 'Local address'
  523.      O                                           52 '- Port'
  524.      O                                           58 'Type'
  525.      O                                           70 'Open'
  526.      O                                           76 'State'
  527.      O                                           90 'Idle time ms'
  528.      O                                          111 'Bytes in'
  529.      O                                          132 'Bytes out'
  530.      **
  531.      OQSYSPRT   EF           CnnDtl         1
  532.      O                       C1RmtAdr            15
  533.      O                       C1RmtPort     3     25
  534.      O                       C1LocAdr            42
  535.      O                       C1LocPort     3     52
  536.      O                       C1NetCnnTyp         64
  537.      O                       ConOpnTyp           69
  538.      O                       TcpCnnStt           76
  539.      O                       C1IdlTimMs    3     90
  540.      O                       C1BytIn       3    111
  541.      O                       C1BytOut      3    132
  542.      **
  543.      OQSYSPRT   EF           JobDtl         1
  544.      O                                           22 'Connection job name:'
  545.      O                       JcJobNam            33
  546.      O                                           41 '- user:'
  547.      O                       JcJobUsr            52
  548.      O                                           61 '- number:'
  549.      O                       JcJobNbr            68
  550.      **
  551.      OQSYSPRT   EF           NoStack     1
  552.      O                                           26 '(TCP/IP stack not active)'
  553.      OQSYSPRT   EF           NoRcds      1
  554.      O                                           26 '(No entries found)'
© 2004-2019 by midrange.com generated in 0.007s valid xhtml & css