×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




The late great Al Barsa used to do an awesome presentation about SWA at
COMMON.

One point discussed was a "Dirty (Ragged) SWA". The following AI generated
info lines up with my recollection...


- To ALLOW a "Dirty" (Ragged) Save:
Set the third element of the SAVACTWAIT parameter to *NOCMTBDY (No
Commitment Boundary).
- Command Example:
SAVLIB LIB(PRODDATA) DEV(TAP01) SAVACT(*LIB) SAVACTWAIT(120 *NOCMTBDY
*LOCKWAIT)
- What happens: The system will save the object immediately, even if
it has uncommitted changes. It will issue message CPI3731 to warn you
that a ragged save occurred.


Al Barsa’s Rules for Handling Dirty SWA
If you must perform a save-while-active where transactions are ongoing, Al
emphasized these strict requirements to ensure the data is actually usable:

1. Mandatory Journaling: You must journal every object being saved.
Without the journal receivers, you have no way to "clean" the data after a
restore.
2. Apply Journaled Changes (APYJRNCHG): Upon recovery, you cannot just
restore the files and start the application. You must use the
APYJRNCHG command
to bring the "ragged" data to a consistent state.
3. The "Sync-up" Cost: Al often argued that the time you "save" by not
waiting for a clean checkpoint is often lost tenfold during a high-pressure
disaster recovery because of the complexity of the manual synchronization
steps required.


IIRC correctly, Al called this a "last resort" for a 24/7 system that you
could not quiesce. And to point 3 above, recovery from such a save is
difficult. But on the other hand, Al pointed out, how often do you need
to do a recovery?

HTH,
Charles

On Tue, Mar 24, 2026 at 6:17 AM Gad Miron <gadmiron@xxxxxxxxx> wrote:

Hello guys

In the last couple of months there were 3 failures of a nightly SAVLIB
LIB(*ALLUSR).
The CMD was
SAVLIB LIB(*ALLUSR) DEV(TAP01) ENDOPT(*LEAVE) SAVACT(*LIB) PVTAUT(*YES)
OMITLIB(WWLLIBD QSRVAGT DWHD URPS)

The error was: CPF377F Save ended. Unable to reach checkpoint.

Looking for CPI8365/CPI836B in DSPLOG, I found:
CPI8365 99 INFO Save-while-active request requires commit or rollback for
job 429718/QUSER/QZDASOINIT

Now,
is there a way to prevent such failures when executing a SAVLIB with
SAVACT(*LIB)?
What I aim to is receiving something akin to the MSGs received for locked
objects
CPF3761 Cannot use XXX in Library YYY

and then CPF3771 999 objects saved from LIBXXX. 3 not saved.

at the end of the save operation.


Can it be done?


TIA


Gad
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.