Post updated in August 2025 to include links to IRIS.
I have seen customer problems where the use of a virus scanner running over Caché or IRIS databases was causing intermittent application slowdowns and bad user response times.
This is a surprisingly common problem, so this short post is just a reminder to exclude key Caché and IRIS components from your virus scanning.
I'm getting mad trying to get data from an external REST service that uses Basic Authentication from Ensemble. The BO worked fine when I was using a test server without authentification, but as soon as we need to go to production I cannot have it working.
So far, I've created the username/password at the credentials page (Ensemble-Configure-Credentials). I've setup the BO to use this credentials. But nothing happens.
I've tried with the Rest Client (addon for Mozilla), and using the same address, port and user/pwd works just fine.
I have a general query in regards to developers experience on extracting data from cache databases and the most efficient way to do so. I work with a number of clients who have applications with cache databases and require the data off the host system and onto data warehouse platforms for research and analysis. Often they require the data in source state which means the extracts are often simply a table scan of the entire database table without any aggregation or manipulation.
Hi. This about a migration of code from a DEV environment to a PROD environment.
If an (under development) business host is Enabled in DEV environment and the production class is migrated across environments, this means that the Enabled status of the same business host in PROD would also become enabled (even if it may have been disabled before the update)
A beginner’s guide to Exception Handling in RESTful web services. The article gives an example how the various error conditions during processing a service request can be handled.
We expect our client – server communication working in a flawless operational condition, running error free software. But we are prepared to handle exceptions. Are we? So far in the examples of the previous sessions were not. We did not care about exceptions. The result? In any error incident it took ages to figure out what the problem is and more importantly how to fix it.
I am creating a BPL using the Management Portal instead of creating a custom class.
As per the documentations 'request object' contains properties those were in the original request message object or primary request and can be reference using the dot syntax.
So if the primary request was an HL7 message, i should be able to pull the value MSH:9.2 as follow
request.{MSH:9.2} and assign it to a context property
Whenever I try to run a simple query on a production database table, I get a timeout 504 error. I'm using the SQL interface in Ensemble. One of the queries is a simple SELECT TOP 10. Even SELECT COUNT(*) gives a timeout.
I have tried to run the SQL Runtime Statistics, but this gives me a timeout as well.
Does anyone have an idea where I might look to find what is causing this?
In the Caché Foundations course, students are learning about Caché Development and ObjectScript syntax at the same time. To help students complete the exercises, we provide an ObjectScript Quick Reference (aka "the Cheat Sheet").
It is not a reference for all of ObjectScript! It is a list of the ObjectScript commands and functions that students use during the course, along with common syntax for objects, collections, etc. It also contains some useful macros.
Here is an ObjectScript snippet which lets to create database, namespace and a web application for InterSystems IRIS:
set currentNS = $namespace
zn "%SYS"
write "Create DB ...",!
set dbName="testDB"
set dbProperties("Directory") = "/InterSystems/IRIS/mgr/testDB"
set status=##Class(Config.Databases).Create(dbName,.dbProperties)
write:'status $system.Status.DisplayError(status)
write "DB """_dbName_""" was created!",!!
write "Create namespace ...",!
set nsName="testNS"
//DB for globals
set nsProperties("Globals") = dbName
//DB for routines
set nsProperties("Routines") = dbName
set status=##Class(Config.Namespaces).Create(nsName,.nsProperties)
write:'status $system.Status.DisplayError(status)
write "Namespace """_nsName_""" was created!",!!
write "Create web application ...",!
set webName = "/csp/testApplication"
set webProperties("NameSpace") = nsName
set webProperties("Enabled") = $$$YES
set webProperties("IsNameSpaceDefault") = $$$YES
set webProperties("CSPZENEnabled") = $$$YES
set webProperties("DeepSeeEnabled") = $$$YES
set webProperties("AutheEnabled") = $$$AutheCache
set status = ##class(Security.Applications).Create(webName, .webProperties)
write:'status $system.Status.DisplayError(status)
write "Web application """webName""" was created!",!
zn currentNS
This might be more of a math problem than a Caché question. I have a SQL query that joins two tables. I want to assign a unique ID to each row of the product table.
Hello! I have basic web services application that c# clients connect to the cache web services. Using the browser, the user enters in the following url.
When AMD published the x86-64 standard in 1999, little did they know they were inventing what would become the de-facto architecture for server CPUs. But the CPUs of today aren’t the same as ones produced 20 years back – as they have extensions for everything from Advanced Vector Extensions (AVX) to Hardware-Assisted Virtualization (VT-d).
InterSystems would like to take better advantage of these new extensions in upcoming versions of InterSystems IRIS. While our compilers are smart enough to create optimized code for many situations, some optimizations can only be turned on by explicitly cutting off support for processors that do not have that instruction set. Additionally, we are finding it increasingly difficult to maintain older CPU models to test on.
In this article, we will cover the basics of topics listed below:
1. Routing in Flask Framework 2. Folder structure for a Flask app (Static and Template) 3. Getting and displaying data in the Flask application from IRIS.
We finished our last lesson with our Widgets Direct page iterating over a list of widgets, displaying an ID and a Name value. While we have been able to achieve this with only a small amount of coding, the page itself is not the most visually appealing place to be. The AngularJS framework is providing a powerful Model-View-Controller framework for our structure and logic, but it does not implement anything that will provide a nice UI experience.
ISCAgent is automatically installed with Cache, runs as a service and can be configured to start with the system. This is fine – but the complication comes when this is on VCS clusters with Mirroring on. When installing a Single Instance of Cache in a Cluster, point number 2. Says “Create a link from /usr/local/etc/cachesys to the shared disk. This forces the Caché registry and all supporting files to be stored on the shared disk resource you have configured as part of the service group.”
In some of the last few articles I've talked about types between IRIS and Python, and it is clear that it's not that easy to access objects from one side at another.
Fortunately, work has already been done to create SQLAlchemy-iris (follow the link to see it on Open Exchange), which makes everything much easier for Python to access IRIS' objects, and I'm going to show the starters for that.
I this article I detail some strategic issues that a new development UI will need to address - these are the ones that I can think of now - others may come to light during this journey.
See the webinar by Eduard Lebedyuk here from the last Global Summit describing modern web development and Caché
And, as always, if I have missed something please comment....