InterSystems Developer Community is a community of 23,546 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

Migrating from Oracle, MSSQL, or other purely relational database systems to a multimodel InterSystems IRIS is a strategic decision that requires careful planning and execution. While this transition offers significant benefits, including enhanced performance, scalability, and support for modern architectures, it also comes with challenges. In this article I will highlight some of the considerations connected to coding to ensure a successful migration. I will leave everything connected to an actual migration of structures and data outside the scope of this article.


First, when you're considering migrating to a different database system, you need to understand your business logic, whether it's on the side of the application (application server) or the database server. Basically, where do you have your SQL statements that you will need to potentially rewrite?

6 1
0 135

InterSystems is proud to sponsor NUS Health Hack 2025 and invite innovators, developers, startups and health tech professionals to join this exciting digital health tech hackathon!

Organized by the National University of Singapore - Yong Loo Lin School Of Medicine, this hackathon will take place from February 8th to March 29th, 2025, and will bring together an incredible mix of healthcare professionals, developers, students, startups and tech companies driving innovation in the industry.

Why Join?

Make an Impact: Solve real-world healthcare challenges.
Network: Collaborate with like-minded professionals, innovators, and industry leaders.
Get Support: Access guidance from mentors throughout the 4-week development phase.

InterSystems is providing access to our Vector Search technology, which participants can leverage for their projects. Plus, our tech mentors will be available to offer support throughout the event. Learn more about the InterSystems challenge and prizes here.

No alt text provided for this image

How It Works

1 0
0 155

Hello,

Is there a single ObjectScript operator or method to concatenate two %DynamicArrays?

I'm looking for something that will do the following:

set arr1 = [ 1, 2, 3 ]
set arr2 = [ 4, 5, 6 ]
set arrcombined = arr1.%Concatenate(arr2)

or

set arrcombined arr1_arr2

With end result:

zw arrcombined
arr1=[1,2,3,4,5,6]  ; <DYNAMIC ARRAY>

I can iterate and %Pop over the 2nd array and %Push each popped entry to the 1st array, but I was looking for something more succinct.

Thanks in advance.

0 4
0 151

I'm trying to use the EnsLib.SQL.Operation.GenericOperation component in a production to read a column from a Redshift table that is set up as VARCHAR(65535) and am getting the following error.

An error was received : ERROR #5023: Remote Gateway Error: JDBC Gateway getClob(0,1) errorRemote JDBC error: Cannot convert the column of type VARCHAR to requested type long..

1 5
0 150

One of the challenges of creating a DICOM message is how to implement putting data in the correct place. Part of it is by inserting the data in the specific DICOM tags, while the other is to insert binary data such as a picture - In this article I will explain both.

To create a DICOM message, you can either use the EnsLib.DICOM.File class (to create a DICOM file) or the EnsLib.DICOM.Document class (to create a message that can be sent to PACS directly). In either case, the SetValueAt method will allow you to add your data to the DICOM tags.

7 0
0 154

From the previous article, we identified some issues when working with JSON in SQL.

IRIS offers a dedicated feature for handling JSON documents, called DocDB.

InterSystems IRIS® data platform DocDB is a facility for storing and retrieving database data. It is compatible with, but separate from, traditional SQL table and field (class and property) data storage and retrieval. It is based on JSON (JavaScript Object Notation) which provides support for web-based data exchange. InterSystems IRIS provides support for developing DocDB databases and applications in REST and in ObjectScript, as well as providing SQL support for creating or querying DocDB data.

By its nature, InterSystems IRIS Document Database is a schema-less data structure. That means that each document has its own structure, which may differ from other documents in the same database. This has several benefits when compared with SQL, which requires a pre-defined data structure.

The word “document” is used here as a specific industry-wide technical term, as a dynamic data storage structure. “Document”, as used in DocDB, should not be confused with a text document, or with documentation.

Let's explore how DocDB can help store JSON in the database and integrate it into projects that rely solely on xDBC protocols.

18 1
1 134
Question
· Mar 4
Message Count

Looking for a SQL query or any other method to find the Unique/distinct message counts for all productions or at least per production namespace within a given time frame. For e.g TimeCreated = January 2025 (Whole month)

I have used the following, but its not restricting the numbers based on the TimeCreated filter. Every time a new message is processed by system, its added to the total. I am running the query in today's date

Select Sum(MsgCount)

From

(Select DISTINCT TargetConfigName, count(DISTINCT SessionID) as MsgCount

FROM ENS.MessageHeader

1 12
0 140

Hi,

I tried to create what is know as a "class variable". As far as I understand the only analogy to class variables would be the "class parameters".

I tried to use a class parameter but I cannot change its value at runtime.

Parameter STATUSES = {{}};

Property repr As %String;

Method %OnNew(repr) As %Status
{
w ##class(Test...).#STATUSES
w ..#STATUSES

...

}

0 6
0 146
Article
· Apr 1 1m read
How to get server/instance info

Hi all,

As part of the development an API to know what is the instance of IRIS is connected, I've found some methods to know information about the server that can help you.

Get the server name: $SYSTEM.INetInfo.LocalHostName()

Get the server IP: $SYSTEM.INetInfo.HostNameToAddr($SYSTEM.INetInfo.LocalHostName())

Get the instance name: $PIECE($SYSTEM,":",2)

2 2
0 111

Is anyone using Veeam as their external backup product?

I'm trying to backup a Linux VMs (VMWare; SUSE).

These VMs have a mirrored pair IRIS DB.

I'm using the InterSystems's provides pre-freeze - Backup.General(ExternalFreeze)
I'm using the InterSystems's provides post-thaw - Backup.General(ExternalThaw)

I've been running the backups with Veeam 'application aware processing' so I can add the pre-freeze and post-thaw scripts.

I'm backing up the PRIMARY node of the mirror pair.

0 3
0 148
Question
· Aug 22, 2024
Access to current line text

Is there a general way to set a variable XYZ equal to the text of the code line being executed now? Debugger or production. For example, for a code below if code is currently assigning a to 1, XYZ would be equal "S a=1". The same question about a variable containing current routine name.

S a=1

0 2
0 149

We have an ObjectScript application that runs in Cache' and IRIS. Our typical installation involves a .zip file containing several files necessary for the installation and operation of the application. Steps are: expand the .zip file to a folder that will not be used by the application. Do ^%RI for the installation routines in the production namespace. Do the Installation routine. We have a customer that is trying to do a silent installation. He does not want to have to respond to any prompts on the installation.

0 3
0 147

Hi,

I'm making a request to an API that works perfectly with Postman, you can see it here:

The URL is https://testcds.esriguide.org/v2/session/3189981 where the last part is the ID's session I want to get back.

When I try to make the same request in IRIS I always get a "Bad request" error.

I'm creating the request which all the information needed (or at least that I know):

1 2
0 147