InterSystems IRIS family has a nice utility ^SystemPerformance (as known as ^pButtons in Caché and Ensemble) which outputs the database performance information into a readable HTML file. When you run ^SystemPerformance on IRIS for Windows, a HTML file is created where both our own performance log mgstat and Windows performance log are included.
If you have system tables implementing the "VERSIONPROPERTY" functionality, you may encounter error 5800. This article explains how this error occurs and provides solutions to resolve the issue.
When version checking is implemented, the property specified by VERSIONPROPERTY is automatically incremented each time an instance of the class is updated (either by objects or SQL).
I'm calling to a API that it is retrieving the content of a file as Content of response. I'm catching the binary but I need to convert this Stream to a Base64 string.
I'm trying to convert a %Stream.GlobaBinary to a Base64 string using the following code, but it doesn't work.
I'm currently making some changes to legacy code and I've noticed that it uses "i $i(" all over the place. Testing in terminal seems like this does the same thing as "do $i()". Is there a difference between these two (and if not is there some interesting history around this)?
We are writing a custom Business Operation to interact with a downstream SOAP web-service. Classes for the SOAP operation were originally generated using the SOAP Wizard, then modified. This is functioning OK, but we'd now like to set the ReplyCodeActions setting on the operation and are struggling to make it visible via the management portal. How can we achieve this?
Is there a sensible approach to having a lookup table in Namespace A, and then accessing this from Namespaces B, C, D (etc)?
I'm trying to avoid creating a Global mapping of the lookup table global (^Ens.LookupTable) as I fear that it would then link all other lookups in that global and lead to some unexpected behaviour, but would be open to trying something in this realm if it's the best option.
I have a situation where I am writing to global from different processes - let's call it an Event Queue. There is then a different process that uses $order to read through the data - the PubSub processing BP.
Sometimes the writing of this global will form part of a transaction that also insert data into other tables, using tstart and tcommit. If there is some issue, it will roll back, and the entry written to the global will also roll back.
I am trying to find or locate all Intersystems business components using a particular class. Like I want to find component is using abc.test.cls class.
I'd like to announce the release of something really rather interesting - revolutionary in fact. That may sound like hyperbole, but I don't think you'll have seen anything quite like this, or even thought it possible!
We've pushed out a new JavaScript/Node.js module named glsdb which you can read all about here in detail:
In cache studio there are features, dialog boxes, that help map data from a global to class properties. I have used %CacheSQLStorage quit a bit, or have in the past, to map globals to classes.
I haven't been able to find a similar feature in VisualStudio. Do I need to upgrade to IRIS to be able to use VisualStudio to map global properties to classes?
A partner have decided to change the algorithms that were used to connect on it's SFTP, but our version of libssh2 don't match with the list of it's HOSTKEYS algorithms.
If i update the library with the last version without to be sure that it includes the old algorithms, i risk to break the connection for other cases.
You can use the %IndexBuilder class to perform index rebuilding using multiple processes.
Here is an example for the purpose of defining the standard index HomeStateIdx for the Home_State (state information of contact address) column of Sample.Person.
The steps are as follows:
1. Hide the index name to be added/rebuilt from the query optimizer.
The task for a file on disk is to open it, find a keyword (unique) and then read the file line by line, starting with the line with this keyword, then find the next keyword (also unique) and read from that location etc. I would think ObjectScript classes should be able to do that, but the solution eludes me. I probably need to use FindAt to get a position, but ReadLine does not seem to have a position argument. Any advice?
Most server-client communication on the web is based on a request and response structure. The client sends a request to the server and the server responds to this request. The WebSocket protocol provides a two-way channel of communication between a server and client, allowing servers to send messages to clients without first receiving a request. For more information on the WebSocket protocol and its implementation in InterSystems IRIS, see the links below.
Global mappings can be registered using the system class Config.MapGlobals.
The method to globally map ^Sample.PersonD in a database SAMPLES other than the default database from the namespace USER is as follows (example executed in a terminal).
The goal is to identify programmatically all SOURCE namespaces on a server to which the routines are mapped. In the example below from the Namespaces page in Management Portal the answer would be USER. But some other namespaces on the same server could be mapped to a different namespace or even mapped to itself.
s ok=ftp.Connect(server,user,password,port) s ftp.Timeout = 100
i ok {
s ok=ftp.SetDirectory(directory) i ok { n files,file
s ok=ftp.NameList(directory,.files) i ok { f i=1:1:files.Count() { s file=files.GetAt(i) i (ftp.SetDirectory(file)) { d ftp.SetToParentDirectory() continue } s fname=$p(file,"/",$l(file,"/"))
I know we can use Do ^DBREST and EXTSELCT ^DBREST or EXTALL ^DBREST to recover the database. But now I just want to use Do ^DBREST to achieve database recovery through this method.