Question Arto Alatalo · May 5, 2020

Every time I click Save on  System > Configuration > Memory and Startup page, I get "ERROR #5005: Cannot open file '/var/cache/cache.cpf_XXX' " error message, where XXX is a random number. This problem appeared some time ago without any clear reason. All file access right are seems OK.

Any ideas?

3
0 901
Question Arto Alatalo · May 5, 2020

(We are in contact with IS support for this problem but I would like to ask Community too, perhaps somebody experienced this problem in the past)

Hello Community,

we need your help with Cache 2017.2 freezing on Linux machine.

Since we moved our primary production Cache from Windows to Linux in the begging of this year, we have experienced system freezing twice. Yesterday without any good reason Cache stopped to respond with the log shown below.

Questions:

  • Any idea what could cause WRTDMN freezing?
  • What actions it makes sense to take in order to have enough info when the system freezes next time.
5
0 1075
Question Arto Alatalo · Apr 29, 2020

Hi Community! I need your advice.

The method below is 6 times slower on production server than on developing machine:

ClassMethod runme4()
{
    s cnt=615210
    s st=$zh
    for i=1:1:cnt {
        s p=##class(digi.packet).%OpenId("packet||5237")
        w:p="" "not found",!
        k p
    }
    w $zh-st,!
}

BUT the server is 6 times faster if OpenId replaced with simple read of a large global (s p=^someLargeGlobal). Any ideas what makes OpenId so slow only on the server?

27
0 1182
Question Arto Alatalo · Apr 15, 2020

If two globals have same structure, how to reuse one CacheSQLStorage-based class to read both locations?

Thanks!

Update:

Let's say we have two globals:

^a(1)="dataa1"
^a(2)="dataa2"

and

^b(1)="datab1"
^b(2)="datab2"

i.e. the structure difference is global name only.

I would like to have two classes TableA and TableB both are inherited from TableAB, and TableAB taking global name as a parameter.

14
0 732
Question Arto Alatalo · Jan 30, 2020

A quick question regarding to SQL Query Plan:
Why these two requests have different plans, in particularly, why second request needs temp file? To me, temp file is a bad thing which should be avoided, right?

  1. select * from Test.Log where cdate = 1
  2. select * from Test.Log where cdate > 1

Plan for 1:

Read index map Test.Log.cdateIndex, using the given %SQLUPPER(cdate), and looping on ID.
For each row:
 Read master map Test.Log.IDKEY, using the given idkey value.
 Output the row.

Plan for 2:

Call module B, which populates bitmap temp-file A.
Read bitmap temp-file A, looping on ID.

For each row:

4
0 292
Question Arto Alatalo · Nov 1, 2019

All of the sudden, Cache Studio's Debug->Run command started to fail with error '6704 Target has exited debugger' (German: Kein Anbinden möglich). What could be a reason of that? Today we installed Cache Web Terminal (https://intersystems-community.github.io/webterminal/
), could it be possible that the terminal somehow hijacked some debugging api end-point?

Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2017.2.2

Update: any idea what error 6704 means exactly? Studio was able to launch debugging job but it unexpectedly exited? German text seems is trying to say "Can't connect"

5
0 516
Question Arto Alatalo · Feb 21, 2019

I'm getting this compilation error:

Kompilieren der Klasse digi.packet
FEHLER #5002: Caché-Fehler: <FUNCTION>zLockUse+5^%ExtentMgr.GlobalRegistry.1
  > FEHLER #5030: Während der Kompilierung von Klasse 'digi.packet' ist ein Fehler aufgetreten

when importing one of my classes on the production server into one particular namespace:

8
0 798
Question Arto Alatalo · Jun 12, 2018

Time after time on CSP Session page of our Cache 2017.2.1 installation I see that all licenses are consumed by CSP sessions of /csp/sys, /csp/sys/op/and /csp/sys/mgr applications which I assume are sessions of Management Portal. The problem is that there are only few of us accessing the Portal and as we test by browsing Portal, we can't reproduce the problem. 

Is there any way to see client IP of CSP session? Any other way to approach the problem?

The problem looks very similar to the Forefox-related one but we don't use Forefox.

7
0 506
Question Arto Alatalo · Dec 14, 2017

Today %SYS.Namespace.ListAll started to report one namespace, for example USER, two times: once as "USER" and once as USER's database "^^c:\databases\user".

Details: my Cache instance has  50+ local namespaces. Today I have "touched" 3 of them (imported new classes), and now ListAll reports each of these 3 twice. Looks like ListAll is the only one who sees those strange duplicates, in all other places (Portal, Studio) only USER is shown.

Can someone explain what is happening?

9
0 390
Question Arto Alatalo · Apr 11, 2017

I have classes A and B, B derived from A, A has method Abc.

From INT of class B I see that compiler copies implementation of Abc to class B, so that Abc exists both in A and B.

As result, when B invokes Abs, B.Abs() is executed instead of A.Abs(). In result debuger is not able to step into Abs and breakpoints in A.Abs never hit.

Why this happens and how can I avoid this?

Update:

OK, now I know the reason: compiler makes the copy if Abc has this line:

cn=##Expression($$$quote(%classname))

21
0 497