Question Stefan Cronje · Apr 5 Is there a way to Isolation Mode on global interactions? Hi all, 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. #Database Transaction Processing #Globals #Caché #Ensemble 0 6 0 73
Question Stefan Cronje · Dec 21, 2023 Determining all contending processes on exclusive lock issues Hi, The system I am working on processes large numbers of records. Inserts, updates and so forth. There are multiple processes that can potentially work on the same table at the same time. It is an almost impossible task to try and time these processes to not run at the same time, due to volumes, SLAs, etc. Every now and then there are a few locking issues, Not many considering the volumes. It is just a bit of a nuisance as we need to reprocess these records later. #Database Transaction Processing #ObjectScript #SQL #Ensemble 0 6 0 151
Question Stefan Cronje · Dec 15, 2023 %PARALLEL and Per Process Memory issue HI *, So last night I was doing a deployment which had a query to select from a large dataset of joined tables, to iterate through and populate data in a new table. This was done in a classmethod using embedded SQL and the %PARALLEL keyword.On a testing environment with the same dataset, this worked perfectly a few days earlier. #ObjectScript #SQL #Ensemble 0 2 0 196
Question Stefan Cronje · Feb 23, 2023 Issue with Logical Operators on Strings Hi all, I might be losing my mind or do not understand how ObjectScript does string comparisons, but the following does not look right to me. Is it really possible that you can't compare non-numerical strings other than with an equals or not equals? USER>w ("45" < "46") 1 USER>w ("45" > "46") 0 USER>w ("V45" < "V46") 0 USER>w ("V45" > "V46") 0 USER>w ("V45" <= "V46") 1 USER>w ("V45" >= "V46") 1 In Python: #ObjectScript #Ensemble 0 4 0 236
Question Stefan Cronje · Feb 7, 2023 VSCode defaults to "spaces: 4" on new Class files, not tab Hi all, In the days when I was still using studio, the indentation character of choice was tab, due to misalignment of code when using non-monospaced fonts. In VSCode when I create new class files, this defaults to 4 spaces. Where and how do I set the default indentation for ObjectScript class files? Also, with python it should be spaces. So what is recommended when doing python script inside objectscript classes? Thank you. #ObjectScript #VSCode 0 2 0 403
Question Stefan Cronje · Feb 4, 2023 What is %Projection.Monitor ? Hi everyone, I have been reading up a bit on projection. I found a reference made to %Projection.Monitor on this page. However, I cannot find any further information on %Projeciton.Monitor. What is it? How does it work? How do you use it? What value does it add? Thank you. #Monitoring #ObjectScript #InterSystems IRIS 0 1 0 141
Question Stefan Cronje · Jan 25, 2023 Generating Method Arguments with objectgenerator Hi *, I want to dynamically generate the arguments of a method during compile time. 'For example, I want the following method ClassMethod DoCleverStuf() As %Status [ CodeMode = objectgenerator ] { do %code.WriteLine(" Set tSC = $$$OK") ... } to look like this in the .int code. ClassMethod DoCleverStuf(pValue1 As %Integer, pValue2 As %String) As %Status [ CodeMode = objectgenerator ] { // some generated code will be here } Is this possible? Or alternativel;y, can I generate a whole method at compile time? Thanks. #ObjectScript #InterSystems IRIS 0 2 0 191
Question Stefan Cronje · Jan 22, 2023 System Process and Session Information in Triggers Hi all, I am trying to use some process private variables (percent variables) in Triggers. I am referring to values from $System.Process, like the ClientIPAddress and CSPSessionID.These do to not contain values and I suspect it is bacause of scope. I also checked, and the %session variable is not available if the change originated from a CSP request.I know that in triggers the scope of the variables are to be kept local, that is why NEW is to be used. #ObjectScript #SSL #InterSystems IRIS 0 10 0 246
Question Stefan Cronje · Feb 1, 2022 VSCode: Formatter not found Hi, I am using VSCode together with IRIS 2021.1.When using Shift+Alt+F to reformat a class file, it pops up with the below message. When I select install formatter, it routes me to the extensions page, where it shows the extensions as being installed. Any advice will be appreciated. #ObjectScript #VSCode 0 8 0 814
Question Stefan Cronje · Jan 7, 2022 Ensemble Production Tests with Deferred Responses Hi all, I am busy trying out the %UnitTest.TestProduction class to implement some automated production testing. I have a scenario which I am not sure how to get the final results of for assertion. Below is the scenario I am trying to test, with comments on what I have done. #Interoperability #Testing #Ensemble 0 0 1 325
Question Stefan Cronje · Nov 10, 2021 OmniDB connection or advice on a similar tool Hi, We need a web-based SQL tool to connect to Ensemble/Cache, that will offer more functionality than what the Management Portal offers.It needs to be web based, so that we can host it on a machine that has connectivity to the server via the superserver port. We (the devs and support) only have browser access to the environment via Remote Desktops, hence the requirement. Has anyone gotten OmniDB to connect to Ensemble/Cache? If so, can you please advise on how to configure it? Any other suggestions for such a tool are also welcome. #ODBC #SQL #Caché 0 1 0 245
Question Stefan Cronje · Jun 10, 2021 Dynamic SQL DisplayFormatted split files on row count Hi, I have the requirement to dump large result sets into files. I am currently using %SQL.Statement and the result set created by it. The DisplayFormatted is used to write a CSV. The query I used to test does not contain any filters, it is just a select * from a table with 16 million rows.The file created is 2GB in size. The issue I have is that it takes 8 hours to create this file. #ObjectScript #Caché 0 3 0 188
Question Stefan Cronje · Feb 26, 2021 A few questions on IKO and IAM Hi *.*, I am new to IRIS, IKO and IAM. I have read through a lot of the documentation, but I need clarity on some things that I can't find in the documentation. #InterSystems API Manager (IAM) #Kubernetes #InterSystems IRIS 0 3 0 333
Question Stefan Cronje · Jan 13, 2021 CI/CD Using GitHub and Travis CI - Source to Cache XML Format Hi, I am investigating creating builds from TravisCI, which will pull the source from github.This will also involve a code review process, pull request, etc. It will be done in Multiple phases. The first one will not involve automated testing using TravisCI yet. It will only involve travisCI pulling the latest code from github and creating a release for testing(A deployment file in a format that can be loaded by Ensemble0) #Deployment #Tools #Ensemble 1 8 0 196
Question Stefan Cronje · Oct 25, 2018 How can I access array elements in a Business Rule Hi,The context of the rule set contains an ArrayOfDT(I've also tried Collection.ArrayOfDataTypes).I need to access an element using its key in the rule set using the assign function. I've tried everything I can think of and searched the documentation, but can't find anything. It is probably very obvious.Can you please help? #Business Rules #Ensemble 0 1 0 322
Question Stefan Cronje · Oct 20, 2018 Using git when sharing code between Ensemble and IRIS instances- Storage definition challenges Hi,We have a few projects and some of these projects share code "libraries". Some of which are persistent classes that are used by multiple systems. All these are currently deployed on Ensemble. We want to move some of the smaller ones to the cloud and make use of IRIS. #Git #Object Data Model #InterSystems IRIS 2 2 0 324
Question Stefan Cronje · Aug 4, 2018 IRIS and the Cloud Platform Packages Hey folks, I am new to IRIS and cloud platforms. I've done the InterSystems IRIS Experience on the learning site and read a lot of the online documentation. What I am unable to figure out is which type of package or option you will use on the cloud provider. AWS for example, has AWS EC2, Elastic Beanstalk and some other products geared towards Docker containers.Azure has Kubernetes and some other options. #AWS #Azure #Beginner #Cloud #InterSystems IRIS 0 5 0 527
Question Stefan Cronje · Jul 17, 2017 Reverse byte order of an 8-bit string from big-endian to little-endian Hi,I have a situation where I write a character stream to a file. The file content gets signed and the signature is sent to a service provider together with the file content.The signing is done using openssl.This works perfectly on a dev PC, which is runnning Windows and has a little-endian architecture.The problem is as soon as I do this on the server, which has a big-endian architecture, the signed value is incorrect according to the service provider.The content is signed using RSA SHA256 with PSS padding. #ObjectScript #Encryption #Caché 0 8 0 2.9K
Question Stefan Cronje · Jul 10, 2017 SHA256 Signing with RSA PSS padding Hi everyone,I have a project which requires the sending of JSON messages to an external service provider using REST. The service provider requires the message contents to be signed.Their instructions: #Caché #Callout #REST API #SOAP #Encryption 0 8 0 13.4K
Question Stefan Cronje · May 23, 2017 Ensemble Service using File.InboundAdapter: File name of the file being processed Hi,I have created a Business Service which uses the EnsLib.File.InboundAdapter. This service will call a business service which will create an acknowledgement file in a directory specified in the operation after loading the parsed file into some temporary tables.In order to create the acknowledgement file, I need the original file name. In the OnProcessInput of the service, it receives a stream of file data, and I can't find a way to get hold of the file name.Any advice will be appreciated, thank you. #Beginner #Ensemble 0 5 0 1.3K