#InterSystems IRIS

19 Followers · 5.6K Posts

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.

Question Ben Spead · Apr 12, 2023

I have a situation where I have a handful of classes which I need to copy to another Namespace (which uses a different RoutineDB) on the same instance, load it and compile it.

Can anyone help me come up with a command that will do this quickly and easily?   Perhaps something with extended reference?  

This is somewhat time sensitive so thank you in advance for your ideas!

23
0 1037
Article Evgeny Shvarov · May 16, 2023 1m read

Hi folks!

Just want to introduce you a new util to import CSV into IRIS - csvgenpy!

Install

USER>zpm "install csvgenpy"

Use:

do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")

Example:

USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")

This will create table and class data.titanic in IRIS and will load the data.  you can proof it with:

USER>:sql

[SQL]USER>>select * from data.titanic

[SQL]USER>>select * from data.titanic

1. select * from data.
0
1 341
Question Stella Ticker · May 12, 2023

Has anyone had success with passing in a collections  property within a SOAP request to a Soap Service in Ensemble? Please reply with how you set up that collections property. I am able to successfully send a SOAP request correctly containing the elements of the collection property to Cache, as seen in a custom soap log file which I am using to troubleshoot. But the collection property in the  Ensemble request is not getting serialized, meaning MyContainers has nothing.

