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

InterSystems Official Mark-David McLaughlin · Jan 30, 2023

At InterSystems, we believe in the responsible disclosure of recently discovered security vulnerabilities.  We provide timely information to our customers, while keeping it out of the hands of people that may misuse it. We also understand each customer has different requirements related to the resolution of security issues.

As we start 2023, we have made two significant changes to our approach to security vulnerability corrections that I’d like to highlight:

  1. Security vulnerability patches will be included in every release
  2. Improved customer notification

Security vulnerability patches

2
3 414
Question Rose Murphy · Jan 27, 2023

Hello all,

I am hoping someone can give me some guidance.

I have this code below; please see below. It works perfectly fine. However, when I use a different target, it is not working. 0 files were copied.

w $ZF(-100,"/SHELL /LOGCMD","copy","C:\DICOM\IMAGE\IMAGE1.DCM","E:\IMAGE\COPIEDIMAGETEST1.DCM")

        1 file(s) copied

=====

w $ZF(-100,"/SHELL /LOGCMD","copy","C:\DICOM\IMAGE\IMAGE1.DCM","\\SERVERLOCATION\SHAREDFOLDER\COPIEDIMAGE.DCM")
        0 file(s) copied.
 

3
0 410
Announcement Derek Robinson · Jan 30, 2023

In our latest episode of Data Points, I had a conversation with George James, CEO of George James Software, about the importance of source control and developer tools, George James Software's own solutions, and their partnership with InterSystems. Take a listen, and visit https://georgejames.com to learn more about George James Software!

0
1 240
Question Martin Fukátko · Jan 26, 2023

We have IRIS on Linux. When I create database NEO_PAVI_G by Management Portal, than owner for files and directories is "irisusr".

But owner is "mfukatko" (my username) after creating database NEO_Pxxx_G using installer based on ##class(%Installer.Manifest).%Generate() from command line in terminal.

I'd like to have same owner in both cases. Is it possible to achieve it in the second case as well?

Our manifest in istaller:

