jSAVF reads an IBM i save file on a PC, with no connection to a system. The current version is 1.83, from 7 December 2025, downloadable from the author's site. It also opens ISO9660 and AWSTAPE tape images.
It is for the cases where DSPSAVF cannot be run: a vendor sends a SAVF and you want to know what is in it before restoring, or what is left is the backup of a machine that has been switched off, and there is no system to load it on.
What it reads
| SAVF compression | Read |
|---|---|
*NO | Yes |
*YES (before V5R3) and *LOW | Yes |
*MEDIUM, *HIGH | Yes |
| zlib, which according to the author appeared with V7R5 | Yes |
Once the file is open, the object list looks like DSPSAVF's, and can be printed to a text file like DSPSAVF ... OUTPUT(*PRINT).
What it extracts
- Sources: members of source files (
QRPGLESRC,QCLLESRC,QSQLLESRCand the others) in three forms: text only, source format with line number and date, or CSV. Always in UTF-8. - Tables and physical files: as CSV, with most column types (numeric, dates, text, LOBs). The author warns that some text fields can come out mis-decoded when the encoding cannot be worked out, and that very large LOBs may not export in full.
- Data areas: as
DSPDTAARAwould show them. - SAVFs inside the SAVF: exported as valid SAVFs, which jSAVF itself opens.
- IFS files (
*STMF) in saves made withSAV: exported without conversion.
Other object types are exported raw.
Checking it is whole
jSAVF compares the file size with the one in the header, so it notices a truncated SAVF; it checks the blocks it reads against their checksums; and from a menu it verifies every block and the overall checksum. It is the first check to make on a SAVF that arrived by email or through an FTP transfer in text mode instead of binary.
Stated limits
- limited support for SAVFs made from the IFS with
SAV; - it may fail on SAVFs made with uncommon
SAV*commands or by very old OS/400 releases; - it needs OpenJDK 25 or later; the Windows installer includes it. Anyone installing a JRE separately must select every option, because some EBCDIC conversion tables are optional.
A SAVF is a piece of a system. It contains real data, often customers'. The author asks not to be sent SAVFs without agreeing it with the data owners: that also goes for anyone thinking of opening one with some other tool found online.
Example
Library and file names are made up.
A vendor sends PATCH0925.SAVF with fixes to the ERP, and asks for it to be restored with RSTOBJ into the production library. Before doing so:
- jSAVF opens and verifies the file: size and blocks are fine.
- The list shows four programs, a
QRPGLESRCsource file with four members and a physical fileITEMS. - The physical file was not announced. Exported to CSV, it holds the item master of another of the vendor's customers.
The SAVF goes back unrestored: an RSTOBJ of *ALL would have replaced the production ITEMS file.
Which releases
jSAVF runs on the PC, so it does not depend on the system release; the limit is on the SAVF, which must not come from a very old release. On an IBM i the same list information comes from DSPSAVF and from the SQL services QSYS2.SAVE_FILE_INFO and QSYS2.SAVE_FILE_OBJECTS, named on the 7.6 DSPSAVF page.
Comments
No comments yet. Be the first to comment!
You need an account to comment. Log in · Sign up