#InterSystems IRIS

19 Followers · 5.6K 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 Attila Toth · May 3, 2019

Hi All,

I'm trying to create a simple wrapper class around a JSON schema validator library, written in Java, and calling this functionality through the Java Gateway of IRIS 2019.1.

My Java wrapper class has a constructor like this:

public JSONValidator(char[] jsonStream, char[] schemaStream) { ... }

According to the documentation this should be called with %GlobalCharacterStream arguments from the IRIS side.So I open the two files, containing my JSON-serialized object and JSON schema definition and I copy their contents into %GlobalCharacterStream objects.

2
0 518
Question Sergey Kamenev · Apr 30, 2019

I follow the instruction on docker site.
I have next troubles:

  1. After changing password fom "SYS" to my pass I see on screen non removable "USER>". Standart commands "exit" and "quit" are not worked. Next actions is possible only in new terminal window.
  2. I need some extra tool in container. Where I try install (by example "apt-get install mc") I get "E: Package 'mc' has no installation candidate". I don't understand why standart ubuntu package manager do not work in Iris container.
7
1 586
Question Muhammad Awan · Apr 18, 2019

Hi Team,

I am using Angular 7 with angular material for my client application that connects and obtains Access token from IRIS Authorization Server (OAUTH 2.0).  The problem that I am facing right now is regarding this access token being exposed to browser and stores in the local storage of the browser.

Right now, I am having hard time finding an alternative but secure option to store access token on the server side (client WEB SERVER) instead of browser’s local storage. 

Following are the suggestions that I have googled recently, not sure if there is any better way that I need to explore.
 

  • A
1
0 1679
Question John Kumpf · Apr 23, 2019

Here's my current attempt:

Class Testing.PropertyParameters Extends %RegisteredObject
{
Property p1 As %String(MAXLEN = 5, myPropName = "myPropValue");
Method test()
{
   set ..p1 = 10
   //write ..p1.Parameters
   set p1 = ##class(%Dictionary.PropertyDefinition).%OpenId("Testing.PropertyParameters||p1")
   zwrite p1
   do p1.Parameters.SetAt("myPropValue", "myPropName")
   set key = ""
   for {
      set item = p1.Parameters.GetNext(.key)
      if (key = "") {
         quit
      }
   write !,"key: ", key,", Item: ",item
   }
   do p1.%Save()
   write ..p1.%GetParameter("myPropName")
   write !
}
}

I've visited:

