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

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

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

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.

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

main
 

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

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.

4
1 527
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)

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 ?

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.

0
0 471
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 

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
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, 

2
0 488
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
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.

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.

0
0 327
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
InterSystems Official Carmen Logue · Aug 30, 2023

InterSystems Reports version 23.2 is now available from the InterSystems Software Distribution site in the Components section.  They are labeled InterSystems Reports Designer and InterSystems Reports Server and are available for Mac OSX, Windows or Linux.  insightsoftware elected to move from a  numerical number plan to a year-based numbering plan in 2023 so there are no versions 20 through 22;  versions increase from Version 19 to Version 23.  Note that the reports Server docker image will be available at a later date from the Container Repository.

0
0 275