All time
InterSystems Developer Community is a community of 25,481 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

InterSystems API Management (IAM) - a new feature of the InterSystems IRIS Data Platform, enables you to monitor, control and govern traffic to and from web-based APIs within your IT infrastructure. In case you missed it, here is the link to the announcement. And here's an article explaining how to start working with IAM.

In this article, we would use InterSystems API Management to Load Balance an API.

In our case, we have 2 InterSystems IRIS instances with /api/atelier REST API that we want to publish for our clients.

There are many different reasons why we might want to do that, such as:

  • Load balancing to spread the workload across servers
  • Blue-green deployment: we have two servers, one "prod", other "dev" and we might want to switch between them
  • Canary deployment: we might publish the new version only on one server and move 1% of clients there
  • High availability configuration
  • etc.
7 3
4 976

I am currently trying to add a condition to a routing rule that uses the %Source property of a routing rule. Unfortunately I am getting compile errors when I use the "%", and if I get PROPERTY DOES NOT EXIST if I try and use any of field. I have tried referencing the messages as "Message." , "Record.", "FullRecordMapClassName." , "Document." . Does anyone know how to reference the properties of a record map in a routing rule, or if it is even possible? Thanks!

0 10
1 1K

This is a beginner’s guide to the design of a “MicroService” implemented in Ensemble. “MicroService” is a popular phrase these days which has a broad interpretation. My interpretation is: “MicroService” is a “NoSQL Service”. A what? The answer is in the article.

We learnt what the difference is between SQL and NoSQL databases. For me the difference is nearly the same between a SOA Web Service and a “MicroService”. I am going to explain it through an example.

1 0
0 1K

Hi Community,


In this article, I will introduce Python Flask Web Framework. Together we will create a minimal web application to connect to IRIS and get data from it.

Below you can find the steps we will need to follow:

  • Step 1 : Introduction to Python Flask Web Framework
  • Step 2 : Installation of Flask module
  • Step 3 : Creation of web application using Flask
  • Step 4 : Use of HTML Templates
  • Step 5 : Installation of IRIS Python Native module
  • Step 6 : Establishment of a connection with IRIS
  • Step 7 : Transferring data from IRIS to Flask and displaying it

So Let's start with step 1

Step1-Introduction to Python Flask Web Framework

Flask is a small and lightweight Python web framework that provides useful tools and features that make creating web applications in Python easier. It gives developers flexibility and is a more accessible framework for new developers since it allows to build a web application quickly using only a single Python file. Flask is also extensible and doesn’t requires a particular directory structure or complicated boilerplate code before getting started.


For more details please view Flask Documentations

2 2
1 995

Hello, Complete novice here.

For some reason one of my productions can't be stopped, it only goes to the suspended state. This is an issue because now I'm not able to start any of my other productions. How can I force the suspended production to stop? I have tried Do ##class(Ens.Director).StopProduction() in the terminal, but I get an error the class doesn't exist.

How can I fix this issue?

0 4
0 1K

We are using Ensemble 2018.1.3.

I am trying to import the org.apache.poi jar file (I have same problem with 3.8, 4.0.1, and 4.1.2).

Whenever I try to import the org.apache.poi.hssf.usermodel.HSSFWorkbook class using the Java Gateway Wizard, I get an XML error such as the following:

0 3
0 1K

Hi Developers!

Those who use Dockerfile to work with InterSystems IRIS often need to execute several lines of ObjectScript. For me, this was a game of "escaping this and that" every time just to shoot a few commands on ObjectScript to IRIS. Ideally, I'd prefer to code ObjectScript without any quotes and escaping.

Recently I found a nice "hack" on how this could be improved to exactly this state. I got this from @Dmitry.Maslennikov's repo and this lets you use Objectscript in a way as you would type it in IRIS terminal.

Here is what you have in dockerfile:

///
COPY irissession.sh /
SHELL ["/irissession.sh"]
RUN \
  do $SYSTEM.OBJ.Load("Installer.cls", "ck") \
  set sc = ##class(App.Installer).setup()
# bringing the standard shell back
SHELL ["/bin/bash", "-c"]
CMD [ "-l", "/usr/irissys/mgr/messages.log" ]
///

3 12
1 794
Article
· Apr 26, 2020 5m read
Materialized Views

A VIEW in SQL is basically a prepared SQL statement.
It has to be executed and assembled like any other SQL query.
MATERIALIZED VIEW means that the content is collected before hands and can be retrieved rather fast.
I saw the concept first with my favorite competitor named O* and they made a lot of noise about it.

