Importing routine in WIndows 2016 server giving write error


We recently moved our cache instance from windows 2012 to windows 2016 and when i try to now import % routines  i'm getting the following error  "Unable to obtain a write lock on this routine because either another user has the routine open for editing or you do not have write access to the database the routine is stored in. This item will be skipped."


This is a fresh installation of cache and I've moved the cache.dat and csp pages across. It seems to work fine but can't import % routines which I need. 

Has anyone experienced this and can help? 


  • 0
  • 0
  • 47
  • 1
  • 1


can't import %routines which I need. 

Without any special mapping, %routines are stored in SYSLIB. (except %z*,%Z*)

Mount SYSLIB (default: read-only) as Read/Write and you can load your %routines. 

Needless to mention that you better not overwrite already existing %routines.
The effects could be unpredictable.

To clarify Robert's answer, on InterSystems IRIS the database is called IRISLIB, and on Caché, Ensemble etc it is called CACHELIB.

But rather than having to reload your own non-%Z/%z routines after every upgrade you could create a dedicated database for those routines and then use %ALL-type mapping to make the routines available in all of your namespaces.

More info: