For quite some time I am bored by slowly starting Docke Demos from OEX.
I type
docker-compose up - d
and after a few seconds
docker-compose logs
And I just see ISC Agent was started and is hanging around
No IRIS instance is up yet.
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.
For quite some time I am bored by slowly starting Docke Demos from OEX.
I type
docker-compose up - d
and after a few seconds
docker-compose logs
And I just see ISC Agent was started and is hanging around
No IRIS instance is up yet.
The last days I've work with the great new feature: LOAD DATA With this post I would like to share my first experiences with you. The following points do not contain any order or other evaluation. These are only things that I noticed when using the LOAD DATA command. It should also be noted that these points are based on the IRIS Version 2021.2.0.617 which is a preview release. So it may be that my observations do not apply to newer IRIS versions. But maybe they are helpful for others.
I have done my first tests via JDBC.
We have created a number of REST adapters that extend %CSP.REST and these have been working fine. However, we are now facing a problem with a new one where very large XML documents are being posted. This is the pattern we are following:
Set inMsg = %request.Content.Read()
Set tSC = ##class(Ens.Director).CreateBusinessService("Epro_ItkHttp",.tBusinessService)
Set tSC = tBusinessService.ProcessInput(inMsg, .tBusinessServiceOutput)
However, when the %request is particularly long, it is being truncated, and working with %XML.Reader then fails in the business service class.
I believe the call to Read(
I have code hier and trying to view diacrit character
Class Test.REST.Services Extends EnsLib.REST.Service
{
Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";
Parameter EnsServicePrefix = "^TEST";
XData UrlMap
{
<Routes>
<Route Url="/dio/:Resource" Method="GET" Call="getDio" />
</Routes>
}
Method getDio(pInput As %Library.AbstractStream, Output pOutput As %Stream.Object, pResource As %String) As %Status
{
set status = $$$OK
do pOutput.SetAttribute("ResponseCode","200")
set messageBuffer = "{""text"":""Patiënt""}"
do pOutput.Write(messageBuffer)
do
The power of the presented tool becomes visible with a large JSON file.
The example I have prepared is composed of the daily results of AoC 2023.
Anonymization makes it usable for demo purposes.
Early Access Program (EAP) is a way to to deliver specific features early to a group of people who will test and provide feedback on that feature.
One of those EAPs is about the the discontinuation of the Apache web server installation (a.k.a. NoPWS) from IRIS product installers. If you're interested in this topic and want to test it, the way to register is to send an email to nopws@intersystems.com. Use this same email for any other feedback.
Once you get a confirmation email, you'll see the EAPs you have access in the Evaluation Services website. You must log in to see the content.
So, after
In general Global Streams are data objects embedded in Classes / Tables.
Using and viewing them with SQL is normally a part of the access to the containing tables.
SO WHAT?
During debugging or searching for strange or unexpected behavior there could be the need to
get closer to the stored stream. No big problem with direct access to Globals with SMP or Terminal.
But with SQL you are lost.
So my tool provides dynamic access to Global Streams wherever you may need this
Special thanks to @Oliver Wilms for the inspiration for this tool.
Is there anyway outside of IRIS and Ensemble to guage what Port they are using?
Ideally through file explorer, if it exists in a config file at all.
I want to avoid searching through all active ports on the machine if possible.
The similarity between JSON objects + arrays and Globals in IRIS or Caché is evident.
With small and medium size JSON objects navigation across %Dynamic Objects is comfortable.
But with large and/or deep cascaded objects it becomes a challenge.
The presented tool offers 3 variants
Hi Community,
Watch this video to learn different ways to connect and interact with event streaming platforms like Kafka:
⏯ Working with Event Streaming Platforms @ Global Summit 2022
InterSystems.Data.IRISClient.IRISException (0x00000000): ERROR #5002: ObjectScript error: <REMOTE EXECUTE INVALID WRITE>Load+20^%apiOBJ
at InterSystems.Data.IRISClient.ADO.IRIS.ClassMethodStatusCode(String className, String methodName, Object[] args)
at Setup.core.CacheCRUD.RunDeploymentClass()
Throwing this error when calling the ##class(%Studio.Project).InstallFromFile() remotely.
The method works when ran through studio, but not when accessing via ADO.Net, seems to be a limitation on the access to the location of the file, but if I make it accessible by anyone in windows it is
We've added a new channel to the Developer Community Discord Server, #platforms. This is a good place to discuss issues related to Operating Systems, CPU architectures, and Containers supported by InterSystems products.
To kick things off, let's talk CentOS.
CentOS has been supported to give developers a free-to-use equivalent to Red Hat Enterprise Linux for IRIS development. As you're probably aware, Red Hat made significant changes to CentOS which have resulted in it being significantly less stable than RHEL.
Hello all,
I am facing a little issue with line separators. I export classes with $SYSTEM.OBJ.Export to the file system, but I'm on a Linux (docker) environment and he uses LF.
Is it somehow possible to change the line separator for the export or in general?
Thanks in advance!
Bests, Matthias
At InterSystems, we believe in the responsible disclosure of recently discovered security vulnerabilities. We provide timely information to our customers, while keeping it out of the hands of people that may misuse it. We also understand each customer has different requirements related to the resolution of security issues.
As we start 2023, we have made two significant changes to our approach to security vulnerability corrections that I’d like to highlight:
Security vulnerability patches in
Hello all,
I am hoping someone can give me some guidance.
I have this code below; please see below. It works perfectly fine. However, when I use a different target, it is not working. 0 files were copied.
w $ZF(-100,"/SHELL /LOGCMD","copy","C:\DICOM\IMAGE\IMAGE1.DCM","E:\IMAGE\COPIEDIMAGETEST1.DCM")
1 file(s) copied
=====
w $ZF(-100,"/SHELL /LOGCMD","copy","C:\DICOM\IMAGE\IMAGE1.DCM","\\SERVERLOCATION\SHAREDFOLDER\COPIEDIMAGE.DCM")
0 file(s) copied.
In our latest episode of Data Points, I had a conversation with George James, CEO of George James Software, about the importance of source control and developer tools, George James Software's own solutions, and their partnership with InterSystems. Take a listen, and visit https://georgejames.com to learn more about George James Software!
When I try to debug using the docker image intersystemsdc/iris-community it is failing. If I change to intersystemsdc/iris-community:2022.3.0.555.0-zpm, I have success.
Sorry, change to: intersystemsdc/iris-community:2022.1.0.209.0-zpm
We have IRIS on Linux. When I create database NEO_PAVI_G by Management Portal, than owner for files and directories is "irisusr".
But owner is "mfukatko" (my username) after creating database NEO_Pxxx_G using installer based on ##class(%Installer.Manifest).%Generate() from command line in terminal.
.png)
I'd like to have same owner in both cases. Is it possible to achieve it in the second case as well?
Our manifest in istaller:
XData Install [ XMLNamespace = INSTALLER ]
{
<Manifest>
<If Condition='(##class(Config.Namespaces).Exists("${Namespace}")=0)'>
<Log Text="Creating namespaceI am using ens.BusinessService with associated adapter EnsLib.HTTP.InboundAdapter. is it possible to get the header details like Authorization and custom header that are part of the HTTP Post?
Or, do i have to use a different service to get the payload along with the header details?
Python has become the most used programming language in the world (source: https://www.tiobe.com/tiobe-index/) and SQL continues to lead the way as a database language. Wouldn't it be great for Python and SQL to work together to deliver new functionality that SQL alone cannot? After all, Python has more than 380,000 published libraries (source: https://pypi.org/) with very interesting capabilities to extend your SQL queries within Python. This article details how to create new SQL Stored Procedures in InterSystems IRIS Database using Embedded Python.
This
IRIS is a powerful platform and one of the new features is the Java Business Host (DOC: Connecting Systems Using Java Business Hosts) that allow you to develop Business Services and Business Operations directly in Java (JavaDocs of the InterSystems Gateway Package).
I was testing this feature using an IRIS Docker image, but this image doesn't come with Java, the image is a bare Ubuntu image plus IRIS. So I had to build a new image adding the Java stuff. After some research I finally get this Dockerfile:
InterSystems announces another developer preview release, as part of the developer preview program for the 2022.3. Many updates and enhancements have been added in 2022.3 and there are also brand new capabilities, such as the new FHIR SQL Builder, improvements for Columnar Storage, and adds support to SUSE 15 SP4 and Oracle Linux 9. Some of these features or improvements may not be available in this current developer preview.
Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we
How to manipulate the code of the studio? Error messages, adding new items in the general options, formatting of the code, code typing...
Hi All,
I am currently using D $SYSTEM.SQL.Shell() command or management portal to retrieve the data from database. I just learned we can also run cache table sql queries in MS access. MS access already installed on my machine.
I need to ask how I can connect my database of USER or sample namespace in MS access to run these SQL queries.
Thanks in advance!!
Hi All,
I am having an SQL query (mentioned below). When I am running this query it is taking 90 min to retrieve all records (approx 1 million records).
Fetching data from 5 tables using inner join in cache. Relative cost displaying 10 million
I wan to confirm How this query can be optimized
SelectOrderBooks.Hi ,
I am trying to work out how to install the intersystems-jdbc-3.3.1.jar file onto a windows server to set up a connection between athrid party application and an Iris database.
Is there an installer ? the java -jar etc command does not work "could not load main class " . Added the folder to the system path .
Running Eclipse temurin but I do not work with java at all, other than these very specific points where need to get applications to run .
If someone could point me to a guide or instruction that would be of great assitance
Cheers
Michael
I already have a working setup with:
- Ubuntu 21.10
- Unixodbc 2.3.6
- ODBC-2018.1.5.659.0-lnxubuntux64
- libcacheodbcur64.so
I have tried to update to:
- Ubuntu 22.04
- Unixodbc 2.3.9
But, i am getting "SQLDriverConnect: 0 [unixODBC][Driver Manager]Driver does not support the requested version".
So, I have tried to switch to:
- libcacheodbcur6435.so
- ODBC-2018.1.7.721.0-lnxubuntux64.tar
But i am getting same error. Please, could someone help me?
How can I use STREAMOID to populate an <img> tag in ZEN reports from a stored jpg in a class object
The value of Image :
http://xxx.xxx.xxx.xxx:57772/csp/dev/%25CSP.StreamServer.cls?STREAMOID=…
Snippet below:
<container ifexpression="%report.TestProfileImage(2)=1">
<table orient="col" class="borderless" width='#($g(^||Page("TotalRowWidth")))#in' group="TestTable2">
<table orient="row" width='#($g(^||Page("TotalRowWidth")))#in'>
<table orient="col" class="default" width='#($g(^||Page("TotalRowWidth")))#in' group="Tes
%objlasterror is a useful reference to the last error.
Every time $$$ERROR is called, %objlasterror is set to a result of this call.
It's important in cases where you want to convert exception to status:
Try {
// quality code
} Catch ex {
Set sc = $g(%objlasterror, $$$OK)
Set sc = $$$ADDSC(sc, ex.AsStatus())
}Because AsStatus calls $$$ERROR under the wraps, the order is important, first you need to get %objlasterror and convert exception after that.

There are many entities in IRIS which are extremely difficult to transfer to another system.They usually contain important system-stored objects: users, roles, privileges, mappings, and applications. The exception to this list is for resources, which are facilitated by the ability to select and save them from the management portal interface [System > Security Management > Resources]. Yet, things are not as good with other system objects. I even got an idea for this topic
I devoted this article to the explanation of how to transfer gateway connection settings [System >