It's possible to change (and thus disable) concurrency of a persistent object by calling this private method (eg: in constructor) :

Method %OnNew() As %Status
{
    do ..%ConcurrencySet(0) // <--- here
    quit $$$OK
}

Disclaimer : this is an undocumented method. It might be removed from IRIS implementation in the future, use it at your own risk.

The parameter of that method accept same values as what is returned by $system.OBJ.GetConcurrencyMode().
Once is concurrency is disabled, updates from other processes to related global can occurs even within transactions (data consistency is lost). A possible workaround is to create a single lock on the global :

do ##class(Test.Test).%LockExtent()   //same as lock +^Test.TestD
//do something here 
//...
do ##class(Test.Test).%UnlockExtent() //same as lock -^Test.TestD

This prevent having many locks created during long duration transactions that create many persistent objects (but on the other side, it locks the whole global, not individual nodes).

Thanks. I will take a look at it. I have some issues on a server where too many "delocks" are created because a lot of persistent objects are created in a long term transaction. I would like to avoid refactoring all the code to bypass persistent objects and use globals directly (which will require a lot of work).

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.

I forgot to mention I am on Windows.

"iris terminal" works somehow. There is several issues with this approach :

- it does not redirect input/output (eg: echo 50 | iris terminal IRIS). One workaround is to put commands into a routine and call it explicitly : iris terminal IRIS MYROUTINE %SYS

- it does not block/wait until completion (which is an issue since I use that command from a deployment tool that need to know once it's done)

- there is no way to provide custom credentials (eg: execute commands with a specific user)

Thanks. This is the same trick as what I found in "InterSystems IRIS Adoption Guide".

If I wrote this in command line (eg: iris session IRIS), it outputs the command line documentation (which indicate something went wrong). "iris console IRIS" works by the way. Do I need to enable something before I can use session parameter ?

EDIT : it seems that irissession.exe is the equivalent on Windows.

Here is some code example

<form name="WWW" id="WWW" action="/csp/foo.cls" method="POST">
    <textarea id="PARAM1" name="PARAM1"></textarea>
</form>
document.WWW.submit();

Which will result in the following request :

POST https://something/csp/foo.cls?PARAM1=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HTTP/1.1
Accept: */*
Content-Type: text/html;charset=UTF-8
Referer: https://something/
Content-Length: 0
Connection: Keep-Alive
Cache-Control: no-cache

As you can see, input value is added to the url, just like a GET.