#Caché

30 Followers · 4.5K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Article Mihoko Iijima · Dec 28, 2023 1m read

InterSystems FAQ rubric

There is no need to recompile the routines after the version upgrade, but since the version update overwrites %SYS, user-created INT and OBJ format routines (*.INT,*.OBJ) in %SYS will be deleted. Therefore, you need to be careful. 

MAC, INT and OBJ routines with the following names are not deleted.

%Z*.INT, %z*.INT, Z*.INT,z*.INT
%Z*.OBJ, %z*.OBJ, Z*.OBJ,z*.OBJ

Please note that classes/CSPs need to be compiled after upgrading.

However, if you are upgrading to a maintenance release, no compilation is required. For details, please refer to the document below.

0
1 257
Question Stephane Devin · Dec 14, 2023

I got a problem to resolve, to sum it up I need to extract a function body from a JS file with cos.
I already got the JS code in a string and the function name but I'm kinda stuck as to how to get my function body, I already tried a few things (regEx, counter bracket) but there are comment and strings that block them from functioning. Is there a javascript parser or a good way to do it except by creating a javascript parser?

8
0 590
Article Mihoko Iijima · Dec 21, 2023 1m read

InterSystems FAQ rubric

If multiple InterSystems products are installed on the same system, the latest version of the InterSystems ODBC driver among the installed products will remain registered in the driver manager.

You can change to any driver by changing the registry entry below.

 Please note that running RegFiles.bat does not change the ODBC driver.

The registry entry is as follows.

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\InterSystems ODBC35 key Driver
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.
0
0 418
Question Richard Prouvot · Dec 19, 2023

I have written an in network single web page containing a jquery datatable. I want to add the "href" tag to link the Terminal window based on the IP.

Below is a list of failed attempts to make this work.

W " <td><a href=""javascript:pass('"_PASS_"|"_IP_"|"_USER_"|"_PORT_"')"">Terminal</a></td>"

or

" <td><a href=""javascript:openCMD('test')"">Terminal</a></td>"

or

" <td><a href=""C:\\Cachesys\bin\cterm.exe /console=cn_iptcp:ip[23"">Terminal</a></td>"

 " function openCMD(ip) {"
 W " var oShell = new window.ActiveXObject(""WScript.Shell"");"
 W " oShell.Run(""dir *.*"");"
 W " oShell.

3
0 230
Question Kris Roberts · Dec 14, 2023

 

  • I take a time stamp and convert it to a PosixTime
  • Then for an Timezone offset (for example America/New_York would be -05:00) convert it to seconds  -18000
  • I add the -18000 to the PosixTime
  • I convert the PosixTime to time stamp - shouldn't the time stamp show a lot more of a difference?  
  • I am guessing that adding -18000 is not really a difference of 5 hours?   What am I missing?

 

Thanks,

Kris

2
0 365
Article Megumi Kakechi · Dec 7, 2023 2m read

InterSystems FAQ rubric

To resolve the error <PROTECT>, remove the read-only attribute of the system-wide library database (IRISLIB for InterSystems IRIS, CACHELIB for Caché/Ensemble/HealthShare (Caché-based))

Once you have finished importing the routine, remember to change it back to read-only.
 

[Version 2013.1 and above]
[Management Portal] > [System Administration] > [Configuration] > [System Configuration] > [Local Database] Uncheck "Mount read-only" from the database name link.

