Written by

J2 interactive
Question Laura Cavanaugh · Jul 14, 2017

In a bit of a cache.dat pickle

I'm trying to recreate a smaller copy of our DEV machine on a sandbox instance.  I installed a new instance, and thought it would be a good idea to copy over a few cache.dat files from the critical namespaces (but not all of them), and start from there.

However, I can't compile any UI files in my new instance because I'm getting a <PROTECT> error on the %qCacheMsg global -- for any element that displays text (i.e. the first <label> that's encountered) the generated code is trying to get text from the global  ^%qCacheMsg("%Utility","en",node) = text -- from a node that doesn't exist.

Of course, I tried to import the global from the DEV machine, but no luck - it's not the kind of thing you're supposed to be able to do. 

What do you think my best course of action would be - start over with a fresh namespace / cache.dat in my sandbox? make the CACHELIB database writable temporarily?

I think I'll start fresh with the main namespace that contains all the code, and copy cache.dat files for the namespaces with some data.  

Thanks,

Laura

Comments

Eduard Lebedyuk · Jul 14, 2017

Code should be stored in source control and there should be some sort of installer that does all required steps to get an application running.

That said,  ^%qCacheMsg is stored in CACHELIB, which is Read-Only by default. <PROTECT>  means either read or write error, so you need to add roles to your current user and/or make  CACHELIB writable temporaly.

0