XData Install [ XMLNamespace = INSTALLER ]
{
<Manifest>
    <If Condition='(##class(Config.Namespaces).Exists("${Namespace}")=0)'>
        <Log Text="Creating nam
2
0 427
Article Yuri Marx · Jul 20, 2022 6m read

Python has become the most used programming language in the world (source: https://www.tiobe.com/tiobe-index/) and SQL continues to lead the way as a database language. Wouldn't it be great for Python and SQL to work together to deliver new functionality that SQL alone cannot? After all, Python has more than 380,000 published libraries (source: https://pypi.org/) with very interesting capabilities to extend your SQL queries within Python. This article details how to create new SQL Stored Procedures in InterSystems IRIS Database using Embedded Python.

Python libraries used as samples

This art


https://raw.githubusercontent.com/yurimarx/iris-sql-python-sample/main/screen2.png

3
0 1349
Article David Reche · Dec 15, 2018 2m read

IRIS is a powerful platform and one of the new features is the Java Business Host (DOC: Connecting Systems Using Java Business Hosts) that allow you to develop Business Services and Business Operations directly in Java (JavaDocs of the InterSystems Gateway Package).

I was testing this feature using an IRIS Docker image, but this image doesn't come with Java, the image is a bare Ubuntu image plus IRIS. So I had to build a new image adding the Java stuff. After some research I finally get this Dockerfile:

FROM docker.iscinternal.com/intersystems/iris:2019.1.0.284.0
RUN apt-get update && \
    apt-ge
8
1 881
InterSystems Official Fabiano Sanches · Jan 24, 2023

InterSystems announces another developer preview release, as part of the developer preview program for the 2022.3. Many updates and enhancements have been added in 2022.3 and there are also brand new capabilities, such as the new FHIR SQL Builder, improvements for Columnar Storage, and adds support to SUSE 15 SP4 and Oracle Linux 9. Some of these features or improvements may not be available in this current developer preview.

Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we

yes

5
0 338
Question Virat Sharma · Jan 21, 2023

Hi All,

I am currently using D $SYSTEM.SQL.Shell() command or management portal to retrieve the data from database. I just learned we can also run cache table sql queries in MS access. MS access already installed on my machine. 

I need to ask how I can connect my database of USER or sample namespace in MS access to run these SQL queries.

Thanks in advance!!

4
0 363
Question Virat Sharma · Jan 24, 2023

Hi All,

I am having an SQL query (mentioned below). When I am running this query it is taking 90 min to retrieve all records (approx 1 million records).

Fetching data from 5 tables using inner join in cache. Relative cost displaying 10 million

I wan to confirm How this query can be optimized

Select Books.nam,Books.print,Books.Relativename,Books.Firstpage,Books.Lastpage,Books.trn,Books.lastissue,Books.firstissue,Books.person,Books.author,Books.price,Books.cd,Books.ab,Books.pf,Books.ju,Books.er,Books.qw,Books.qt,Books.mn
Records.qw,Records.er,Records.ty,Records.ui,Records.op,Records.as
Ord
12
0 397
Question Michael McNab · Jan 5, 2023

Hi ,

I am trying to work out how to install the intersystems-jdbc-3.3.1.jar file onto a windows server to set up a connection between athrid party application and an Iris database.

Is there an installer ?  the java -jar etc command does not work "could not load main class "  . Added the folder to the system path .

Running Eclipse temurin but I do not work with java at all, other than these very specific points where need to get applications to run .  

If someone could point me to a guide or instruction that would be of great assitance

Cheers

Michael

6
0 1150
Question Robson Tenorio · Jan 26, 2023

I already have a working setup with:

- Ubuntu 21.10
- Unixodbc 2.3.6
- ODBC-2018.1.5.659.0-lnxubuntux64
- libcacheodbcur64.so

I have tried to update to:

- Ubuntu 22.04
- Unixodbc 2.3.9

But, i am getting  "SQLDriverConnect: 0 [unixODBC][Driver Manager]Driver does not support the requested version".

So, I have tried to switch to:

-  libcacheodbcur6435.so
- ODBC-2018.1.7.721.0-lnxubuntux64.tar

But i am getting same error. Please, could someone help me?

1
0 420
Question Con Skordis · Jan 26, 2023

How can I use STREAMOID to populate an <img> tag in ZEN reports from a stored jpg in a class object

The value of Image :

http://xxx.xxx.xxx.xxx:57772/csp/dev/%25CSP.StreamServer.cls?STREAMOID=…

Snippet below:

<container ifexpression="%report.TestProfileImage(2)=1">
<table orient="col" class="borderless" width='#($g(^||Page("TotalRowWidth")))#in' group="TestTable2">
<table orient="row" width='#($g(^||Page("TotalRowWidth")))#in'>
<table orient="col" class="default" width='#($g(^||Page("TotalRowWidth")))#in' gr

1
0 313
Article Eduard Lebedyuk · Dec 7, 2019 1m read

%objlasterror is a useful reference to the last error.

Every time $$$ERROR is called, %objlasterror is set to a result of this call.

It's important in cases where you want to convert exception to status:

Try {
   //  quality code
} Catch ex {
   Set sc = $g(%objlasterror, $$$OK)
   Set sc = $$$ADDSC(sc, ex.AsStatus())
}

Because AsStatus calls $$$ERROR under the wraps, the order is important, first you need to get %objlasterror and  convert exception after that.

8
3 1463
Article Sergey Mikhailenko · Jan 24, 2023 8m read

Introduction

There are many entities in IRIS which are extremely difficult to transfer to another system.They usually contain important system-stored objects: users, roles, privileges, mappings, and applications. The exception to this list is for resources, which are facilitated by the ability to select and save them from the management portal interface [System > Security Management > Resources]. Yet, things are not as good with other system objects. I even got an idea for this topic

I devoted this article to the explanation of how to transfer gateway connection settings [System > Configurat

image

2
0 699
Question Stefan Cronje · Jan 25, 2023

Hi *,

I want to dynamically generate the arguments of a method during compile time.

'For example, I want the following method

ClassMethod DoCleverStuf() As %Status [ CodeMode = objectgenerator ]
{
    do %code.WriteLine("    Set tSC = $$$OK")
    ...
}

to look like this in the .int code.

ClassMethod DoCleverStuf(pValue1 As %Integer, pValue2 As %String) As %Status [ CodeMode = objectgenerator ]
{
    // some generated code will be here
}

Is this possible? Or alternativel;y, can I generate a whole method at compile time?

Thanks.

2
0 334
Question Mark Charlton · Jan 20, 2023

I've been trying for a while to come up with a set of tools to monitor the health of a mirror set and email a report nightly on the status of the mirror, or flag issues in real time.
Making sure that all the databases are caught up, that all the mirror members are online. 

I've tried a number of methods I've found to try to access the state of the mirror and mostly found they're internal or unsupported routes, (that when questioning WRC have swiftly been removed from the online documentation...). The best I've found is %SYSTEM.Mirror, but that just lists the state of the entire mirror set and

2
0 523
Question Virat Sharma · Jan 23, 2023

Hi All,

I am a beginner in cache. I need to extract data from multiple tables (4-5) tables based on an SQL query . The data is more than 9 lakhs of records (i checked using count). The total number columns is 16. 

When I am running this SQL query through management portal, I am getting time out exception. Could you please suggest how I can retrieve those records. Which way will be good (Dynamic query using %SQL.Statement or Embedded SQL (not known to me) or Writing to a global will help or not). 

I tried using CSV but there are few columns that contain comma and because of which I cannot us

4
0 483
InterSystems Official Fabiano Sanches · Jan 11, 2023

InterSystems announces another developer preview release, as part of the developer preview program for the 2022.3. Many updates and enhancements have been added in 2022.3 and there are also brand new capabilities, such as the new FHIR SQL Builder, improvements for Columnar Storage, and support to SUSE 15 SP4 and Oracle Linux 9. Some of these features or improvements may not be available in this current developer preview.

Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we can b

yes

8
0 403
Question Phillip Wu · Jan 21, 2023

Hi,

Is there a way of printing out information about IRIS.DAT file eg. database name?

The reason is that I've "refreshed" TEST system from LIVE system and I'm not sure I've the copied the correct file to the correct place

on the file tree. The file tree structure shows the database that IRIS.DAT represents. 

eg. /db/HMF/IRIS.DAT should be the HMF database

6
0 627
Question Stefan Cronje · Jan 22, 2023

Hi all,

I am trying to use some process private variables (percent variables) in Triggers.

I am referring to values from $System.Process, like the ClientIPAddress and CSPSessionID.
These do to not contain values and I suspect it is bacause of scope. I also checked, and the %session variable is not available if the change originated from a CSP request.
I know that in triggers the scope of the variables are to be kept local, that is why NEW is to be used.

Is there a way to access the Process Private Variables in Triggers or get $System.Process to return the correct values?

Thanks.

10
0 486
Question Token Ibragimov · Jan 23, 2023

Hello

i'm trying to read http json response from service. The response size res.HttpResponse.Data.Size = 19610854 

ClassMethod getData(pCode,pDate, pGlb) As %Status
{

    Do res.Get("TestService/getData?dateTo="_$ZDate(pDate,3))
    Set stat=res.HttpResponse.StatusCode
    Do res.HttpResponse.Data.Rewind() 
    Set httpResponse=res.HttpResponse.Data.Read(res.HttpResponse.Data.Size,.sc)
    Set dynObj = [].%FromJSON(httpResponse)
    Set iter = dynObj.Stmt.%GetIterator()
    While iter.%GetNext(.key, .value){
        Set @pGlb@(item)=$ListBuild(SomeField1,SomeField1)
    }

}
2
1 608
Question Phillip Wu · Jan 23, 2023

I want to refresh the TEST DB from LIVE.

On TESTTC02, I'm getting the error:
"Missing Mirrored Databases Report"

Questions.
1. What causes this problem?
2. How do I fix it?

Thanks for any help
=========================
This is the basic plan for the refresh:
DR copy IRIS.DAT files -> TESTTC01
TESTTC01 IRIS.DAT files -> TESTTC02

These are the details:
SMP=System Management Portal – the GUI web interface into IRIS admin
DRTC01=DR node of LIVE (async mirror)
TESTTC01=Primary member
TESTTC01=Backup member

This is what I did:
0. on TESTTC01 SMP, "Remove Mirror Configuration"
1. Copied IRIS.DAT from TRAK-DR

2
0 412
Article Robert Cemper · Jan 23, 2023 2m read

Some technical background information

There is not just one class in this package:  rcc.gstream.cls but also rcc.gstreamT.cls

While rcc.gstream works with direct access to the stream globals, the *T version uses
a Process Private Global (PPG) as Temporary storage.
using  SELECT * FROM RCC.gstreamT WHERE RCC.useT('^jpgS')=1 and similar.

This might be an advantage for multiple access to the same stream in sequence,
The advantage is obvious: You have a personal snapshot in memory and no risk of
a conflict in access. This might be interesting if you work just on 1 specific stream.
The disadvantage i





0
0 347
Question Phillip Wu · Jan 19, 2023

I have the following servers in IRIS mirror set:
Arbiter; isc_agent only
LIVETC01; IRIS DB full install; Primary
LIVETC02; IRIS DB full install; Backup

A couple of days ago IRIS hung.
The application using LIVETC01 DB stopped functioning.

I'm trying to find out the sequence of events leading up to the failure.

I see these entries in the log:
Arbiter:
2023-01-17T15:54:56 ISCAgent: Arbiter client error: Message read failed.
2023-01-17T15:54:56 ISCAgent: Completed serving application: ISC1ARBITER
2023-01-17T15:54:56 ISCAgent: Arbiter client error: Message read failed.
2023-01-17T15:54:56 ISCAgent: Comp

2
0 455