New post

Find

Announcement
· Jan 7

Récapitulation annuelle de la communauté des développeurs de 2025

Bonjour et bienvenue à la récapitulation annuelle de la communauté des développeurs de 2025.
Statistiques générales:
✓ Publications 264 publiées le 2025 :
 147 articles
 109 annonces
 8 questions
28 membres ont rejoint la communauté des développeurs en 2025
1,337 publications au total depuis le début
194 membres ont rejoint au total depuis le début
Les plus populaires
Les plus discutés
2
Par Corentin Blondeau
1
Par Liam Evans
1
Par Iryna Mykhailova
Les plus aimés
Auteurs les plus populaires
Auteurs avec le plus d'articles
Aperçu de 2025Communauté des développeurs d'InterSystems
Discussion (0)1
Log in or sign up to continue
Question
· Jan 7

Optimizing performance of production using Pool Size>1

Hi Everyone!

We have an existing process (running in FIFO order), all business hosts having pool size=1.

Currently we are reading records from a file (one record at a time) then that record goes to business process for further processing and finally through the business operation. As of now we are using synchronous call in our existing code. Before processing the last record we are using hang of 50 seconds because we need to initiate a batch once the processing of last record is finished.

This process is taking too much time for a file having 0.1 million records (max records in a file).

  
Now we want to increase the performance of this process, so that processing can be faster by modifying the synchronous call with asynchronous call and removing the hang for last record. 

While modifying the code, we have met with a condition which counts the processed records and save it in a class using below code

&sql (Select ID into :RowID from Data.A where MetadataID=:MetadataID)

set obj=##class(Data.A).%OpenId(RowID)

set obj.ProcessedCount=obj.ProcessedCount + 1

When the pool size=1, the count was updating correctly but when I tested with pool size=2 or pool size=5, the counts are not getting updated correctly.

I further tried using SQL update but no luck & even tried with %NOLOCK condition if SQLCODE'=0 but that is also not working.

&sql(Update Data.A set ProcessedCount = ProcessedCount + 1 Where ID =:RowID)
if SQLCODE'=0 {
    &sql(Update Data.A set ProcessedCount = ProcessedCount + 1 Where ID =:RowID)
}    

I believe we cannot use a lock condition before updating ProcessedCount, because it will again process them one by one taking the similar amount of time even with pool size >1

What can be the ideal solution for this issue. Please suggest.

Thanks in advance

5 Comments
Discussion (5)3
Log in or sign up to continue
Digest
· Jan 6

Boletim Anual do InterSystems Community de 2025

Olá e boas-vindas ao Boletim Anual do Developer Community de 2025 .
Estatísticas gerais:
278 postagens publicadas em 2025:
 162 artigos
 96 anúncios
 17 perguntas
 3 discussões
42 membros ingressaram no Developer Community em 2025
✓ Total de 1,544 posts publicadas ao todo
✓ Total de 21,462 membros ingressaram ao todo
Mais populares:
84
Por Julio Esquerdo
64
Por Andre Larsen Barbosa
Mais discutidos
Mais curtidos
Autores mais populares
Autores com mais artigos
!resumo do anoComunidade de desenvolvedores da InterSystems
Announcement
· Jan 6

Recapitulação do InterSystems Developer Community, Dezembro 2025

Olá e bem-vindo ao Recapitulação da comunidade de desenvolvedores Dezembro 2025.
Estatísticas gerais
21 novas postages publicadas em Dezembro:
 17 novos artigos
 4 novos anúncios
2 novos membros ingressaram em Dezembro
1,522 postagens publicadas ao todo
652 membros ingressaram ao todo
Principais publicações
Principais autores do mês
Artigos
#InterSystems IRIS
Use o IRIS Load Data no VSCode
Por Yuri Marx
Scripting com .Net Core 10 e IRIS SDK
Por Heloisa Paiva
Utilitário IRIS IO: Um Guia Completo para Importação Inteligente no VS Code
Por Heloisa Paiva
Integração com Git para o Iniciante Absoluto: Boas Práticas de Controle de Origem com o IRIS através do VSCode
Por Heloisa Paiva
Depuração 101: Seu Primeiro Breakpoint e Acompanhamento de Variáveis no VS Code
Por Evandro Wendt
Índices: O Poder Silencioso por Trás de Consultas Rápidas
Por Heloisa Paiva
Pergunte às suas classes IRIS usando Ollama, IRIS VectorDB e LangChain.
Por Evandro Wendt
Minha experiência com APIs e integração de POS
Por Heloisa Paiva
Usando o IRIS como um banco de dados vetorial
Por Heloisa Paiva
"Os Erros HTTP Ocultos" (Por trás do IIS)
Por Heloisa Paiva
Quando considerar o uso de useIrisFsGroup em suas implantações do IKO
Por Evandro Wendt
Aproveitando o Server Manager ao criar extensões do VS Code que se conectam a servidores InterSystems
Por Evandro Wendt
Arquivos temporários e singletons: limpem o que vocês gerarem.
Por Evandro Wendt
#DIM vs SET – ObjectScript
Por Evandro Wendt
 
#Open Exchange
 
#InterSystems IRIS for Health
 
#Outro
Desvendando o LangGraph
Por André Dienes Friedrich
 
Anúncios
Dezembro, 2025Month at a GlanceInterSystems Developer Community
Discussion (0)1
Log in or sign up to continue
Article
· Jan 6 1m read

Incluindo ou removendo esses hífens (-) na sua operação FHIR personalizada

Muitas vezes, ao trabalhar com dados FHIR, por exemplo com o IRIS For Health, você vai achar útil criar uma operação FHIR personalizada. O padrão FHIR já vem com um conjunto de operações definidas (como $everything), mas uma operação personalizada é útil quando você precisa criar funcionalidades extras que vão além do conjunto de operações padrão do FHIR. A documentação guia você passo a passo (embora este comentário possa ser útil para quem está começando). Uma coisa que eu destacaria, puramente por propósitos estéticos, é como nomear sintaticamente sua função de forma que você possa chamá-la usando hífens. A documentação realmente explica isso:

Se a sua operação contiver um hífen (-), basta remover o hífen do nome do método. Por exemplo, se a operação em todo o sistema for $my-operation, nomeie o método como FHIRSystemOpMyOperation.

Embora eu apenas queira deixar isso mais explícito aqui:

Para uma operação sem hífen, por exemplo $thisismyoperation, nomeie seu método como FHIRSystemOpThisismyoperation (sim, a letra "T" de "This" deve estar maiúscula).

 

Se você quiser, em vez disso, que sua operação seja $this-is-my-operation, seu método deve ser FHIRSystemOpThisIsMyOperation. (A letra maiúscula indica que deve haver um hífen antes dela).

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