Dmitry Maslennikov · May 18, 2022 go to post

Is it possible to get also some stability in containers?

Here is the list of tags available on containers.intersystems.com

requesting list . done
repository: intersystems/irishealth-community
tags:
- 2020.1.1.408.0
- 2020.3.0.221.0
- 2020.4.0.547.0
- 2021.1.0.215.3
- 2022.1.0.152.0
- 2022.1.0.164.0
- 2022.1.0.172.0

Where is 2021.2?

And for the licensed version

repository: intersystems/irishealth
tags:
- 2019.1.1.615.1
- 2019.1.3.722.0
- 2020.1.0.217.1
- 2020.1.1.408.0
- 2020.1.2.517.0
- 2020.2.0.211.0
- 2020.3.0.221.0
- 2020.4.0.547.0
- 2021.1.0.215.0
- 2021.1.2.338.0
- 2021.2.0.651.0
- 2022.1.0.152.0
- 2022.1.0.164.0
- 2022.1.0.172.0

The only place where available 2021.2 CE version, is on Docker Hub, which now says it's deprecated, without any announcements. Just closed one of the ways used to download images.

Dmitry Maslennikov · May 13, 2022 go to post

In case if I change anything in files, I usually update the page in a browser by ignoring cache. In Chrome on macOS it's with hotkey Cmd+Shift+R. 

Dmitry Maslennikov · May 13, 2022 go to post

Is it for production use or for development? In production, you should separate the web in a separate container with own web server and cache settings.

If it's in development, and your web folder is mounted outside of the container, it looks like just a caching on WebGateway. Change Serve Files to just Always, instead of default Always and Cached

It does not look like OmniDB is in active development anymore. But I found that it uses Django, so, I can try to use my project with Django IRIS support there. 

Both still return 1 character for numbers up to 16 

II would recommend this way, instead

$Translate($Justify($Zhex(dec),2)," ", 0)
Dmitry Maslennikov · Apr 11, 2022 go to post

It's the only reasonable way to go. It's a bad idea to store such data as %String

I would suggest wrapping this field with Get and Set to make it compatible with the previous storage

yes, for sure, it's possible, and there are many ways to implement this

And possible to select one of the ways, from what you are already familiar with.

Dmitry Maslennikov · Feb 25, 2022 go to post

So, host.docker.internal is 192.168.65.2 and it's the same network as in settings, but this IP is used to get access from the virtual docker's environment 

Could you try to use one of your real host's IP, which comes from Wi-Fi for instance

my wifi gives me IP 192.168.1.170, and it works

Dmitry Maslennikov · Feb 25, 2022 go to post

127.0.0.1 will not work, due to it's still different host, and in case of this sam bundle, it should point to sam's iris. And will not work it, because, it should be available for prometheus container, not just for IRIS container for sam. So, you have to use, it's name as a host iris

And to access, some IRIS external to docker, you may use host.docker.internal hostname, or docker.for.mac.localhost with Docker on macOS

So, the first line is points to SAM's IRIS, and second to an IRIS outside

I think host.docker.internal was added in some recent versions of Docker, so, probably check the version of Docker

Dmitry Maslennikov · Feb 25, 2022 go to post

This is how Durable %SYS works, when it's initialized, it copies everything to the durable folder, including your db in mgr directory. And you can prevent it, by creating this database, just somewhere else.

Dmitry Maslennikov · Feb 25, 2022 go to post

Caché will not get support for M1, and so, I think no reasons to wait for an ODBC driver for M1 too

Dmitry Maslennikov · Feb 25, 2022 go to post

And I have one more demo project, based on Realworld application, I found on GitHub

What I did, is just forked some project, switched it to using IRIS, by configuring its settings, added requirements, wrapped it in the container with IRIS, and that's mostly it.

Look at the repo https://github.com/caretdev/django-iris-realworld

For this project, I've used a non-CE version of IRIS, so, you will need an iris.key, placed in home directory to start it

Dmitry Maslennikov · Feb 25, 2022 go to post

It's not a big issue, to make it work. Just keep in mind that both containers, with SAM and monitored system, have to be in the same docker's network. If you run both images in with docker-compose, they by default will get the same network, so, in most cases, you may use IRIS service's name from docker-compose.yml as a hostname, and it will be able to connect to it internally inside that network.

If you need access from dockerized SAM to a dockerized IRIS, both working in different networks, you have to publish ports for IRIS, so, it should be available from the host, but from the docker, your SAM has to know the host's address and host.docker.internal is a way, to give it to him. And port should be the same as published when docker container is running.

When docker container is started with -p param, which says how to publish the port, possible to say, which IP to select, or select all  for instance -p 0.0.0.0:52273:52273

docker ps, may help with understanding how the container is available

8d8977f9d5f8   intersystemsdc/iris-community:preview                          "/tini -- /iris-main…"   6 days ago       Up 3 days (healthy)       0.0.0.0:1972->1972/tcp, 2188/tcp, 53773/tcp, 0.0.0.0:52773->52773/tcp, 54773/tcp                           iris

if it shows something like 127.0.0.1:52773->52773, it will only be available as localhost or 127.0.0.1 and will not be accessible from another container and network, because of host.docker.internal will refer to another ip

Could you explain, how you running all the parts?

Dmitry Maslennikov · Feb 25, 2022 go to post

Yeah, I've replaced %Library.GlobalCharacterStream with %Stream.GlobalCharacterStream, solved the main issue, but was a cause to another issue, with storage format, they are not compatible, any new data is ok, but all the previously saved data became unavailable, but it's possible to fix its storing. In my case that change was worth it.

Dmitry Maslennikov · Feb 21, 2022 go to post

I have a system on Caché, which has about 100TB of data in it, with a couple of thousands of concurrent users. And it's ECM system, which in fact has no developers support for some time, but still able to be modified, as it's kind of low-code system, where all the forms can be configured with UI, all the processes and document's conventions as well, and it has integrations with many other systems. So, probably it can be proof that InterSystems is good enough for such cases.

Dmitry Maslennikov · Feb 21, 2022 go to post

The issue could be also, if you using some different user, set with USER line in Dockerfile, or with user parameter when you run it. The user running the IRIS inside the container should be irisowner.

Dmitry Maslennikov · Feb 20, 2022 go to post

Globals are stored in the database and they are limited only by the size of that database.

I'm not sure if the size of the database has any limits, at all, but at least what I know, is that I have database files with up to 10 terabytes per one file. And the only reason is that it's not large than that, we split the data into smaller files due to external reasons, such as filesystems, and just having smaller files makes it easier to operate as a file.