{ favorite: because I could win every benchmark against them devil }

12 3
1 973

Hello everyone smiley

We are facing what seems to be a network problem while transferring HL7 messages from Ensemble/Healthshare to a distant target through TCP/IP.

Here is the version of the system in any case it could be useful: Cache for Windows (x86-64) 2017.2.1 (Build 801U) Wed Dec 6 2017 09:07:51 EST [HealthShare Modules:Core:14.02.2415 + Linkage Engine:15.03.9901]

0 7
0 1K

Hi,

It turns out that on windows if you run a command with a windows command file you need to escape the % character as %%

In my case I could test freeze and thaw calls at the command line successfully as

..\bin\cache -s. -U%SYS ##Class(Backup.General).ExternalFreeze()

...but when my freeze script ran it would fail.

it turns out that a single '%' is striped when run in a windows command file, and it must be escaped as '%%' windows gets:

1 3
0 973

Currently, we are running 2014.1 on two different servers (OpenVMS, RHEL). The plan is to transition from OpenVMS to RHEL, but our Write Daemon is in a Troubled state on both servers.

On the OpenVMS server, we have a WIJ file that's 26G and can grow to 40G (size of database cache). Since it hasn't grown to 40G, we don't believe the size of the WIJ file to be the issue.

What else should we be looking at regarding the performance of the Write Daemon?

0 1
0 1K

I was using PowerBI to create regular display data obtained from one popular web sourse with hundreds of thousands of visitors per month and a big number of users.

At the beginning of that visualisation development, I was using direct connection from Power BI to Adaptive Analytics powered by AtScale. Adaptive Analytics is useful for cached data, aggregates and fast data sources switching between development and stage phases. The “AtScale cubes'' connection method was used:

3 0
0 1K

Does anyone know how to connect a Cache client to a GT.M database? I recently installed Osehra VistA on my PC and it uses GT.M, but we're supposed to use Cache Studio to develop. I tried adding a server to Cache (specifying 2222 as the port) and I get an "access denied" error. Port 2222 is the correct port which I use for for VirtuaBox and I have no problem connecting to VistA. I also tried going into the Management Portal to set up a local connection but this isn't working.

0 8
0 1K

Hi Community,

This post is a introduction of my open exchange iris-fhir-client application.

iris-fhir-client can connect to any open FHIR Server by using embedded python with the help of fhirpy Library.
Get Resource information by terminal and by using CSP web application.

6 2
0 991

Hi!

I am making a request to an API and JSON is coming as follows:

SET %httprequest = ##class(%Net.HttpRequest).%New()
DO %httprequest.Get(URL)
SET %responseBody = %httprequest.HttpResponse.Data.Read()

W %responseBody
{produto:"CHP0001",Local:{IDMV: "000000001",LOTE: "",DtFabric: "null",DtVenc: "null",Atributo06: "0000000002",Atributo07: "",QtdeDisp: "10.00000",QtdeAloc: "0.00000",QtdeSep: "0.00000",QtdeTotal: "10.00000",Status: "OK",Motivo: ""}}

2 9
0 1K

Most of us are more or less familiar with Docker. Those who use it like it for the way it lets us easily deploy almost any application, play with it, break something and then restore the application with a simple restart of the Docker container.

5 1
4 1K

Hi,

I am working on a custom service that reads from a file and import content into a global. The problem is that global is also used by other processes. I have been trying to find any way to stop/disable a process from cache code so after reading the file, process is stopped, global updated and then process is restored. But I could not find anything, just to start/stop the whole production

Do ##class(Ens.Director).StopProduction()

Any ideas if this is something that can be done in ensemble?

Thanks

0 6
0 1K

Hi,

I am working on a DataGrid based upon ZenTest.Datagrid.cls

I want to save data after changes on a row.

The existing samples do not explain how to save changes on data in a grid.

I have tried something like zen(‘json’).save

Does anybody has some sample code?

0 4
0 1K

Hi community,

I have an incorrect InterSystems Server Credentials password stored by the Workstation Keychain in VS Code. VS Code is trying to use this incorrect stored credential to access the server and does not prompt or allow me to input a different password. I do not see any settings associated with the Keychain or resetting those credentials. Does anyone know of the process to delete or replace a stored password here?

Thanks!

Hannah

2 1
0 1K