[Version 2011.1 - Version 2012.

3
0 586
Article Murray Oldfield · Jun 6, 2017 20m read

I am often asked by customers, vendors or internal teams to explain CPU capacity planning for large production databases running on VMware vSphere.


This post was originally written in 2017, I am updating the post in February 2026. For context I have kept the original post, but highlighted changes. This post was originally written for ESXi 6.0. The core principles remain valid for vSphere 7.x and 8.x, though there have been improvements to vNUMA handling, CPU scheduling (particularly for AMD EPYC), and CPU Hot Add compatibility with vNUMA in vSphere 8.

7
0 6730
Article Mihoko Iijima · Nov 30, 2023 3m read

InterSystems FAQ rubric

Class definitions created by users are stored in class definition classes. They can be used to obtain a list of class definitions from a program.

Note: Class definition classes refer to all classes contained in the %Dictionary package.

In the sample code below, a list of class definitions is obtained using the query Summary of the class %Dictionary.ClassDefinitionQuery.

Class ISJ.Utils
{
ClassMethod ClassInfo()
{
    #dim ex As %Exception.
2
0 625
Article Megumi Kakechi · Nov 23, 2023 1m read

InterSystems FAQ rubric

When executing OS commands, use $ZF(-100).

do $ZF(-100,"",program,args) // Execute the Windows command [synchronously].
do $ZF(-100,"/ASYNC",program,args) // Executes a Windows command [asynchronously].

When executing OS shell commands such as mkdir and copy, also specify /SHELL.

do $zf(-100,"/shell /async","mkdir","c:\temp\x")

Please refer to the following documents for details:

About $ZF(-100) [IRIS]
About $ZF(-100)

2
1 554
Question Thiago Andrade · Nov 26, 2023

Hi folks!

I need to change a status database to RW with the class

I used scripts for this, for example, I can create a database like this

setup_database() {
csession -B -U "%SYS" <<-EOF
  zw ##class(SYS.Database).CreateDatabase("/InterSystems/cachedb/mydatabase")
  set Properties("Directory")="/InterSystems/cachedb/mydatabase"
  zw ##Class(Config.Databases).Create("MYDATABASE",.Properties)
  halt
EOF

How can I modify this status R/W?

2
0 241
Announcement Ward De Backer · Apr 13, 2023

Hey Developers,

We're honored to invite you to the first Benelux Caché User Group meetup since the start of COVID! It is dedicated to the Columnar storage, IRIS licensing, hardware & performance, and embedded Python!

⏱ Date: 04 May 2023 from 13:30 to 17:00

📍Venue: InterSystems BV, Medialaan 32 / 1, B-1800 Vilvoorde, Belgium

Do you or does your team work with InterSystems IRIS or Caché? Then this afternoon's event will be interesting to gain additional insights and meet colleagues. The team of InterSystems will be there too.

The agenda includes sessions from both the User Group and InterSystems itself, and at the end of the meeting, InterSystems will provide a snack and a drink as usual. Participation in the user group and meetings is free of charge!

Home - Intersystems Benelux Symposium 2020

1
1 543
Question Mike Williamson · Nov 17, 2023

I'm working for an organisation that is running a very old version of InterSystems Cache (5.016) which runs on AIX . The last two times we have re-booted Cache, we have encountered rollbacks. I've been asked two questions. During the rollback it was "How long is it going to take?" and after the system returned, it was "So what caused it?". My answer to both was "I don't know".

4
0 514
Question Ravi Kushwaha · Nov 21, 2023

Hi,

After upgrading from Cache to IRIS while running the web application I am getting an error in message.log

 Error: Create Gateway - Unable to create new gateway connection: ERROR #5023: Remote Gateway Error: <NOTOPEN>%AddToCurrentClassPath+6^%Net.Remote.Gateway.1

Cache Version : Cache for Windows (x86-64) 2018.1.7 (Build 721U) Fri Mar 18 2022 22:07:35 EDT

Upgrade to IRIS Version : IRIS for Windows (x86-64) 2022.1.2 (Build 574_0_22511U) Thu May 11 2023 22:36:05 EDT  

1
0 324
Question Alan Watts · Nov 20, 2023

I tried both the latest 32-bit and 64-bit Cache ODBC drivers, but I’m getting this “Message sequencing error” when I attempt to connect to the Cache server.  Client is a Windows Server 2022. Server is a 2008 version of Cache ( or customer thinks). I’ve tried a number of things without success.  If I enter invalid credentials I do get the quick “Access Denied” response.  But when I have the proper IP/port/namespace/credentials I consistently get this error below.  Google shows others struggle with that error, but no resolution.

0
0 409
Article Enrico Parisi · Nov 18, 2023 3m read

 I think WebTerminal is an outstanding project, kudos to @Nikita Savchenko 

One useful functionality is missing, the the ability to run Operating System (Linux or Windows) commands.
In many cases WebTerminal is used when access to the OS is difficult, so having the ability do run simple OS commands from WebTerminal would be a big advantage.
Using "normal" terminal, be it Windows IRIS console, Windows Telnet or within "iris session" in linux is simple, from the IRIS terminal prompt just precede the OS command with "$" or "!".
See the article "Terminal tip: Running OS-level commands" from @John.

1
0 404
Question Yone Moreno · Nov 6, 2023

Good morning,

First of all we would like to thank you for your time reading, thinking and aswering this question.

 

We have been developing a Transformation to convert a source ORU_R01 to a target ORU_R01. For each OBX segment we need to check an if, and then, if it is true we just need to put this OBX and continue to the next iteration, otherwise, if it is false, we need to put (copy) the ORC + OBR + TQ1 before this OBX, and then put this OBX, and after that, the SPM.

 

We have been creating and testing two variants.

4
0 360
Article Megumi Kakechi · Oct 19, 2023 2m read

InterSystems FAQ rubric

A tool (^GLOBUFF utility) is available to check the database cache usage for each global variable.

You can run the utility directly or programmatically in the %SYS namespace.

Here's how to run the utility directly:

USER>zn "%SYS"
 
%SYS>do ^GLOBUFF
 
Find which globals are using the most buffers.
 
Display the top <25>:     → Press Enter  // Default is to display top 25 globals
 
Total buffers: 102400     Buffers in use: 6926     PPG buffers: 77 (1.
5
1 941
Question Wesley West · Nov 15, 2023

I am trying to execute a program from within cache using a $zf call

S X=$ZF(-1,"C:\""Program Files (x86)""\Car-Part\Messaging\iCPM.exe")

For the sake of this post I changed it to open notepad

S X=$ZF(-1,"C:\Windows\notepad.exe")

If I call it directly from terminal notepad opens and all is happy.  

If I add it to a program we use to run certain tasks once an hour or even every 10 minutes it will fire off notepad but it will be in the background.

The messaging application we use will not work at all in the background and needs to be in the foreground.

2
1 344
Article Mihoko Iijima · Nov 9, 2023 1m read

InterSystems FAQ rubric

To create a user-defined error you need to prepare the XML that describes the error code and corresponding message that you want to use as a user-defined error.

Please set the error code as a negative integer.

<?xml version="1.0" encoding="UTF-8" ?> 
<MsgFile Language="en">
  <MsgDomain Domain="UserErrors">
    <Message Id="-111" Name="MyError">An error has occured</Message> 
    <Message Id="-222" Name="MyError2">An error has occured 2</Message> 
  </MsgDomain>
</MsgFile>

Once the XML file is created, load it into the namespace you want to use.

2
2 720
Question Stuart Strickland · Nov 8, 2023

I want to convert a string to uppercase that may or may not be a $LIST so that I can do a case insensitve search. However, when looking at what constitutes a $LIST I can see something that looks like it follows these rules:

Example: S X=$LISTBUILD("hello","world!")  gives X=$C(7,1)_"hello"_$C(8,1)_"world!

11
1 751
Question Shashvati Dash · Nov 6, 2023

There is test folder inside my sftp server. I executed the below lines of code

s ssh = ##class(%Net.SSH.Session).%New()

d ssh.Connect("host")

d ssh.AuthenticateWithUsername(username,password)

d ssh.OpenSFTP(.sftp)

s remote="\test\sample1.txt"

s local="c:\orders\sample1.txt"

s status=sftp.Put(local,remote)

I get the below error 

"MSSH Error [8010102B]: Unable to send FXP_OPEN* [8010102b] at SFTP.cpp:539,0Put,IM%e^zPut+2^%Net.SSH.SFTP.1^1e^^^0"

4
0 476
Article Stefan Cronje · Nov 6, 2023 2m read

Hi folks,

I have published a new package on OEX.

In short, it is a string datatype that support various configuration options and flexibility.

Business Case

  1. You have some library classes and other reusable structures that you use across systems.
  2. You have a "multi-tenant" environment where one code base is shared amongst tenants, which each have their own namespaces configured.
    1. Specific rules and business processes are stored in that tenant's namespace.
    2. The core class structures are the same.
0
0 407
Article Mihoko Iijima · Nov 2, 2023 3m read

InterSystems FAQ rubric

For routines (*.mac)

You can hide the source by exporting/importing only the *.obj that is generated after compiling the source program.

The command execution example specifies EX1Sample.obj and EX2Sample.obj, which are generated by compiling EX1Sample.mac and EX2Sample.mac, as export targets and exports them to the second argument file.

After moving to another namespace, I am using the exported XML file to perform the import.

USER>do $system.OBJ.Export("EX1Sample.obj,EX2Sample.obj","D:\routine.
1
0 664