I'm not familiar with Spring Boot, so I don't understand what you want to implement in IRIS.
Do you want to define a custom datatype?
What kind of behavior you need to implement in IRIS?
- Log in to post comments
I'm not familiar with Spring Boot, so I don't understand what you want to implement in IRIS.
Do you want to define a custom datatype?
What kind of behavior you need to implement in IRIS?
Try with:
Set remoteObj=gateway.new("parametisedClass",theparameter)
For additional info, my suggestion is to look at samples-dynamicgateway-dotnet in GitHub.
I'm not sure what you want to implement, note that ByRef and Output are keywords (not parameters) and are for documentation purpose only, the (dot) syntax used by the caller define if an argument is passed by reference, regardless of ByRef/Output keyword specified in the called method.
What kind of customization you need to implement?
To get the XML rule definition from SQL you can write/define a stored procedure that returns the XML rule definition, then....parse the XML. Something like:
Class Community.Rule.XDATA
{
ClassMethod GetXML(RuleName As %String) As %String(MAXLEN="") [ SqlProc ]
{
Set xdataOBJ = ##class(%Dictionary.XDataDefinition).IDKEYOpen(RuleName,"RuleDefinition")
Quit xdataOBJ.Data.Read($$$MaxLocalLength)
}
}Then from SQL:
select Community_Rule.XDATA_GetXML('Your.Rule.Name')
I really doubt it's possible to search for Data Set values, that information is stored in a binary file in the filesystem, not in the database.
You can use this query in your method:
select * from Ens.Job_Enumerate()
where ConfigName ='T_SPM_SIU'
Every identifier must be unique within its context (for example, no two classes in a given namespace can have the same full name).
Identifiers preserve case: you must exactly match the case of a name; at the same time, two classes cannot have names that differ only in case. For example, the identifiers id1 and ID1 are considered identical for purposes of uniqueness.
Would you mind specify what kind of rule?
Edit to add: note that rules are defined as XML, there is no table available to directly query a rule
To my knowledge what can be done it's making a call via Web Gateway using %Net.HttpRequest.
I'm afraid that without going trough the Web Gateway it's not possible, but I'd love to be proven wrong.
@David.Satorres6134 , you asked:
We have reviewed the documentation but were unable to find a method or API that provides the correct compilation order for the cubes.
I gave the documentation links on how to provide the correct compilation order for classes.
In most cases the compiler does take care of dependencies and build/compile in correct order.
In my experience I have very, very rarely (maybe a couple of times) used DependsOn or CompileAfter Class keywords (I don't do cubes/DeepSee).
I'm not familiar with multiple cubes compilation, but evidently your implementation has some particular dependency that the compiler is unable to identify and take care of it.
Maybe (just guessing here) you have some cross dependency that is "resolved" with multiple compilations?
I've seen that message too and.....I ignored it since everything works fine.
It would be nice to know without opening a WRC for something that, apart of that message, just works! 😁
If that directory is required for Web Gateway cache, then it looks like a bug in the GW installation script.
I don't have experience with SQL SP from IRIS but I believe the SQL syntax should be something like:
call ExternalDB.DB.StoredProcName(?)
I'm not sure named parameters are supported. I don't think they are.
@David.Satorres6134 , in the class EnsPortal.SuspendedMsg, DeleteMessage() is an instance method and cannot be invoked directly.
Anyway, what it does is simply invoking:
Set tStatus = ##class(Ens.MessageHeader).%DeleteId(pHeaderId)
But, as explained in my previous post, this leave orphaned messages and should be avoided.
I suggest to add to your classes DependsOn or CompileAfter Class keywords.
I'm no sure it it makes any difference, but....what IRIS version are you using?
@Jeffrey Drumm , it's too late, he has already deleted the headers so the bodies are already orphaned.
@Kirsten Whatley , there is no query using the Ens.MessageHeader that can return orphaned message bodies info/reference. The very definition of orphaned messages is that have lost the link form Ens.MessageHeader.
Do you know the MessageBodyClassName of the messages you have deleted?
If it's a custom defined persistent class, can you provide some detail of the message(es) class(es)?
Whatever you use, portal, code or SQL, I'd suggest NOT to delete the suspended messages. If you delete a message, only the message header will be deleted, leaving all the associated requests/responses orphaned.
I suggest discarding the messages using SQL.
Be careful doing so with a single update SQL statement for 2M messages, with more that 1000 records lock escalation will lock the entire Ens.MessageHeader table/class and your production will have big trouble. To avoid it use %NOLOCK.
Using Display mode:
Update %NOLOCK Ens.MessageHeader set Status ='Discarded' where Status = 'Suspended'
Using Logical or ODBC mode:
Update %NOLOCK Ens.MessageHeader set Status = 4 where Status = 5
Embedded SQL build the cached query ONCE while you compile
This is no longer true since some time/version, please check relevant documentation:
Embedded SQL is not compiled when the routine that contains it is compiled. Instead, compilation of Embedded SQL occurs upon the first execution of the SQL code (runtime). First execution defines an executable cached query. This parallels the compilation of Dynamic SQL, where the SQL code is not compiled until the SQL Prepare operation is executed.
As a result, some assumptions, even in the main post, are no longer accurate.
My suggestion is to read the article in this community from @Benjamin De Boe :
That's not the WebGateway port, it's the web server port, so you can change it in the web server configuration.
From the port you mentioned (57773) It seems you are using PWS (aka Private Web Server) that used to be installed with IRIS before version 2023.2 (if I recall it correctly).
Since you are using version 2024.3 my guess (I can be wrong) is that your system was upgraded from a previous version, so the PWS is still installed.
If so (you are using PWS), I suggest to install a proper "web server" (Apache or, if Windows, IIS) and use it instead of the deprecated, no longer installed, PWS.
It has been announced that future version (2025.??) PWS will be removed during IRIS install.
Well...it's still valid for old versions 😉
You may want to edit and add at the beginning that IRIS can use VSS with a link to documentation.
Yes, absolutely true, if you are not using an old version/product like Caché/Ensemble.
Windows VSS support was introduced few years ago, maybe with IRIS?
So, if your backup solution has VSS quiescence enabled, you can simply rely on it and you are good to go without any script/freeze/thaw. It's authomatic.
You can check messages.log file during backup, look for something like:
[Utility.Event] Backup.General.ExternalFreeze: Start a journal restore for this backup with journal file: e:\intersystems\iris\mgr\journal\20250210.004
[Utility.Event] Backup.General.ExternalFreeze: System suspended
[Generic.Event] VSS Writer: OnThaw
[Utility.Event] Backup.General.ExternalThaw: Resuming system
[Utility.Event] Backup.General.ExternalThaw: System resumed
Backup.Task is a system class located in %SYS, I'm not sure if creating a Backup.Task in another namespace (hopefully!!) address his issue.
That property contains the last run status of a specific task, so first you need to know what task you are interested and then open that task and get the last status, like:
Set BckTask=##class(Backup.Task).%OpenId("FullDBList")
Set status=BckTask.LastRunStatus
What are you using to read the csv file in IRIS?
Can you provide a small sample code?
To support longer then 500 lines you may use an hash instead of the actual line.
If you want/need to keep the generated .int, then:
set sts = ##class(%Routine).CompileList("*.int","/keepsource=1")
or
set sts = ##class(%Routine).CompileList("*.int","k")
Please follow the documentation starting from Visual Studio Code (VS Code) Introduction
First thing to decide if you want to use client-side editing or server-side editing. server-side editing is more similar to working with InterSystems Studio.
Then, if you encounter problems, please come back and provide details on what you have done, what the problem you encountered, any error you get etc.
I think/guess you are using the wrong port number in vs code.
Vs code uses the web server port to connect to IRIS. What port do you use to connect to the IRIS Management Portal? Likely you are using port 80 and/or 443, the same port should be used in vs code.
Please translate to English or publish your question in French Community
There is no such a stream you are looking for.
Data is sent to the browser (via WEB Gateway and WEB Server) as you write it from your CSP page/application, IS NOT held in a stream and sent "at the end" (what's the end BTW?).