Encontrar

Comentarios
· 18 dic, 2025

A small challenge for you - enhancing Interoperability message trace for mixed JSON and XML content

Hello community!
I have a small challenge for you :)

One of customers is sending quite a lot of messages between interoperability components, which mix standard request content and streams representing serialized JSON objects. As these JSON streams can be quite long (but not too long, just couple hundreds of characters) they would appreciate if the JSON content of stream was displayed in a nice-to-read way, using syntax highlighting by message trace view.

This picture illustrates the challenge - we are talking about the text framed by a red rectangle:
 I'd love to hear from anyone that you were able to come with some solution and post it to open exchange portal!

Dan

1 nuevo comentario
Comentarios (1)2
Inicie sesión o regístrese para continuar
Artículo
· 18 dic, 2025 Lectura de 2 min

Indexes: The Silent Power Behind Fast Queries

The Power of Indexing in Database Tables

When working with databases, most developers understand the concept of an index and why it's used: to speed up data retrieval. But the real impact of indexing often becomes clear only when you compare scenarios with and without it.

Do you Know what Happens Without an Index?
Imagine a table with three columns: Name, Age, and MobileNumber.


Now, consider this query:

If the Age column does not have an index, the database engine will:

  • Check if the WHERE condition field has an index.
  • If not, it will scan the entire table (a full table scan).
  • For each row, it will check the Age value and return matches.

This means the engine traverses the entire data structure, which is time-consuming for large tables.

What Happens With an Index?
Now, if the Age column is indexed, the process changes dramatically:

  • The engine goes directly to the index structure.
  • It finds the node for Age = 26.
  • The index points to the corresponding record IDs in the main table.
  • The result is fetched almost instantly.

This is why indexing is such a powerful optimization tool.

A Real-Life Lesson
Recently, we encountered an interesting situation that highlighted the importance of indexes.
Our table had 5 records, and the Age column was indexed. Then, by mistake, we deleted two entries from the index structure (not from the main table). These entries corresponded to IDs X001 and X005, both having Age = 26.


When we ran:
SELECT ID, Age, EmpId, Mobile, NameFROM Company.Employee WHERE Age = 26
We expected 3 records (since the main table still had them), but only 2 records appeared.

Why? Because the query relied on the index, and the index was incomplete.

Key Takeaway
Indexes are powerful, but they must be maintained properly. If an index is accidentally deleted or corrupted, don’t worry, you can rebuild the index using the below command:

Do ##Class(Company.Employee).%BuildIndices()

Moral of the story: Indexes make queries fast, but they also become a single point of truth for retrieval. Handle them carefully!😅

Comentarios (0)1
Inicie sesión o regístrese para continuar
Anuncio
· 18 dic, 2025

2025 en retrospectiva: ¡celebrad vuestro año con la comunidad de desarrolladores!

Hola, comunidad:

✨ Mientras cerramos otro año increíble en la comunidad de desarrolladores, es el momento de echar la vista atrás y repasar todo lo que habéis conseguido en 2025. Vuestro resumen personal de 2025 ya está disponible: una visión a medida de vuestra actividad, vuestros logros y el valor que habéis aportado a la comunidad este año.

Desde los artículos que compartisteis hasta los debates que impulsasteis, vuestras contribuciones ayudaron a dar forma al conocimiento y a la colaboración en nuestra plataforma. Ahora podéis revisarlo todo en un solo lugar.

¿Qué incluye vuestro resumen de 2025? Una visión personalizada de vuestro año que incluye:

  • Vuestras publicaciones, comentarios y visualizaciones
  • Vuestra etiqueta favorita
  • Vuestra contribución más destacada
  • Y algunos momentos divertidos que hemos preparado solo para vosotros

Para abrir vuestro resumen, solo tenéis que ir a la página principal y hacer clic en «Ver mi resumen», o abrir vuestro perfil.

Una vez allí, encontraréis un resumen con un formato cuidado que podéis compartir fácilmente con compañeros, amigos o en vuestras redes sociales favoritas, mostrando el impacto que habéis tenido a lo largo del año. Para compartir vuestro resumen con otros, solo tenéis que hacer clic en Compartir en la esquina inferior derecha.

¡Nos encantaría saber a qué club pertenecéis! No dudéis en compartir en los comentarios qué momentos destacados os sorprendieron más.

Celebremos el conocimiento, la innovación y la colaboración que habéis aportado a la comunidad en 2025. ¡Por otro año increíble que está por venir!

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 18 dic, 2025 Lectura de 2 min

[Quick tip] How to create an AI agent using Intersystems documentation in Teams

