4 Followers · 190 Posts

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.

New
Question Hour Abdellatif · Feb 26

Hello everyone,

I’m trying to find a way to manage globals from our Java application. We have two separate features:

  • Managing tables normally using SQL

  • Managing globals, since some globals exist without class or table definitions

Cache version : Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2016.1.1 (Build 108U_SU), Thu Jul 7 2016 09:39:04 EDT

I tried to retrieve the globals tree, update node values, and append nodes using SQL by calling stored procedures, but I couldn’t find any procedures for adding, updating, or deleting nodes.

I also tried using cacheextreme.jar to access the globals API

0
0 21
New
Article Davi Massaru Teixeira Muta · Feb 24 9m read

Global Guard AI

1 Introduction

In environments that use InterSystems IRIS, globals are the physical foundation of data storage. Although system queries and administrative tools exist for metric inspection, global growth analysis is usually reactive: the problem is generally only noticed when there is disk pressure or performance impact.

Global Guard AI was developed to create a snapshot-oriented observability layer, aligned with the idea published in DPI-I-512 — and based on the series of articles written by Ariel Glikman, Sales Engineer at InterSystems:

2
1 51
Question Hour Abdellatif · Jan 27

Hello Community,

I am facing a JDBC connection issue after migrating from Caché 2016 to Caché 2018.1. When I attempt to connect using the following connection settings:

CACHE_DATASOURCE_URL=jdbc:Cache://localhost:1972/TEST

CACHE_DB_USERNAME=test

CACHE_DB_PASSWORD=test
 

I consistently receive the following error:

[Cache JDBC] Communication link failure: Access Denied

This configuration worked perfectly with Caché 2016. I have verified the following:

  1. The namespace (TEST) exists and is correctly specified in the connection URL.
  2. The credentials (username: test, password: test) are correct.
  3. The
7
1 90
Article Tani Frankel · Jan 22 9m read

This is the second part of an article pair where I walk you through:

  • Part I - Intro and Quick Tour (the previous article)
    • What is it?
    • Spinning up an InterSystems IRIS Cloud Document deployment
    • Taking a quick tour of the service via the service UI
  • Part II - Sample (Dockerized) Java App (this article)
    • Grabbing the connection details and TLS certificate
    • Reviewing a simple Java sample that creates a collection, inserts documents, and queries them
    • Setting up and running the Java (Dockerized) end‑to‑end sample

As mentioned the goal is to give you a smooth “first run” experience.

0
0 15
Article Tani Frankel · Jan 22 5m read

If you already know Java (or .Net) and perhaps also have used other document databases (or looking for one), but you are new to the InterSystems world, this post should help you.

InterSystems IRIS Cloud Document is a fully managed document database that lets you store JSON documents and query them with familiar SQL syntax, delivered as a cloud service managed by InterSystems.

In this article pair I’ll walk you through:

  • Part I - Intro and Quick Tour (this article)
    • What is it?
    • Spinning up an InterSystems IRIS Cloud Document deployment
    • Taking a quick tour of the service via the service UI
  • Part II - Sample (Dockerized) Java App (the next article)
    • Grabbing the connection details and TLS certificate
    • Reviewing a simple Java sample that creates a collection, inserts documents, and queries them
    • Setting up and running the Java (Dockerized) end‑to‑end sample

The goal is to give you a smooth “first run” experience.

0
0 18
InterSystems Official Stefan Wittmann · Nov 19, 2025

Hi community!

I am excited to say that since the beginning of this year we have published many of the client SDKs for InterSystems IRIS, InterSystems IRIS for Health and Health Connect to the corresponding external repositories (Maven, NuGet, npm and PyPI). This provides many benefits to you such as:

  • You can access the latest releases for a client SDK as soon as they get published, independent of the InterSystems IRIS release cadence
  • You can integrate the SDKs as a dependency with the native package manager tool within your ecosystem and manage dependencies in an industry-standard way
  • End
