By default, all files created inside a container are stored on a writable container layer. This means that:

  • The data doesn't persist when that container no longer exists, and it can be difficult to get the data out of the container if another process needs it.
  • A container's writable layer is tightly coupled to the host machine where the container is running. You can't easily move the data somewhere else.
  • Writing into a container's writable layer requires a storage driver to manage the filesystem. The storage driver provides a union filesystem, using the Linux kernel. This extra abstraction reduces performance as compared to using data volumes, which write directly to the host filesystem.

To demonstrate the default behavior of the docker container, let us run the container by using the following command:

docker run -d --name iris-comm -p 1972:1972 -p 52773:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-community:latest
#docker run command to create and start the container
docker run 
#-d -an option used to start container in deattach mode
-d 
#name of the container
--name iris 
#-p -an option is used to map the ports
-p 1972:1972 
-p 52773:52773 
#-e -an option to set environment variable
-e IRIS_USERNAME=demo
-e IRIS_PASSWORD=demo
#base image
intersystemsdc/iris-community:latest

Run the following Docker command to list the details of running containers:

docker ps

Let us connect to the iris terminal by using the following docker command:

docker exec -it iris-comm iris session iris

We will save some data to IRIS by using "DockerVolume" global

To view the value of global, navigate to the management portal (demo | demo)
http://localhost:52773/csp/sys/exp/%25CSP.UI.Portal.GlobalList.zen?$NAMESPACE=USER

To see the value, click on the 'View' option

Now, we will recreate the container to check if IRIS data persists.

In order to recreate the container, we have to stop and remove the container.

Below docker commands will stop, remove, and recreate the container.

# Stop the container
docker stop iris-comm

# Remove the container
docker rm iris-comm

# Create the container
docker run -d --name iris-comm -p 1972:1972 -p 52773:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-community:latest



"Let us connect to the IRIS terminal and check the value of the global which we saved earlier

Our data is not available once we recreated the container.

2 0
2 38

I'm scraping my way through some code that's been around for a while, and came across the use of $ZTRAP and (dear GOD) GOTO for trapping and handling errors.

In an effort to "modernize" it and make it, I don't know, less M-ish (sorry old-timers!), I'm replacing it with Try/Catch blocks.

Some questions:

  1. Is this a dumb idea?
  2. Anything I should look out for?
  3. Did I hurt anyone's feelings?

And if the answer to number 3 is Yes, my deepest apologies ... I love you guys! 🤩

0 4
0 109

InterSystems FAQ rubric

Data for InterSystems products (table row data, object instance data) is stored in global variables.
The data size of each global can be obtained by clicking the properties of the global you want to view from the Management Portal > System > Configuration > Local Database > Globals page, and then clicking the Calculate Size button on the Global Attributes page that appears.
To display the data sizes of globals in a namespace, you can call ^%GSIZE utility on the terminal.

1 1
0 54

Hello everyone,

Recently, I've been working on a Business Process that processes a large JSON FHIR message containing up to 50k requests in an array within the JSON.

Currently, the code imports the JSON as a dynamic object from the original message stream, obtains an iterator from it, and processes each request one at a time in a loop.

0 2
0 74

Hello Community,

I have encountered the following SQL problem trying to create a table from a SELECT statement.

I narrowed the problem down to the following example:

1. The SELECT statement alone works as expected.

SELECT m.Name, h.Status 
FROM EnsLib_HL7.Message m, Ens.MessageHeader h 
WHERE h.MessageBodyClassName='EnsLib.HL7.Message' AND h.MessageBodyID = m.ID

2. But if "CREATE TABLE ... AS" is added it fails

0 4
0 46

We have an operation that sends a Rest request to an external endpoint. The request includes the secret, which shows up in the Message Viewer. While access to the Production is restricted to only those who need it, we have been asked to remove it from the Message Traces. Is there a way to hide certain information on the Message Viewer ?

Thanks for reading

0 2
1 54

Hey Community,

