Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ Resilient Deployments in the Cloud
Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ Resilient Deployments in the Cloud
Most of us are more or less familiar with Docker. Those who use it like it for the way it lets us easily deploy almost any application, play with it, break something and then restore the application with a simple restart of the Docker container.
InterSystems also likes Docker.The InterSystems OpenExchange projectcontains a number of examples that run InterSystems IRIS images in Docker containers that are easy to download and run. You’ll also find other useful components, such as the Visual Studio IRIS plugin.
Has anyone recently deployed the cache-git-studio plugin from Github repo?
In particular, I see that this plugin is installed at the namespace level, so it appears for each user have their commits in their own name, they must all be running a locally installed cache server when doing their dev work. I suspect that is the preferred way.
In my organization they are currently just accessing a remote cache server from Studio. In that scenario, it looks like it would be one installation of git for the whole team. and thus only one shared git user.
Hi community,
I need to write an SQL query to fetch a random record from a table, that table has millions of data.
In postgresql, for example, there is a RANDOM() function to do something like that:
SELECT column FROM table ORDER BY RANDOM() LIMIT 1
Is it possible to do something like that in Caché?
Thanks in advance
The Caché System Management Portal includes a robust web-based SQL query tool, but for some applications it’s more convenient to use a dedicated SQL client installed on a user’s PC.
SQuirreL SQL is a well known open source SQL client built in Java, which uses JDBC to connect to a DBMS. As such, we can configure SQuirreL to connect to Caché using the Caché JDBC driver.
The JAR file containing the Caché JDBC driver is installed automatically by the Caché installer when installing a full Caché instance or when installing client components only.
Hi Developers,
Please welcome the new video specially recorded by InterSystems Product Manager @Bob Kuszewski for the 3rd InterSystems Online Programming Contest on InterSystems IRIS Native API:
⏯ Using the IRIS Native API GitHub Template
What’s the contest about?
In the last year, InterSystems added and expanded Native APIs for Java, .NET, Python, and Node.js. The Native API provides high speed access to globals, the ability to instantiate and use ObjectScript objects, and fine-grained control over transactions.
I known ensemble builtin support xml and hl7 document searchtable , is it also support searchtable on json document?
Is there a way to force a failover from the primary mirror member to the backup member without forcing down the primary (which happens with ##class(SYS.Mirror).BecomePrimary())? What I'm trying to simulate is a network isolated condition on the primary.
I have been using %Net.FtpSession and while it works, its handling of file/directory listings from an FTP server is less than ideal and, while this is due to the FTP protocol itself, the class could be written to handle this as would an FTP client such as FileZilla and command line/class FTP handlers for other languages. I was wondering if anyone knows how the Ensemble adaptor works with this in case it provides code that would help, though the source does not seem to be available.
Hello Community,
I want to secure a SOAP Webservice (an EnsLib.SOAP.Service one, if that matters) adding a SSL/Username Policy to it. As im not sure how detailed my request here should get, ill try giving a detailed as-is description of my setup, what I've tried, how I tried to test the connection and what problems including some logs I ran into.
As a small foreword: I'm pretty new to the whole security aspect of intersystems and soap itself.
System:
I've tried it on 2 different systems with pretty much the same result:
Hello,
We are trying to connect to a database through a JavaGateway.
We observe that the JavaGateway reports:
Failed to start the Java Gateway server: ERROR #5002: Error de cache: <UNDEFINED>zGetJavaVersion+22^%Net.Remote.Service.1 *versionWithPrefix
We have checked that we do have the Java Home set:
/usr/java/jdk1.8.0_65
And we have seen the java files in the server:
.png)
We have read the code where the exceptions being raised:
/// Returns the numeric part of the Java version string (e.g. 1.8.0.1)
/// Rules of how the complete version string is formatted can be found here:
/// http://www.oracle.
Hi!
Is there a method in a persistent class that can return the current number of records/persistent objects in it?
If I set up a Mirror and add a new database to the mirror, do I need to create the new database on every single member of the mirror or will it automatically appear on Mirror members? How about HSCUSTOM database, which already got created when installing IRIS?
Preview releases are now available for the 2020.2 version of InterSystems IRIS, IRIS for Health, and IRIS Studio!
The build number for these releases is 2020.2.0.196.0.
Container images, components, and evaluation license keys are available via the WRC's preview download site.
Community Edition containers can also be pulled from the Docker store using the following commands:
InterSystems IRIS Data Platform 2020.2 adds support for TLS 1.
I am trying to create REST API following these instructions: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GREST_apimgmnt
However it does not work.
I tried downloaded the v2.0 schema.json of the OpenAPI specification and pasted it on Postman with the parameters as speicifed, but I get this error message back:
{
"msg": "ERROR #8738: Correct OpenAPI 2.0 version was not specified: . <$.swagger>\r\n > ERROR #5490: Error running generator for method '%OnCompile:TasksRestApp.spec' \r\nERROR: %REST.Spec.cls(%OnCompile) of generated code compiling subclass 'TasksRestApp.Hello all, I have a question about constucting thousands of clones, and scope.
In my code, I'm looping through a database, say 200k+ objects, and creating a clone of each object (we need to evaluate a modified clone of the object, but not account for what's on disk).
I see this a lot in the documentation:
" Whenever you set a variable or object property to refer to a object, its reference count is automatically incremented. When a variable stops referring to an object (if it goes out of scope, is killed, or is set to a new value), the reference count for that object is decremented.
Hi Community,
The new video from Global Summit 2019 is already on InterSystems Developers YouTube:
⏯ Leveraging Containers for DevOps
Hi Community,
We're pleased to invite you to join the upcoming InterSystems IRIS 2020.1 Tech Talk: Integrated Development Environments on May 19 at 10:00 AM EDT!
In this edition of InterSystems IRIS 2020.1 Tech Talks, we put the spotlight on Integrated Development Environments (IDEs). We'll talk about InterSystems latest initiative with the open source ObjectScript extension to Visual Studio Code, discussing what workflows are particularly suited to this IDE, how development, support, and enhancement requests will work in an open source ecosystem, and more.
Hi Community!
We are glad to invite all the developers to the upcoming InterSystems IRIS Native API Contest Kick-Off Webinar! The topic of this webinar is dedicated to the 3rd IRIS Programming Contest.
Date & Time: Monday, May 18 — 9:00 AM EDT
Speakers:
@Bob Kuszewski, InterSystems Product Manager
@Evgeny Shvarov, InterSystems Developer Ecosystem Manager
What awaits you? Please check the agenda below:
Previously I showed you how to run pButtons to start collecting performance metrics that we are looking at in this series of posts.
##Update: May 2020.
Since this post was written several years ago, we have moved from Caché to IRIS. See the comments for an updated link to the documentation for pButtons (Caché) and SystemPerformance (IRIS). Also, a note on how to update your systems to the latest versions of the performance tools.
Hi folks!
When I start IRIS in docker every time I do the following:
$ docker-compose up -d --build $ docker-compose exec iris iris session iris USER>zn "NAMESPACEINEED"
Is it possible to have an open terminal command connect to a particular namespace?
Hello guys,
I have used the Studio SOAP wizard to generate some webservice client classes and amongst those classes:
Class RMH.SOAP.s0.Output Extends (%Persistent, %XML.Adaptor) [ ProcedureBlock, SqlTableName = _Output ] {
...
Property Value As %GlobalCharacterStream(XMLNAME = "Value");And the caller looks like
Class RMH.SOAP.SoapTreeSoap Extends %SOAP.WebClient [ ProcedureBlock ] {
...
Method Run...(Tree As %String, Inputs As %String, Debug As %Integer) As RMH.Hi Developers!
As discussed in previous parts of Package Manager stories to turn your IRIS application into a deployable package you just need to introduce the module.xml file into the root folder of the repository and describe all the resources.
I’m pleased to introduce you to a new project template on Open Exchange which contains examples of how to make different types of resources of your InterSystems IRIS application a part of the ObjectScript package and so make the deployable ObjectSctipt package.
Let's see how you can describe your application resources using this template project as an example.
See the details below.
So, I was doing a debug test on a routine, and tried to open a file (yes, it does exist) as so:
s file=##class(%File).%Open($$$airfile,"R")
And, I got the above-mentioned error. It begins with "cn_iptcp://localhost:56775/%Stream.Object.1.INT" in case the port means anything.
This is a single-license version of Cache 2017.2, which I installed about three years ago. You would think I'd have the .INT files, but I don't. Oh, one other oddity: I can't seem to compile the routine, despite having admin privs for the machine. It's Windows 7 64-bit.
Any help is appreciated.
Hi, if you develop production with HealthShare, you may have noticed there is a nice tracing feature available - HS.Util.Trace.Operations. This feature allows visually tracing debug information, in structured way. It complements good old logging macros like $$$LOGINFO, $$$TRACE and alike.
I use this feature a lot. However, it has limited functionality, it works nice with classes that extend XML Adapter, streams or data types, but it doesn't work well with arbitrary objects that do no extend from XML Adapter.
I decided to implement a subclass of the trace helper class HS.Util.Trace.
I've created a new repository that I will use for providing examples of various scenarios and use cases for QEWD
https://github.com/robtweed/
Initially it contains a example of a scenario I'm often asked about: a set of REST APIs, with JWT support, implemented as a set of QEWD MicroServices, each of which uses Cache or IRIS running on a Windows system.
What I've provided is a detailed, step-by-step guide (with detailed explanations) of how to set up such a system.
Allow limited durability for demo and development IRIS-Docker-micro-Durability During development of a container based demo I found the need to access a fresh docker
an instance of IRIS image (e.g intersystems/iris-community:2020.2.0.199.0) over and over.
To bypass loading my code repeatedly, I developed this workaround.
The principle of a persistent IRIS database outside the container is unchanged.
But now the whole setup is moved into Dockerfile and docker-compose.yml
Make sure you have git and Docker desktop installed.
Using the IRIS native API for Node.JS was the opportunity to present
a MicroService operating in a Docker container.
A demo video is now also available to watch the demo in operation.
Instead of a utility you call directly on your IRIS host you now send a work-packages
to the MicroService as would typically do with System Interoperability (aka.ENSEMBLE):
of course, you have the option of more than one WebSocket Server.
Once the WebSocket Client Service has done its job you get back the result from it.
I have a class that writes to an external SQL Server database. When the field is empty, it does not write the column and the column has the value NULL. In some cases, I want the column to be the value of the empty stringinstead of NULL.
Class myRequestClass Extends Ens.Request
{
Property MessageType As %String
}
The message that is passed to this class shows:
<MessageType></MessageType>
Which writes the field as NULL with:
tSQL = "insert into myTable (MessageType) values (?)"
set tSC = ..Adapter.ExecuteUpdate(.tNumberOfRowsUpdated,tSQL,myRequestClass
One of the topics that comes up often when managing Ensemble productions is disk space:
The database (the CACHE.DAT file) grows in a rate that was unexpected; or the Journal files build up at a fast pace; or the database grows continuously though the system has a scheduled purge of the Ensemble runtime data.
It would have been better if these kind of phenomena would have been observed and accounted for yet at the development and testing stage rather than on a live system.
For this purpose I created a basic framework that could aid in this task.