7
1 195
Article Davi Massaru Teixeira Muta · Oct 11, 2025 9m read

Technical Documentation — Quarkus IRIS Monitor System

1. Purpose and Scope

This module enables integration between Quarkus-based Java applications and InterSystems IRIS’s native performance monitoring capabilities.
It allows a developer to annotate methods with @PerfmonReport, which triggers IRIS’s ^PERFMON routines automatically around method execution, generating performance reports without manual intervention.


2. System Components

2.1 Annotation: @PerfmonReport

  • Defined as a CDI InterceptorBinding.
  • Can be applied to methods or classes.
  • Directs the framework to wrap method execution with IRIS
1
0 89
Question Dmitrii Baranov · Oct 12, 2025

I need to build an integration solution that reads messages from a Kafka topic. The topic has 3 partitions and contains several million messages.

For certain reasons, I can only use the standard EnsLib.Kafka.Service class and cannot use either KafkaClient or Python.

To measure performance and collect statistics I created a simple key + timestamp table with no indexes (so it is unlikely to be a bottleneck). Next, I started an instance of EnsLib.Kafka.Service. In the OnProcessInput method, I receive a message, extract the key from it, get the current time, and write the row to the table.

The

5
0 79
Announcement Semion Makarov · Oct 9, 2025

We are happy to present the bonuses page for the applications submitted to the InterSystems .Net, Java, Python, and JavaScript Contest!

See the results below.

<--break->

Project

XEP

Native SDK

PEX

Java Persister

ADONET & .NET Entity Framework

Docker

Online Demo

Community Idea Implementation

Find a bug

First Article on DC

Second Article on DC

First Time Contribution

Video on YouTube

Total Bonus

Nominal 2 2 3 2 2 2 2 4 2 2 1 3 3 30
Snapshot of free disk space   2       2   4   2 1   3 14
Sen
27
0 203
Announcement Evgeny Shvarov · Sep 23, 2025

Hi Developers!

Here are the technology bonuses for the InterSystems .Net, Java, Python, and JavaScript Contest that will give you extra points in the voting:

  • XEP API for Java, .NET - 2
  • Native SDK for Java, .NET, Python, node.js  - 2
  • PEX Interoperability for Java, .NET, Python - 3
  • Java persister - 2
  • ADONET and .NET Entity Framework -2 
  • Docker container usage - 2 
  • Online Demo - 2
  • Implement InterSystems Community Idea - 4
  • Find a bug in InterSystems IRIS External Language Development Offerings - 2
  • New First Article on Developer Community - 2
  • New Second Article on Developer Community - 1
2
0 141
Article André Dienes Friedrich · Sep 26, 2025 3m read

 

Building a Sensor Data Demo with Spring Boot and InterSystems IRIS

In the era of IoT and connected devices, sensor data is everywhere—tracking temperature in logistics, monitoring equipment performance, or recording environmental conditions. But capturing, storing, and analyzing this data in real time requires more than just hardware sensors.

It’s a practical example that combines Spring Boot, InterSystems IRIS, and a simple sensor simulation script to show how sensor data can flow from generation to storage and alerting.
Basically, the idea of ​​this project is to show all the integration

0
0 99
Question Scott Roth · Sep 8, 2025

We currently have Business Operation that we built to use the EnsLib.SQL.OutboundAdapter so we can make Microsoft SQL Server Stored Procedure calls. The BO is attached to a Java Gateway Service.

Some of our MS SQL Databases have moved from being OnPrem to Azure Cloud. We have started seeing where we are receiving errors on the BO saying that we cannot connect to the Azure Database, but we never receive a Disconnect from the Azure Database.

Once this happens it seems that the Java Gateway still thinks the connection is opened, and we have to Stop/Start the Java Gateway to get the connection to

2
0 79
Article Robert Cemper · Aug 3, 2025 1m read

