At the heart of IRIS and Cache is a very interesting database architecture that we, at M/Gateway Developments, refer to as "Global Storage". If you ever wanted to know more about the fundamentals and capabilities of this underlying database, you might want to read a major analysis we've put together:

https://github.com/robtweed/global_storage

Amongst other things you'll discover that:

8 4
2 553

In this article I will explain how to Authenticate, Authorize and Audit by code by using CSP Web Application along with Enabling /Disabling and Authenticate/Unauthenticate any Web Application.

Application Layout

8 5
1 1.1K

In the previous parts (1, 2) we talked about globals as trees. In this article, we will look at them as sparse arrays.

A sparse array - is a type of array where most values assume an identical value.

In practice, you will often see sparse arrays so huge that there is no point in occupying memory with identical elements. Therefore, it makes sense to organize sparse arrays in such a way that memory is not wasted on storing duplicate values.

In some programming languages, sparse arrays are part of the language - for example, in J, MATLAB. In other languages, there are special libraries that let you use them. For C++, those would be Eigen and the like.

Globals are good candidates for implementing sparse arrays for the following reasons:

8 3
1 1.3K

The new production component driver for Deltanji enables highly granular management of InterSystems Interoperability Productions with tight integration into the management portal. We presented it at the InterSystems UK&I summit this week and it received a great reception. 

It solves the current pain-point of Interoperability Productions being defined in a single monolithic class definition. Deltanji source control increases the granularity with which items can be managed. Instead of versioning a single class definition containing all the configuration items, this new component driver allows individual configuration items to be managed separately. Each configuration item has its own versioning and revision history and can be checked-out, checked-in, and deployed independently of any other items in the same Production.

Because each configuration item within a production class is managed by Deltanji as a first-class component in its own right, Deltanji provides all the source control, versioning, and workflow capabilities that it provides for any other component.

Watch the below clip to see it in action. 

 

We'll be talking about this new feature in more detail at our User Group Session on November 3rd at 3pm (GMT). Register your attendance on Eventbrite here - https://bit.ly/3yqzfvS

To find out more about Deltanji, visit our website georgejames.com or drop us an email info@georgejames.com 

7 13
0 270

So, the next year will bring us a new way of installing IRIS. Always keep in mind that you have to bring your own web server. No matter how many instances of IRIS you have on your local machine. Or if you work in Docker, always keep in mind a bit more complicated configuration.

And I now want to understand the costs of this decision for end-developers like most of here.

7 20
2 570
InterSystems Official
· Aug 30, 2023
InterSystems Reports 23.2 Release Announcement

InterSystems Reports version 23.2 is now available from the InterSystems Software Distribution site in the Components section. They are labeled InterSystems Reports Designer and InterSystems Reports Server and are available for Mac OSX, Windows or Linux. insightsoftware elected to move from a numerical number plan to a year-based numbering plan in 2023 so there are no versions 20 through 22; versions increase from Version 19 to Version 23. Note that the reports Server docker image will be available at a later date from the Container Repository.

7 0
0 181

When I start a fresh installed IRIS or a Container I always find Interoperabiliy (aka. Ensemble) mapped to namespace USER.

Is there any utility to remove this mapping by a click ?
unmapping it global by global, routine by routine, Package by Package is just a boring exercise.

To be clear: I look for a utility inside IRIS.

The external utility is obvious: Notepad (or any other text editor)
- clean iris,cpf,
- restart IRIS
It's fast, it's efficient, but it's really hardcore.

7 4
0 239

The new $system.external interface (aka "InterSystems External Servers") is used to call/integrate with external language code/libraries, it replace the old gateways (for example Java gateway) that required the import of proxy objects.

Note that the documentation for the old gateways has been removed from IRIS, so only the new $system.external interface is somewhat (i.e. insufficiently) documented.

Regarding the migration from old gateway to new $system.external interface the documentation says:

7 14
2 800

InterSystems FAQ rubric

In the sample below, an image file is encoded into a Base64 string in a class property, saved, decoded again with Base64, and restored to another file.

【Usage class】

Class User.test Extends %Persistent
{
Property pics As %GlobalBinaryStream;
}


【When importing】

7 2
2 411
Question
· Oct 31, 2019
Unknown Licensing Message ?

I find in my message.log an entry I've never seen before:

