I'm currently planning a system upgrade from Caché (2018.1.8.766) to InterSystems IRIS (2024.1). The environment consists of one database server and three application servers connected via ECP.
I like Application Error Log a lot, both for its full stack and a big list of variables. I'd like to "hack" this functionality and record the same in this log when a certain variable has a certain value. This quasi error should not be visible to the user, and it should not interrupt the application flow. Is that possible?
Throwing an error in a try-catch block does not record the error, tested. I am considering recording variables and the stack differently, I know how to do both, but that would miss the nice Application Error Log functionality.
I like the Application Error Log functionality a lot. However, it becomes time consuming to inspect it date by date and directory by directory on a multidirectory server. Ideally, I would use an existing error class to write a custom error report by date, selected namespaces, etc. Does such a system class actually exist? Not that I found. The detail level on the screenshot below is enough.
I'm working with JavaScript in InterSystems IRIS, specifically in CSP pages. One issue I'm running into during development is that the browser keeps loading the cached version of my JavaScript files, even after I’ve made changes or recompiled the code.
I would have to clear my cache files or browser history for it to reload and work.
Is it possible to audit code changes in a namespace?
Ideally what we'd like to be able to do is check which classes were compiled (or deleted) in a time period, eg in last 3 months, and which user made those changes. Even better would be an audit of what those changes were, but that's less important (for us, as we can probably find that information in other ways).
Can someone point me to learning resources / documentation for Intersystems Terminal? I have scoured YouTube, Intersystems documentation, and the internet. Many of the Object Script commands I found don't work (and that are listed here) do not work in the version of terminal that I have:
I'm trying to open a TCP connection to a remote system. The Caché command I'm using to open the connection is OPEN "|TCP|"_PORT:(IP::"PSE"):10 where PORT is a port number in the range 40000 to 40100 and IP is a standard IPv4 addess like 10.200.100.50
the connection appears to open because $TEST becomes 1.
I'm then writing to the open port with USE "|TCP|"_PORT:(::"S") WRITE "some text",*-3
It's a windows system
I am trying to add a value to my concatenation string and the value is not being inserted in the right place. I am adding onto this code from another developer and cannot seem to get it to work. The only code I have added is underlined in bold red.
Having been inspired with Shared code execution speed question/discussion, I dare to ask another one which is annoying me and my colleagues for several weeks.
We have a routine called Lib that comprises 200 $$-functions of 1500 code lines total. It was noticed that after calling _any_ function of another rather big routine (1900 functions, 32000 lines) the next call of $$someFunction^Lib(x) is getting 10-20% slower than previous call of the same function. This effect doesn't depend on:
Let's suppose two different routines use one and the same chunk of code. From the object-oriented POV, a good decision is to have this chunk of code in a separate class and have both routines call it. However, whenever you call code outside of the routine as opposed to calling code in the same routine, some execution speed is lost. For reports churning through millions of transactions this lost speed might be noticeable. Any advice how to optimize specifically speed?
Are there any direct command to find the length of subscript of global variable? Is it possible to code in objectscript to find the maximum length of subscript in a global variable.
Is a layer before the internal HTTP of Caché/IRIS, such as a Reverse Proxy or API Gateway, a good option?
Example: I have an API using %CSP.REST, and I am using the internal port for development. But for production and approval, I put a reverse proxy using NGINX. Is this recommended? Is it an alternative?
We're planning to use Production Validator for validating our system upgrade (2016.2.3 to 2024.2) , and we are trying to understand what kind of benchmarking or performance metrics others have observed during similar efforts.
Specifically, we are looking for a case study or real-world example that includes details like:
Hello. Currently, we are developing using Cache 2018 version. Our team is working on improving an existing legacy program so that it can also be used on the web.
Before asking my question, here is the development environment.
I have a rest API Class used for getting data from Cache 2018 version. I have single route '/callfuntions' I send the following parameters to the API :- className, methodName, params I use $CLASSMETHODto execute and send the result back to the client.
If I make more that 10 to 12 requests in quick succession, then it stops sending data.
I am attempting to implement continuous integration using Docker with Caché 2018.1, and I am in the process of creating an image for our client. I have already installed Caché 2018.1 on the RedHat server, but I am working on a script to create the database and namespace. For the database, I used the following code:
I recently needed to interrogate some folders/sub-folders to retrieve filenames using cache object script(COS) and I implemented it in the following way.
We have a machine that serves 4 instances of Cache on VMS systems, one of them is password protected and works fine as they all do. we decided we wanted something beefier and copied it to a server, well all but the one you have to login to works so 3 of the 4 do. and the odd part is I can no longer get to the management page from anywhere on any machine, http://localhost/csp/bin/Systems/Module.cxw I get a 404.8 error, I have tried adjusting security and same thing. and a server availability error.
Would like to know if there is an alternative or better way to paginate through a dataset using dynamic SQL than what I am using below. The problem is that as the potential pool of data gets larger, this code slows down to the point of not being useable. In analyzing each line of code below, it appears the slow down is related to the initial rset.%Next() iteration. Is there anything available which does not require a subquery/%VID such as a simple LIMIT/OFFSET?