Question
· Jun 18, 2018

CACHE.DAT upgrade from Cache 2015 to Cache 2017

I have a CACHE.DAT file that is working under CACHE version 2015.1.0.429.0

I have a second machine with CACHE version 2017.2.0.741.0

When I attempt to add/use the CACHE.DAT in the new version of CACHE, it will not mount.

How do I upgrade/convert the DAT file to make it work under the new CACHE version?

Thx. Larry...

Discussion (7)1
Log in or sign up to continue

Did the file come from the same Operating System? Do you get an error when you try to mount it, either when you try to mount it or in the cconsole.log? 

You may want to open a WRC issue to help with this. It would also help to have the Caché SYSLOG (do ^SYSLOG from the %SYS namespace), as errors that occur while mounting files are typically at the system level, which would get logged there.

Was it the same machine?
+ a clean shutdown in 2015 ? 

Mounting your DB from Terminal "%SYS" may give you a better error message.

%SYS>d ^DATABASE
 
 1) Create a database
 2) Edit a database
 3) List databases
 4) Delete a database
 5) Mount a database
 6) Dismount a database
 7) Compact globals in a database
 8) Show free space for a database
 9) Show details for a database
10) Recreate a database
11) Manage database encryption
12) Return unused space for a database
13) Compact free space in a database
14) Defragment globals in a database
 

Well, there is mostly only one reason, why you can't mount your database and this issue mostly happens when anybody tries to migrate between different versions on different machines. And it is different localization settings. Like, your database uses some national global collation, and you try to copy it to the instance with different settings, where this collation does not supported. You should find mention about  wrong collation in cconsole.log. So, then, you should set the same NLS, as in the first system and try to mount again.

Another possible reason is different blocksize in the Database. By default Caché uses 8KB blocks, but it is possible to have different block size, and instance should be configured for this particular blocksize, as well. cconsole.log should also contain error in this case.

Some other issues, which you can face, but they do not prevent database to be mounted.

  • 8-bit or Unicode, when you install Caché you still able to choose it, when Ensemble, HealthShare, and IRIS is Unicode only. In this case, if your data not in English, possible data should be converted from 8-bit codepage to Unicde.
  • cache.lck file next to CACHE.DAT, it is a lock file, prevents to mount database with exclusive access. But Database in this case should be mounted in read-only mode.