Hi everyone.

I'm going to give you a quick tip on how to implement an AI agent to search the Intersystems documentation integrated into Teams.

Yes, I know the documentation page has its own AI search engine and it's quite effective, but this way we'd have faster access, especially if Teams is your company's corporate tool.

You can also create another AI agent to search articles published in the developer community (which also has its own integrated AI search engine).

Step 1

Select the "Copilot" option

Step 2

Select the option "Create agent".

If you don't initially see this option, press the button that appears in the upper left.

Step 3

Select the Configure option to avoid using existing templates.

Give your AI agent a name, for example, "Intersystems Docs," and a description. You can also customize the agent's icon.

In the "Instructions" section, add the following entries.

- The agent must search for information on the InterSystems website.
- Provide accurate and relevant answers based on the information found.
- Maintain a professional and clear tone in all interactions.
- Do not provide information that is unverified or not found on the InterSystems website.
- Guide the user to additional resources if necessary.

Add the URL to the Intersystems documentation

https://docs.intersystems.com

Note: If you want to create an agent that queries the developer community, use the following link:

https://community.intersystems.com

Or add both to make the search more complete.

Step 4

We can add prompt suggestions.

Title Message
Search for information Can you search for information about [topic] on the InterSystems website?
Resource guide Can you guide me to the resources available about [topic] on the InterSystems website?
Specific details I need specific details about [topic] from the InterSystems website.
Latest updates What are the latest updates about [topic] on the InterSystems website?

Press the "Create" button and that's it... we can now use our AI agent

We can look up anything using our new agent; we can do it in any language, because it already has its translation included.

I hope you find it as useful as I have.

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 18 dic, 2025 Lectura de 5 min

Reducir la huella de la imagen Docker de IRIS Community Edition

La idea más votada en el InterSystems Ideas Portal —con 74 votos— pide una versión ligera de IRIS. Aunque la plataforma ha crecido hasta convertirse en un potente motor de datos, muchos proyectos solo necesitan sus capacidades de base de datos SQL. Este artículo muestra cómo crear una imagen no oficial y compacta de IRIS Community Edition centrada únicamente en la funcionalidad básica de base de datos, reduciendo el tamaño de la imagen en más de un 80%.

⚠️ Aviso

Este proyecto genera una imagen no oficial y experimental de InterSystems IRIS Community Edition.

  • No está soportada ni avalada por InterSystems.
  • Usadla bajo vuestra propia responsabilidad. Las modificaciones eliminan funciones esenciales de la plataforma y pueden romper la compatibilidad con herramientas, APIs y comportamientos esperados.
  • No se aplican garantías de ningún tipo, incluida su idoneidad para uso en producción.
  • Está pensada solo para fines educativos y experimentales por parte de usuarios avanzados.

¿Por qué un IRIS ligero?

Aunque IRIS incluye hoy funciones muy completas —interoperabilidad, analítica, machine learning, gestión del sistema, etc.— muchos proyectos solo requieren sus capacidades SQL básicas. La imagen oficial Docker de Community Edition ocupa aproximadamente:

  • Uso en disco: 3,5–3,8 GB
  • Tamaño comprimido: ~1,1 GB

IRIS Light reduce eso a:

  • Uso en disco: ~575–583 MB
  • Tamaño comprimido: ~144–148 MB

Esto lo hace adecuado para:

  • Uso SQL en microservicios o contenedores
  • Pipelines de CI con arranque y descarga más rápidos
  • Escalado horizontal donde no se necesitan todas las funcionalidades

Comparación de huella de imagen

Las imágenes oficiales de IRIS Community Edition suelen ocupar entre 3.5 y 3.8 GB en disco, con tamaños comprimidos de alrededor de 1.1 GB

$ docker images containers.intersystems.com/intersystems/iris-community
IMAGE                                                                    ID             DISK USAGE   CONTENT SIZE
containers.intersystems.com/intersystems/iris-community:latest-cd        14c6314edcc5        3.8GB         1.17GB
containers.intersystems.com/intersystems/iris-community:latest-em        4c25627895eb       3.52GB         1.01GB
containers.intersystems.com/intersystems/iris-community:latest-preview   424e87dbb7d8       3.81GB         1.17GB

Por el contrario, la imagen simplificada “IRIS Light” creada mediante este enfoque es aproximadamente 8 veces más pequeña en tamaño comprimido

