InterSystems公式
· 2025年1月15日

警告:特定の $List 操作でデータベースとジャーナルファイルに不正なデータが作成される

インターシステムズは、特定の $List シンタックスを使用することで不正なデータベースとジャーナルレコードが作成される問題を修正しました。この問題が発生する可能性は非常に低いものですが、発生した場合の影響は非常に大きなものとなります。

この問題は、以下の製品およびそれらベースとしたその他のインターシステムズ製品に存在します:

  • InterSystems IRIS® : 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • InterSystems IRIS® for Health: 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Health Connect: 2023.3.0, 2024.1, 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、Health Connect の2024.1.3、2025.1.0以降のすべてのバージョンに含まれる予定です。HealthShare Unified Care Record および関連製品ではバージョン 2025.1 以降で修正予定ですが、それ以前のメンテナンスリリースでの修正予定はありません。

お客様のご要望により、本修正を現在お使いの製品に対する Adhoc として個別に作成し、提供することが可能です。お使いのシステムに対する Adhoc が必要な場合は、カスタマサポートセンターまでお知らせください。

この警告について質問がある場合は、カスタマーサポートセンターにご連絡下さい。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください