New post

Find

Question
· Nov 7, 2024

how to get notification that a web client has disconnected when using EnsLib.SOAP.Service/EnsLib.REST.Service

We've got some web services that utilise EnsLib.SOAP.Service/EnsLib.REST.Service. These do some further requests to a few operations to call some other services and return the combined results.

An issue that we are noticing is that some of the usage involves users hitting the refresh button a few too many times and generating a lot of requests. This is mostly an issue when the service that the operations are calling are down or slow to respond. IRIS starts using a lot of RAM when this occurs and has caused outages by getting through an extra 50-60GB of RAM.

I'm looking at possible ways to help prevent the unintended denial of service that result.

Does IRIS have any ability to get notification of prematurely closed client connections from calls through httpd using the csp_module_sa module? I've only seen that it just displays the error when it fails to send the result back, but can't see if there is any eventing of the connection status.

Other solutions involve counting how many active sessions are in place and just denying access when the session count exceeds a threshold. I thought of possibly adding a counter that increases when at the start of the service and decreases at the end. I haven't checked to see if sessions are always returned as cancelled if manually removed. Is there anything like this that already exists?

 

I'm aware that an API manager may help with this situation, but need a stopgap measure.

Discussion (0)1
Log in or sign up to continue
Article
· Nov 7, 2024 3m read

第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令

第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令

用于进程间通信的 CLOSE 命令

如果使用带Q (/QUEUE) 参数代码的OPEN创建子进程,则该子进程可能会在设备上的CLOSE操作中继续存在。排队的进程间通信管道的生存能力取决于平台。在 UNIX® 系统上,子进程始终在CLOSE后继续存在。在 Windows 系统上,进程的生存取决于进程的年龄。刚刚启动的子进程不会在CLOSE操作中幸存,但是一旦子进程完全建立,它就会在 CLOSE操作中幸存。

Discussion (0)1
Log in or sign up to continue
Article
· Nov 7, 2024 1m read

How to programmatically obtain a list of configured namespaces

InterSystems FAQ rubric

It can be obtained with a List query of the %SYS.Namespace class.

1. Create a routine like this:

getnsp
   set statement=##class(%SQL.Statement).%New()
   set status=statement.%PrepareClassQuery("%SYS.Namespace","List")
   set resultset=statement.%Execute()
   while resultset.%Next() {
       write resultset.%Get("Nsp"),!
   }
   quit

2. Run it in your terminal

USER>do ^getnsp
%SYS
DOCBOOK
SAMPLES
USER

The method of executing class queries introduced in this article can be applied in a variety of cases.

You can see various class queries in the class reference. For example,
 %SYS.DatabaseQuery: GetFreeSpace() Free space in database
 %SYS.GlobalQuery: DirectoryList            List of global names in database
 %SYS.GlobalQuery: Size                              Size List of global sizes in database
 %SYS.ProcessQuery: SS                           Process information (same as the list that can be confirmed by the ^%SS utility)
and so on.

There are many other options available, so please feel free to use them.

4 Comments
Discussion (4)3
Log in or sign up to continue
Question
· Nov 7, 2024

is there a script for integrating veeam backup and Cache database?

Customer is trying to use Veeam as backup of Cache database and we need a script to freeze (quiesce) the database for a clean snapshot. i am looking if there is a script already done.

3 Comments
Discussion (3)3
Log in or sign up to continue
Question
· Nov 7, 2024

What is the quickest way to get back into iris lite terminal after a 'halt'?

I hit halt in Iris lite terminal within VS Code and was exited out to PS prompt.  I was just curious what the best way / recommended way to get back into an InterSystems lite terminal would be?  Perhaps it is just to start a new InterSystems lite terminal from a the options listed previously in this post https://community.intersystems.com/post/how-run-objectscript-commands-vs....  I was just curious if there was a way to kick it off again from the PS prompt?

2 Comments
Discussion (2)2
Log in or sign up to continue