$ docker images caretdev/iris-community-light
IMAGE                                                                    ID             DISK USAGE   CONTENT SIZE
caretdev/iris-community-light:latest-cd                                  ce5c2d7fa173        583MB          148MB
caretdev/iris-community-light:latest-em                                  fd33a51a0e81        575MB          144MB
caretdev/iris-community-light:latest-preview                             f10c714117da        583MB          148MB

Analizando las capas de la imagen con Dive

Para comprender y optimizar la imagen de IRIS Community Edition, usamos dive, una herramienta para inspeccionar capas de imágenes Docker e identificar ineficiencias.

Antes de la optimización: imagen estándar de IRIS Community

La captura de pantalla de abajo muestra el análisis de la imagen oficial iris-community:latest-em. Una de las capas más grandes pesa 882 MB e incluye Java, bibliotecas del sistema y otros componentes de ejecución que no son estrictamente necesarios para cargas de trabajo solo de SQL

Y la más grande, de 1.5 GB, que contiene principalmente IRIS itself

Después de la optimización: imagen IRIS Light

Al eliminar paquetes innecesarios y compactar el almacenamiento interno de IRIS, la imagen final cabe en una sola capa de 320 MB, logrando una reducción de tamaño drástica

Cómo se construye la imagen IRIS Light

El proceso sigue un Dockerfile de múltiples etapas, comenzando desde la base estándar iris-community:latest-em. Los pasos clave incluyen:

1. Desactivar componentes en la configuración

  • Desactivar WebServer, System Management Portal y Ensemble en iris.cpf.

2. Eliminar paquetes no usados dentro de IRIS

Usando ObjectScript dentro de una sesión IRIS:

  • Borrar paquetes: %SYS.ML, DeepSee, Interop, OAuth2, Net, Report, y más.
  • Conservar solo las bibliotecas esenciales del sistema (por ejemplo, %Library, %SQL, %SYSTEM).

3. Sustituir clases

Algunas clases necesarias (por ejemplo, para el arranque) se sustituyen por implementaciones mínimas sin funcionalidad cuando es necesario.

4. Limpiar bases de datos

Compactar y desfragmentar las bases de datos clave para reducir el tamaño.

5. Limpieza del sistema de archivos

Eliminar:

  • Herramientas de desarrollo
  • Pila web y CSP
  • Bibliotecas de interoperabilidad
  • Soporte de Python/Java
  • Datos de localización, registros, archivos temporales, controladores ODBC/JDBC

6. Copiar el contenido limpiado a una base Ubuntu nueva

La imagen final se construye sobre ubuntu:24.04, incluye solo los archivos y herramientas necesarios y usa tini como PID 1.

Resultado

La imagen resultante tiene aproximadamente:

  • Tamaño comprimido: ~144–148 MB
  • Uso de disco sin comprimir: ~570–580 MB
  • Funcionalidad SQL: verificada usando la suite de pruebas sqlalchemy-iris (619 aprobadas, 912 omitidas, 0 fallos)

Esto la hace muy adecuada para:

  • Servicios SQL mínimos
  • Contenedores ligeros de desarrollo/pruebas
  • Escenarios de despliegue embebidos o en el edge
  • Arquitecturas sin estado y escaladas horizontalmente

Limitaciones importantes

  • Sin Management Portal ni servicios web
    Toda la pila CSP/web está eliminada.
  • Sin Interoperabilidad, DeepSee, iKnow o Machine Learning
    Estos subsistemas se eliminan explícitamente
  • Sin soporte interno ni externo
    InterSystems no ofrece garantías para esta imagen. La compatibilidad y el comportamiento de actualización son indefinidos.
  • Las futuras versiones de IRIS pueden cambiar los requisitos de arranque
    Dependencias internas en paquetes o archivos eliminados pueden impedir que futuras versiones funcionen con este enfoque

Conclusión

IRIS Light es una imagen Docker simplificada y creada por la comunidad para InterSystems IRIS, que ofrece reducciones significativas en tamaño y complejidad para casos de uso centrados en bases de datos. Aunque no está oficialmente soportada, proporciona una base para experimentación, creación rápida de prototipos y situaciones donde no se necesitan todas las capacidades de IRIS.

Se anima a los usuarios a revisar el Dockerfile, adaptarlo a sus propias necesidades y comprender las implicaciones de eliminar funciones clave de la plataforma.

Se anima a los usuarios a personalizar aún más el Dockerfile para ajustarlo a sus propias necesidades operativas y de seguridad. Todo el proceso de construcción es transparente y reproducible usando únicamente imágenes base públicas de Docker.


Este proyecto está disponible aquí 

Imágenes Docker de IRIS Community Light disponibles en Docker Hub

Comentarios (0)1
Inicie sesión o regístrese para continuar