Question Dmitrii Baranov · Jul 15, 2025

I need to implement a retry policy for an incoming message queue containing thousands of relatively small messages.

Successfully processed messages should be immediately removed from the queue.

If an error occurs while processing a message, the message should be sent back at the end of the queue, and the pause before re-processing this message should increase geometrically (1-2-4-8-16 seconds, and so on). In languages that support the async/await pattern, I'd simply create a delayed timer that triggers a fire-and-forget task. This would prevent blocking the main thread.

8
0 191
Question Phillip Wu · Jul 21, 2025

Hi,

I have a mirrored database called ROUTER.

I have a primary server T1 and a "Disaster Recovery" server T2.

When I activate ROUTER database on T2, I get the error it says the "Database could not be mounted".

I went to the audit database and it shows "Attempt to access a protected database".

T2 in mirror monintor shows "Connected" "Caught up" "Warning! Some databases need attention"

T2 show the ROUTER database as being "Mounted/R"
Both T1 & T2 are Linux servers. The ROUTER database file IRIS.DAT have the same Linux permissions

All productions on T1/T2 are not running.

3
0 68
Question Ronaldo Nascimento · Jul 18, 2025

I am trying to create users who only have `%SQL` Role for the INSTANCE. But I am unable to find any documentation on the `Security.Users` class.

See:

// Instantiate the Security.Users objectSet userObj = ##class(Security.Users).%New()// Set the username and passwordSet userObj.Name = userNameSet userObj.FullName = userFullNameSet userObj.Namespace = "USER"Set userObj.Roles = "%SQL"
   Set sc = userObj.ChangePassword(passwd)// Save the user to the databaseSet ss = userObj.
3
0 154
Article Siddardha Reddy Sanagala · Jul 11, 2025 7m read

Hi InterSystems Community! I'm Sidd one of the interns at the Singapore office and I recently had the chance to develop to develop a driver to connect IRIS to Metabase to help some of the Sales Engineers here. I was encouraged to share it here so that if any others have a similar issue they can use the driver and as well as get some feedback on potential improvements. The full GitHub repo with the quick start step, brief overview and the driver building process can be found here.

4
4 204
Question Josep Balagué · Jul 10, 2025

Until now i used $ZF(-1), in older Caché versión, now I try to use $ZF(-100),  i do:  

REST>w $ZV
Cache for Windows (x86-64) 2018.1.4 (Build 505_1) Thu May 28 2020 10:12:49 EDT
REST>s a=$zf(-100,"/SHELL","dir")
 
S a=$ZF(-100,"/SHELL","dir")
^
<NOTOPEN>

What is wrong?

Thanks in advance

4
0 148
Article Anastasia Dyubaylo · Jul 19, 2025 1m read

Hi Community, 

If you've decided to leave the InterSystems Developer Community, we're sorry to see you go! This guide will walk you through the steps to permanently delete your account.

⚠️ Before you begin: please note that deleting your account is irreversible. If you simply want to stop receiving notifications, consider updating your notification settings. 

How to request account deletion:

0
0 97
Article Sylvain Guilbaud · Jul 18, 2025 8m read

🛠️ Managing InterSystems InterSystems API Manager (IAM = Kong Gateway) configurations in CI/CD

🔍 Context: InterSystems IAM configurations 

As part of integrating InterSystems IRIS into a secure and controlled environment, InterSystems IAM relies on Kong Gateway to manage exposed APIs.
Kong acts as a modern API Gateway, capable of handling authentication, security, traffic management, plugins, and more.

However, maintaining consistent Kong configurations (routes, services, plugins, etc.) across different environments (development, testing, production) is a major challenge.

0
1 155
Article Anastasia Dyubaylo · Jul 15, 2025 3m read

Our goal on the Developer Community is to foster a high-quality, trustworthy, and original body of technical content created by and for developers. While AI tools like ChatGPT can be helpful in the writing process, we expect all published content to reflect authentic expertise and personal understanding. If you have any questions or wish to discuss your coding problem with an AI, consider using our Developer Community AI chat.

Acceptable Use of AI

We recognize that AI tools can assist with editing and clarity. You may use them in the following ways:

  • To fix grammar, spelling, and punctuation.
