Sunday, October 2, 2011

Mystery library.........



I have completed permanently applying all PTF’s. This process cleared up another 4%of disk. At this point most of the preparation tasks for the new iSeries hardware and software have been completed. I am going to spend a couple of days going back over all the tasks seeing if I can tighten up a little more.

I was looking through the end of day job logs and I noticed that the Friday log is 13k pages and other days of the week it’s around a couple hundred. I found, for 15 minutes, the system is spinning around one command that is consistently failing. It’s really not a big problem but waste is waste and lean doesn’t only apply to manufacturing. My Six Sigma Green Belt lean training kicking in.

Message . . . . :    76700 - RMVM FILE(EXTSYSF/SAVOBJ) MBR(D112670122)
*NONE  Command  09/24/11  01:27:14.392440  QCADRV QSYS   03C4     RECYCLE     NANUTL      0012
Message . . . . :     1200 - RTVJOBA USER(&USER)

*NONE Command    09/24/11  01:27:14.392528  QCADRV  QSYS   03C4 RECYCLE     NANUTL      0026
Message . . . . :     1800 - RTVMBRD FILE(RECYCLEBIN/JASON) MBR(D112670122)  RTNLIB(&RTNLIB)

CPF9815  Escape 40  09/24/11  01:27:14.392704 QWHRMBRD QSYS  0426  RECYCLE NANUTL      0026
Message . . . . :   Member D112670122 file JASON in library RECYCLEBIN not found.
                                    Cause . . . . . :   The member D112670122 in file JASON in library RECYCLEBIN
                                      was not found.  The member specified in the command was not found. If the
                                      member name is *N, there are no members in the file. If the member name is
                                      *ALL, then the file is not a partition file. Recovery  . . . :   Add the
                                      member (ADDLFM command or ADDPFM command) and try the request again.

*NONE Command  09/24/11  01:27:14.392784  QCADRV  QSYS   03C4     RECYCLE     NANUTL      0043
Message . . . . :     2100 - CPYSRCF FROMFILE(EXTSYSF/SAVOBJ)  TOFILE(RECYCLEBIN/JASON)    FROMMBR(D112670122)

CPF2801 Diagnostic 30 09/24/11 01:27:14.393056  QCPEX0FL  QSYS  072B  RECYCLE NANUTL      0043
                                    Message . . . . :   From-file SAVOBJ in EXTSYSF not allowed.
                                    Cause . . . . . :   File SAVOBJ in library EXTSYSF is not the correct file
 type for the copy command. C


In looking at the job log; RMVM command is being run to delete a member in a file. The next command run RTVJOBA to retrieve the user name from the job attributes. This seems a little strange to me so I start looking in the RECYCLEBIN library and find only SRC-PF for each user most are empty with the except for me and Jason. No real clues here except that only the users that program had any members with records.

I searched the Net looking for information on RECYCLEBIN and Iseries and find nothing of any substance. I then looked at the library description and found the following text: Recycle Bin - Copy of member before RMVM. At this point I am not sure where to look to find out how members are being added to the SRC-PF. I checked all the job scheduled jobs and the end of day program and found no refernece to RECYCLEBIN. Sure wish I had Hawkeye, I would have found the culprit by now. I do have a handy free find source program created by my good friend Rick Santiago. I search for any source that starts with RECYC and a program RECYCLE in NANUTL Library pops right to the top of the list.

The code is display below with no title block or any information on what this program does. The source member text, Jun 2002 - Save source file member before deletion. At this point I’m pretty sure this program came from an article on the net.

I then displayed the program information and find the source file actually came from a library PWRTOOLS. Now I do remember awhile back about a suite of free code called Power Tools for the AS/400 but when I search the Net I cannot find any reference. I am going to assume that someone bought them out and removed the free code from the Net.

In looking at the program and the understanding what is happening seems pretty cool but how is this program being run? I then searched all the source code on the system looking for  usage of RECYCLE and find nothing.

RECYCLE - CLP

  PGM PARM(&QUALFILE &MBR)

  DCL VAR(&QUALFILE)   TYPE(*CHAR) LEN(20)
  DCL VAR(&FILE)       TYPE(*CHAR) LEN(10)
  DCL VAR(&LIB)        TYPE(*CHAR) LEN(10)
  DCL VAR(&RTNLIB)     TYPE(*CHAR) LEN(10)
  DCL VAR(&MBR)        TYPE(*CHAR) LEN(10)
  DCL VAR(&USER)       TYPE(*CHAR) LEN(10)

  MONMSG (CPF0000 MCH0000)

  RTVJOBA USER(&USER)

  CHGVAR VAR(&FILE) VALUE(%SST(&QUALFILE 1 10))
  CHGVAR VAR(&LIB) VALUE(%SST(&QUALFILE 11 10))

  IF COND(&LIB *NE 'RECYCLEBIN') THEN(DO)
     RTVMBRD FILE(RECYCLEBIN/&USER) MBR(&MBR) RTNLIB(&RTNLIB)
     MONMSG MSGID(CPF9812) EXEC(CRTSRCPF FILE(RECYCLEBIN/&USER) +
        RCDLEN(112))
     CPYSRCF FROMFILE(&LIB/&FILE) TOFILE(RECYCLEBIN/&USER) +
        FROMMBR(&MBR)
  ENDDO

  ENDPGM                                                    

I scratched my head for a minute and then ran DSPCMD RMVM and all be darned if there is not a command option to add a validity checking program and RECYCLE is specified. This is something I had never used before but looks handy.

I now understand how the source file members are being created in RECYCLEBIN. I quiclky realized that the issue is the CPYSRCF command which is throwing the error. The CPYSRCF command can only copy members from SRC-PF and not from a PF.

Unfortunately RTVOBJD does not contain the file attribute. DSPFD will give me what I need to identify the type of file but I would have to output to file and then retrieve the information. If anyone has any other ideas I am all ears.

Mystery solved and since there does not seem to be a quick fix I am just going to add it to the wish list for future work.

Richard  

No comments:

Post a Comment