As mentioned in the previous article, it is possible to configure the way you wish your collections to be stored and queried in SQL.
.png)
To set this up, you will need to use the following field parameters and settings:
InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.
As mentioned in the previous article, it is possible to configure the way you wish your collections to be stored and queried in SQL.
.png)
To set this up, you will need to use the following field parameters and settings:
In InterSystems IRIS, when you compile a persistent class, you automatically get a SQL table. Sometimes, there are situations that require having a slightly (or not so slightly) different names/options in SQL compared to Object model. Here are some of the settings that you can change to make it happen.
They define the "Face" of your class when it appears as a table in the SQL catalog.
SqlTableName allows you to change the name of SQL table that holds objects from your class. This is especially useful, when your class name uses reserved SQL words in a name, e.g. Group.
Despite the fact that LOCK (docs) is a foundational part of InterSystems IRIS, responsible for concurrency, there is not a lot of discussion on the Developer Community about it. Which is understandable, considering it's stable and fairly low-level command. In this article, I will show a simple example of how to use locks with interoperability.
As an experiment in agentic coding in ObjectScript I'm using VS Code to try and create an implementation of an SFTP server.
SFTP is built on top of SSH, so the first phase involves implementing an SSH server. While working on the KEX part of that the agent (using GPT-5.3-Codex) reported:
It then offered these options:
Starting out with ObjectScript, it is really exciting, but it can also feel a little unusual if you're used to other languages. Many beginners trip over the same hurdles, so here are a few "gotchas" you'll want to watch out for. (Also few friendly tips to avoid them)
NAMING THINGS RANDOMLY
We have all been guilty of naming something Test1 or MyClass just to move on quickly. But once your project grows, these names become a nightmare.
➡ Pick clear, consistent names from the start. Think of it as leaving breadcrumbs for your future self and your teammates.
I joined InterSystems less than a year ago. Diving into ObjectScript and IRIS was exciting, but also full of small surprises that tripped me up at the beginning. In this article I collect the most common mistakes I, and many new colleagues, make, explain why they happen, and show concrete examples and practical fixes. My goal is to help other new developers save time and avoid the same bumps in the road.
The issue: ObjectScript/IRIS ships with many system classes and packages (%Library, %SYS, %Persistent, %SQL, etc.).
Welcome to the next chapter of my CI/CD series, where we discuss possible approaches toward software development with InterSystems technologies and GitLab.
Today I want to share a few approaches that will decrease your compilation time (especially if you're doing incremental/diff compilation rather than a full build).
Code load and compilation are affected by a variety of flags and qualifiers. If you write deployment scripts for InterSystems platforms, I highly recommend reading them at least once through.
Below is an update to the IRIS release calendar for 2026 and an early look at the planned changes for 2027. The key takeaway for 2026 is that maintenance release numbering will differ slightly from prior years.
2026: IRIS 2026.1 maintenance release numbering
This numbering change prepares us for the expanded maintenance cadence planned for 2027.
I am working on setting up OAUTH with FHIR and Microsoft Entra. I have configured the Client and configured it in the FHIR Server successfully. However, I get 401 when authenticating with a token. Looking at ^ISCLOG I see:
^ISCLOG("Data",9,0)="accessToken=<jwt token>, scope=, aud="
^ISCLOG("Data",10)=$lb(3,"OAuth2","[OAuth2.ServerDefinition:ValidateJWT]","171430","%SYS","2026-04-28 17:41:25.305549397","OAuth2.ServerDefinition.1","","zwKKakZZZx2")
^ISCLOG("Data",10,0)="JWT valid? sc=1"
^ISCLOG("Data",11)=$lb(3,"HSFHIRServer","[HS.FHIRServer.
When I build docker containers my build log usually looks like this:
#924.94Is there any way to record commands? Currently I need to add:
But it would be way better if I could just see what's being executed.
Ever since I started using IRIS, I have wondered if we could create agents on IRIS. It seemed obvious: we have an Interoperability GUI that can trace messages, we have an underlying object database that can store SQL, Vectors and even Base64 images. We currently have a Python SDK that allows us to interface with the platform using Python, but not particularly optimized for developing agentic workflows. This was my attempt to create a Python SDK that can leverage several parts of IRIS to support development of agentic systems.
One of the recommendations when deploying InterSystems Technologies for production is to set up High Availability. The recommended API Manager for these InterSystems Technologies is the InterSystems API Manager (IAM). IAM (essentially Kong Gateway) has multiple deployment topologies.
If you are looking for high availability you could use:
a) Kong Traditional Mode: Multiple Node Clusters
b) Hybrid Mode
c) DB-less Mode
Before we break them down let's first understand the out of the box deployment that is provided by InterSystems: Installing IAM Version 3.10.
The Interoperability user interface now includes modernized user experiences for the DTL Editor and Production Configuration applications that are available for opt-in in all interoperability products. You can switch between the modernized and standard views. All other Interoperability screens remain in the Standard user interface. Please note that changes are limited to these two applications and we identify below the functionality that is currently available.
To try out the new screens prior to upgrading, you can download the 2025.
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Whats Going On - Monitoring and Observability of InterSystems IRIS @ Ready 2025
Hello,
can someone confirm to me if image for docker deployment of IRIS are ready for production? Also what about Healtshare products?
Thank you.
. . . you are not alone.
Help is available.
This took me a while to figure out, and I assume there may be others struggling too. I made my way through all the Entra stuff to set up a client credentials workflow to send email through a Microsoft 365 account. I was able to successfully retrieve my token, but I couldn't ever get it to authenticate with the SMTP server using the %Net.SMTP class. There were two parts to fixing this.
First, the authenticator's access token needs to be more than JUST the access token. It has to be formatted as:
set smtp.authenticator.AccessToken = "user="_emailaddress_$C(1)_"auth=Bearer "_token_$C(1,1)READY is right around the corner, and this year the Application Services team from InterSystems will be hosting a Embedded Git Users GroupMeeting during the conference!This will be held Thursday, April 30th during breakfast from 7:30 – 8:30 (breakfast will be served at the meeting room starting at 7:00am).
READY is right around the corner, and this year the Application Services team from InterSystems will be hosting a IPM Users GroupMeeting during the conference!This will be held Wednesday, April 29th during lunch from 12:30 – 1:30 (lunch will be served at the meeting room).
Hey Community,
Yeah, I know we have a lot of tips & tricks articles - we even have a special tag for it, right? But I can not share my own collection. In this collection, you can find snippets for beginners, as well as some everyday ObjectScript constructions. In fact, it's also a way to learn something new about my favorite programming language. So, if you guys have anything to add, you are welcome!
Hi!
We are deploying the iris image in a Kubernetes environment and the cluster state is "Hung" , looking the alerts endpoint we get 2 alerts:
[
{
"time":"2026-03-24T13:45:44.548Z",
"severity":"2",
"message":"System appears to have failed over from node a69a9f137593"
},
{
"time":"2026-03-24T13:46:30.274Z",
"severity":"2",
"message":"Error: <PROTECT>KillAlive+1^%SYS.CDIRECT in SERVERS"
}
]
Any idea / help where those are comming from and how to address them?
The article was motivated by the 2025 September Article Bounty
The principle of Docker is just convincing to me.
This was the technical base for me to run about 700 reviews in OEX
with almost no side effects (except those caused by myself).
For beginners, I'll start with straight pure IRIS, no *health, *ML, *whatever
First, you need a Docker installation. It's available on almost any platform.
I am regularly contacted by customers about memory sizing when they get alerts that free memory is below a threshold, or they observe that free memory has dropped suddenly. Is there a problem? Will their application stop working because it has run out of memory for running system and application processes? Nearly always, the answer is no, there is nothing to worry about. But that simple answer is usually not enough. What's going on?
Consider the chart below. It is showing the output of the free metric in vmstat
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
Hi Community,
If you’re new to InterSystems, check out the InterSystems Developer Hub.
Start working with InterSystems technologies — install InterSystems IRIS, connect to it, run something real, or try products directly in a browser-based interactive environment (no setup required).
If you’re wondering where to begin, here’s what you’ll find there:
Developer Onboarding Guide — a structured walkthrough of what InterSystems IRIS is and how to set it up
Quickstarts — short, practical guides to get you from zero to a working setup:
The 2026.1 release of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and InterSystems Health Connect™ is now Generally Available (GA). This is an Extended Maintenance (EM) release.
Hi Community,
Take a look at these new videos in online learning, and get familiar with new features and interfaces in the latest release of InterSystems® products. All videos are also available in the Learning Services YouTube channel.
Plus, check out a video for new ObjectScript developers, and a guide for HealthShare® users upgrading their deployments.
We were testing upgrades on our internal systems recently, and were initially surprised to see a change in some instances of SQL behavior. On further investigation, the changes make a lot of sense, and are easy to adapt to. But, to hopefully save you some time and provide additional information in case this is something you too find curious or interesting, we thought we would share our understanding of the changes and how we got around it to preserve previous behavior where desired.
Starting in IRIS version 2024.2.
Senior engineering is defined not by the volume of code produced, but by the strategic avoidance of it. In complex integration environments, the tendency to utilize general-purpose libraries for every niche requirement introduces unnecessary overhead. True architectural maturity requires a commitment to "minimalist tooling"—prioritizing resilient, battle-tested system utilities over custom logic. This assessment examines our PGP encryption/decryption pipeline to demonstrate how shifting from application-level libraries to OS-native delegation enhances system durability.
Hi, Community!
Are you working with large tables? See how partitioning helps you manage and query your data:
Today I have published a new Open Exchange package for generation of Synthetic Data directly into IRIS.
It can be a frustrating process to find decent datasets when you are looking to make a demo app. Maybe the dataset doesn't matter that much, but you still want it to appear somewhat genuine and with several linked tables that are usable directly within IRIS with the neat implicit joins with ->. Maybe you just want linked tables that are easily installable with IPM to benchmark queries, this dataset generation would be perfect.