NETMASTER NCLs using LIST command running very slowly after the upgrade
search cancel

NETMASTER NCLs using LIST command running very slowly after the upgrade

book

Article ID: 137362

calendar_today

Updated On:

Products

CMDB for z/OS NetSpy Network Performance NetMaster Network Automation SOLVE NetMaster Network Management for SNA NetMaster Network Management for TCP/IP NetMaster File Transfer Management

Issue/Introduction

After the migration to Netmaster 12.2, an old and very simple NCL that is used very often, is running very slowly: in the previous version (12.1) it lasted 3 o 4 seconds,  now it takes more than 40 seconds to complete, so is almost unusable.

 NLC just lists some library members looking for a specific string ( the members are quite large : 34000 lines) :


&CONTROL NOTRACE NODUPCHK NOENDMSG NOINTLOG CMD LOOPCHK    

&write &ZGTIME11

&IF &PARMCNT NE 1 &THEN &DO                                            

  &WRITE COLOR=WHITE No parameter  has been entered. Clist ends.

  &END                                                                 

&DOEND  

&DSN1 = USRUTERM      --->>>>> 34000 lines

&DSN2 = USRVTERM      --->>>>> 2400 lines

&DSN3 = USRULCST      --->>>>> 1000 lines                                                    

&DSN4 = USRURTRM      --->>>>> 32000 lines    

&A = 1                                                              

&DOWHILE &A LE 4                                                          

  &FILEF = &DSN&A                                                         

  &GOSUB .CERCA                                                           

  &A = &A + 1                                                             

&DOEND                                                                    

&WRITE                                                                    

&WRITE ** Clist ends **                                              

&write &ZGTIME11                                                          

&END                                                                

-* it runs a string search in each table.   

-*                                                 

.CERCA                                                                    

&WRITE                                                                    

&WRITE          Search in table : &filef                            

&risp = 0                                                                 

&INTCMD -LI &FILEF ID=SICUR                                               

&DOWHILE &risp EQ 0                                                       

  &INTREAD STRING=(RIGA)                                                  

     &risp = &FNDSTR N03906 &RIGA                                         

     &chek = &FNDSTR &1 &RIGA                                             

     &IF &chek NE 0 &THEN &DO                                             

        &WRITE COLOUR=YELLOW &RIGA                                        

     &DOEND                                                               

  &DOEND                                                                  

&RETSUB                                                                   


Environment

Release : 12.2

Component : CA NetMaster Network Management for TCP/IP

Cause

 The I/O loader has changed in R12.2 which seems to have negatively impacted the LIST command especially when the member is large.

Resolution

The NCL code can be modified to use $DSCALL, similar to below.  Basically  the LIST  can be replaced with CALLS to $DSCALL.    

Moreover,  the DSCALL requires the DSN name to be specified, but going forward this is the preferred method. 

 

.CERCA 

&WRITE  

&WRITE RICERCA NELLA TABELLA : &FILEF  

&WRITE PROCESSING MEMBER: &FILEF  

-* &INTCMD -LI &FILEF ID=SICUR 

-* &INTCMD -LI &FILEF  

&CONTROL SHRVARS=($DS) 

-EXEC $DSCALL OPT=FOPEN DSN=hlq.TESTEXEC STAT=SHR +  

  MEMBER=&FILEF  

&DD = &$DSDDNAME -* SAVE DDNAME  

-EXEC $DSCALL OPT=READ DATA=* DD=&DD LIMIT=32000 TRUNCATE=71 

&WRITE COLOR=YELLOW DATA=&SYSMSG  

&WRITE COLOUR=YELLOW HIGHLIGHT=BLINK DATA=RECORD COUNT IS &$DSDATA#  

&LINECT = 1  

&DOWHILE &LINECT LE &$DSDATA# 

     &CHEK = &FNDSTR &COMPARE &$DSDATA&LINECT  

     &IF &CHEK NE 0 &THEN &DO  

        &WRITE COLOUR=YELLOW FOUND MY RECORD &$DSDATA&LINECT  

        &WRITE COLOUR=YELLOW RECORD IS AT LINE &LINECT  

     &DOEND  

   &LINECT = &LINECT + 1  

   &LOOPCTL 9999

&DOEND  

-* -EXEC $DSCALL OPT=INFO DD=&DD -* CLOSE PDS  

-* &WRITE COLOR=RED DATA=LRECL=&$DSRECL BLKSIZE=&$DSBLKS  

-EXEC $DSCALL OPT=FCLOSE DD=&DD -* CLOSE PDS  

&WRITE COLOR=YELLOW DATA=CLOSING FILE &SYSMSG  

&RETSUB