New post

検索

InterSystems Official
· Feb 20

Alerte : les requêtes SQL renvoient des résultats erronés

19 février 2025 – Alerte : les requêtes SQL renvoient des résultats erronés

InterSystems a corrigé deux problèmes pouvant entraîner le renvoi de résultats erronés par un petit nombre de requêtes SQL. De plus, InterSystems a corrigé une incohérence dans la gestion des types de données date/heure qui peut entraîner des résultats différents, inattendus, mais corrects, pour les applications existantes qui s'appuient sur le comportement antérieur et incohérent.

DP-436825 : les requêtes SQL avec jointure latérale peuvent renvoyer des résultats erronés

Le premier problème (DP-436825) affecte uniquement les requêtes SQL qui utilisent une jointure latérale, implicitement ou explicitement, sur une instance configurée avec une limite de mémoire par processus non par défaut (paramètre « bbsiz » dans le fichier .cpf). Une nouvelle installation d'InterSystems IRIS a une valeur bbsiz par défaut de -1 (il n'y a donc pas de limite de mémoire), tandis qu'une mise à niveau à partir d'une version plus ancienne conserverait le paramètre précédent. Lorsqu'une telle requête utilise l'exécution parallélisée au moment de l'exécution, y compris les cas où le système utilise l'exécution parallélisée, la requête peut renvoyer des résultats incorrects. Ce problème affecte les versions 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2 et 2024.3 des produits suivants :

  • Plateforme de données InterSystems IRIS®
  • InterSystems IRIS® for Health
  • HealthShare® Health Connect

Le problème affecte également d'autres produits InterSystems basés sur les produits ci-dessus, notamment HealthShare® Unified Care Record et Suite : Version 2024.2 Bien que le dossier de soins unifié et la suite n'utilisent pas de requêtes SQL qui utilisent une jointure latérale dans le code du produit, les clients HealthShare qui effectuent une mise à niveau vers HealthShare 2024.2 avec une limite de mémoire par processus non par défaut qui écrivent également leurs propres requêtes SQL qui utilisent une jointure latérale peuvent être affectés.

Pour éviter ce problème, utilisez l'une des trois options suivantes :

  • Supprimez la limite de mémoire par processus en définissant le paramètre bbsiz sur -1.
  • Utilisez le mot clé %NOPARALLEL dans les requêtes qui incluent une jointure latérale.
  • Désactivez temporairement le mode adaptatif pour l'instance, ce qui évite le traitement parallèle automatique des requêtes éligibles.

Tout cela garantit que la requête renvoie des résultats corrects. La correction de ce défaut est identifiée comme DP-436825 et sera incluse dans toutes les futures versions du produit à partir de 2024.1.3 et 2025.1.0. Elle est également disponible via une distribution ad hoc.

DP-436998 : requêtes SQL avec tri inversé par %ID entrant dans une boucle sans fin

Le deuxième problème (DP-436998) affecte les requêtes SQL qui classent par ID de ligne décroissant et dans lesquelles l'ID de ligne est un entier positif (compatible bitmap) et en particulier, les circonstances spécifiques aux données. Dans ces conditions, la requête peut entrer dans une boucle sans fin et continuer à renvoyer le même ensemble de résultats jusqu'à ce qu'elle soit abandonnée. Ce problème affecte les versions 2022.2, 2022.3, 2023.x et 2024.x des produits suivants :

  • Plateforme de données InterSystems IRIS®
  • InterSystems IRIS® for Health
  • HealthShare® Health Connect

Il affecte également d'autres produits InterSystems basés sur les produits ci-dessus, notamment HealthShare® Unified Care Record and Suite : Version 2024.1 et version 2024.2. Bien que le dossier de soins unifié et la suite n'utilisent pas de requêtes SQL avec tri inversé par %ID dans le code produit, les clients HealthShare 2024.1 et HealthShare 2024.2 qui écrivent leurs propres requêtes SQL avec tri inversé par %ID peuvent être concernés. La correction de ce défaut est identifiée comme DP-436998. Elle sera incluse dans toutes les futures versions de produits à partir de 2023.1.6, 2024.1.3 et 2025.1.0. Elle est également disponible via une distribution ad hoc.

DP-436633 : Requêtes SQL comparant les valeurs DATE et TIMESTAMP

InterSystems a récemment corrigé une incohérence dans la manière dont les valeurs DATE et TIMESTAMP sont comparées à l'aide des opérateurs <=, > et BETWEEN. Cette correction modifie les résultats de comparaisons de date et d'heure particulières. Le comportement mis à jour a été introduit dans la version 2023.3 de :

  • Plateforme de données InterSystems IRIS®
  • InterSystems IRIS® for Health
  • HealthShare® Health Connect

Elle affecte également d'autres produits InterSystems basés sur les produits ci-dessus, notamment HealthShare® Unified Care Record and Suite : Version 2024.2.

Elle s'applique à toutes les versions ultérieures.

Avec le comportement mis à jour, les valeurs DATE sont converties en une valeur TIMESTAMP avant la comparaison. Cela est conforme à la norme SQL qui consiste à convertir le type de données le moins précis en type de données le plus précis.

Par exemple, avec le nouveau comportement (conforme à la norme), un prédicat de requête « MyTimeStamp > MyDate » est évalué à FAUX lorsque les valeurs de ces champs correspondent à la même date de calendrier, sauf lorsque MyTimestamp correspond exactement à minuit. Auparavant, le comportement n'était entièrement conforme à la norme que lorsque le champ MyTimeStamp était défini avec le format %PosixTime et renvoyait des résultats non conformes dans certains cas lors de l'utilisation de %Timestamp ou de certaines combinaisons de fonctions et variables spéciales.

Pour garantir des comparaisons prévisibles, InterSystems recommande d'utiliser des fonctions CAST explicites, en particulier lors de l'utilisation d'instructions CASE ou de fonctions SQL telles que GETDATE(), NVL() et IFNULL(), où le type résultant peut ne pas être évident.

 

Pour aider à évaluer les instructions affectées par le changement de comportement, InterSystems a introduit un avertissement dans le plan de requête et un indicateur système facultatif pour que ces instructions génèrent une erreur lors de l'exécution. L'activation de l'indicateur peut être utile lors des tests de régression du code d'application et peut offrir un filet de sécurité supplémentaire pour les requêtes utilisateur lors de l'exécution. Cette fonctionnalité d'information est identifiée comme DP-436633 et sera incluse dans toutes les futures versions du produit à partir de 2024.1.4 et 2025.1.0.

Informations complémentaires

Si vous subissez l'impact de ce défaut, contactez le Worldwide Response Center (WRC) pour obtenir de l'aide.

Discussion (0)0
Log in or sign up to continue
Article
· Feb 20 3m read

Configurando la replicación o Mirroring para productos de salud

Es posible que hayáis notado que, para configurar un mirror en InterSystems IRIS for Health™ y HealthShare® Health Connect, hay un requisito especial. En este artículo, quiero guiaros paso a paso por el proceso.

Esto supone que ya habéis configurado el segundo miembro de conmutación por error y habéis confirmado un estado exitoso de dicho miembro en el monitor del mirror:

Paso 1: Activad el usuario HS_Services (en el servidor de respaldo y en el principal).

 

Paso 2: Cambiad al espacio de nombres HSSYS y dirigíos a Interoperabilidad > Configurar > Credenciales. Introducid la contraseña para vuestro usuario HS_Services predefinido (en el servidor de respaldo y en el principal).

Paso 3: Programad la tarea de lanzamiento del Monitor de Duplicación (en el servidor de respaldo y en el principal). Hacedlo ejecutando lo siguiente desde el terminal de IRIS en el espacio de nombres HSSYS:

HSSYS>do ##class(HS.Util.Mirror.Task).Schedule("HSSYS")

Confirmad que se ha programado correctamente y que está configurado para ejecutarse cada cinco minutos:

Paso 4: Añadid la base de datos HSSYS a la duplicación en el servidor principal. Id a Administración del Sistema > Configuración > Configuración del Sistema > Bases de Datos Locales. Seleccionad "Añadir al Mirror" y escoged HSSYS.

Paso 5: Desmontad HSSYS de los servidores principal y de respaldo. Id a Operación del Sistema > Bases de Datos, seleccionad HSSYS y escoged "Desmontar".

Paso 6: Copiad el archivo HSSYS IRIS.DAT del servidor principal al directorio adecuado de HSSYS en el servidor de respaldo.

Aseguraos de que los permisos sean los adecuados. Deberíais ver algo como esto:

