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

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

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:

8
1 880
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.

5
0 336
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

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

2
0 698
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 333
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). 

4
0 481
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.

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

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

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.

2
0 455
Question Eduard Lebedyuk · Jan 19, 2023

I have a production with one Business Host - a Business Service which I need to scale automatically to consume ~80% of CPU time.
Business Service pulls data from a (non-FIFO) queue so that I can adjust pool size without any issues.

So far, I'm planning a different BS running every X seconds and sampling CPU with $system.Process.GetCPUTime() and scaling the pool size of the main BS up/down based on that metric.

Has anyone tried something similar? Any advice/code samples would be appreciated.

6
0 351
Article Yuri Marx · Jan 9, 2023 7m read

Applications that work with bill payments and receipts, as well as the delivery and inventory of items, generally require the use of barcodes or QR Codes. The latter is used in even broader scenarios since the QR Code can store more information than a simple bar code. Thus, it is important to have the ability to generate barcodes and QR Codes or read the data stored in them from an image or a PDF. This article will show you how to do this using Python and some of its free libraries.

Pyzbar library

1
2 1788