#InterSystems IRIS

19 Followers · 5.5K 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 Pietro Di Leo · Aug 11, 2023

Hi everyone,

Lately, I've been spending a lot of time with Visual Studio Code (VSC), and I've been wondering if there's a terminal or a panel within VSC that acts like the Intersystems Studio Output panel, which serves both as an input and output window and allows the execution of ObjectScript commands.

Could anyone help? Thanks :)

11
1 525
Question Scott Roth · Sep 7, 2023

We are noticing some issues with the communication between our Arbiter and our servers. Looking at the following documentation to limit connections, and logging...https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GHA_mirror_set_config#GHA_mirror_set_agent_port

if I am configuring the ISCAgent on the arbiter, would we set 

application_server.interface_address=<ip_address>

to each IRIS server? Or does this mean to give it a specific NIC IP Address to use for communication? Does the ISCAgent have to be configured separate on each IRIS server?

Is there a way to limit

3
0 530
Article Murray Oldfield · Sep 7, 2023 8m read

Most transactional applications have a 70:30 RW profile. However, some special cases have extremely high write IO profiles.

I ran storage IO tests in the ap-southeast-2 (Sydney) AWS region to simulate IRIS database IO patterns and throughput similar to a very high write rate application.

The test aimed to determine whether the EC2 instance types and EBS volume types available in the AWS Australian regions will support the high IO rates and throughput required.

Minimal tuning was done in the operating system or IRIS (see Operating System and IRIS configuration below).

  • The EC2 instance and EBS



image




0
0 1675
Article Mihoko Iijima · Sep 7, 2023 1m read

InterSystems FAQ rubric

You can avoid the error by specifying a stream object as the argument of %ToJSON() used when generating a JSON string from a dynamic object.

A code example is below.

USER>set temp=##class(%Stream.TmpCharacter).%New()

USER>set jsonobj={}

USER>set jsonobj.pro1=["a","b","c","d"]

USER>set jsonobj.pro2=["あ","い","う","え"]

USER>do jsonobj.%ToJSON(temp)

USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

See also the documentation for details.

[IRIS] Serializing large dynamic entities to streams

Serializing l

1
0 649
Question David Loveluck · Sep 6, 2023

on red hat, but I would also be interested in a wider answer.

after running a benchmark for 40 minutes, I have been asked if any rollbacks occurred in that time. Rollbacks from SQL or objects.

The application does not record this, so I am looking for a system level record.

The journal entries do the necessary reverse sets and commit just like any transaction. So i don't think i can detect them there.

The SQL documentation says "Messages indicating that a rollback occurred, and errors encountered during the rollback operation are logged in the cconsole.log", but when I deliberately write co

4
1 546
Article Muhammad Waseem · Sep 6, 2023 5m read


 

Hi Community
In this article, I will introduce my application IRIS-FlaskBlog.
IRIS-FlaskBlog Application is a real-world application that leverages the functionality of Flask web framework, SQLALchemy ORM, and InterSystems IRIS. The application contains user registration and authentication with the help of Flask-Login python library, a responsive user interface to create and edit posts.
 

Application Features

  • User registration and authentication
  • Creation of a data structure with SQLALcemy model classes
  • Responsive user interface to create, edit, and delete posts
  • Like and add comments






image

4
0 456
Article Ariel Glikman · Aug 28, 2023 3m read

With the world (as well as our own technology) moving to the cloud at such a fast pace it is easy (at least for myself) to get caught up in the little details. One thing I, and some clients of ours, had run into a couple of times was the necessity to specify the version of the images one plans to use with the IKO.

For example, one issue that often gets overlooked is the compatibilityVersion field for the IKO. Depending on which IKO you are using there is a default value (for IKO 3.6 this happens to be 2023.2.0, and for IKO 3.5 this is 2022.3.0). If you intend to use a different version of an I

4
1 527
Article Robert Cemper · Sep 7, 2023 2m read

In a previous question, I have illustrated a few problems using Embedded Python
interactively as you would do from Docker console or IRIS terminal.
Investigation of the causes brought a rather clear picture. It's a classic impedance mismatch

  • While consoles act rather relaxed WebTerminal is very precise in output presentation line terminators from (Embedded) Python's print() function are typically <LF>  0x0A  $C(10) And WebTerminal does exactly this while eg. my console in Docker also does a <CR> und cover. So a sequence of print() looks like a scale
  • Compared to ObjectScript where a WRTE !  s

1
0 349
Question Dhivakar Karimuth · Aug 30, 2023

I am trying to connect the external application. Authenticating via Two SSL,

I have the Client Cert, Private key and the Root Certificate

The connection is successful from local (both via terminal and as well via Postman)

But when trying from IRIS application by configuring the certificates in the SSL configuration, i am not able to successfully verify the SSl connections

When test from the ssl configuration with the endpoint and port its gives the error Error #988: SSL connection failed. SSL/TLS error in SSL_read(), SSL_ERROR_SYSCALL: I/O error (54)

I am also seeing the error when