-rw-rw---- 1 irisowner irisowner 22020096 Jan 12 15:26 IRIS.DAT

Si no veis esto, modificadlo con chown y chmod para que sea así.

Paso 7: Montad la base de datos en el servidor principal. Id a Operación del Sistema > Bases de Datos, seleccionad HSSYS y escoged "Montar". Elegid "¿Iniciar la sincronización del mirror?" pero no seleccionéis "Solo lectura".

Paso 8: Montad la base de datos en el servidor de respaldo. Id a Operación del Sistema > Bases de Datos, seleccionad HSSYS y escoged "Montar". No seleccionéis "Solo lectura". No habrá la opción de "Iniciar la sincronización de la duplicación".

Paso 9: En vuestro servidor de respaldo, abrid el Monitor de Duplicación (Operación del Sistema > Monitor de Mirror). Ahora deberíais ver HSSYS añadida a vuestra lista de bases de datos duplicadas. Pero tenéis que hacer clic en "Activar" para que se inicie la sincronización.

Después de unos segundos, vuestro servidor de respaldo debería estar "Sincronizado".

HSSYS ya está duplicada.

Y deberíais ver el Agente del Monitor de Mirror en ejecución (Salud > Agente del Monitor de Mirror).

Paso 10: Configurad el Nombre de Host de la Red en el servidor principal (Inicio > Salud > Asistente de Instalación).

El Nombre de Host de la Red debe estar configurado con el VIP de la duplicación (o la entrada DNS para el VIP de la duplicación).

Paso 11: Configurad la Comunicación Segura.

Paso 12 (opcional): Configurad la Fundación.

Recordad activar vuestro Namespace una vez que esté creado.

Dado que seleccionamos Base de Datos de Mirror, deberíais verla en vuestras Bases de Datos de Mirror en el Monitor de Mirror.

El requisito adicional de duplicación para productos de Healthshare ya está completo, y al probar una conmutación por error, vemos que ambos servidores están sincronizados según el Agente del Monitor de Mirror.

Ahora podéis configurar vuestros Puntos de conexión FHIR y ver cómo las bases de datos de recursos (R) y historial de recursos (V) se duplican automáticamente.

1 new Comment
Discussion (1)1
Log in or sign up to continue
Article
· Feb 20 2m read

Shop now for women's golf jackets on sale!

Every golfer is aware that the weather can change suddenly, so wearing the appropriate golf jacket is crucial to remaining relaxed and concentrate on your game. A good women's golf jacket will keep you warm, dry, and fashionable whether you're playing on a breezy afternoon, a chilly morning, or an unexpected downpour.

With USAGolfSupplies.com's exclusive discount on premium women's golf jackets, now is the ideal moment to update your golf wardrobe! Get incredible savings on high-end golf jackets from companies like Puma, Adidas, Nike, and Under Armour, among others. These jackets are made to keep you playing at your best in any weather.

 

🏆 The Greatest Women's Golf Jackets Available Now!

1. Therma-FIT golf jacket from Nike
🔥 Ideal for brisk afternoons and cool mornings
✅ Therma-FIT fabric preserves body heat without adding bulk
✅ A water-resistant finish keeps you dry

✅ For a complete range of motion, the design is flexible
🎯 Save up to 30% on sale prices!

2. The Waterproof Adidas ClimaStorm Jacket

🔥 In unexpected weather, stay cozy and dry
✅ Technology that is waterproof and windproof
✅ Breathable and lightweight design
✅ Fit that may be adjusted for optimal flexibility
🎯 25% off sale price; limited supply!

3. The ColdGear Infrared Jacket from Under Armour

🔥 Perfect warmth for golf in cold weather
✅ Body heat is retained by the ColdGear Infrared lining
✅ Fabric that wicks away moisture and dries quickly
✅ Unrestricted mobility with 4-way stretch material
🎯 Save up to 40% on sale prices!

The Cloudspun Golf Hoodie Jacket by Puma


🔥 Soft, stylish & performance-ready
✅ Cloudspun fabric for an ultra-soft feel
✅ Moisture-wicking technology keeps you fresh
✅ Modern style with an athletic fit 🎯 Sale Price: 50% off when you buy one!

5. TravisMathew Women’s Lightweight Golf Jacket


