Find

InterSystems Official
· Aug 15, 2024

Anúncio de Lançamento do IAM 2.8.4.11 & 3.4.3.11

As versões 2.8.4.11 e 3.4.3.11 do InterSystems API Manager (IAM) já estão disponíveis para o Público em Geral. Essas são as versões mais recentes das duas versões de longo prazo com suporte do IAM. Essas versões contêm correções importantes, e todos os clientes são incentivados a fazer o upgrade.

Os clientes do IAM 3.0 ou 3.2 são incentivados a fazer o upgrade para a versão 3.4.3.11, pois o suporte para essas versões chegará ao fim em breve.

O IAM é um gateway de API entre seus servidores e aplicativos InterSystems IRIS, fornecendo ferramentas para monitorar, controlar e governar efetivamente o tráfego baseado em HTTP em escala. O IAM está disponível como um complemento gratuito para sua licença do InterSystems IRIS.

 

O IAM pode ser baixado da área Componentes do site WRC Software Distribution.

Siga o Guia de instalação para obter orientação sobre como baixar, instalar e começar a usar o IAM. A documentação completa do IAM 3.4 fornece mais informações sobre o IAM e como usá-lo com o InterSystems IRIS. Nosso parceiro Kong fornece mais documentação sobre o uso do IAM na documentação do Kong Gateway (Enterprise) 3.4.

O IAM está disponível apenas no formato de contêiner OCI (Open Container Initiative), também conhecido como Docker. As imagens de contêiner estão disponíveis para mecanismos de tempo de execução compatíveis com OCI para Linux x86-64 e Linux ARM64, conforme detalhado no documento Plataformas Suportadas.

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

How to identify which temporary globals are consuming size in the IRISTEMP database

InterSystems FAQ rubric

Temporary globals stored in the IRISTEMP/CACHETEMP databases are used when a process does not need to store data indefinitely, but requires the powerful performance of globals. The IRISTEMP/CACHETEMP databases are not journaled, so using temporary globals does not create journal files.

The system uses the IRISTEMP/CACHETEMP databases for temporary storage and are available to users for the same.

For more information about temporary globals and the IRISTEMP database, see the following document:
Temporary Globals and the IRISTEMP Database

The globals used as temporary are:

1. System temporary globals (^IRIS.Temp*, ^%cspSession, ^CacheTemp*, ^mtemp*, etc.)
2. Temporary globals mapped to IRISTEMP/CACHETEMP by the user
3. 
Process private globals  (^||name, ^|"^"|name, ^["^"]name, ^["^",""]name, etc. )
4. GLOBAL TEMPORARY table

 -> The table definition is persistent (available to all processes), and the table data is stored in process private globals (lasts only for the duration of the process)

The sizes of 1 and 2 can be checked using the ^%GSIZE utility.

USER>do ^%GSIZE

Directory name: c:\intersystems\iris\mgr\user\ => c:\intersystems\iris\mgr\iristemp\
                                               // Specify the iristemp database folder
All Globals? No => yes       // Yes to show all globals: 34 items selected
34 available globals
Show details?? No => No   //  No to not show detailed information 
Device:
Right margin: 80 =>

3,4 Process private globals can be viewed using the ^GETPPGINFO utility.

For more information about the ^GETPPGINFO utility, see the following document:
About the ^GETPPGINFO utility [IRIS]
About the ^GETPPGINFO utility

The following example lists the process-private globals of all the current processes:

 set ^||flintstones(1)="Fred"
 set ^||flintstones(2)="Wilma"
 znspace "%SYS"
 do ^GETPPGINFO("*")

Another method is to output the contents of individual processes that use process private globals in large quantities.

The following sample outputs the number of process private global blocks per process that is greater than or equal to 20.

 set ns=$namespace
 znspace "%SYS"
 
 // Only processes with more PPG blocks than the total number of processes are included
 set st=##class(%SQL.Statement).%New()
 set status=st.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
 set rs=st.%Execute()
 while rs.%Next() {
    set pid=rs.%Get("Pid") // Process ID
    set cnt=rs.%Get("PrivateGlobalBlockCount") // Number of PPG blocks
    
    // When the number of PPG blocks per process is 0 or more, the contents are output (the following example shows 20 or more blocks).
    if cnt > 20 {
       set rs2=##class(%ResultSet).%New("%SYS.ProcessQuery:PPG")
       // "N" Do not return subscripts of a PPG, just return the root name
       // "B" Return the number of blocks used by the PPG (needs the "N" option)
       do rs2.Execute("*",pid,"NB")
       for {
          quit:'rs2.Next()
          write cnt_" PID:"_pid_", PPG name "_rs2.GetData(1)_" is using "_rs2.GetData(3)_" disc blocks",!
       }
    }
 }
 
 znspace ns
Discussion (0)0
Log in or sign up to continue
Announcement
· Aug 15, 2024

[Video] Exploring the Benefits of RAG

Hi, Community!

Are you building generative AI applications? See how a retrieval-augmented generation (RAG) architecture can help:

Exploring the Benefits of RAG

In this video, I will show you:

  • How data typically flows within a RAG setup.
  • Benefits of a RAG architecture for your apps, including improved responses from your model.

Continue learning the Basics of Generative AI (learning path, 2h 45m).

Discussion (0)1
Log in or sign up to continue
Question
· Aug 15, 2024

There's any way to check if some part of the code is an abbreviated command?

Hello every one, here in our company we are trying to develop a tool to help us in our "Code Review" that today is completely done for another developer.

So I need to develope a tool that reads a class/routine (Already done) and identify if in the current line there is some abbreviated command, that is against our policy of codification, for example:

s variable = "test"
d ..SomeMethod()

So in this cases I want to warn the original developer that the code has parts that need to change the "s" to "Set" and de "d" to "Do".

I tried to found some library in the documentation but with no success, if there's any way to do It will help us a lot.


Thank all of you so much. 

6 Comments
Discussion (6)2
Log in or sign up to continue
InterSystems Official
· Aug 15, 2024

Alert: Database Corruption with Multi-Volume Databases after Truncation

Alert: Database Corruption with Multi-Volume Databases after Truncation

InterSystems has corrected a defect that can cause database corruption or <DISKHARD> errors with multi-volume databases under extremely rare circumstances. Only databases that have been truncated are at risk.

The defect exists in the following products and any InterSystems offerings based on them:

No HealthShare Solutions products are affected by this defect.

Although InterSystems has received no reports from customers due to this defect, we recommend the following temporary mitigation to avoid the problem:

The correction for this defect is identified as DP-433375. It will be included in all future versions and is also available via Ad hoc distribution.

If you have any questions regarding this alert, please contact the Worldwide Response Center.

Discussion (0)1
Log in or sign up to continue