Hello everybody.

My question originated when trying to help a coworker...

There is a system module, specifically a ClassMethod that inserts records into a table as per the pseudocode below:

set Obj = ##class(FooSchema.FooTable).%New()
set Obj.fooProp = fooValue
// Other Foo properties //
set status = Obj.%Save()

From time to time, when trying to save the object, an error , informing that it was not possible to obtain the exclusive lock on the table instance

0 2
0 199

I am receiving the following error in my buisness operation:

ERROR <Ens>ErrException: <UNDEFINED>zGo2+181^mb.MbMainOperation.1 *tSC -- - registered as '-' number - @' set pResponse = ##class(mb.MbMessageResponse).%New()'

From what I understand, the problem occurs in the generated int file mb.MbMainOperation.1 in the method zGo2, with the offset of 181 lines, and the variable in question is a local variable tSC.

However, the line where the error occurs does not refer to tSC in any way

0 3
0 197

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.

0 3
0 196
Article
· Apr 20, 2021 3m read
Why gj :: locate?

You may think it isn’t too difficult to get from label+offset^routine to the actual source line responsible for the error. For an expert it isn't that hard... most of the time. But there are enough oddities and special rules that even an expert can get it wrong, whilst spending a lot of time trying to get there.

gj :: locate is the latest tool from George James Software – it debugs any error, class or routine by converting the location of an error in compiled .int code to the corresponding location in your source, and then taking you right there.

Image this scenario…

4 0
1 196

I noticed when creating Record Map's within Ensemble that it is creating a Persistent cache table as it translates the file and puts it into the Record Map data structure.

I was wondering if there was a way to add a column to the cache table that is Hidden from the record map, but is a calculated date value on when that record was inserted?

0 4
0 196

I had a question about using ZSTART, ZSTOP, and ZMIRROR.

  • If we use them and it is not correct, does it mess up with any of the existing functionality?
  • So, if I create a ZSTART with a simple command of starting the %JDBC Server will that mess up anything existing in the Startup sequence?
  • Is ZSTART, ZSTOP, and ZMIRROR just an extension of the existing functionality, or does it alter how the built in functionality runs?
  • Should we tread lightly in the use of them?
2 7
1 196

Hello Everyone

I am new to cache. I know there are 2 types of methods in cache. One is Instance method (Which can be call through object creation of particular class) and other is Class methods (which can be call through ##Class(MyPackage.Car).CarModels()).

I want to know the difference when to create a instance method vs when to create a class methods.

Thanks in advance!!.

0 3
0 192

Hello communty.

I searched a way to transform a HL7 Message to Persistent. I found a way how to create Data Transformation from Mangment Portal -> Data Transformation Interface. But my task is to create somthing similar to that tool in my web site interface. And the question is: Is There way to create something like new instance of Data Transformation class " Ens.DataTransformDTL" using object script?

Thank you!

0 2
0 192

Hey Developers,

Meet the latest video on InterSystems Developers YouTube:

Configuring VS Code Workspaces for Multiple ObjectScript Connections

https://www.youtube.com/embed/CGEqFea0hh8
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

1 2
0 191

Hi Community,

I have created a HL7 production in my working environment, Ens.Alert ,EMailAlert, PagerAlert, and BadMessageHandler are created.

Can anyone explain how Ens.Alert and BadMessageHandler will work when an HL7 message in Passed in Business service and how these 2 are related when any error occurs in the Production envinorment?

0 1
0 191

I want to call some Java Remote Call through Java gateway. The call code as following:

class CallRemote Extends %CSP.REST {

Method Index() as %Status {

Try

set gw = createJavaGateway()

Do callJavaMethod(gw)

do gw.%Disconnect()

Catch {

}

}

}

But Every call need connect to Java Gateway and disconnect it. But It's cost too high( about 80ms)

So, According to my Java experences, I need create some connection and put it into global static ConnectionPool

0 2
0 190

Hi:

I don't understand how to use this open exchange item for auto creating deleting items. I think it assumes knowledge in the steps of how to use it which i don't get.

Added the code into dev on SRFT.Utility.DeleteHelper.OnDeleteSuper and SRFT.Utility.DeleteHelper.AddHelper

current class is

0 2
0 187

I am reading the following code in ObjectScript:

GitHub repository

And there is a sentence which I am facing difficulties to understand:

kill ^OPNLib.Game.CWLF(..World)

I know that kill removes variables, OPNLib.Game are the package and subpackage, and ..World is a property. However what does CWLF mean?

You could think that it is the class' name, but it is:

0 2
0 187
Article
· Feb 7, 2023 5m read
IRIS quick query service idea sharing

Hello, friends who are developing IRIS. I recently participated in the InterSystems Developer Tools Contest. This time, I made a tool based on the idea described in an article I published earlier as a template for quick query of messages. Currently, you only need to establish entity classes in IRIS, Then record the message corresponding to the entity class in the specified lookup table, and all the key fields generated in the message can be inverted indexed (the concept in ElasticSearch), which is convenient for quick query. The following is the design idea of my program.

1 1
0 187
Announcement
· Oct 28, 2020
New Video: ZPMshow Demo

Hi Community,

Please welcome the new video recorded by @Robert Cemper on InterSystems Developers YouTube:

ZPMshow Demo

https://www.youtube.com/embed/y_RYE9n_EWw
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

3 0
0 186

Work Queue Manager (WQM) is a feature of InterSystems IRIS that enables you to improve performance by distributing work to multiple concurrent processes programmatically. The idea is that you split the work into chunks, and WQM distributes the chunks across worker processes and can provide the info that the work is done.

However, recently, I got an interesting question: there's a large logical transaction composed of ~1,000,000 individual objects and SQL inserts and updates. Some updates are CPU-intensive, so the original idea was to use WQM to split an update into chunks to speed things up.

But, here's a catch: if one of the individual 1,000,000 changes fails (there's a variety of application-level checks so that it can fail, and that's not even that abnormal a behavior), the entire transaction must be rolled back. That creates a problem: each chunk must report success before committing their individual transactions, and someone must get all these reports and decide if we are committing or not.

Unfortunately, it looks like WQM does not have a bidirectional communication between workers and manager, so I suggested an approach using events:

  1. Start jobs.
  2. Wait for all jobs to report success using $System.Event.WaitMsg().
  3. Send Commit or Rollback using the $System.Event.Signal().
2 9
1 185

I am trying to call to a website that renders a xml structure as a response.if I put the url on the browser an xml rendered page is returned but if i call to this using the below code I get an object reference error which I am finding had to understand is there anyone who could help understand this error or point me in the right direction thanks.

Set tSC=$$$OK

0 2
0 184

I am making a POST request to an API. In the case of an error, I don't know what parameters the response JSON will contain (they will change depending on the error). I am converting the response stream to an object but then I need a way to loop through all the properties and access their values. The following code is making the POST request, reading the response, and trying to add all the error messages to an array. But I can't iterate over the properties of the tProxy.errors object because it is a %ZEN.proxyObject. Is there a better way to do this?

0 2
0 184