インターシステムズは、特定の $List シンタックスを使用することで不正なデータベースとジャーナルレコードが作成される問題を修正しました。この問題が発生する可能性は非常に低いものですが、発生した場合の影響は非常に大きなものとなります。
この問題は、以下の製品リストにあるバージョンに存在します:
- InterSystems IRIS
- InterSystems IRIS for Health
- HealthShare Health Connect
バージョンは 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
同様に上記製品をベースとしたその他のインターシステムズ製品
次の製品にも問題が存在します:
- HealthShare Unified Care Record および関連製品 バージョン 2024.2
この問題はUnicode版の製品でのみ発生します。
以下のシンタックスでグローバル上のリスト形式データに新しい要素を追加する際に問題が発生します。
SET $LIST(<グローバル>, *+1) = 値
この操作によりリストデータが文字列最大長を超過した場合の正しい結果は <MAXSTRING>エラーです。バージョン 2023.3 よりも前の製品バージョンでは正しい結果でしたが、2023.3 以降のバージョンでは <MAXSTRING> エラーが発生せずに不正な値がデータベースに保存されます。
このようにして作成されたグローバルノードを参照すると <MAXSTRING> エラーが発生します。
このグローバル更新はジャーナルレコードにも記録されます(デフォルトの設定としてグローバル更新がジャーナル記録されると仮定)。今回問題となるジャーナルレコードを適用するすべての操作 - 開始時のジャーナルリカバリ、ジャーナルからのリストア、ミラーリング操作 が <MAXSTRING> エラーにより失敗し、それ以降のジャーナル処理を行うことができなくなります。
もしこの問題の影響を受けたお客様は、復旧方法についてサポートセンターまでご連絡ください。
この不具合は修正ID DP-437169 で解決します。この修正は InterSystems IRIS、InterSystems IRIS for Health and Health Connect2024.1.3、2025.1.0以降のすべてのバージョンに含まれる予定です。HealthShare Unified Care Record および
関連製品ではバージョン 2025.1 以降で修正予定ですが、それ以前のメンテナンスリリースでの修正予定はありません。
お客様のご要望により、本修正を現在お使いの製品に対する Adhoc として個別に作成し、提供することが可能です。
お使いのシステムに対する Adhoc が必要な場合は、カスタマーサポートセンターまでお知らせ下さい。
この警告についてご質問がある場合は、カスタマーサポートセンターにご連絡下さい。