Hi @Vitaliy Serdtsev thank you for your answer, however I need to reproduce the same interface/definition as currently implemented in Oracle that is using a CLOB column.

The JDBC client access the Oracle table and is implemented (for that column) using a CLOB that (I believe) it's different than accessing a LONGVARCHAR. The idea would be to use IRIS instead of Oracle without changing (most of) the code.

Where is defined/documented the JDBC LONGVARCHAR maximum length?
My search cannot find any reference on max size of 2147483647

@DC AI Bot 馃榿thank you for the sample code on how to consume a CLOB via JDBC, unfortunately I need to expose a CLOB to JDBC! 馃槥

I think this is the expected behavior, in your sample code you are importing JSON to the same existing object, so it "add" (or update if you prefer) to the existing object.

If you want/need to import the JSON to a new object, then do so, and create a new instance before importing:

set r = ##class(User.ADGroup).%New()

@Robert Barbiaux 


"return" is equivalent to "quit" with argument, thus is has only one form and one, clear meaning : returning a value.

Both Quit and Return can be used with or without an argument (returned value),  see the documentation for details.

RETURN and QUIT differ when issued from within a FOR, DO WHILE, or WHILE flow-of-control structure, or a TRY or CATCH block.

You can use RETURN to terminate execution of a routine at any point, including from within a FOR, DO WHILE, or WHILE loop or nested loop structure.

In the context of the main post/question example Quit and Return can be used and there is no difference, the behave the same way.

Personally I never use Return simply because I don't consider a good practice to exit a method in the middle of a FOR, DO WHILE, or WHILE flow-of-control structure, or a TRY or CATCH block, to me it's like, or worst, than using a GOTO command. In my opinion good code should have one exit point at the end of a method, not a random number of exit point in the middle of nested structure inside the method, therefore the newly introduced Return command is of no use for me. Again, this is my very personal opinion.

How  can anybody help you without any detail of the routing rule used by your business process?

I'm not sure it's a great idea, think about this code:

Set true="it's a good idea"
Set false="it's a bad idea"
Set dObj={"idea":true, "doubt":false}

馃槈

Add %XML.Adaptor to the superclasses of all your classes, the trace message content viewer represents the class as XML.

What's the line (segment) delimiter used in the stream? Maybe (likely?) $c(10), there maybe a message delimiter.

My suggestion is to save the stream into a file and then using an hex editor check what your stream actually contains and how is delimited.

Then, with this accurate info, you can split your stream in HL7 messages.

"The rest of the structure that is referenced by the base Response.cls structure extends %RegisteredObject, %JSON.Adaptor."

A %RegisterdObject is not persistent, so it's never stored and therefore you cannot view in trace something that...does not exists (anymore).

Maybe an option could be to use %SerialObject instead of %RegisterdObject  

@Vachan C Rannore, that's work for sure, BUT, the file will be exported in the IRIS SERVER filesystem, not "your" (where vscode is running) filesystem. In some environment you may not have (simple) access to the IRIS server filesystem.

The question is on exporting to your local machine, as usually done using Studio.

Is the %Service_Bindings enabled with password authentication?

Check in Management Portal:
System Administration -> Security -> Services

Can you please provide more details? What kind of "service"? What settings are you using?

Usually in IRIS X509 certificate are configured in Management Portal:
System Administration -> Security -> X.509 Credentials

To configure it there the certificate must be stored in a file.

How/where you need to use the X509 certificate?

Use:

tXml.OutputToFile(tXmlFilename,,"C(UTF8)")

To overwrite if file exists:

tXml.OutputToFile(tXmlFilename,1,"C(UTF8)")

Ask AI says Aks AI works fine:

The Ask AI functionality associated with the Developer Community appears to be operational. Despite earlier reports during maintenance periods indicating that it might be unavailable, there are current instances and comments suggesting functionality has been restored. You are encouraged to verify this directly by accessing and testing the service 1 2.

馃槉

Try setting the Timeout property in %respone (instance %CSP.Ressponse class):

Can be set in the OnPreHTTP() method of a page in which case this changes the amount of time the CSP gateway will wait for a response from the server in seconds before it reports the 'Server is not responding' error message. This is useful if you know that this page is doing an expensive SQL query that will take a couple of minutes and you want to set the server response timeout on the CSP gateway to a minute and yet wait three minutes for this page to respond. It will just change the server response timeout for this page only. If not set the the CSP gateway uses its default timeout value specified in the CSP gateway configuration.

There is no limit when working with streams, for strings is 3641144, (in some case there may be some overhead).

I can't think of a reason why you need to retry, normal, standard SQL update works just fine, if it does not in your case, post a sample code to reproduce your issue.

Unless your post is missing crucial code/info, the SQL update you posted is atomic and should work even with concurrent processes updating the same row. No need of %NOLOCK or retry (is that second update a retry?).
It will not be atomic if you use %NOLOCK.

If you want to use object code to update ProcessedCount, then:

Set obj=##class(Data.A).%OpenId(RowID,4)
Set obj.ProcessedCount=obj.ProcessedCount + 1Set sc=obj.%Save()
; handle error hereKill obj

I feel your post/code misses some info.

Also, what do you mean with "not working"?
 

Are you sure that the Routes you posted are the ones used by the called web application?

The error suggest there is an issue (invalid value?) with the Url attribute in the Routes.

You may want to check the generated method DispatchMap in the .int code of your dispatch class.

I think that ^ZAUTHLOG cannot be set because the process executing the ZAUTHENTICATE code has no privilege/access to %SYS for writing. If you follow the @Lucas Fernandes suggestion to enable and check audit log you probably find a <PROTECT> error.

If you are using a test system (no production!), you can temporary add %All role to the CSPSystem user and try again.
Remember to remove the %All role after your debug the issue.

Note that before authentication the process running ZAUTHENTICATE has VERY limited capabilities (privileges).

In general I think the ZAUTHENTICATE  should check if it's called for the purpose you are implementing, something like:
 

If ServiceName="%Service_WebGateway" {
	If$isobject($get(%request)) {
		If (%request.Application="/ws/jarvis") {
			
			; your code here
			
		}
	}
}

You may also need/want to assign a role to the user:
Set Properties("Roles")="YourRequiredRole"