· Apr 11, 2021

CSP application weird behaviour

Working with CSP applications, I've noticed behaviour that does not seem to be documented anywhere.

When you create a new application, Cache seems to create a virtual folder and populate it with everything that is in the physical path you set for that application.
This leads to some weird issues regarding compilation of the CSP pages that exist in both physical folder and virtual folder. Specifically, despite the content being synced, it seems possible to compile the CSP file in a physical folder and the CSP file in a virtual folder separately, leading to an error when you try to access that page through application. And, despite the error page saying the error was logged, it is not, so I can't even determine the true cause of the error.

Has anyone encountered this behaviour and know of a solution?

Product version: Caché 2018.1
Discussion (9)2
Log in or sign up to continue

If you use Studio to edit/compile *.csp files, check the following parameters:

  • Enable service status check (Recommended) (yes)
  • Studio is active application (2–60 sec) (5)
  • Studio is background application (30–600 sec) (60)
  • Automatically reload document when it is modified on the server and it has not been edited in Studio (yes)

And also see Caché Launcher (Cube) settings : Web Server IP Address / CSP Server Instance

I tried to simply edit the file in Studio (csp/samples/redirect.csp) and with an external editor FAR Manager ([CACHEROOT]\CSP\samples\redirect.csp)
For simplicity, I changed the comment in the header. I tested everything both locally and remotely.

So, I change it in Studio - the changes are immediately visible in FAR, I change it in FAR - the changes are immediately visible in Studio.
Or in another way: I change it locally - the changes are immediately visible on the remote machine, I change it on the remote machine - the changes are immediately visible locally.

In other words, there is no and cannot be any desynchronization, since the work is always done with the same file on the server, see Saving a CSP File.

I tried following your advice, but it still behaves... weirdly.
Today I've opened and changed a CSP file that is in a physical folder. When I tried to access it through the CSP application, I've got an error saying no such page was found on the server. After that, I also compiled this same file, but in the virual folder (the one created for the application). And it loaded normally.

Just wanted to give an update on option "b" in this comment, in case anyone reads this going forward. 

I think at one time ^%ISCLOG was used to both set the log level and store the log data.  Now ^%ISCLOG is only used to set the log level.  The log data is stored in ^ISCLOG (no "%") in the %SYS namespace.  So instead of doing:

zwrite ^%ISCLOG    // This is no longer the log global!!

You would instead do:

zwrite ^ISCLOG

In the %SYS namespace. (Or look at it in the Management Portal, I find it much easier to read that way.)

I couldn't find anything in the docs on ISCLOG specifically, but it is mentioned in the context of other subjects, for example: