Is it possible to run a test case by classname instead of loading it from a directory?
I need to skip any directory loading completely since the directory with the source code does not exist.
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.
Is it possible to run a test case by classname instead of loading it from a directory?
I need to skip any directory loading completely since the directory with the source code does not exist.
Hello DC community,
InterSystems Certification is currently developing a certification exam for ObjectScript developers, and if you match the exam candidate description below, we would like you to beta test the exam! The exam will be available for beta testing starting February 18th, 2026.
Beta testing will be completed May 4, 2026.
Hello,
I have problem to get working my web application in IIS. On apache just works fine.
I had an app in wwwroot called test, there is index.html file where is tag
<body onload="document.location='/test/app.start.cls';">When I do localhost/test. Then my application works just fine.
I have created second one in management portal called /mobile
mobile is in wwwroot/test/mobile where is the same index.html with tag
<body onload="document.location='/mobile/app.mobile.start.cls';">When I do localhost/mobile I got HTTP Error 404.0 - Stream Not Found
| Requested URL | http://localhost/mobile/app.mobile. |
|---|
I would like to understand the mechanism of "How data is written to the IRIS Database and in what sequence data is written to Journal, WIJ and IRIS database"
There are nfs disk commands (including nfsiostat) included with SystemPerformance, but disabled by default. Enable them by running:
$$Enablenfs^SystemPerformance()
Doing so will add the following nfs commands, for example, on Linux:
/usr/sbin/nfsstat -cn/usr/sbin/nfsiostat [interval] [count]Ensure the commands are installed and runnable from the OS :)
This can be subsequently disabled via $$Disablenfs^SystemPerformance()
Adding an arbitrary OS tool creates a "user" command under ^IRIS.
Are you familiar with SQL databases, but not familiar with IRIS? Then read on...
About a year ago I joined InterSystems, and that is how IRIS got on my radar. I've been using databases for over 40 years—much of that time for database vendors—and assumed IRIS would be largely the same as the other databases I knew. However I was surprised to find that IRIS is in several ways quite unlike other databases, often much better. With this, my first article in the Dev Community, I'll give a high-level overview of IRIS for people that are already familiar with the other databases such as Oracle, SQL Server, Snowflake, PostgeSQL, etc. I hope I can make things clearer and simpler for you and save you some time getting started.
SQL injection remains one of the most critical vulnerabilities in database-driven applications, allowing attackers to manipulate queries and potentially access or compromise sensitive data. In InterSystems IRIS, developers have access to both Dynamic SQL and Embedded SQL, each with distinct characteristics. Understanding how to use them securely is essential for preventing SQL injection.
Dynamic SQL constructs queries as strings at runtime. While this offers flexibility, it also creates a vulnerability if user input is not handled correctly.
| Alert Id | Product & Versions Affected | Risk Category & Score | Explicit Requirements |
| DP-448888 |
Products: Versions: |
Operational: High Risk | ≥ 2 TB of database cache is used |
In the versions specified above, an instance may fail to start or may hang during operation if the database cache is greater than or equal to 2,097,152 MB (2 TB).
Hi Community,
We're super excited to share that we’ve just launched a new free, interactive tutorial designed especially for those who are new to InterSystems IRIS and looking for a clear, practical introduction to its core concepts.
🧑🏫 Data Models of InterSystems IRIS 🧑💻

USER>do $System.Python.Shell()
ERROR #5002: ObjectScript-Error: <OBJECT DISPATCH>Shell+16^%SYS.Python.1
*Failed to Load Python: Check documentation and messages.log,
Check CPF parameters:[PythonRuntimeLibrary,PythonRuntimeLibraryVersion],
Check sys.path setup in: $INSTANCE/lib/python/iris_site.py
02/03/25-18:27:39:497 (13156) 1 [Generic.Event] CPF settings (PythonRuntimeLibraryVersion) do not specify python correctly - Python can not be loaded 02/03/25-18:27:39:498 (13156) 1 [Generic.
Since our previous announcement, we have introduced several incremental improvements to the client‑side editing experience in VS Code. These updates focus on preserving developer‑authored formatting when synchronizing with the server.
Client‑side *.cls files previously lost certain formatting details during compilation, including keyword casing (e.g., classmethod → ClassMethod), normalization of blank lines between class members, and removal of line breaks within parameter lists.
Hello all,
I have a EnsLib.HTTP.GenericMessage inbound from a webhook with a GC stream.
My router is defined as the following:
Hi all.
I have a rather strange problem.
I've created a method in Python to create a vector for a vector search. So far, so good.
If I call this method from the terminal, it works correctly:
But if I make this same call from a code block in a Business Process, it gets stuck, doesn't respond, and throws the following error:

Does anyone know what's happening and how to fix it?
Thank you in advance
Hi community,
I've been working on a side project that I'd love to get some eyes on: a ground-up rebuild of the classic IRIS Production Monitor using a modern web stack. The existing ZEN/CSP-based portal does the job, but I wanted to explore what a contemporary, real-time version of it could look like.
A standalone Angular web application that connects to any Interoperability-enabled IRIS namespace and gives you a live view of your production — services, processes, operations, queues, event log, and message traffic — all in one screen.
Earlier this year, I set about creating kit to introduce young techy folk at a Health Tech hackathon to using InterSystems IRIS for health, particularly focusing on using FHIR and vector search.
I wanted to publish this to the developer community because the tutorials included in the kit make a great introduction to using FHIR and to building a basic RAG system in IRIS.
As part of the new Interoperability UI wave (see what was new in 2025.1, and 2025.3 by @Aya Heshmat), v2026.1 which is available already as a Developer Preview, and this could be a reason for you to give it a ride - will be shipping the new UI for the Message viewing and searching, including Visual Trace (and other UI goodies).
He's a quick teaser:

As part of the new Interoperability UI wave (see what was new in 2025.1, and 2025.3 by @Aya Heshmat), v2026.1 which is available already as a Developer Preview, and this could be a reason for you to give it a ride - will be shipping the new UI for the BPL editor (and other UI goodies).
He's a quick teaser:

I may have mentioned this before: I believe the Visual Traces, these sequence diagrams with full content of each step, are a fantastic feature of the IRIS Data platform! Detailed information about how the API works internally, as a visual trace, can be very useful for projects on the IRIS platform. Of course, this applies when we are not developing a high-load solution, in which case we simply don't have time for saving/reading messages. For all other cases, welcome to this tutorial!
In this article I'll show you how to set up in your laptop, very quickly, a cluster of IRIS nodes in sharding. It's not the goal of this article neither to talk about sharding in detail nor define a deployment of a production ready architecture, but to show how to set up quickly, in your own machine, a cluster of IRIS instances configured as shard nodes, with which you'll able to play and test this functionality. If you're insterested in knowing more about sharding in IRIS, take a look at the documentation clicking here.
First and foremost, I want to remark that IRIS sharding will allow us 2 things:
So, as I said, we let for other article playing with shard or federated tables, and just focus now in the previous step, that is, setting up the cluster of shard nodes.
![]()
If you have ever dug through a large IRIS namespace looking for where a particular string, method call, or pattern was used, you know the pain: there was no built-in way to do a grep-style search across your server-side ObjectScript code from VS Code — at least not without jumping through some hoops.
That is what ObjectScript Search fixes.
Try it today with a simple install from the VS Code Marketplace. If you don't like it, uninstalling is just as easy. But I think you will like it — it is a huge quality-of-life improvement for anyone doing ObjectScript development in VS Code.
We are trying to track down significant growth within our Namespaces, one big culprit is Ens.AppData (EnsLib.SQL.Snapshot).
Within many of our BPL's we use EnsLib.SQL.Snapshot to return Results from External SQL Stored Procedures or Query's. The same EnsLib.SQL.Snapshot context variable is used for many of these calls within a BPL.
Is there something we should be doing at the end of the BPL to ensure that EnsLib.SQL.Snapshot gets cleaned up and purged from Ens.AppData?
How can I create a Task that tells a Ens.BusinessService to execute its SQL query using the EnsLib.SQL.InboundAdapter?
So far I have come up with
Class OSU.Workday.TerminationsTask Extends %SYS.Task.Definition
{
Parameter TaskName As STRING = "OSU - Workday Termination Update";
Method OnTask() As %Status
{
try{
// Call BusinessService
set tSC = ##class(Ens.Director).CreateBusinessService("OSU.DataSource.Workday.TermService",.tService)
if $IsObject(tService){
set inputMessage = ##class(Ens.StringContainer).Hi developers!
In a method I need to return a result as a dynamic object aka JSON Object. And here is my logic:
Classmethod Planets() as %DynamicObject {
set val1="Jupiter"
set val2="Mars"
// this doesn't work! cannot compile
return {"value1":val1, "value2":val2}
}So I need to do the following:
How to execute a stored procedure in a remote DB2 database?
Hi Everyone,
I want to access a stored procedure in a remote DB2 database. The stored procedure in question is linked and receives a numeric value, returning a cursor with N number of rows. Sometimes the number of rows reaches hundreds of thousands, so I need to apply pagination.
I've been reading about the %ScrollableResultSet library, but it doesn't allow me to call a stored procedure.
Here's part of the code:
Set pValor=12345678
Set callSql="CALL Paquete.ClaseSpRemoto(?)"
Set rs=##class(%ScrollableResultSet).
IPM version 0.10.6 was released on February 24th, 2026. This version is mostly bug fixes, but does add the -export-python-deps flag to the package and publish commands to include Python dependencies with the IPM module itself. As usual, you can check it out on the GitHub page or through the Community Registry.
Here's the complete changelog:
Added
- #1024: Added flag -export-python-deps to publish command
Fixed
- #996: Ensure COS commands execute in exec under a dedicated, isolated context
- #1002: When listing configured repositories, only show the TokenAuthMethod when a token is defined.
Hi, Community!
Working with large volumes of data? See how streams can help:
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
I had configured the environment as follows:
OS: Redhat Linux 9.4
IRIS 2025.2 installed on local directory
IRIS Database: One LVM is created with 20 Storage luns and the LVM is mounted on a mount point. IRIS database is created on that
Primary and Alternate Journal: One LVM is created with 5 Storage luns and the LVM is mounted on a mount point. IRIS database is created on that.
WIJ: One LVM is created with 5 Storage luns and the LVM is mounted on a mount point. IRIS database is created on that.
So Data, WIJ and Journal is mounted on 3 separate mount point.
Dynamic Entities (objects and arrays) in IRIS are incredibly useful in situations where you are having to transform JSON data into an Object Model for storage to the database, such as in REST API endpoints hosted within IRIS. This is because these dynamic objects and arrays can easily serve as a point of conversion from one data structure to the other.
Anyone up for a round of golf?
Are you fed up of making a machine write code for you? Do you miss thinking through problems yourself? Then you are in luck, this round, I propose adding the rule of no AI use. obviously its a game of honor with no prize, so I shan't be enforcing this, but you'll know...
Challenge:
Create a function which takes a string as a parameter, and returns the length of thelongest sequence of alternating consonants and vowels. The sequence is broken by having two vowels or two consonants in a