7
0 1177
Question Robert Cemper · Sep 4, 2023

For my Embedded Python ONLY demo package I need some user input.
Similar to ObjectScript

read "say somthing",reply

I use the Python equivalent

reply = input("say something")

And this works excellent without problems  from Terminal or Doker console

BAD SURPRISE: 
with WebTermnial ObjectSscript works fine, but embedded Python fails badly.

I do not care about line terminators without <CR>
but it is just impossible to receive any input.

This is no improvement. The content is missing !!!!

QUESTION to the experts.
What is the Python way around this issue ?

I have of course a temporary ha

7
0 399
Discussion Yuri Marx · Jul 28, 2020

I'm working with clients planning migrate from Caché to IRIS and I want to summary advantages to go to IRIS. I think is:

  1. IntegratedML - AutoML - Agile machine learning
  2. IAM - InterSystems API Manager
  3. Interoperability
  4. Advanced Reports (JReport)
  5. Cloud Manager/Docker and DevOps support
  6. ZPM - Package manager
  7. Native API - Node.js, Python, Java and .NET interoperability
  8. Core based license x user based license
  9. InterSystems Support and new features
  10. Improved management and monitoring features

Can you help me to think or detail these 10 topics?

12
2 858
Question Pedro Lopes · Aug 31, 2023

The program below works perfectly when I call it directly from the Terminal, however when I call it from within a CSP it does not work (It does not do the SELECT).

In the USER namespace, the program works both in the Terminal and on the CSP , but in another namespace it only works when called directly in the Terminal.

PropList(class) ;
 k pl S c=0 s class="'"_class_"'"
 K ^PropList s ^PropList=class
 S lista=$SYSTEM.SQL.Execute("SELECT * FROM Projet.GerePageCSP")
 while lista.%Next() {
 S c=c+1,pl(c)=lista.%Get("NomdePage")
 S ^PropList(c)=pl(c)
 }
 Q

________________________ CSP __________________

4
0 323
Question Pietro Di Leo · Aug 8, 2023

Context

I have created a Business Operation (BO) named "Sender" that sends HTTP messages to an endpoint (for testing, I'm using Postman's Mock Servers).

Goal: I want to set up an automatic timeout mechanism so that if I don't receive a response from the server within 18 seconds, an alert is generated and the message is resent. This process should be repeated every 18 seconds, for a maximum of 90 seconds. If no response is received within 90 seconds, I would like to generate an error message. On the other hand, if a response is received, I want to stop the resending process and complete the operation by indicating successful reception.

7
0 594
Article Alex Woodhead · Sep 5, 2023 8m read

Overview

The online documentation contains a reference Defining and Using Class Queries -

Customizing Stored Procedures with ObjectScript directly has been useful to access NoSQL storage and external messaging via integration, to present output in tabular format.

For example: An application that already uses 90% SQL interaction from a front end, can then also extend this access to the other 10% of required platform functionality, via the same SQL access.

The purpose of this article is to explore how to achieve the same effect via Embedded Python methods.

Figure 1: Stored Procedure as a SQ





0
0 472
Question Flávio Lúcio Naves Júnior · Sep 5, 2023

Hello everyone,

I'm trying to perform a full backup using DO ^BACKUP, but the database keeps skipping the restoration. Does anyone know what I could do to allow the restoration?

Device: /usr/OLD/BACKUP.cbk
This backup volume was created by:
   IRIS for UNIX (Red Hat Enterprise Linux for x86-64) 2021.1
The volume label contains:
   Volume number      1
   Volume backup      AUG 21 2023 06:45PM Full
   Previous backup
   Last FULL backup
   Description
   Buffer Count       0
Is this the backup you want to start restoring? Yes => Yes
The following directories will be restored:
/usr
1
0 320
Question Hao Ma · Sep 1, 2023

a customer engineer asked me how to use Http basic authentication on a Ensemble SOAP service. Anyone has done this before? 

When secure SOAP service from Web Application setting, by select "password" for "Allowed Authentication Methods", it expected WSS, username and password in SOAP head. The customer hospital would like to add user authentication on sopa service, but SOAP client team prefer to add it on http header, instead of on SOAP header. 

Also, I am very confused with adding password on URL for SOAP service, like 

/devsys/csp/mysamples/MyApp.StockService.cls?IRISUsername=_SYSTEM&IRIS

3
0 452
Question Benying Zou · Aug 31, 2023

I have created 3 pages, the scripts are there:

Class BZ.Test1 Extends%ZEN.Component.page
{
    ClientMethod onloadHandler() [ Language = javascript ]
    {
        console.log("Test1");
    }
}

Class BZ.Test2 Extends BZ.Test1
{
    ClientMethod onloadHandler() [ Language = javascript ]
    {
        this.invokeSuper('onloadHandler',arguments);
        console.log("Test2");
    }
}