🔥 Sleek & stylish for on and off the course
✅ Premium, breathable fabric for all-day comfort
✅ Wrinkle-resistant & easy to pack
✅ Flattering fit with a trendy design
🎯 Sale Price: 20% OFF – Selling Fast

🔥Why Shop at USAGolfSupplies.com? 🔥


✅ Exclusive Discounts: Get the best deals on premium golf gear
✅ Top Brands: Nike, Adidas, Under Armour, Puma, TravisMathew & more
✅ Fast & Reliable Shipping: Get your golf essentials delivered quickly
✅ 100% Customer Satisfaction: Trusted by golfers across the USA
⏳ Don’t miss out! These deals won’t last long, and stock is limited.


👉 Shop the Women’s Golf Jacket Sale Now at USAGolfSupplies.com and Save Big! 🏌️‍♀️🔥

Discussion (0)1
Log in or sign up to continue
Article
· Feb 20 2m read

Extensión de VSCode para el análisis visual de ISCLOGs

Los ISCLOGs son una herramienta útil de depuración proporcionada con IRIS que os puede ayudar a solucionar muchos tipos de problemas. Para obtener más información sobre cómo generar estos registros, consultad la siguiente documentación de IRIS: "Logging".

Este registro se escribe en el global ^ISCLOG almacenado en el espacio de nombres %SYS. Cada nodo de esta global representa un evento independiente, y en algunos casos, se registra información adicional en los subnodos.

Cada entrada consiste en una lista con los siguientes campos: ID, Categoría, Nivel de Registro (LogLevel), Mensaje, Espacio de Nombres, ID de Proceso, Rutina, ID de Sesión, Etiqueta y Hora de Adición. Para más detalles sobre los distintos campos, consultad la sección "Fields in the Log" en la documentación de IRIS.

Aunque esta herramienta proporciona información valiosa, también genera muchas entradas, lo que puede dificultar su interpretación. Para facilitar su lectura, he creado una extensión para VSCode que mejora la visualización de dos maneras:

1) Al exportar un ISCLOG a VSCode, podéis utilizar funciones integradas como la comparación de archivos.  

2) La utilidad incluye resaltado sintáctico para facilitar la identificación de los diferentes campos.

Instalación:

  1. En VSCode, buscad la extensión "Pretty ISCLOGs" o utilizad el siguiente enlace: Pretty ISCLOGs en Visual Studio Marketplace
  2. Seleccionad el botón de instalar para cargar la extensión.
  3. Seguid los pasos a continuación para exportar y visualizar un ISCLOG:

Uso:

  1. En el ObjectScript Shell, navegad al espacio de nombres "%SYS".
  2. Ejecutad el siguiente comando para especificar un nombre de archivo (podéis usar cualquier nombre, siempre que tenga la extensión ".isclog"):

set file = <filepath>/filename.isclog

ie: set file="C:/ISCLOGs/myISCLOG.isclog"

  1. Ejecutad el siguiente comando para exportar el global ^ISCLOG al archivo:

Open file: "wns" use file zw ^ISCLOG close file

  1. Abrid el archivo en VSCode para visualizar el registro.

Aquí tenéis un ejemplo de captura de pantalla utilizando el tema de color InterSystems Default Dark Modern:

Limitaciones:

Debido a cambios en el almacenamiento de los ISCLOGs, esta utilidad solo funcionará con versiones más recientes (generalmente, versiones de IRIS desde 2018 en adelante).

He probado esto utilizando los estilos visuales proporcionados en la extensión InterSystems ObjectScript. La utilidad usa los colores de los tokens de VSCode. Los colores exactos dependerán del tema visual que tengáis aplicado, por lo que la legibilidad puede variar según el tema elegido.

Discussion (0)1
Log in or sign up to continue
Article
· Feb 20 4m read

WSGI サポートの概要

wsgi_logo

コンテキスト

ウェブサーバーゲートウェイインターフェース(WSGI)は、ウェブサーバーがリクエストを Python プログラミング言語で記述されたウェブアプリケーションまたはフレームワークに転送するための単純な呼び出し規則です。 WSGI は PEP 3333 で詳しく説明された Python 規格です。

🤔 定義は良いとして、IRIS との関連性は何でしょうか?

IRIS 2024.2+ の新機能により、直接 IRIS で WSGI アプリケーションを実行できます。 この機能は、IRIS を他の Python フレームワークとライブラリに統合する優れた方法です。

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