Reviewing my published packages, I identified a nasty bug in IRIS Native API

  • There is a method in  %Net.DB.Iris named function ()
  • It's equivalent to  ObjectScript $$label^routine(param) 
  • It used to work fine 2 years ago, when I published my command-line-extension packages
  • Now it is broken since at least 1 year and throws <PROTECT>
  • I identified it for ObjecScript, Java, Python, Node.js
  • It is reported as WRC# 1002589
  • For all 4 cases, I also verified a workaround
    • Instead of calling an ObjectScript Function you call a Classmethod
    • It's by %Net.DB.Iris ClassMethodValue(...)
    • And you have
14
0 276
Question Kim Jiyong · May 15, 2025

Hello. Currently, we are developing using Cache 2018 version.
Our team is working on improving an existing legacy program so that it can also be used on the web.

Before asking my question, here is the development environment.

  • IDE: IntelliJ
  • Framework: Spring Boot, MyBatis
  • DB Connection: JDBC (using the library provided by InterSystems)

Currently, we are successfully mapping global data through the %PERSISTENT class and able to query it with SQL.However, the problem is that the retrieved "Korean" data is all broken.

8
0 277
Question Kim Jiyong · May 2, 2025

Hello, we are currently using the Cache Database released in January 2018.

There are no specific classes or SQL mappings in the namespaces where data is stored.

Only a few routines(.mac) and stored data are in the global area.

In this case, when accessing the Cache DB through Java, is it essential to write SQL mappings or wrapper classes? The reason I ask is that our team doesn't have advanced developers who specialize in Cache.

Alternatively, is it possible to directly call pre-existing routines from Java?

I apologize for the translation;

2
0 114
Question Andrew Sklyarov · Mar 26, 2025

Here is my code:

