Norman W. Freeman · Jan 19

Why is node ordering different between two environments ?

I have noticed that the way the nodes are ordered is different between 2 different environments.

If I create the following global :

set ^TEMP("Z")=1
set ^TEMP("Ä")=1

Then I dump it with zwrite, I get this (which is expected):


However, on another machine, it gives me this :


The same goes for the following command (which return 0 or 1, depending environment) : 

write "Z"]]"Ä"

Both are running Windows 10, but one is running IRIS 2021.1, the other CACHE 2017.2.2.

I don't think that's the reason, maybe there's something else (a configuration in Portal). Has anyone encountered a similar problem and knows what is wrong?

I also tested the following JS code: 


It displays "1" in both environments (so AFAIK this is a CACHE issue, not an operating system issue).

Product version: Caché 2017.1
$ZV: Cache for Windows (x86-64) 2017.2.2 (Build 867_4_20455) Mon Nov 16 2020 19:02:06 EST
0 115
Discussion (5)2
Log in or sign up to continue

I guess you have different locales on those servers

Both servers have region set as "German (Switzerland)". I checked the rest (eg: "Time, Date, Advanced settings", ...) and everything seems 1:1. Is there a specific setting I should check ?

Go to the SMP -> System Administration -> Configuration -> National Language Settings -> Locale Definitions and compare selected locales.

Both are set to "deu8". I checked properties : 

The only difference is in collation tables. Both are set to "German2", but "Additional" column is not the same : 
CACHE : Cache standard, German1, German3
IRIS : German1, German3, German5, IRIS standard
I guess that's the reason. Not sure how it can be fixed (so CACHE behave like IRIS). All "edit" buttons are grayed.

You are on the right path, I use deuw and see

some differences grown by history

  • sort ÄÖÜ + ß (sharp S) after Z as by ASCII
  • sort Ä after A, Ö after O, Ü after U  but before Z
  • ignore trema. sort Ä=A, Ö=O, Ü=U   no idea about ß

4 and 5 may contribute to the lastest nonsense of German Language Authoroties
that introduced sharp_S also in uppercase.
<we lived since ever without it and didn't miss anything>

Your case:
You can't change the collation of an existing Global
But you can apply a different collation before first use in SMP
to overwrite default collation of the  DB
System > Configuration > Local Databases > Globals > New Global 

So you set up a global ^TEMP3  with collation German3
and run MERGE ^TEMP3=^TEMP  and have a new collation.

Some time back I set that to have different index collations for
German, Hungarian, Italian, French, Slovenian, ...
see my post Multi Language Sort