Class BZ.Test3 Extends BZ.Test2
{
    ClientMethod onloadHandler() [ Language = javascript ]
    {
        this.invokeSuper('onloadHandler',arguments);
        console.log("Test3");
    }
2
0 359
Question Anup Thakkar · Aug 31, 2023

Hello Community,

I am trying to load data from a CSV into IRIS. I am using a record mapper. The CSV has 3 columns which are dates and I am using $ZDATEH() to convert the date columns to IRIS internal format. But the year that is getting loaded in IRIS is wrong. Example: if in my csv the date is "5/26/23", after data transformation and loading the data, date stored in the IRIS is "05/26/1923". The year getting stored is wrong, instead of 2023 the year getting stored is 1923. Can you please tell me how to solve this? Attaching screenshot of Data Transformation builder for reference.

Thank you!

7
0 393
Article Mihoko Iijima · Aug 31, 2023 1m read

InterSystems FAQ rubric

By specifying the start and end values ​​of the IDs for which you want to rebuild indexes in the arguments of the %BuildIndices() method provided in the persistent class (=table) definition, you can rebuild only the indexes within that range.

For example, to rebuild the NameIDX index and ZipCode index in the Sample.Person class only for ID=10 to 20, execute the following code (the ID range is specified in the 5th and 6th arguments). 

 set status = ##class(Sample.Person).%BuildIndices($LB("NameIDX","ZipCode"),1,,1,10,20

$LB() is the $ListBuild() function. The %Buil

0
0 637
Question Geoff Lawson · Aug 7, 2023

I'm setting up a web application as CSP/ZEN to host a React SPA.  SPA's typically need to use a fallback page to deal with server requests based on the browser route, unless you use hash routing in the browser code.  Our requirements prevent us from using hash routing, so we need to deal with 404's - redirecting/fallback them to index.html - a very common practice.  I 'think' IRIS uses Apache under the hood, so I tried adding a .htaccess in the applications root directory - which did not work.  I found that CSP has an Error class, https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.D

2
0 488
Question Norman W. Freeman · Aug 31, 2023

I have notified the following :

  • Web Gateway usually maintain a certain amount of TCP/IP connections (that is capped to Maximum Connections) with Super server process (also named %SYS.SERVER). Those connections will stay, even after some client requests (eg: browser) have been processed and the TCP/IP connections have been closed the other side (between client and webserver, usually Apache).
  • As a consequence, there will be (at minimum) a certain amount of IRIS worker processes waiting for a request to came, which is good (eg: 200 maintained TCP/IP connections = at minimum 200 IRIS worker pr
5
0 303
Article Heloisa Paiva · Mar 9, 2023 2m read

Introduction

In some of the last few articles I've talked about types between IRIS and Python, and it is clear that it's not that easy to access objects from one side at another. 

Fortunately, work has already been done to create SQLAlchemy-iris (follow the link to see it on Open Exchange), which makes everything much easier for Python to access IRIS' objects, and I'm going to show the starters for that.

Thank you @Dmitry Maslennikov !

Installing

To install, simply open your terminal with administrators' access and type

pip install sqlalchemy-iris

and that will also install the pre-r

3
2 1874
Question Moritz Siegert · Aug 31, 2023

Hi there,

I want to use regex in my code, and I saw that the %Regex.Matcher class contains a property "OperationLimit" that you can also set to a number of steps that the regex engine should take maximum in analysing a given string. So far so good.

I tried to set the property with the function OperationLimitSet() to a silly value like 3. In 3 steps only very few regex should be executed, right? But what I found is that my regex always comes up with a solution. Here is what I did:

First I initialised my %Regex.Matcher.

set m = ##class(%Regex.Matcher).%New("(.+)\@(.+)\.(.+)")
do m.Operat
1
0 219
Article Ashok Kumar T · Aug 31, 2023 2m read

In this article, I am demonstrating how to create a table column(formerly known as properties) with your custom datatype classes by using User defined DDL. Properties are the crucial member of the persistent class definition. Datatypes are essential to define types of values that are stored in a table column. In general, the datatype names of SQL different from Intersystems datatypes, such as VARCHAR = %String. you have the ability to create or modify a table by using these datatypes. Indeed, you’re creating the tables through DDL and you have your own datatype classes are already defined. Tho

0
0 327
Question Martin Staudigel · Aug 28, 2023

Hello Community,

To get to my problem, I need to elaborate a bit. We use an older fixed length format called HCM to transfer data from our SAP-ISH system to the Intersystems server. The data file is generated on a dedicated server and stored in a directory that is mounted to the communication server.
The synchrnoization is done via a lock file, which is exclusively locked in the adapter.
Now this, let's call it HCM server, is to be replaced. The old server is a CentOS 6.4 (Final) (uname -rv: 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013), the new server is a SLES15.5 (uname -rv




4
0 260
Discussion Eduard Lebedyuk · Aug 21, 2023

Has anyone tried AWS Batch with InterSystems IRIS docker images?

I have a noninteractive workload (but it requires internet access from the job to deliver results), so I'm considering using it as a simpler alternative to ECS since Fargate backs both, and that's enough for my use case.

I wonder if anyone tried and cares to share the results, issues, cfn templates.

1
0 217