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).
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.
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 ?
"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.
Thanks. Out of curiosity, can you show the extended syntax to call a method from another namespace ?
Also : when you say Config.MapGlobals use globals in %SYS, what are they used for ? AFAIK mappings are stored in IRIS.cpf file, not in globals (or maybe you are referring something else).
Thank you. I missed the fact that what is below /mgr/ is indeed system manager DBs (seems obvious).
Customer DB and code is actually somewhere else, in different namespaces and drive. I tried to rename CACHE.DAT to IRIS.DAT and it works (after proper backup). The only thing I need is to run some upgrade command on them.
Thanks for the info. While there is probably something wrong with the OS (Windows in this case), is there a lighter way in Caché to execute a routine in a separate task ? I am thinking something like starting a new thread or using a thread pool. Does such thing exists ?
You are right. There is actually two ways the program send requests : either by submitting form (which result in fields being added to the body of the request as expected). And another way for server side validation, using a XMLHttpRequest. It append everything to the URI. I might fix that part.
Thanks, it works. I already tried something similar but put the the "}" and the "catch {" on separate lines. The trick is to put them on the same line.
I agree udl is much better for versioning than xml. I didn't know it was possible, seems the way to go. For globals, is there something better than xml ?
I found the following XSD file which seems to be what I want :
C:\InterSystems\Cache\bin\cacheexport.xsd
It's much more complex than what I thought. Maybe exporting all cache files as UDL (as Dmitriy suggested) is a better approach. I don't know if SyncTool is able to export cache entities in that format directly. If not, I will need a second pass (that convert xml to udl).
go to post
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).
go to post
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.
go to post
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 post
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)
go to post
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.
go to post
Thanks. Out of curiosity, can you show the extended syntax to call a method from another namespace ?
Also : when you say Config.MapGlobals use globals in %SYS, what are they used for ? AFAIK mappings are stored in IRIS.cpf file, not in globals (or maybe you are referring something else).
go to post
That would be really great.
go to post
Did you added menu item by writing code (eg: to extend %Studio.Extension.Base) or is there another way ?
go to post
Thank you. I missed the fact that what is below /mgr/ is indeed system manager DBs (seems obvious).
Customer DB and code is actually somewhere else, in different namespaces and drive. I tried to rename CACHE.DAT to IRIS.DAT and it works (after proper backup). The only thing I need is to run some upgrade command on them.
go to post
Thanks for the info. While there is probably something wrong with the OS (Windows in this case), is there a lighter way in Caché to execute a routine in a separate task ? I am thinking something like starting a new thread or using a thread pool. Does such thing exists ?
go to post
Thanks for clarification about the name. I found it was called like that before I saw your post and edited OP.
go to post
You are right. There is actually two ways the program send requests : either by submitting form (which result in fields being added to the body of the request as expected). And another way for server side validation, using a XMLHttpRequest. It append everything to the URI. I might fix that part.
go to post
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.
go to post
Thanks, it works. I already tried something similar but put the the "}" and the "catch {" on separate lines. The trick is to put them on the same line.
go to post
Wonderful. I works like a charm. Thank you.
go to post
I agree udl is much better for versioning than xml. I didn't know it was possible, seems the way to go.
For globals, is there something better than xml ?
go to post
I found the following XSD file which seems to be what I want :
C:\InterSystems\Cache\bin\cacheexport.xsd
It's much more complex than what I thought. Maybe exporting all cache files as UDL (as Dmitriy suggested) is a better approach. I don't know if SyncTool is able to export cache entities in that format directly. If not, I will need a second pass (that convert xml to udl).