#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.

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. This topic is described in the documentati

3
2 852
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). 

I have been wondering if there is

3
0 651
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 572
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
6
0 477
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 448
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 280
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.

I can probably work around this by subtracting the BH's configured InactivityLimit value from the timestamp, but this seems like it

1
0 238
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 640
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.
Once

0
1 426
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 /usr/irissys/mgr/messages.log for more information
[FATAL] Error

7
0 455
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 7116
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 714
Article Dmitry Maslennikov · Apr 19, 2023 2m read

Apache Superset is a modern data exploration and data visualization platform. Superset can replace or augment proprietary business intelligence tools for many teams. Superset integrates well with a variety of data sources.

And now it is possible to use with InterSystems IRIS as well.

An online demo is available and it uses IRIS Cloud SQL as a data source.

4
0 1122
Article Robert Cemper · Aug 26, 2017 3m read

This is a  rather personal view of the history before Caché.
It is in no sense meant to compete with the excellent books from Mike Kadow discussed in an earlier article.
We have different histories and so this is meant to create a different perspective of the past.

The whole story started in 1966 at MGH (Mass.General Hospital) on a PDP-7 Ser.#103
with 8K of memory (18-bit words) [today = 18K byte ]  as a spare system.

"Serial Number 103 - was located in the basement of the now demolished Thayer Building,
currently [2014] the site of the Cox Cancer Center at MGH."
"Neil Papparlardo and Curt Marble

15
2 2213
Question William Caldwell · Apr 21, 2023

I have a client who' recently acquired a business that was running software that uses InterSystems IRIS as the database back end. In the process of preparing to have my company's software installed the client formatted the hard drive of his server, wiping out his data. I can't convert the data to MS SQL without a functioning database. He had a backup on an external drive, which I have copied down to my local machine. I loaded up  a virtual machine with Windows 10 Pro, I installed Docker and IRIS.

7
0 1038
Article Hiroshi Sato · Apr 27, 2023 2m read

InterSystems FAQ rubric

Migrating data to another system takes two steps.

1. Migrating class definitions

To migrate the class definition to another system, export it to a file in XML format or UDL format (extension .cls).

The export procedure in Studio is as follows.

Tools > Export

> Select multiple classes you want to migrate with the [Add] button

> Check [Export to local file]

> Confirm that the file type is XML, enter a file name, and click [OK].

After this, import the exported XML and UDL files in the studio on another system. The import procedure in Studio is as follows.

Tools > Import from Local

>

4
0 434
Question Jean Millette · Apr 26, 2023

Our team has had success creating and publishing Power BI reports using an ODBC connection to an IRIS database, but there have been concerns about the responsiveness of these reports.

As an attempt to improve responsiveness, I'm trying out the "DirectQuery" connection using the InterSystems IRIS connector available in our version of Power BI Desktop (September 2021). 

The version of IRIS I'm connecting with is "IRIS for Windows (x86-64) 2022.2"

Within Power BI Desktop, I can successfully get data and populate visualizations, despite this concerning warning in the "Source" step of a query (Issue

3
0 2156
Question Mindy Caldwell · Apr 21, 2023

Salesrep is the production file with only an index on the idkey (it has more properties than shown here).

Property SalesRepId As %String(MVATTRIBUTE = 0, MVJUSTIFICATION = "L", MVWIDTH = 10) [ Required ];

Property Surname As %String(MVATTRIBUTE = 2, MVJUSTIFICATION = "L", MVWIDTH = 25);

Property Forename As %String(MVATTRIBUTE = 3, MVJUSTIFICATION = "L", MVWIDTH = 25);
. . .

Property FundraiserId As %String(MVATTRIBUTE = 15, MVJUSTIFICATION = "L", MVWIDTH = 20);

Index SalesRepIdIndex On SalesRepId [ IdKey, PrimaryKey, Unique ];

Reports using SELECTs against the file on the FundraiserId property

4
0 288
Article Evgeny Shvarov · Mar 14, 2019 5m read

Hi Community!

I think everyone keeps the source code of the project in the repository nowadays: Github, GitLab, bitbucket, etc. Same for InterSystems IRIS projects  check any on Open Exchange.

What do we do every time when start or continue working with a certain repository with InterSystems Data Platform?

We need a local InterSystems IRIS machine, have the environment for the project set up and the source code imported.

So every developer performs the following:

  1. Check out the code from repo
  2. Install/Run local IRIS installation
  3. Create a new namespace/database for a project
  4. Import the code into this new namespace
  5. Setup all the rest environment
  6. Start/continue coding the project 

If you dockerize your repository this steps line could be shortened to this 3 steps:

  1. Check out the code from repo
  2. Run docker-compose build 
  3. Start/continue coding the project 

Profit - no any hands-on for 3-4-5 steps which could take minutes and bring head ache sometime.

You can dockerize (almost) any your InterSystems repo with a few following steps. Let’s go!

10
9 1975
Article Seisuke Nakahashi · Apr 27, 2023 2m read

Let's say you have Python including variable-length arguments methods. How can you call it from ObjectScript? 

deftest1(*args):return sum(args)
  
deftest2(**kwargs):
  a1 = kwargs.get("a1",None)
  a2 = kwargs.get("a2",None)
  return a1+a2

You can call this "a.py" from ObjectScript as below.  For **kwargs argument, create Dynamic Object in ObjectScript and put it into methods with <variablename>... (3 dots) format. 

set a=##class(%SYS.Python).Import("a")
    write a.test1(1,2,3)   ;; 6set req={}
    set req.a1=10set req.a2=20write a.test2(req...)   ;; 30


Do you

0
1 341
Job Annette Steenekamp · Apr 18, 2023

Job description

Do you want to make a difference? Being part of a team where all team members are valued for their contribution?

SOFTSPLICE values their employees as their most valuable asset. We value a healthy work and life balance.

We need capable and devoted developers to expand our team. We have interesting diverse projects to work on.

Are YOU the next team member of our dynamic team?

SOFTSPLICE strives to be at the forefront of technology and we are in the financial sector in Pretoria

The ideal candidate is a self-motivated, self disciplined and demonstrated team-player, with

1
0 447
InterSystems Official RB Omo · Apr 27, 2023

InterSystems has corrected a defect that can cause corruption of databases and journal files on AIX systems with IBM POWER8 or later POWER processors. This defect can be triggered only when database or journal encryption is in use.

 To trigger this defect, the following conditions are required:

If the environment satisfies all these conditions, then the key schedule used for database or journal encryption can become

0
0 256
Question Stefan Cronje · Feb 26, 2021

Hi *.*,

I am new to IRIS, IKO and IAM. I have read through a lot of the documentation, but I need clarity on some things that I can't find in the documentation.

  • Which Load Balancer does IKO use on the ingress?
    Can it be set to use another one? e.g. nginx-kubernetes + GCP LoadBalancer?
  • On a multi-compute and multi-data instances deployment, how do you get to the Management Portal of each instance?
    i.e. The load balancer is the only point of entry into the cluster exposing 1972 and 52773, so how do I route to the individual instances?
  • If using IAM, will this be on a VM running in a
3
0 472