Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

Problemas con archivos "conectados" al Diario en la QUSRSYS:

The files QAOKP09A etc are used for defining remote users (on other
systems).
Since most AS/400 are connected to some sort of network, I may assume that
yours is too.
So these files are important enough. You can edit these files through
WRKDIRE.
I have written a save-program 10 years ago which contains some extra
handling.
(It still works)
The program acts on some error-messages occurring during the SAVLIB command.
Then the job scans its own joblog messages to retrieve the names of the
missing files.
Then these files are copied to an empty library and saved additionally.
Surely when restoring, you have to remember where to put these extra files.
The program assumes only save-problems with library QUSRSYS, altough it's
easy
enough to modify the program and handle more situations.
For example you could create a savefile on the temporary library with the
name of the actual library where the save had error on: a savefile
TEMPORARY/QUSRSYS for the files on QUSRSYS and so on. Then finally save
the savefiles to the same medium as the SAVLIB *ALLUSR uses. Either use
the SAVSAVFDTA command per each savefile or save TEMPORARY with SAVLIB
TEMPORARY with parameter SAVFDTA(*YES) !!!!

/* OVR: ADOPT-AUTHORITY TOEKENNEN MACHTIGING SECOFROTOR */


/* ---- OVR: CRTPF FILE(QTEMP/JOBLOG) RCDLEN(132) */
PGM
DCL &MSG *CHAR 80
DCL &MSGID *CHAR 7
DCL &MSGKEY *CHAR 4 '*TOP'
DCL &MSGKEY1 *CHAR 4 '*TOP'
DCL &SAVE *CHAR 1
DCL &FILE *CHAR 10
DCL &TAPDEV *CHAR 5 'TAP01'
DCL &SEQNBR *CHAR 6 '1'
DCL &VOL *CHAR 8 '*MOUNTED'
DCLF QTEMP/JOBLOG
......
......
......
/* SAVE ALL USER-LIBRARIES */
/* IF ERROR OCCURS: SKIP TO PROGRAM-LABEL JOBLOG: */
SAVLIB LIB(*ALLUSR) DEV(&TAPDEV) VOL(&VOL) SEQNBR(&SEQNBR) +
ENDOPT(*LEAVE) CLEAR(*ALL)
MONMSG MSGID(CPF3203)
MONMSG MSGID(CPF7080)
MONMSG MSGID(CPF3701) EXEC(GOTO JOBLOG)
MONMSG MSGID(CPF3741) EXEC(GOTO JOBLOG)
MONMSG MSGID(CPF3770) EXEC(GOTO JOBLOG)
MONMSG MSGID(CPF3771) EXEC(GOTO JOBLOG)
MONMSG MSGID(CPF3774) EXEC(GOTO JOBLOG)
MONMSG MSGID(CPF3777) EXEC(GOTO JOBLOG)
MONMSG MSGID(CPF0000) EXEC(DO)
SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) +
MSGDTA('Save *ALLUSR niet correct +
beeindigd') TOMSGQ(QSYSOPR) MSGTYPE(*DIAG)
ENDDO
/* RESUME OTHER SAVE COMMANDS */
RESUME:
......
......
......
RETURN
/*------------------------------------------------------------------*/
/* SAVE *ALLUSR INCORRECT */
/* RECEIVE MESSAGES OF THE JOB ITSELF */
/* IF CPF3741 IS FOUND: COPY THE FILE */
/* AND SAVE THIS COPY AFTERWARDS */
JOBLOG:
/* CLEAR TEMPORARY LIBRARY */
CRTLIB LIB(TEMPORARY)
MONMSG MSGID(CPF0000)
CLRLIB LIB(TEMPORARY)
MONMSG MSGID(CPF0000)
CHGVAR &SAVE 'N'
/* PUT JOBLOG OF THE JOB ITSELF IN A SPOOLFILE AND FINALLY IN A FILE*/
DSPJOBLOG OUTPUT(*PRINT)
CRTPF FILE(QTEMP/JOBLOG) RCDLEN(132)
MONMSG MSGID(CPF0000)
CPYSPLF FILE(QPJOBLOG) TOFILE(QTEMP/JOBLOG) +
SPLNBR(*LAST)
DLTSPLF FILE(QPJOBLOG) SPLNBR(*LAST)
MONMSG MSGID(CPF0000)
RCVMSG MSGTYPE(*FIRST) RMV(*NO) KEYVAR(&MSGKEY1)
MONMSG MSGID(CPF0000)
/* TEST FOR MESSAGE CPF3741 */
/* IF UNABLE TO READ THE JOBLOG RESUME PROGRAM */
READINFO:
RCVF
MONMSG MSGID(CPF0000) EXEC(DO)
/* NO MORE MESSAGES */
/* ANY OBJECTS DUPLICATED? SAVE THEM */
IF (&SAVE *EQ 'Y') DO
SAVOBJ OBJ(*ALL) LIB(TEMPORARY) +
DEV(&TAPDEV) OBJTYPE(*FILE) VOL(&VOL) +
SEQNBR(*END) ENDOPT(*LEAVE)
MONMSG MSGID(CPF0000) EXEC(DO)
SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) +
MSGDTA('Save duplicated objects ended +
incorrect') TOMSGQ(QSYSOPR) MSGTYPE(*DIAG)
ENDDO
CLRLIB LIB(TEMPORARY)
MONMSG MSGID(CPF0000)
GOTO RESUME
ENDDO
/* NO OBJECTS DUPLICATED, ALTOUGH THE INITIAL SAVE WAS INCORRECT!?! */
GOTO RESUME
ENDDO
/* CHECK FOR MESSAGE CPF3741: THIS ONE CONTAINS THE FILE NAME ETC. */
/* CHECK FOR OBJECT-TYPE "FILE" */
IF (%SST(&JOBLOG 1 7) *NE 'CPF3741') GOTO READINFO
/* CPF3741 FOUND; NOW READ *SECLVL INFO */
RCVF
MONMSG MSGID(CPF0000)
/* ACTUAL MESSAGE: */
CHGVAR &MSG %SST(&JOBLOG 58 50)
/* ONLY FILES ARE HANDLED IN THIS PROGRAM */
IF (%SST(&MSG 1 4) *NE 'FILE') GOTO READINFO
CHGVAR &FILE %SST(&MSG 6 10)
/* RUB-OUT ALL EXTRA INFO AFTER THE FIRST SPACE IN THE FILENAME */
/* (IN *RPGLE PARSING FILENAME AND LIBRARY IS MORE EASY) */
IF (%SST(&FILE 9 1) *EQ ' ') CHGVAR %SST(&FILE 9 2) ' '
IF (%SST(&FILE 8 1) *EQ ' ') CHGVAR %SST(&FILE 8 3) ' '
IF (%SST(&FILE 7 1) *EQ ' ') CHGVAR %SST(&FILE 7 4) ' '
IF (%SST(&FILE 6 1) *EQ ' ') CHGVAR %SST(&FILE 6 5) ' '
IF (%SST(&FILE 5 1) *EQ ' ') CHGVAR %SST(&FILE 5 6) ' '
IF (%SST(&FILE 4 1) *EQ ' ') CHGVAR %SST(&FILE 4 7) ' '
IF (%SST(&FILE 3 1) *EQ ' ') CHGVAR %SST(&FILE 3 8) ' '
IF (%SST(&FILE 2 1) *EQ ' ') CHGVAR %SST(&FILE 2 9) ' '
/* COPY THE FILE TO THE TEMPORARY LIBRARY */
/* THIS SOFTWARE ONLY ASSUMES LIBRARY QUSRSYS; SINCE I ONLY HAVE */
/* PROBLEMS WITH THIS LIBRARY. THE LIBRARY-NAME IS ALSO AVAILABLE */
/* IN VARIABLE &MSG, ONLY PARSING IS SOMEWHAT DIFFICULT IN "CL" */
/* (RATHER USE AN *RPGLE PROGRAM PARSING THE FILE- & LIB-NAME) */
CPYF FROMFILE(QUSRSYS/&FILE) +
TOFILE(TEMPORARY/&FILE) CRTFILE(*YES)
MONMSG MSGID(CPF0000) EXEC(GOTO READINFO)
SNDPGMMSG MSG('File' *BCAT &FILE *BCAT 'in QUSRSYS is +
saved') TOPGMQ(*SAME)
/* OBJECT DUPLICATED; SAVE THEM AFTERWARDS */
CHGVAR &SAVE 'Y'
GOTO READINFO
ENDPGM
Hope you have some joy with this sample
Hing On <hin...@hotmail.com> schreef in nieuwsbericht
<8s61i3$59...@dahlia.singnet.com.sg>:eD^D^~D^pD^`D^0D^ ...
> I've just implemented a daily backup schedule in my new AS/400 (model 720
> V4R4 cum 00147440). This daily backup include library QUSRSYS. However,
some
> of the system directory files are not saved such as QAOKP01A,
QAOKP09A.....I
> know that is because the files are being locked by one of the subsystem
> QSERVER (for daily backup, I don't end all sbs).
> Questions
> (1) How important are these system directory files?
> (2) How can I save these files without end the sub-system?
> Hing On
> hin...@hotmail.com
http://www.verycomputer.com/153_b6bc5f243bfdae25_1.htm

https://www.consolut.com/en/solutions/consulting/dcw/os400-messages/p/19.html

comandos y par�metros vinculantes...


CRTJRN
RCVSIZOPT
THRESHOLD
CRTJRNRCV
STRSQL
APYJRNCHG
Agreed. Significantly below the threshold.

If CHGJRN is used, is it best done before or after backup? Is


restricted state needed? Maybe this just doesn't matter.
https://archive.midrange.com/midrange-l/201407/msg00349.html

After the detached receiver was [saved\backed-up and then] deleted, only then will
any storage be freed.

Is there a down side to creating a new receiver and deleting


the old one?

As MNGRCV(*YES) DLTRCV(*YES), the system-generated receiver will do both in just


one request; as such, there is no need to deal with the hassle of setting up a
proper[ly owned and authorized] journal receiver: CHGJRN QRECOVERY/QDBJRNXRFQ
JRNRCV(*GEN)

The downside to creating a new receiver is if the journaling environment\ecosystem


were to be re-established in a potentially problematic way; minimal assurance that
the setup is not problematic, best to reset the owner of the new *JRNRCV to match
the system-supplied object, revoke all private authorities from the new object
using Revoke Object Authority (RVKOBJAUT), then grant the authorities using Grant
Object Authority (GRTOBJAUT) to the new receiver from the old receiver as Reference
Object (REFOBJ) before deleting the old journal receiver with Delete Journal
Receiver (DLTJRNRCV).

Notably, to reduce the THRESHOLD(), the CRTJRNRCV is exactly what is desirable and
required; the CHGJRN request would then name the new JRNRCV(), instead of using the
JRNRCV(*GEN) [to ask the system to generate a new receiver with the same
owner\authority as the active receiver].

One last question: Does activity not performed in library file


system get logged into a journal within the library file system? I
recently retrieved a large number of files from a VAX system. They
were stored outside of library file system. I only retrieved them in
order to use PKZIP. My impression was that the journal did not
include that activity.

I was unaware of an /implicit detach/ capability during save [consider that a


/save/ really should not be _changing_ objects, else either the object on media and
what should be the equivalent object on disk would never be the same, or the object
on disk would always be changing even if the only action was merely to save]; as I
recall, an active receiver being saved is diagnosed as effectively incomplete per
msg CPF7080 "... saved while attached." And if the DLTRCV(*YES) were established,
then the object would be implicitly deleted when detached, so one would need to
have great confidence in their [one shot at using the chosen] media. What I recall,
is that a new empty receiver would be generated upon restore.

http://thequapa.tk/969841-display-journal-receiver-in-as400.xhtml

cambio dns AS/400

https://www.ibm.com/support/pages/changing-tcpip-address-ibm-system-i-system

how make in as400 access new dns ip ? busqueda google

acceder para cambios dns a: http://www.freenom.world/es/free-my-device.html

You might also like