Method getStocks(pRequest As Stock.Message.Req, Output pResponse As Ens.StreamContainer) As %Status
{
     s tSC = pRequest.NewResponse(.pResponse)
     q:$$$ISERR(tSC) tSC

     #dim pRS As EnsLib.SQL.GatewayResultSet

     s tSC = ..Adapter.ExecuteQuery(.pRS, "select jsonb_agg(s) #>> '{}' FROM prod.stocks s where s.""Warehouse"" = ?", pRequest.Warehouse)
     q:$$$ISERR(tSC) tSC

     s pResponse = ##class(Ens.StreamContainer).%New()
     s pResponse.Stream = ##class(%GlobalCharacterStream).%New()

     i pRS.Next() {
          d pResponse.Stream.CopyFrom(pRS.GetDataStream(1))
     else 

3
0 259
Question Igor Pak · Mar 7, 2025

Hello, dear colleagues.

I need to connect to a remote JavaGateway from an Ensemble service.

I am trying to use the EnsLib.JavaGateway.Service with a remote host where the JVM is running.

I can successfully ping the remote Java Gateway from EnsLib.JavaGateway.Service, and Ensemble reports that the service status is OK.

There are no network issues, and all necessary ports are accessible.

My requests work without any problems when I specify localhost in EnsLib.JavaGateway.Service. However, when I specify a remote JVM, I get the following error:

#5023: Error Java-gateway: Connection cannot be

1
0 170
Article Scott Roth · Jan 24, 2025 3m read

Not sure there are many that connect to MS SQL to execute queries, stored procedures, etc, but our Healthsystem has many different MS SQL based databases we use within the Interoperability environment for various reasons.

With the push to moving from on-prem to the Cloud we ran into some difficulties with our SQL Gateway connections and knowing how to config them to use Microsoft Entra for Active Directory Authentication.

There are many articles out on the web, but there was not one that could give us the full answer to what we needed to do, and Microsoft wasn’t much help.
I figured I would

0
1 671
Question Peter O'Halloran · Jan 14, 2025

As part of a migration project from a bunch of java classes to IRIS, we need to maintain a few jar files due to some external dependencies.

The problem I am seeing is that I cannot pass a byte array ( byte[] ) from ObjectScript to the Java Class. I have tried a number of different ways

I have reproduced in a java class and Objectscript class:
Java Class:

package wrc;

publicclassTestJava{
    
    publicstaticvoidtestByteArr(byte[] keyBytes){

        System.out.println("keyBytes getClass() = " + keyBytes.getClass() );
        System.out.println("keyBytes toString() = " +
2
0 184
Question Shashvati Dash · Dec 10, 2024

connection = ##class(%Net.Remote.Java.JavaGateway).%New()
sc = connection.%Connect("127.0.0.1",53274)
classpath="C:\Users\ME9Y1PM\Downloads\wrapper_jar\wrapper-drools-1.0.0-20241127.071529-1.jar"
if (sc=$$$OK) {
SCJavaDroolsObj.connection=connection
sc = SCJavaDroolsObj.connection.%Import("com.lca.smc.drools.DroolsRules")
SCJavaDroolsObj.drools = ##class(com.lca.smc.drools.DroolsRules).%New()
SCJavaDroolsObj.drools.applyRules(patientjson)

Class com.lca.smc.drools.DroolsRules Extends %Net.Remote.Base [ ProcedureBlock ]
{Parameter IMPORTTIMESTAMP As STRING = "2024-11-29 09:14:27.992";

0
0 120
Article Iryna Mykhailova · Nov 10, 2024 2m read

If you like Java and have a thriving Java ecosystem at work into which you need to incorporate IRIS, it's not a problem. Java External Language Gateway will do it seamlessly, almost. This gateway serves as a bridge between Java and Object Script in IRIS. You can create objects of Java classes in IRIS and call their methods. You just need a jar file to do this.

Connection diagram: proxy object <-> Gateway object <-> TCP/IP <-> External server <-> target object

0
4 444
Question Colin Brough · Oct 28, 2024

An interface running on Ensemble generates PDFs by building a command line and invoking c:\InterSystems\Ensemble\fop\fop.bat

One day last week the PDF generation stopped working. The output from the .bat script says:

The Server has not restarted, and the Java version has not been updated. Ensemble has not restarted. And Java is still accessible outside of Ensemble from the command line. So how come Ensemble has "lost" java? Any clues as to what might have gone on?

2
0 169
Article Andrii Mishchenko · Sep 22, 2024 5m read

Introduction

Managing databases and performing CRUD operations are fundamental tasks for developers building data-driven applications. While many database management systems (DBMS) exist, they can be complex and cumbersome to interact with, especially when it comes to creating databases and tables, handling constraints, and performing real-time data operations through an API.

This web-based Database Management Tool simplifies the entire process, offering an intuitive UI for managing databases and tables, alongside a powerful REST API for interacting with the data.

4
0 399
Article Andrii Mishchenko · Sep 27, 2024 4m read

In this article, we’ll dive into the inner workings of the database management tool, exploring the architecture and technologies that power it. Understanding how the application functions behind the scenes will give you insight into its design, how it manages databases, tables, and how the API interacts with data.

We will discuss the core technologies used, including InterSystems IRIS as the primary database and Redis for caching. Additionally, we’ll break down the structure of the tables used and explain how the system handles data creation, retrieval, and manipulation through the REST API.

Web

0
1 276
Article Keren Skubach · Aug 19, 2024 4m read

Accessing an Azure cloud storage to upload/download blobs is quite easy using the designated %Net.Cloud.Storage.Client class API methods, or using the EnsLib.CloudStorage.* inbound/outbound adaptors.

Note that you'll need to have the %JavaServer External Language Server up and running to use the cloud storage API or adaptors, since they both use the PEX framework using the Java Server.

Here is a quick summary:

Azure Blob Storage is accessed using a connection string that looks similar to this:

DefaultEndpointsProtocol=https;AccountName=abcdefscleanisr;AccountKey=n3mWskdjgfhklsghdfjaskhgkjdfizqMWJ5
0
3 592