(Us

4
0 694
Article Chao Liang · Dec 24, 2018 5m read

Terminal scripts can be used to run pre-designed commands on the terminal, like a batch file.  You can write anything that can be executed on terminal, like for loop, if else and so on,  inside Terminal scripts. In this article, I will show you how to call Terminal scripts, how to use parameters in Terminal scripts and how to avoid session disconnected when running Terminal scripts. If you have any information about how to use Terminal scripts or you have any feedback, please feel free to leave a comment.

1. Running Terminal scripts in Cache or IRIS

If you are using Cache on Windows system, you

6
2 3824
Announcement Anastasia Dyubaylo · Mar 26, 2019

Hey Developers!

Do you want to reap the benefits of the advances in the fields of artificial intelligence and machine learning? With InterSystems IRIS and the Machine Learning (ML) Toolkit it’s easier than ever.

Join InterSystems Sales Engineers, @Sergey Lukyanchikov and @Eduard Lebedyuk, for the Machine Learning Toolkit for InterSystems IRIS webinar on Tuesday, April 23rd at 11 a.m. EDT to find out how InterSystems IRIS can be used as both a standalone development platform and an orchestration tool for predictive modelling that helps stitch together Python and other external tools.

1
0 562
Article Evgeny Shvarov · Apr 14, 2019 3m read

Hi guys!

Portrait of  Madame X, Gustave Caillebotte.

One of the features I like in InterSystems ObjectScript is how you can process array transformations in a specific method or a function.

Usually when we say "process an array" we assume a very straightforward algorithm which loops through an array and does something with its entries upon a certain rule.

The trick is how you transfer an array to work with into a function. 

One of the nice approaches on how to pass the information about an array is using $Name and Indirection operator. 

Below you can find a very simple example which illustrates the thing.

2
1 675
Announcement Anastasia Dyubaylo · Apr 17, 2019

Hi Community!

Good news! One more upcoming event is nearby.

We're please to invite you to join the "J on the Beach" – an international rendezvous for developers and DevOps around Big Data technologies. A fun conference to learn and share the latest experiences, tips and tricks related to Big Data technologies and, the most important part, it’s On The Beach!

We're more than happy to invite you and your colleagues to our InterSystems booth for a personal conversation. InterSystems is also a silver sponsor of the JOTB.

In addition, this year we have a special Global Masters Meeting Point at the conference. You're very welcome to come to our booth to ask questions, share your ideas and, of course, pick up some samples of rewards and GM badges. Looking forward to seeing you soon! wink

So, remember!

Date: May 15-17, 2019
Place: Palacio de Congresos y Exposiciones Adolfo Suarez, Marbella, Spain

0
0 303
Question Minoru Horita · Apr 11, 2019

In Cache'/Ensemble, by specifying the objectsPackage parameter, dictionaries (and other objects) get projected to tables that can be accessed by SQL queries.

But in IRIS (IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2019.1 (Build 507U) Mon Feb 25 2019 13:47:16 EST), when I created a dictionary with ##class(%iKnow.Matching.DictionaryAPI).CreateDictionary(), it does not get projected to a table.

The class APIs correctly retrieve information about this dictionary.

Am I missing something with IRIS, or is there any issues about this?

2
0 395
Question David.Satorres6134 · Apr 11, 2019

Hi all,

I'm facing the error 7802 ("Worker job/s unexpectedly shut down") when trying to work with the Queue Manager. Since today it was working fine, but suddenly today it started failing when arriving to the line:

Set sc=queue.WaitForComplete()

The method is pretty simple: first I invoke the queue manager by doing set queue=$SYSTEM.WorkMgr.Initialize("/multicompile=1",.tSc,64), and then into a loop I call a method exactly 64 times. Then after the first 64 processes are done, the system launches 64 more jobs.

But strange enough, while the first bunch of 64 processes are being processed (so the

1
0 633
Article Eduard Lebedyuk · Apr 8, 2019 4m read

The titular question was quite relevant and often discussed some thirty years ago. The thought went: “Sure, there are industries where computers are the norm, but in my industry we got just fine so far, the benefits are questionable, problems innumerable and unsolved. Can we continue as before or should we embrace this new technology?”

Today, everyone asks the same question but about Machine Learning and Artificial Intelligence. The doubts are the same – lack of expertise, lack of known path, perceived irrelevancy to the industry.

Yet, as before, the correct, even the only possible answer is a resounding yes. Read on to find out why.

1
1 453
Announcement Evgeny Shvarov · Apr 6, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in March 2019

New Applications

isc-tar  published by @Dmitry Maslennikov 

Compact files as TAR or Extract files from TAR files

Light weight EXCEL download v.1.0 published by @Robert Cemper 

This is the working example of a light weight export to EXCEL based on data in SAMPLES namespace. Good old CSP is well equipped to produce HTML tables accepted from EXCEL as input. With modern Browsers you don't even need and tags. So the required code around your SQL result set is really slim. And you are free to add any formatting you need either by HTML or in SQL.

PythonGateway v.0.7 published by @Eduard Lebedyuk 

Python Gateway for InterSystems Data Platforms.

Adopted Bitmaps v.1.0 published by @Robert Cemper 

This is a running example of the Bitmap Adoption

WebSockets Tutorial v.1.0 published by @Lily Taub 

A short tutorial on WebSockets in InterSystems IRIS 2018.1+ and Caché 2016.2+

Sync Data with DSTIME v.1.0.0 published by @Robert Cemper

Other Sync-Tools just work from Caché/IRIS to Caché/IRIS. Synchronizing your data to some external DB you requires some other solution. DSTIME can do it.

HL7 and SMS Interoperability Demo v.1.3 published by @Amir Samary 

This demo shows how easy it is to integrate an Electronic Medical Record system that is sending HL7 messages with AWS.

0
0 259
Announcement Benjamin De Boe · Mar 15, 2019

Hi all,

In order to prioritize functional requirements for evolving our SQL developer experience, we have prepared a short survey to better understand how you’re currently using and, in an ideal world, would like most to interact with our SQL platform.

https://www.surveymonkey.com/r/DSY6YT2

Don’t hesitate to forward this survey informally to your peers you know are accessing our SQL engine on a regular basis. There’s a disclaimer at the top that indicates we are highly interested in feedback to drive our roadmap, but obviously cannot commit to implementing all of it.

The survey is anonymous, but

1
0 330
Article Dmitrii Kuznetsov · Mar 31, 2019 20m read

How Tax Service, OpenStreetMap, and InterSystems IRIS
could help developers get clean addresses

 

Pieter Brueghel the Younger, Paying the Tax (The Tax Collector), 1640

In my previous article, we just skimmed the surface of objects. Let's continue our reconnaissance. Today's topic is a tough one. It's not quite BIG DATA, but it's still the data not easy to work with: we're talking about fairly large amounts of data. It won't all fit into RAM at once, and some of it won't even fit on the drive (not due to lack of space, but because there's a lot of junk). The name of our subject is FIAS DB: the Federal Information Address System database - the databases of addresses in Russia. The archive is 5.5 GB. And it's a compressed XML file. After extraction, it will be a full 53 GB (set aside 110 GB for extraction). And when you start to parse and convert it, that 110 GB won't be enough. There won't be enough RAM either.

0
2 617
Announcement Anastasia Dyubaylo · Mar 28, 2019

Hi Everyone!

Please meet InterSystems at hub.berlin - Europe's interactive business festival for digital movers and makers on 10 - 11 April 2019 in Berlin.

We look forward to two-day inspirational lectures and intensive technical discussions and invite you and your colleagues to our InterSystems booth for a personal conversation. In addition, we'll also present a keynote presentation and host a masterclass session.

 

See the details below.

0
0 290
Article Robert Cemper · Mar 26, 2019 2m read

Other Sync-Tools just work from Caché/IRIS to Caché/IRIS.
Synchronizing your data to some external DB requires some other solution.

The solution is available in Caché/IRIS since quite some time and works excellent.
^OBJ.DSTIME does the magic.
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=D2IMP_ch_current#D2IMP_C23869

It was built to allow data synchronization with DeepSee.
It keeps a very simple journal on Object/Table changes by signaling Modified,New,Deleted
This could be useful not only for DeepSee but for any other type of Table Synchronization.

The Global ^OBJ.DSTIME ha

0
2 1243
InterSystems Official Jeff Fried · Mar 20, 2019

The 2019.1 version of InterSystems IRIS Data Platform is now Generally Available!

Kits and container images are available via the WRC download site

The build number for these releases is 2019.1.0.510.0.

InterSystems IRIS Data Platform 2019.1 provides the following new capabilities:

  • Performance and scalability. The release features new performance improvements for parallel queries and data ingestion resulting in more than 50 percent performance improvement, and expanded sharding support with simpler rebalancing across nodes.
  • Expanded cloud support.
2
0 1091
Article Dmitry Maslennikov · Mar 20, 2019 3m read

This is a continuation of my story about the development of my project isc-tar started in the first part.

Just having tests is not enough, it does not mean that you will run tests after all changes. Running tests should be automated, and when you cover all your functionality with tests, everything should work well after any change in any place.  And Continuous Integration (CI) helps to keep the code and deployment procedure with as fewer bugs as possible and automates the routine procedures, like publishing releases.

I use GitHub to store the source code. And some time ago GitHub started to work on its own CI/CD platform and named it GitHub Actions. It is not widely available, yet. You have to be signed as a beta tester for this feature, as I did. GitHub Actions uses quite a different way how to deal with a build workflow. What is important that Github Actions allows to use Docker, and it’s quite easy to customize available actions. And interesting that GitHub Actions is really much bigger than any classic CI like we have in Travis, Circle or Gitlab CI and so on. You can find more in the official documentation.

0
1 799
Article Dmitry Maslennikov · Mar 15, 2019 2m read

I'm sure most of you have already familiar with the possibility of using GZIP in InterSystems products. But, the problem is that GZIP working only with one file or stream, and it does not support folders. When you work in Unix systems, there is a possibility how to solve it, using tar compress tool which goes with every Linux system from out of the box. But what to do if you have work on Windows as well, which does not have it. 

I am pleased to offer you my new project isc-tar, which will help you do not care about operating system, and deal with tar files anywhere.

1
4 986
Article Dmitry Maslennikov · Mar 18, 2019 4m read

I am just recently announced my project isc-tar. But sometimes it is not less interesting what’s behind the scene: how it was built, how it works and what happens around the project. Here is the story:

  • How to develop this project
  • How to test it
  • How to release new versions for publishing
  • And finally how to automate all above
  • Continuous integration

So, I would like to tell all about it.

0
2 669
Question Chip Gore · Mar 13, 2019

Hi -

I'm having odd behaviors on my EC2 hosted IRIS Community instance.

When I configure a "custom login page" in the System Management Portal for my web application I'm seeing a few different behaviors that are under documented (and also undesired)

The old Caché documentation indicates that the custom login page could be a ".csp" file, but this seems to nor be the case (i kept getting "not found" errors, even though I could bring up the page directly from the url FOR the login.csp file. To get around this, I created an HTML file and then, at least, the login page could be found to be rendered.

On

2
0 670
InterSystems Official RB Omo · Mar 14, 2019

March 14, 2019 – Alert: Data Integrity Issue with Mirror Database Catchup

InterSystems has corrected a defect in our mirroring technology that can result in inconsistency between mirrored databases. This defect exists for currently released Caché and Ensemble versions beginning with 2017.2 and for InterSystems IRIS Data Platform version 2018.1.

When the issue occurs, some journal updates are not applied to a mirrored database on the backup mirror member or an async member that is being caught up.

0
0 410
Question Alexey Maslov · Jan 31, 2019

Sometimes global mapping of the same globals can be defined in different ways. E.g., I need to define it for 3 globals ^qAuditC, ^qAuditLog, ^qAuditLogC from the same database named APP-NOJOURN. Which approach should be better from the performance point of view?

1) qAudit* => APP-NOJOURN (one record in global mapping table)
or

2) qAuditC => APP-NOJOURN
qAuditLog => APP-NOJOURN
qAuditLogC => APP-NOJOURN (three records in global mapping table)

From one hand, the less records in global mapping table, the better.From other hand, * can cause additional processing at run time.

3
0 665