10/31/19-16:00:22:562 (9056) 0 InterSystems IRIS license file (iris.key) must be validated with License Server.

What does it try to tell me?
Is there any action expected?

7 5
0 226

From time to time, we get the previous question in support, something or someone is using more licenses than expected, and we need to find what.

We have two scenarios. The first scenario is when we realize that the licenses are exhausted when the application does not work or when we try to connect through the terminal and get the "lovely"

<LICENSE LIMIT EXCEEDED> message:

7 1
0 589
Article
· Mar 16, 2023 6m read
Kinds of properties in IRIS

InterSystems IRIS has quite a few different kinds properties. Let’s put them in order so that they make better sense.

First of all, I would divide them into categories:

  • Atomic or simple properties (all those %String, %Integer, %Data and other system or user datatypes)
  • References to stored objects
  • Built-in objects
  • Streams (both binary and character)
  • Collections (which are divided into arrays and lists)
  • Relationships (one-many and parent-children)

Some of these kinds of properties are quite straightforward. For example, atomic properties:

Property Name As %Name;
Property DoB As %Date
Property Age As %Integer

7 2
1 353

image

This article will cover turning over control of provisioning the InterSystems Kubernetes Operator, and starting your journey managing your own "Cloud" of InterSystems Solutions through Git Ops practices. This deployment pattern is also the fulfillment path for the PID^TOO||| FHIR Breathing Identity Resolution Engine.

7 3
1 438

In this article, I will show how you can easily containerize .Net/Java Gateways.

For our example, we will develop an Integration with Apache Kafka.

And to interoperate with Java/.Net code we will use PEX .

Architecture

Our solution will run completely in docker and look like this:

7 7
1 1.1K

Hi developers,

We're excited to let you know about the latest release of Serenji, your on-the-spot debugger from George James Software. Version 3.2.0 focuses on the debug experience and introduces zero configuration for users. No matter where you are or what you're doing, Serenji is always ready to go in just one click, so you won't lose focus by spending time setting up a launch configuration.

This enhanced debugger also takes advantage of the latest features of VS Code itself. With this powerful combination you'll be able to smoothly identify and quickly fix errors in your code, contributing to the production of quality, maintainable code... and isn't that what everyone wants?!

In this latest release you will experience:

  • Debugging in just one click with zero configuration.
  • Navigation directly to the source of an error using our gj :: locate technology.
  • Intuitive prompting for entrypoint and arguments.
  • Configurable break on error.
  • Program output in debug console.
  • Run and Debug CodeLenses.
  • Run multiple concurrent debug sessions and consoles.
  • Shaded background for read-only documents.

If you're a new user, it's now easier for you to get started. The introduction of a welcome page Walkthrough and guidance on the Explorer and Run and Debug views means you can effortlessly create your initial workspace and start debugging.

Download Serenji directly from the VS Code marketplace and take a look at our release notes to find out more about these new features and how to use them.

We offer a free 30 day trial so if you're not yet a user of Serenji but you're interested in how it can help you, drop me a message through the Developer Community or email us at info@georgejames.com.

Happy debugging!

7 1
4 307

Hey Developers,

Planning to attend the Focus Sessions of InterSystems Virtual Summit 2021? Don't miss the session dedicated to InterSystems Developer Community, Open Exchange & Global Masters!

⚡️ "Win. Win. Win with InterSystems Developer Ecosystem" VSummit21 session ⚡️

🎁 Note: All session attendees get a special prize.

Speakers:
🗣 @Anastasia Dyubaylo, Community Manager, InterSystems
🗣 @Lena Evsikova, Product Owner of InterSystems Open Exchange
🗣 @Olga Zavrazhnova, Customer Advocacy Manager, InterSystems

7 8
0 684

An interesting pattern around unique indices came up recently (in internal discussion re: isc.rest) and I'd like to highlight it for the community.

As a motivating use case: suppose you have a class representing a tree, where each node also has a name, and we want nodes to be unique by name and parent node. We want each root node to have a unique name too. A natural implementation would be:

7 8
0 875
Article
· May 25, 2023 2m read
API to import/export routines

This is an article on the InterSystems FAQ site.

1. Export API

a. Use $system.OBJ.Export() to specify individual routines to export. For example:

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

The format to specify is routine name.extension, and the extension is mac, bas, int, inc, obj.

Errors during export are stored in errors.

7 2
2 387