IBM OS/2 LAN Server REXX Utility DLL


Inf-HTML [About][Toc][Index] 0.9b (c) 1995 Peter Childs


NetMisc(NETERRORLOGREAD)


The function returns read enries from the error log.   
Syntax 

MyRc = NetMisc(NETERRORLOGREAD, 'errInfo', SrvName)

  
Parameters 
The parameters required and returned are: 
'errInfo'   The error information and control variable, which is divided 
            into: 
   o errInfo.openflags 
     The read operation control flags. The values controlling the read 
     operation are: 
     Value Read direction
     ----- --------------
       0   Read the oldest records in the error log first
     
       1   Read the newest records first
     
     
     Value Record read options
     ----- -------------------
       0   Read sequentially from the beginning
     
       2   Read from the nth. record specified
           in the errInfo.offset parameter
     
     
     
     A value of 3 for this variable is identical to read the newest 
     records first and read from the record number as specified in the 
     errInfo.offset parameter errInfo.openflags 
     The default value is 0 which is identical to read the oldest records 
     first and read sequentially 
   o errInfo.offset 
     This parameter specifies the record number the read operation should 
     be starting from. It requires that the errInfo.openflags has the 
     value 2 included 
   o errInfo.buffer 
     The size of the internal working buffer. The value has a maximum of 
     64KB. The default value is 4KB. 
   o errInfo.resume 
     The error log can be processed in multiple steps. Specify 
     'INITRESUME' first time and 'RESUME' in next following calls to the 
     procedure. See also errInfo.bytesavail 
     The default operation is to neglect this parameter 
   o errInfo.bytesavail 
     The errInfo.bytesavail variable returns information about the amount 
     if data available. It is only valid if errInfo.resume is specified. 
     If errInfo.bytesavail is not 0, then more data is available in the 
     error log. Continue to call the function with errInfo.resume equal to 
     'RESUME' until the parameter errInfo.bytesavail returns a 0 value 
   o errInfo.count 
     The number of error log entries returned. The value can be 0 
   o errInfo.i.time 
     The time as the error log entry i was inserted to the log file 
   o errInfo.i.errcode 
     The error code reported in the log file 
   o errInfo.i.component 
     The reporting component 
   o errInfo.i.nstrings 
     The number of text strings related to the error log entry i 
   o errInfo.i.string.n 
     The nth text string for the error log entry i 
   o errInfo.i.rawlength 
     The associated raw data length. This value will be 0 is now raw data 
     is associated to the error log entry i 
   o errInfo.i.rawdata 
     The raw data available. This variable is valid only if 
     errInfo.i.rawlength is different from 0 
SrvName     The computer name of the server to perform the operation on. 
            Use the value '' for a local computer 
  
Example   

/* Read error log entries on server */
call RxFuncAdd 'LoadLsRxutFuncs', 'LSRXUT', 'LoadLsRxutFuncs'
call LoadLsRxutFuncs

NETERRORLOGREAD = 650
SrvName         = '\\DOMAIN_CONTRLR'

myRc = NetMisc(NETERRORLOGREAD, 'errInfo', SrvName)

if myRc <> '0' then do
 say 'Got error from NetMisc() ' myRc
 exitRc = 9
end
else do
 say 'Bytes available:  ' errInfo.bytesavail
 say 'Number of entries:' errInfo.count

 do i = 1 to errInfo.count
  say
  say 'Time:           ' errInfo.i.time
  say 'Error Code:     ' errInfo.i.errcode
  say 'Component:      ' errInfo.i.component
  say 'Text strings:   ' errInfo.i.nstrings
  if errInfo.i.nstrings <> 0 then do
   do j = 1 to errInfo.i.nstrings
    say 'String text:    ' errInfo.i.string.j
   end
  end
  say
  say 'Raw data length:' errInfo.i.rawlength
  if errInfo.i.rawlength <> 0 then do
   do j = 1 to 5
    say C2X(substr(errInfo.i.rawdata,j,1))
   end
  end
 end

 exitRc = 0
end

call DropLsRxutFuncs
call RxFuncDrop 'LoadLsRxutFuncs'

exit exitRc

  
Example Output   

Bytes available:   0
Number of entries: 1

Time:            Mon Sep  5 13:14:01 1994

Error Code:      99
Component:       MY_PROC_1
Text strings:    2
String text:     Error occurred in function error handler
String text:     The server computer name was not specified

Raw data length: 32
00
01
02
03
04


Example using RESUME operation and record offset   

/* Read error log entries on server using RESUME operation */
call RxFuncAdd 'LoadLsRxutFuncs', 'LSRXUT', 'LoadLsRxutFuncs'
call LoadLsRxutFuncs

NETERRORLOGREAD = 650
SrvName = ''

entries = 0
errInfo.resume    = 'INITRESUME'
errInfo.buffer    = 512
errInfo.openflags = 2
errInfo.offset    = 145
SrvName           = '\\DOMAIN_CONTRLR'

call theProc

if errInfo.bytesavail <> 0 then do

 errInfo.resume    = 'RESUME'
 errInfo.openflags = 0  /* This must be 0 or myRc=2440 */

 do while errInfo.bytesavail <> 0
  call theProc
 end

end

call DropLsRxutFuncs
call RxFuncDrop 'LoadLsRxutFuncs'

exit exitRc

/*************************/
/* Get error log entries */
/*************************/
theProc:

myRc = NetMisc(NETERRORLOGREAD, 'errInfo', SrvName)

if myRc <> '0' then do
 say 'Got error from NetMisc() ' myRc
 exitRc = 9
 call DropLsRxutFuncs
 call RxFuncDrop 'LoadLsRxutFuncs'
 exit exitRc
end
else do
 say 'Bytes available:  ' errInfo.bytesavail
 say 'Number of entries:' errInfo.count

 do i = 1 to errInfo.count
  say
  say 'Time:           ' errInfo.i.time
  say 'Error Code:     ' errInfo.i.errcode
  say 'Component:      ' errInfo.i.component
  say 'Text strings:   ' errInfo.i.nstrings
  if errInfo.i.nstrings <> 0 then do
   do j = 1 to errInfo.i.nstrings
    say 'String text:    ' errInfo.i.string.j
   end
  end
  say
  say 'Raw data length:' errInfo.i.rawlength
  if errInfo.i.rawlength <> 0 then do
   do j = 1 to 5
    say C2X(substr(errInfo.i.rawdata,j,1))
   end
  end
 end

 exitRc = 0
end

return



Inf-HTML End Run - Successful