Calling @Luca Ravazzolo
- Log in to post comments
Calling @Luca Ravazzolo
Please file a WRC ticket?
Check AbortMessage method here.
First query your messages to find the correct id set and after that call AbortMessage for each header.
The reason SQL did not work is that your messages are enqueued.
Not really.
Object ByRef means pointer itself may be changed (so we need to pass a pointer to a pointer), which is exactly what happens in this method.
.png)
A more correct qualifier would be Output as old object is always discarded.
But initializing stfp before the call would serve no purpose in this case.
I think contacting the WRC would be a better option at this stage.
1. Install public web server (Windows, Linux).
2. Connect it to InterSystems IRIS.
2. Enable HTTPS there. Easiest way is Let's Encrypt.
Remote path should be just:
set remotePath="/NEW.txt"That said, this error
Ошибка '-2147014836': A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
looks like you don't have the network connectivity. Have you tried to connect with Putty from the same server as Ensemble?
Docs specify that Connect should come before Authentication.
Try this code:
Try {
Set ssh = ##class(%Net.SSH.Session).%New()
Set sc = ssh.Connect(host)
Write:$$$ISERR(sc) "Connect:", $System.Status.GetErrorText(sc),!
Set sc = ssh.AuthenticateWithUsername(username, password)
Write:$$$ISERR(sc) "Auth: ", $System.Status.GetErrorText(sc), !
#dim sftp As %Net.SSH.SFTP
Set sc = ssh.OpenSFTP(.sftp)
Write:$$$ISERR(sc) "SFTP: ", $System.Status.GetErrorText(sc), !
Set sc = sftp.Dir("/", .contents, , $$$YES)
Write:$$$ISERR(sc) "Dir: ", $System.Status.GetErrorText(sc), !
Zwrite contents
//If 'sftp.Disconnect() Write "Failed to logout",!
} Catch ex {
Set sc = ex.AsStatus()
Write "Exception: ", ex.DisplayString(), !
}dc?
Is your app in that Namespace an Interoperability production?
Great reference!
Thanks!
What's changed?
I don't think osuwmc property exist in your Rule context.
&sql(SELECT Name, DOB, Gender INTO :Name, :DOB, :Gender FROM osuwmc_RQGPatient.DataTable WHERE MRN=:MRN)...
quit $classmethod(class, index _ "Exists", value)As you presumably want to return the value.
%JSON.Adaptor does not construct an intermediate dynamic object. You can use %ObjectToAET to convert normal object into dynamic object:
set dynObj = ##class(%ZEN.Auxiliary.altJSONProvider).%ObjectToAET(obj)There are two approaches:
1. Create a "result set" class to hold the results (interestingly, InterSystems provides %XML.DataSet and other tools for this specific use case with XML/SOAP. Docs):
Class Test.JSONRS Extends (%RegisteredObject, %JSON.Adaptor)
{
Property count As %Integer;
Property results As list Of Book;
}2. Simple approach:
Despite being hacky, the second approach is better:
That said, I generally recommend against supplying count in query results because of many reasons:
So %Dictionary.CacheClassname would be my table name then?
Well, class name. If you want you can convert table name to class name with:
set:table'["." table=$$$DefaultSchema_"."_table // support unqualified names
set class = $$$GetClassNameFromIQN(table)I don't have to use any :sql.... type code for it to do the lookup?
You can but you don't have to.
What about the existing EXISTS function that already exists that is used for Data Lookup Tables (lut)?
It's a separate function that works only with Data Lookup Table (which are actually not tables at all).
You'll need a Custom Function.
If the lookup field is indexed (Location in your case) you can use this function for all Lookup checks:
ClassMethod Exists(class As %Dictionary.CacheClassname, index As %String, value As %String) As %Boolean [ CodeMode = expression]
{
$classmethod(class, index _ "Exists", value)
}Interesting.
Can you please add source code for java classes, such as ParseXML.Parse?
This is my first post Eduard so I'm not sure what the etiquette is. Should I mark your post as correct as it lead me to realise where the problem was or this one as it contains the working code?
You can mark any number of comments as correct answers, so both I guess.
You need to write an Alert Processor. Monitoring Alerts.
Calling @Benjamin De Boe.
Awesome!
Config package is a wrapper over CPF file.
You edit the objects of these classes and CPF file is edited automatically by Caché.
You can check in the CPF file where data server is defined and get the corresponding Config object.
WRC may provide more info I think.
If you're interested in monitoring, try brand new System Alerting and Monitoring. There was also a Tech Talk about it recently.
Interesting article!
I encountered Business Process variation of this issue recently and would like to add that setting SKIPMESSAGEHISTORY parameter is not always a complete solution. It disables sent/received reference history, but pending messages are still stored in a collection (no way around it).
In cases where one BP instance waits on more than ~10 000 messages simultaneously same issue occurs (I got a journal file per minute on 50 000 pending messages).
The recommended approach would be to change architecture layout so that one process would wait on a more reasanable amount of messages.