4
1 289
Question Touggourt · Jul 16, 2025

Hi,

After converting from Ensemble 2018 to IRIS 2024 I noticed that HTML tag is not recognized? 

I just copied & pasted this same from Ensemble to IRIS and in Ensemble looks fine!?

Thanks

6
0 188
Question Enrico Moreschi · Jul 17, 2025

Hello everyone,

I'm using EnsLib.TCP.TextLineOutboundAdapter to communicate with a third-party system over TCP/IP. The issue is that the system sends back only an integer (e.g. 1001 or -1) without any terminator (like $c(10)).

The adapter expects a terminator and always times out with ErrTCPTerminatedReadTimeoutExpired, even though the correct data is received. Here an example of an error: 
[TCPSender] Errore nell'invio: ERROR <Ens>ErrTCPTerminatedReadTimeoutExpired: TCP Read timeout (15) expired waiting for terminator 0, data received ='1005'

Trying different terminators (e.g.

3
0 89
Question Paul Coviello · Jul 17, 2025

I'm trying to print from Cache and I have setup the device, but keep getting a message that someone else is using it. this is RHEL 7.9. I have cups running and I can print from the command line.  I have also issued this command: lpadmin -p KM501L -u allow:all

what am I missing

thanks

Paul

1
0 65
Announcement Derek Gervais · Jul 17, 2025

Hey Community, 

Last week, the InterSystems team held our monthly Developer Meetup in a new venue for the first time ever! In the AWS Boston office location in the Seaport, over 71 attendees showed up to chat, network, and listen to talks from two amazing speakers. The event was a huge success; we had a packed house, tons of engagement and questions, and attendees lining up to chat with our speakers afterwards! 

Photo of a large audience watching the speaker Jayesh Gupta present his topic
Jayesh presents on Testing Frameworks for Agentic Systems to a full house

0
1 86
InterSystems Official Kevin Xu · Jul 14, 2025

InterSystems IRIS 2025.2 introduces the IRISSECURITY database, the new home for security data. Unlike IRISSYS, the previous home for security data, IRISSECURITY can be encrypted, which secures your sensitive data at rest. In a future version, IRISSECURITY will be mirrorable.

This version also introduces the %SecurityAdministrator role for general security administration tasks. 

The changes described here affect both continuous delivery (CD) and extended maintenance (EM) release tracks. That is, starting with versions 2025.2 (CD, released on 23 July, 2025) and 2026.

2
4 460
Question Adel Elsayed · Jul 21, 2021

in order to do analysis on huge data volumes, it is better to take you data to a separate machine for analysis away from the operational machine, so trying to write huge globals or tables into files as is would take a huge space, what could be a solution or best practice ?..in python for instance, there is the pickling option (serializes data to byte string and saves it to a file) to save space, what could be best in object script ?

12
0 1749
Announcement Anastasia Dyubaylo · Jul 17, 2025

Hi Community!

We’re pleased to announce that several Early Access Programs (EAPs) are now open for registration. These programs provide developers with the opportunity to explore upcoming features and technologies from InterSystems before their general release.

By joining an EAP, you can:

  • Evaluate and test new functionality
  • Provide direct feedback to product teams
  • Help shape the future direction of InterSystems platforms

If you're interested in contributing to the evolution of our tools and getting early insight into what's coming next, we encourage you to review the following available programs and sign up:

0
0 164
Article Vishal Pallerla · Jul 17, 2025 3m read

At hackathons that InterSystems participated and I supported, many students were asking how all their teammates could use the same IRIS database that they spun up in a container. I suggested using ngrok to expose their localhost IRIS and realized we don't have documentation on that. Hence, I thought this would be great to let more people knwo about this powerful technique for enhancing collaboration during development and testing.

Step-by-Step Guide to Exposing InterSystems IRIS with ngrok

This guide will walk you through the process of exposing your local InterSystems IRIS instance using ngrok.

0
2 220
Article Guillaume Rongier · Jul 17, 2025 5m read

img

This will be an introduction to Python programming in the context of IRIS.

Before anything I will cover an important topic: How python works, this will help you understand some issues and limitations you may encounter when working with Python in IRIS.

All the articles and examples can be found in this git repository: iris-python-article

How Python works

Interpreted Language

Python is an interpreted language, which means that the code is executed line by line at runtime even when you import a script.

What does this mean ? Let's take a look at the following code:

# introduction.
0
3 243
Announcement Celeste Canzano · Jul 16, 2025

Hello Again,

InterSystems Certification is still looking for people to beta test the InterSystems IRIS SQL Professional Certification exam. This is a great way to earn the certification for free! We have extended the deadline of the beta test to October 30, 2025.

Please note, only candidates with the pre-existing InterSystems IRIS SQL Specialist certification are eligible to take the beta.  For details, see the original announcement.

Thank you!

0
0 121
Article Developer Community Admin · Jul 16, 2025 8m read

Faced with the enormous and evergrowing amounts of data being generated in the world today, software architects need to pay special attention to the scalability of their solutions. They must also design systems that can, when needed, handle many thousands of concurrent users. It’s not easy, but designing for massive scalability is an absolute necessity.

A workload averaging 1000 1-kilobyte queries per second is compared with another involving 10 1-terabyte queries per hour

Software architects have several options for designing scalable systems. They can scale vertically by using bigger machines with dozens of cores. They can use data distribution (replication) techniques to scale horizontally for increasing numbers of users. And they can scale data volume horizontally through the use of a data partitioning strategy. In practice, software architects will employ several of these techniques, trading off hardware costs, code complexity, and ease of deployment to suit their particular needs.

This article will discuss how InterSystems IRIS Data Platform supports vertical scalability and horizontal scalability of both user and data volumes. It will outline several options for distributing and partitioning data and/or user volume, giving scenarios in which each option would be particularly useful. Finally, this paper will talk about how InterSystems IRIS helps simplify the configuration and provisioning of distributed systems.

0
3 215
Question Mark OReilly · Jul 15, 2025

As foreign tables are behind a paywall (booo); we have a external cache system using the intersystems ODBC driver or usually a .jar CacheDB.jar. 

The requirement is :

"Create a copy of the external table once a day to perform comparisons to detect changes"

We could go full code and this is what we will do but trying the following should ideally work 

CREATETABLE Sample.YoungPeopletwo ASSELECT *
FROM Pennine_TIE_Clinicom_Link.
4
0 109
Question Riccardo Villa · Jul 15, 2025

Hello,

I need to expose InterSystems HealthInsight dashboards over the internet to external operators. The authentication flow is managed externally. When a user is authenticated, our system receives an HTTP request with specific headers (e.g., operator’s fiscal code and hospital identifier) that we need to extract in order to:

  • Authorize the user to access the dashboards.
  • Apply row-level security on the dashboards, filtering the data by hospital and user role.
2
0 133
Question Touggourt · Jul 16, 2025

Hi,

Using the below code to connect and get data from a server:

Class SX3.Production.HTTP.AdvCredenials Extends (%RegisteredObject, %Net.WebSocket.ICredentials)
{Method GetUsername() As %String
{
quit ""
}/// Returns the password to use for authentication with the web socket
/// @API.Overrideable
Method GetPassword() As %String
{
quit ""
}Method GetSSLConfiguration() As %String
{
"RTLS"
}}

Class SX3.Production.HTTP.AdvListener Extends (%RegisteredObject, %Net.WebSocket.IEventListener)
{Method OnOpen()
{
 ^badis("mess",3)=1
if $increment(%ct("O")) set io=$io use 0 write "OPEN",!

5
0 116
Question Neil Thaiss · Jul 15, 2025

Hi,

We have just upgraded the Trusts test Health Connect instance from 2021.1 to 2025.1 and now the the Rules and DTL editors, in the Management Portal, timeout after 10 - 20 minutes of inactivity.
In 2021.1 we were able to disable this timeout using: set ^EnsPortal("DisableInactivityTimeout","Portal") = 1, however this no longer works with 2025.1, and is being ignored.
It may be being ignoring this global setting because the editors are no longer using the default Web Application for the Namespaces, and are using the: /ui/interop/rule-editor and /ui/interop/dtl-editor Web Applications.

3
0 138