My.Request consists of a property, MyContainers, which can have 0 or more Containers (My.

1
0 228
Article Anton Umnikov · Jan 21, 2021 26m read

In this article, we’ll build a highly available IRIS configuration using Kubernetes Deployments with distributed persistent storage instead of the “traditional” IRIS mirror pair. This deployment would be able to tolerate infrastructure-related failures, such as node, storage and Availability Zone failures. The described approach greatly reduces the complexity of the deployment at the expense of slightly extended RTO.

16
8 3993
Announcement Olga Zavrazhnova · May 15, 2023

Join the latest InterSystems Developer Meetup to learn how to analyze healthcare data.

FHIR (Fast Healthcare Interoperability Resources) is a global data standard in healthcare and it's great for interoperability but not great for analysis of that data.💡 Learn from InterSystems product managers and engineers how make SQL projections of FHIR data and build out Python Panda applications leveraging those projections.

 

Presentations:

0
0 378
Question sansa stark · May 12, 2023

Hi Everyone,

 I tried to send the Sample XML from Packet Sender to Intersystems IRIS TCP Inbound adapter for learning purpose.
I'm using Predefine d Class : EnsLib.XML.TCPService and the adapter is EnsLib.TCP.CountedInboundAdapter (it selected by Default.)
My sample XML file would be <Patient><Name>John,Williams</Name><MRN>12345</MRN></Patient>
I got an error like 

ERROR <Ens>ErrTCPReadBlockSize: TCP Read(32000) with timeout period (50) failed with : (78):tElement><Patient><Name>Varatha</Name><MRN>12345</MRN></Patient></RootElement>
Please help me to proceed further

3
0 277
Article Yuri Marx · May 15, 2023 6m read

 These days the vast majority of applications are deployed on public cloud services. There are multiple advantages, including the reduction in human and material resources needed, the ability to grow quickly and cheaply, greater availability, reliability, elastic scalability, and options to improve the protection of digital assets. One of the most favored options is the Google Cloud. It lets us deploy our applications using virtual machines (Compute Engine), Docker containers (Cloud Run), or Kubernetes (Kubernetes Engine). The first one does not use Docker.

0
3 5191
Question Kurro Lopez · Apr 19, 2023

Hi all,

I'm wondering if exists any command or method to replace a text using parameters.

In C# I use the Format property

var text = string.format("My name is {0} and I'm {1} years","Kurro","18")
// The value of text will be "My name is Kurro and I'm 18 years"

I've tried with this code... but it works only for the specific parameters

set text = "My name is {0}, and I'm {1} years"
write $Replace($Replace(text,"{0}","Kurro"),"{1}",18)

is possible to do something for more args? I mean, use for a indeterminate number of args

 

Best regads

11
1 501
Article Robert Cemper · Feb 16, 2021 2m read

As you know ObjectScript has neither FOREACH system command nor system function.
But it has a wide room for creativity.

The task is to loop over a global or local array and do something FOR EACH element.

There are 2 possible solutions:

  • creating a macro that generates the required code sequences
  • creating an Extended Command to perform the action. Both ways are presented here. The macro is a generic and quite flexible solution and easy to adapt if required.
1
2 1241
Question Scott Roth · Apr 12, 2023

We are currently using different iterations of Ens.Director.EnableConfig items to start/stop objects within the Interoperability Namespace. We are looking for ways to minimize our downtime as we move from AIX to a new section of our Network and Red Hat Servers.

Besides using Ens.Director.EnableConfig item and waiting for a response, or just disabling the objects through the Namespace class file, is there a quicker way to stop Services and Operations to ensure the TCP disconnect is sent to those endpoints so we can move the networking rules to ensure they point to new servers?

12
1 847
Article Dmitry Maslennikov · Feb 6, 2023 4m read

Let me introduce my new project, which is irissqlcli, REPL (Read-Eval-Print Loop)  for InterSystems IRIS SQL 

  • Syntax Highlighting
  • Suggestions (tables, functions)
  • 20+ output formats
  • stdin support
  • Output to files 

Install it with pip

pip install irissqlcli

Or run with docker

docker run -it caretdev/irissqlcli irissqlcli iris://_SYSTEM:SYS@host.docker.internal:1972/USER

Connect to IRIS

$ irissqlcli iris://_SYSTEM@localhost:1972/USER -W
Password for _SYSTEM:
Server:  InterSystems IRIS Version 2022.3.0.606 xDBC Protocol Version 65
Version: 0.1.0
[SQL]_SYSTEM@localhost:USER> select $ZVERSION
+---------------------------------------------------------------------------------------------------------+
| Expression_1                                                                                            |
+---------------------------------------------------------------------------------------------------------+
| IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2022.3 (Build 606U) Mon Jan 30 2023 09:05:12 EST |
+---------------------------------------------------------------------------------------------------------+
1 row in set
Time: 0.063s
[SQL]_SYSTEM@localhost:USER> help
+----------+-------------------+------------------------------------------------------------+
| Command  | Shortcut          | Description                                                |
+----------+-------------------+------------------------------------------------------------+
| .exit    | \q                | Exit.                                                      |
| .mode    | \T                | Change the table format used to output results.            |
| .once    | \o [-o] filename  | Append next result to an output file (overwrite using -o). |
| .schemas | \ds               | List schemas.                                              |
| .tables  | \dt [schema]      | List tables.                                               |
| \e       | \e                | Edit command with editor (uses $EDITOR).                   |
| help     | \?                | Show this help.                                            |
| nopager  | \n                | Disable pager, print to stdout.                            |
| notee    | notee             | Stop writing results to an output file.                    |
| pager    | \P [command]      | Set PAGER. Print the query results via PAGER.              |
| prompt   | \R                | Change prompt format.                                      |
| quit     | \q                | Quit.                                                      |
| tee      | tee [-o] filename | Append all results to an output file (overwrite using -o). |
+----------+-------------------+------------------------------------------------------------+
Time: 0.012s
[SQL]_SYSTEM@localhost:USER>
20
2 977
Article Mihoko Iijima · May 11, 2023 2m read

InterSystems FAQ rubric

You can use the system routine ^DBSIZE to estimate the backup file size (see also Note 1).

^DBSIZE estimates the file size of full, cumulative, and differential backups of the databases selected in the database backup list.

The database backup list is created from [System Administration] > [Configuration] > [Database Backup] > [Database Backup List] in the Management Portal.

For more information, please refer to the document below.

Estimate backup size with ^DBSIZE [IRIS]

Estimate backup size with ^DBSIZE

An execution example is as follows.

0
0 392
Article Mauro Aguirre · May 11, 2023 13m read

Several steps should be done in order to secure the connection through xDBC clients to an IRIS Server instance using TLS. Most of the information can be obtained from the documentation about TLS on IRIS here, about configuring the security layer for encrypted connections. In the next paragraphs we will cover an step-by-step guide on how to configure and test the connection using SQL Clients apps using ODBC and JDBC.

0
2 1237
Article Eduard Lebedyuk · Feb 10, 2023 6m read

In this article, we will establish an encrypted JDBC connection between Tableau Desktop and InterSystems IRIS database using a JDBC driver. While documentation on configuring TLS with Java clients covers all possible topics on establishing an encrypted JDBC connection, configuring it with Tableau might be a little bit tricky, so I decided to write it down.

Securing SuperServer

Before we start with client connections, you need to configure SuperServer, which by default runs on port 1972 and is responsible for xDBC traffic to accept encrypted connections.

3
2 860
Question Norman W. Freeman · May 7, 2023

I did some experiments on my local machine and found out that IRIS seems to associate each request (eg: CSP request) to a dedicated process named IrisDB.exe

This process has 3 threads, and one of them seems to be the main working thread (that will the handle request).

If I spawn many concurrent requests, the number of IrisDB processes on my local machine will grow (to make sure each request can be handled in parallel).

It seems there is a limit : it will create no more than 64 processes to handle requests (eg: even if 100 concurrent requests are send to IRIS).

3
0 656
Article Luis Angel Pérez Ramos · May 8, 2023 6m read

Welcome, dear members of the community!

In this article we are going to demonstrate the great potential that IRIS/HealthConnect makes available to all its users with the use of Embedded Python and we are going to do it by developing a small production that will allow us to recognize and identify the faces present in a JPG file from some images that we will use as a reference.

Project configuration:

Let us begin! We have published the entire application in OpenExchange so that you only need to download and deploy it in Docker as you can read in the associated README file.

2
1 578
Question Rostislav Dublin · Apr 27, 2023

I deployed the IRIS container on my Mac M1 Docker Desktop Kubernetes cluster:

image: containers.intersystems.com/intersystems/iris-community-arm64:2023.1.0.229.0

I limited the container 1.5Gb memory:

resources.limits.memory: "1536Mi"

In the "merge.cpf" file I constrained IRIS memory usage aspects:

[config]
globals=0,0,800,0,0,0
gmheap=200000
bbsiz=100000
routines=100


Now I load-test the container by multiple installing  and uninstalling the %ZPM package:

  • install ZPM (zpm-installer.routine and execution):
set r=##class(%Net.HttpRequest).%New()
set r.Server="pm.community.intersystems.com"
set r.
6
0 482
Question Sergey Petrov · May 3, 2023

Hello everyone!
Maybe someone will tell me what could be the reason for such messages in the message.log file
05/03/23-06:46:27:155 (6584) 0 [Utility.Event] [SYSTEM MONITOR] Mirror state: Member type = Failover, Status = Transition
05/03/23-06:46:27:350 (1620) 1 [Utility.Event] Failed InstanceLookup (agent probably not running): instance not found
05/03/23-06:46:27:351 (1620) 2 [Utility.Event] Failed to become either Primary or Backup at startup
05/03/23-06:46:27:725 (1620) 1 [Utility.Event] Failed InstanceLookup (agent probably not running): instance not found

ISCAgent service is running.

6
0 450
Question Stuart Strickland · May 5, 2023

Hi,

I use ZLANGC00 and ZLANGC01 for shortcuts at programmer level to some frequently used dev tools. Is there a way to pass 2 arguments to a command?

Example:

ZZQD "Queue1" // Equivalent to D ZZQD^%ZZLANGC00("Queue1") to display messages in queue1 (ZZQD is my own code in %ZZLANGC00)

but if I wanted to type ZZQD "Queue1" $H-3 to call ZZQD^%ZLANGC00("Queue1",$H-3) can it be done or do I need to write something to manipulate the argument? So ZZQD "Queue1-3"

2
1 282
Question Jeffrey Drumm · May 5, 2023

I'm using the EnumerateJobStatus query of class Ens.Util.Statistics to obtain the LastActivity value of a Business Host.

I would expect that this would return the timestamp of the last message received by the BH, understanding that any connect/disconnect activity would reset that timer. However, the time returned appears to actually be the time at which Ens.MonitorService generated the alert and is not directly related to anything that happened in the BH itself.

1
0 241
Question Aya Ayuk · May 3, 2023

Hello, I need to determine the best way to split a class containing multiple methods(about 20), into multiple classes in which each method is in its own class. I am wondering if there is another way other than manually creating the different classes, and copying each method into each class. Doing this in Intersystems Studio.

10
1 645
Article Megumi Kakechi · May 4, 2023 2m read

InterSystems FAQ rubric

In Windows, set the processes with the following image names as monitoring targets.

[irisdb.exe]

contains important system processes.
* Please refer to the attachment for how to check important system processes that should be monitored.

[IRISservice.exe]

This is the process for handling IRIS instances via services.
When this process ends, it does not directly affect the IRIS instance itself, but stopping IRIS (stopping the service) is no longer possible.

[ctelnetd.exe]

%Service_Telnet Starts when the service is enabled and becomes a daemon process to access IRIS via Telnet.

0
1 432
Question Timothy Leavitt · May 1, 2023

Has anyone seen this before? I'm new/bad at Docker and not even sure how to debug.

$ sudo docker logs <container>
[INFO] Starting InterSystems IRIS instance IRIS...
[INFO] Unable to read the startup.last file to identify the location of the write
image journal file (IRIS.WIJ) that was last in use by this instance. Please
fix the permissions of the startup.last file.

** Startup aborted **

Starting IRIS
Recovery failure. Startup aborted.
[ERROR] Command "iris start IRIS quietly" exited with status 256
[ERROR] See the above messages or

7
0 459
Article Mark Bolinsky · Feb 12, 2019 32m read

The Amazon Web Services (AWS) Cloud provides a broad set of infrastructure services, such as compute resources, storage options, and networking that are delivered as a utility: on-demand, available in seconds, with pay-as-you-go pricing. New services can be provisioned quickly, without upfront capital expense. This allows enterprises, start-ups, small and medium-sized businesses, and customers in the public sector to access the building blocks they need to respond quickly to changing business requirements.

 

Updated: 10-Jan, 2023 

3
12 7125
Question Punit · May 2, 2023

I'm trying to update the hosts file on Windows in C:\Windows\System32\drivers\etc

I know that in Linux if you update the hosts file, you sometimes need to restart the Network Manager for the changes to take effect.

So my question is that is there a similar thing that we need to do on Windows or do the changes take effect as soon as the file is saved?

3
0 721