Error "INT value = 0: Incompatible type 8"

Last update: 4 August 2017

Error "INT value = 0: Incompatible type 8"

Summary

In the following situations you may get an error message "INT value = 0: Incompatible type 8" (or different datatypes other than INT, or different type values other than 8):

  • Reading an object version (of former Folio versions)
  • Reading archived objects (of former Folio versions)
  • Cleanup of MMC service areas

This message is shown in the log or trace output when the "On-the-fly" migration of objects from former Folio versions did not finish properly.

Please note: A hotfix is available correcting issues with the version migration ("On-the-fly" migration). In the hotfix list of your Fabasoft Folio / Fabasoft eGov-Suite version, look up the ID FOLIX07827 and compare the version number to the version number of your coostd.exe / coostd library on the backendservers, to find out if the hotfix is already installed.

Information

The Upgrade Definition feature is a built-in tool to do object migrations between different Fabasoft Folio versions.

The CSVs in the backend migration folders are used in three ways:

  1. During the release update, all current versions are migrated to the data types of the current Fabasoft Folio version. During the update process, the objects are migrated and written to the database. After that migration, objects are stored in the current data types. No futher migration is needed to read/change the object.
  2. Fabasoft Folio object versions created with former Folio versions are not permanently migrated in step 1. On every start of the COO-Services, the content of the CSV files is read to the COO-Service memory. If the Fabasoft Folio Kernel requests an object version, the COO-Service "on-the-fly" migrates the object version to the current data model and presents the object to the Kernel. The migrated version is not persisted in the database.
  3. Objects archived with Fabasoft iArchive cannot be migrated in step 1 (the archive is usually read-only).Because Fabasoft iArchive is a kernel-based product, the archived object is not read from the COO-Service, therefore the COO-Service cannot do the "on-the-fly" migration. In fact, the COOSVC1 service reads the CSV files during start and presents a view of the migration information in the Current Domain object. This information is not persisted in the database - the view is generated from the CSV files every COO-Service restart. When an archived object is requested, the Fabasoft Folio Kernel migrates the archived object to the current data model, using the view from the COO-Service. The migrated object also is not persisted back to the archive.

This means, even if the CSV migration files on the backends were correct and consistent during the release update (step 1), loosing or corrupting the CSV file later can lead to problems reading object versions and archived objects (both created with former Folio versions).

The MMC cleanup feature reads the metadata of objects and object versions to calculate if files may be deleted or not. That's why you can see such error messages ("incompatible type") in the cleanup logs in case your system has the depict issue. As the error does not affect the calculation to keep files or not, affected objects will be cleaned up as expected.

Solution

This behaviour can have two main reasons. One or both reasons may apply.

Upgrade Definition files missing or corrupt

The setup process copies Upgrade Definition files (also called "CSV migration") from the Setup Kit to all Backendservers. The file path of this migration files is:

Windows: C:\Program Files\Fabasoft\Components\Server\CooSrv\files\migration

Linux: /var/opt/fabasoft/instances/files/migration

Before a release update process, the CSV files delivered from Fabasoft Solutions need to be patched ("Solution Migration"), so object references in the CSV get replaced by object addresses. The resulting CSV file needs to be copied back to the Setup kit (this is not an automatic process and will be performed by the operator).

During the following Setup process, the patched CSV files are copied to the backendservers (see path above).

  • If you run the Setup process at a later time (e.g. updating only the Solution), and you do not manually return the patched CSV files to the Setup kit, the Setup process will copy unpatched CSV files to the backendservers. The "On-the-fly" migration therefore does not work (properly) anymore.
  • If you manually deleted or changed the CSV files on the backendservers, the required CSV files may not be found anymore and the "On-the-fly" migration therefore does not work (properly) anymore

Attention: Before performing file operations in the following sections, please create a backup of the migration folder of all backend servers

Check if the migration folders are consistent

  • On the Setup kit under the Setup folder, search for all appearences of CSV files (in a migration folder).
  • Compare the file names and file count with the files on the backend migration folder. All files from the Setup kit should appear in the backend migration folders.
  • Compare the file content of primary backendserver and all other backendservers (e.g. in a cluster environment). The files on the primary and additional backendservers should have the same count and content.
  • Check that the CSV files should not contain references (please keep in mind that the last column is a note column and can be ignored). No CSV file should contain object references or expressions.
  • If you have lost correct migration files, consider to restore the migration folders from a tape backup with an empty folder as destination. In this way, you can double-check the current and older files in the migration folders.

Please remember, before changing/copying any files, create a backup of the migration folders of all backendservers.

If you have doubts, please contact the Fabasoft Support.

Missing migration entries in Upgrade Definition files

Upgrade definitions are used to migrate objects, object classes, datatypes from former Fabasoft Folio versions to the current version. In the CSV files that migrations are specified.

If a CSV Upgrade Definition does not cover all possible changes, the migration process may not run and a wrong datatype might be sent to the Folio Kernel.

Example:

INT value = 0: Incompatible type 8 means: A INT value 0 was sent to the kernel, but the Kernel expected a value of datatype OBJECT (8). The reason may be, that the new datatype of a property should be object, but the old INT value was not covered by the migration.

If you were able to validate missing Upgrade Definition entries, please contact your project manager for support.

Backup strategy

As the above explanation illustrated, the migration folders on the Backend servers are very important.

We recommend to adapt your backup strategy to backup the migration folders on a regular basis.

Applies to

  • Fabasoft Folio (2010 and above)
  • Fabasoft eGov-Suite (2012 and above)

Further questions?