Watch this video to learn how the InterSystems AppServices team migrated a data lake powering a suite of marketing reports off of Microsoft SQL Server to InterSystems IRIS, leading to such benefits as lower maintenance, better performance, and a better overall development fit:

Migrating Our Data Lake from MS SQL Server to InterSystems IRIS @ Global Summit 2023

https://www.youtube.com/embed/VUQIDOM-ZDE
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

1 2
0 50

Hello,

With my team, we're evaluating the different streams existing in order to find good pratices for our project using InterSystems IRIS. In doing so, we found that there exists different forms of the same stream with the %Stream.FileBinary and %Stream.FileBinaryGzip classes. We think that the %Stream.FileBinaryGzip takes less space to be stored, but is there other diferences between these two classes and what would you recomend to use ? Is it the same thing for %Stream.FileCharacter and %Stream.FileCharacterGzip ?

Thanks for your help,

0 1
0 51

Hi,

I will try to explain my problem. I have a Main ZenPage on one server that has 2 buttons: each button will launch a different ZenPage on a separate server in an iFrame. All 3 servers have the same user.

Currently, the user logs in to the Main ZenPage, but when they click either button to launch the other ZenPage on the separate server they get the login screen again to login to that server.

Is there anyway I can pass the credentials from the Main ZenPage to the child ZenPages, so that the user doesn't have to login again? Thanks.

0 3
0 42

I am actually new to IRIS, and we are DevOps/PowerShell/Ansible team. We want to achieve certain administration tasks like updating Memory, Heap size, Lock size etc., in Management Portal through PowerShell. Is there any way i can achieve this without out logging in into Management portal. Off course, we have namespace, user id and password details. We have installed ODBC drive and able to update tables in the IRIS database.

0 3
1 57

InterSystems FAQ rubric

If you want to run an OS executable file, command, or a program created within an InterSystems product when the InterSystems product starts, write the processing in the SYSTEM^%ZSTART routine. (The %ZSTART routine is created in the %SYS namespace).

Before you write any code in SYSTEM^%ZSTART, make sure that it works properly under all conditions.

1 0
0 39

Hi

I have a question about terminal, when I run a class from it that contains an error I get a report of error as I would expect, and then an apparently random three letter code is appended to the namespace name in the prompt, as shown below.

GMMHTIE>do ##class(temp.Nothing).What()

w !, tParisAnswer
^
<UNDEFINED>zWhat+23^temp.Nothing.1 *tParisAnswer
GMMHTIE 2d1>

Then, when I try to enter a command I get an error

0 4
0 68

We're excited to continue to roll out new features to InterSystems IRIS Cloud SQL, such as the new Vector Search capability that was first released with InterSystems IRIS 2024.1. Cloud SQL is a cloud service that offers exactly that: SQL access in the cloud. That means you'll be using industry-standard driver technologies such as JDBC, ODBC, and DB-API to connect to this service and access your data. The documentation describes in proper detail how to configure the important driver-level settings, but doesn't cover specific third-party tools as - as you can imagine - there's an infinite number of them.

In this article, we'll complement that reference documentation with more detailed steps for a popular third-party data visualization tool that several of our customers use to access IRIS-based data: Microsoft Power BI.

4 0
0 56

Note: this was originally posted on June 5, 2024 but presented as being posted on May 9, 2024 so this re-post fixes the date.

Recent updates to the Intersystems Language Server introduce many significant enhancements aimed at improving developer experience and productivity. I'll talk about some of the key ones here, while the complete list, including numerous bug fixes, can be found in the Language Server's CHANGELOG.

5 1
0 103

When developing a new Interoperability Production, it is quite natural that settings are initially added in the Production.

However, as soon as you want to move the Production from development to a test or staging environment, it becomes clear that some settings like HTTP Servers, IP addresses and/or ports need to be changed. In order to avoid these settings being overwritten during a redeployment later on, it is essential that you move these settings from the Production to the System Default settings.

2 1
0 66