Page 1 of 1

#37 - Critical fix for databases upgraded to 2018

Posted: Wed Jun 19, 2019 4:32 pm
by Jade Support
In existing JADE systems that have been upgraded to JADE 2018 and that contain string large objects (slobs) or binary large objects (blobs) that meet some very specific boundary conditions, and have then been deleted, free space corruption may eventuate. This may lead to data corruption.

To ensure that this does not occur, please:

1 Install JADE 2018 hot fix #32 as soon as possible.

2 Run a physical certify on any systems already upgraded to JADE 2018 and if there are any errors, please create a Contact in PARSYS and attach the certify log.

3 If there are no errors from the certify run a compact on the files. This will remove any latent free space corruption.
Note: Do not run the compact before the certify.

This applies only to systems upgraded to JADE 2018.

If you have downloaded JADE 2018 but haven’t started using it, please delete it and download it again.

If you have any questions, please contact JADE Support.

Re: #37 - Critical fix for databases upgraded to 2018

Posted: Fri Jun 21, 2019 4:13 pm
by allistar
Can you please confirm two things:

- that after the certify is clean we can run the compact online,

- that we only need to compact files that are (kind = DbFile.Kind_User_Data)

Thanks,
Allistar.

Re: #37 - Critical fix for databases upgraded to 2018

Posted: Mon Jun 24, 2019 10:02 am
by Ty
1. The compact *must* be non-updating to clear the freespace corruption. Let me clarify, there two modes of the compact operation, updating and non-updating. An offline compact is always non-updating. An online compact may be updating or non-updating.

- A compact with the jdbutil.exe or jdbutilb.exe applications is always offline, that is, non-updating.
- A compact run with jdbadmin.exe or the JadeDatabaseAdmin class can be updating or non-updating. That is, with jdbadmin.exe, the you must include "updatesAllowed=false" on the command line, and using the JadeDatabaseAdmin.compactDbFiles() method, the "updatesAllowed" parameter must be "false".

2. The files you must certify and compact are all of the files that you have updated. I.e, Kind_User_Schema and Kind_User_Data, and if you update the Monitor Knowledge Base, Kind_Utility.

3. Something that wasn't said is that the compaction of the file may fail. Treat this case as if the certify had picked up errors.

4. The certify should be performed with this ini option set: [TrapControl]TrapDbInvalidBlockTypeInCertify=false. This will prevent a potentially large number of unhelpful process dumps being generated during the certification process.

5. It is quite common for certify to generate errors or warnings that have nothing to do with this issue. Still, please raise a ticket with JADE Support and we will advise you further.

Regards,
Ty Baen-Price
JADE Plant