InterSystems公式 Megumi Kakechi · 1月 29, 2025 1m read

インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect のメンテナンスバージョン 2024.1.3 をリリースしました。
 

✅ 2024.1.3

2024.1.3 は、最近発行された以下の警告の修正を含む、以前のリリース2024.1.x のバグフィックスを提供します。
警告:特定の $List 操作でデータベースとジャーナルファイルに不正なデータが作成される

詳細な情報は、以下のページをご参照ください(すべて英語版です):


キットの取得方法

本製品は、従来からのインストーラパッケージ形式と、コンテナイメージ形式をご用意しています。その一覧は、以下のサポートプラットフォームページ(英語)をご覧ください。
Supported Platforms webpage

インストーラパッケージは WRC Direct から入手できます。

0
0 72
記事 Megumi Kakechi · 1月 14, 2025 2m read

これは InterSystems FAQ サイトの記事です。
 

09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] ISCLOG: SuperServer Super Server job slave failure ns=%SYS rtn=%SYS.SERVER
09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] SuperServer failed to start slave server

メッセージログ(cconsole.log/messages.log)の上記のようなログは、スーパーサーバ/SuperServer(既定:1972ポート)に対して外部からリクエストがあったが、リクエストに対応する子プロセスの起動に失敗した場合に記録されます。

スーパーサーバへの新規接続に対してスーパーサーバがJOBコマンド(タイムアウトあり)を実行したが、タイムアウト時間内にJOBコマンドが完了しなかったケースなどが考えられます。


通常こちらは 、システムの負荷が非常に高くJOBコマンドによる子プロセスの生成に時間を要してしまったような、OS レベルの問題である可能性が高いです。

運用に支障がないようであれば、そのような状況は一時的であったと考えられます。

0
0 148
記事 Megumi Kakechi · 1月 7, 2025 2m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、タスク履歴の結果内容に、「タスクは 10 Apr 20xx 12:00:00AM 19 Aug 20xx 12:00:00AM から継続中 に有効期限切れになりました」のようなログがある場合、その意味と対処方法について説明します。


このログは、実行予定のタスクをチェックした際に、時間が対象タスクの有効期限を過ぎてしまったために、表示しているログになります。
有効期限を指定していない場合(※)は、次回タスク予定時刻が有効期限になります。
※有効期限の設定は、^TASKMGRユーティリティから行うことができます。


例えば、毎分実行予定のタスクスケジュールがあった場合、実行タスクの実行時間が1分を超える場合、仮に130秒とする場合、1分後と2分後に予定していたタスクスケジュールは実行することができなかったことになります。
この場合、3分後のタスクスケジュール以降実行されることになり、実行されなかったタスクは、「タスクが次のスケジュール時刻を過ぎても実行を続けています」とログされ、次に正常に実行できたタスクの後に「タスクは YYYY-MM-DD hh:mm YYYY-MM-DD hh:mm から継続中 に有効期限切れになりました」のようにログされます(タスク履歴へ)。

0
0 167
記事 Megumi Kakechi · 12月 26, 2024 1m read

これは InterSystems FAQ サイトの記事です。
 

ジャーナルファイルの中身を参照したい場合、通常は管理ポータルで参照します。

管理ポータル:
[システムオペレーション] > [ジャーナル] : (該当ジャーナルの名前)参照 リンクをクリック


こちらのページで、外部に保存したジャーナルファイルも参照することができることをご存じでしょうか?

以下のように、ID= の後ろにジャーナルのファイルパスを指定することで、ジャーナルファイルの中身を管理ポータルで参照することが可能です。

http://localhost/iris/csp/sys/op/UtilSysJournal.csp?$ID1=C:\temp\20240826.002z
 


ジャーナルファイルは、YYYYMMDD.001 の形式でも、YYYYMMDD.002z のような圧縮形式のどちらでも参照可能です。
(ジャーナル圧縮対応バージョン:2022.1 及び 2021.2~)

また、ミラージャーナルファイル(例:C:\temp\MIRROR-MIRRORSET-20240826.001z)も同様に参照可能です。

是非お試しください。


enlightened【ご参考】
ジャーナルファイルの内容を管理ポータル以外で参照する方法
 

0
0 111
記事 Megumi Kakechi · 12月 17, 2024 4m read

こちらの記事では、既存のユーザ設定をプログラムで変更する方法をご紹介します。

ユーザロールを追加/削除したい、有効期限設定を変更したい、等の場合にお役立てください。

なお、ユーザ設定をプログラムで新規作成する方法は こちら の記事で紹介しております。
 


1.ある特定ユーザの設定を参照+変更する方法

2.既存の全てのユーザの設定を参照する方法

3.おまけ(Webアプリケーション情報の参照+変更)



1.ある特定ユーザの設定を参照+変更する方法

// ユーザを指定してロールを確認する(以下の例は、test ユーザ)
USER>zn "%SYS"
%SYS>do ##class(Security.Users).Get("test",.
0
0 87
記事 Megumi Kakechi · 9月 3, 2024 2m read

これは InterSystems FAQ サイトの記事です。
HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。
開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。
 

*CSPまたはRESTでヘッダ情報を取る場合

set var=""
 for {
   set var=$order(%request.CgiEnvs(var))
   if var="" quit
   set val=$get(%request.CgiEnvs(var))
   write var_": "_val,"<BR>"
 }

%request オブジェクトについて


*ターミナルで情報を取る場合

%Net.HttpRequest クラスの Head メソッドを使用します。

 set http = ##class(%Net.HttpRequest).%New()
 set http.Server = "localhost"
 set http.Port = 80
 do http.Head("/csp/user/menu.csp")         // ヘッダ情報をリクエストするURL
 do http.HttpResponse.
0
0 166
記事 Megumi Kakechi · 8月 20, 2024 3m read

これは InterSystems FAQ サイトの記事です。
messages.logに「Updates may become suspended due to low available buffers」のエラーが出ている場合、このインスタンスのバッファ利用可能サイズが低下していることが考えられます。

上記メッセージが頻繁に出力するようであれば以下の対処をご検討ください。

  •  データベースキャッシュの設定値が小さければ、値を増やします(ただし、その分物理メモリに余裕が必要です。)
  •  データベースキャッシュの設定値が十分に大きな設定値であれば、ライトデーモンのバッファの書き込み処理でのディスク性能不足の可能性が考えられる為、更新処理を分散して時間当たりの更新量を減らすか、ディスク装置の性能を上げます。 ※ストレージのメンテナンス(スナップ等によるバックアップ)や、他のサーバによるI/O負荷などによる影響も考えられます。


メッセージの意味は以下のようになります。

0
0 140
InterSystems公式 Megumi Kakechi · 8月 16, 2024 2m read

インターシステムズは、非常にまれな状況下で、マルチボリュームデータベースでデータベース破損または <DISKHARD> エラーが発生する可能性がある不具合を修正しました。危険性があるのは、未使用領域削除(Truncate)を行ったマルチボリュームデータベースのみです。

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

  InterSystems IRIS                       2024.1, 2024.1.1, 2024.2
  InterSystems IRIS for Health    2024.1, 2024.1.1, 2024.2
  HealthShare Health Connect    2024.1, 2024.1.1, 2024.2

上記以外の HealthShare 製品はこの問題の影響を受けません。

インターシステムズは、この不具合に関するお客様からの報告を受けていませんが、この問題を回避するために、以下の一時的な緩和策を推奨します:

  • マルチボリュームデータベースで未使用領域削除をしない。
  • 最後にデータベースをマウントした以降に未使用領域削除をしたシングルボリュームまたはマルチボリュームデータベースに対して、新しいボリュームを作成しない。
0
0 78
記事 Megumi Kakechi · 8月 15, 2024 2m read

通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。

Caché にインポートしようとすると、以下のようなエラーになります。

USER>do $system.OBJ.Load("C:\temp\test.xml")
 
ロード開始 07/23/2024 16:50:42
ファイル C:\temp\test.xml を xml としてロード中
ERROR #6301 行: 2 オフセット: 117 これはCacheエクスポートファイルではありません。インポートできません。
読込時に 1 個のエラーを検出しました。
 


どうしても、古いバージョンにインポートする必要がある場合、「/exportversion」というエクスポート修飾子を使用することが可能です。

使用方法は以下のようになります。/exportversion には、エクスポートしたルーチンをインポートしたい環境のCacheバージョンを指定します。

USER>write $SYSTEM.OBJ.Export("test.mac","c:\temp\test2.xml","/exportversion=cache2018.
2
0 206
InterSystems公式 Megumi Kakechi · 8月 7, 2024

InterSystems API Manager (IAM) のバージョン 2.8.4.11 & 3.4.3.11 が公開されました。 これらは、長期的にサポートされている IAM の 2 つのバージョンの最新版です。これらのリリースには重要な修正が含まれており、すべてのお客様にアップグレードをお勧めします。

IAM 3.0または3.2をお使いのお客様は、これらのバージョンのサポートがまもなく終了するため、3.4.3.11にアップグレードすることをお勧めします。

IAM は、InterSystems IRIS サーバとアプリケーション間の API ゲートウェイであり、HTTP ベースのトラフィックを効果的に監視、制御、管理するためのツールを提供します。IAM は、InterSystems IRIS ライセンスの無償アドオンとして利用できます。

IAMは、WRCソフトウェア配布サイトのComponentsエリアからダウンロードできます。

 IAM のダウンロード、インストール、使用開始方法については、 インストール・ガイド を参照してください 。InterSystems IRIS での使用に関する詳細な情報については IAM Version 3.4 Guide を参照してください。パートナーであるKong社では、Kong Gateway (Enterprise) 3.

0
0 76
記事 Megumi Kakechi · 7月 28, 2024 2m read

これは InterSystems FAQ サイトの記事です。
通常SQLCODE -114(一致する行が既に別のユーザにロックされています)のエラーはロックが競合した場合に発生します。

こちらはレコードロック競合があったり、ロック閾値を超える更新を行いテーブルロックに昇格した際に、そのテーブルレコードに対して別のプロセスよりSelectを行い共有ロックを取ろうとして失敗した(ロック待ちがタイムアウトとなった)場合に発生します。

Selectで共有ロックを取る場合というのは、IRIS の ISOLATION LEVEL がREAD COMMITTED(デフォルトはREAD UNCOMMITTED)で、Selectを行った場合です。

例:Sample.Personテーブルにテーブルロックがかかった状態で以下を実行する場合

USER>:sql
SQL Command Line Shell
----------------------------------------------------
 
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
0
0 194
記事 Megumi Kakechi · 7月 23, 2024 4m read

これは InterSystems FAQ サイトの記事です。
 

JDBC および ODBC 経由でInterSystemsIRISから外部データベースにアクセスしたい場合、SQLゲートウェイを使用しリンクテーブルを作成して接続できます。

2023.1以降のバージョンでは、リンクテーブルに加えて、外部テーブル/FOREIGN TABLE を使用することが可能となりました(2024.1時点で実験的機能)。

外部テーブルというのは、物理的に別の場所に保存されているデータを IRIS SQL に投影する非常に便利な機能です。
外部テーブルを使用する場合は、Java(2023.1の場合は1.8~)を事前にインストールし、JAVA_HOME環境変数を設定するだけで、簡単に接続することが可能です。

※JAVA_HOME環境変数設定例:


外部テーブルの使用方法については、以下の記事で紹介しております。
レシピデータセットを外部テーブルで読み込み、組み込みPythonでLLMを使って分析する (Langchain + OpenAI)
 


こちらの記事では、外部テーブルで作成できる2種類のテーブル(「CSVファイル直接接続」と「外部DBへのJDBCゲートウェイ経由での接続」)の簡単なサンプル作成例と、外部テーブルの特徴を紹介しています。
 

1-1.

0
0 270
記事 Megumi Kakechi · 7月 16, 2024 2m read

これは InterSystems FAQ サイトの記事です。
 

SQLゲートウェイの接続設定は管理ポータルで作成できますが、プログラムでも作成が可能です。

管理ポータル:
[システム管理] > [構成] > [接続性] > [SQLゲートウェイ接続]

こちらのトピックでは、ODBC/JDBCそれぞれの設定をプログラムで行う方法をご紹介します。


--- SQL Gateway for ODBC ----

 set gc = ##class(%SQLConnection).%New()
 set gc.Name = "test"
 set gc.DSN = "IRIS User"
 set gc.Usr = "_system"
 set gc.pwd = "SYS"
 set gc.bUnicodeStream = 1
 set gc.useCOALESCE = 1
 write gc.%Save()
 


--- SQL Gateway for JDBC ----

 set gc = ##class(%SQLConnection).%New()
 set gc.isJDBC = 1
 set gc.Name = "testj"
 set gc.Usr = "_system"
 set gc.pwd = "SYS"
 set gc.driver = "com.
0
0 177
記事 Megumi Kakechi · 7月 10, 2024 5m read

これは InterSystems FAQ サイトの記事です。
 

こちらの記事では、「IRISでシャドウイングの代わりにミラーリングを構成する方法」を紹介しました。

今回は、「プログラムでシャドウイングの代わりにミラーリングを構成する方法(Windows版)」を紹介します。
【今回のサンプル・ミラー構成について】






  正サーバ(ミラー・プライマリ) 副サーバ(ミラー・非同期)
ミラー名 MIRRORSET MIRRORSET
ミラーメンバ名 MACHINEA MACHINEC
IPアドレス 35.77.84.159 54.248.39.237


では、ミラーの構成手順をご紹介します。手順は以下になります。
 

<ミラーリングのプライマリ設定>     // MACHINEA(正サーバ)

1. ISCAgentの自動起動設定および起動         ※Windowsコマンドプロンプトで実行

C:\Users\Administrator>sc config ISCAgent start=auto
C:\Users\Administrator>sc start ISCAgent

2.

0
0 291
記事 Megumi Kakechi · 7月 1, 2024 6m read

これは InterSystems FAQ サイトの記事です。
 

IRIS2024.1以降のバージョンをインストールしようとした際に、以下のようなエラーになることがあります。

This CPU is not supported by this version of IRISHealth, which requires “AVX” and “BMI” CPU instructions.


これは、2024.1以降のバージョンより最小CPUの条件として、AVX および BMI 拡張命令が含まれることが条件となっているのですが、ご使用の環境に含まれない(仮想環境やFTサーバ等の特殊なシステムでは無効化されている場合も)ときに出力されるエラーです。

最小CPUサポートバージョンについては、以下のドキュメントをご覧ください。
Minimum Supported CPU

現在使用中のCPUの拡張命令セットの情報の確認方法については、以下のDC記事をご覧ください。
CPU のマイクロアーキテクチャファミリと命令セットの判定方法


Linuxの場合は、lscpuコマンド、または lshw -class processor コマンドで確認できます。

0
0 403
記事 Megumi Kakechi · 6月 23, 2024 8m read

これは InterSystems FAQ サイトの記事です。
 

InterSystems IRIS では、シャドウイングは非推奨機能となりました。

こちらのトピックでは、これまでにCachéでシャドウイングを使用していたお客様に対して、IRISへの移行後に、代わりに使用できるミラーリングの構成方法をご紹介します。

ミラーリングには機能的に2つの種類があります。

1.同期ミラーによるフェールオーバー(常にデータベースが同期されて複製、障害時に自動でフェールオーバー)
2.非同期ミラー(シャドウイングと同様の機能を提供)
 - DR非同期(DR構成で利用、フェールオーバーへの昇格が可能、複製DBへの書き込み不可)
 - レポーティング非同期(データマイニング/BIアプリでの利用、複製DBへの書き込み可能)


シャドウイングに代わって、IRISでは「プライマリ・フェイルオーバー」+「非同期ミラー」でミラーリングを構成する機能を利用することができます。

以下は、シャドウイングとミラーリングのサーバ役割の対比表になります。
※ミラー構成内の1つのインスタンスを  “ミラーメンバ” または単に “メンバ” と呼びます。

1
0 429
記事 Megumi Kakechi · 6月 11, 2024 6m read

SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成した際に、「管理ポータルに接続できなくなった」というお問い合わせを時々いただきます。
こちらの記事では、その際の対処法をご案内します。


スーパーサーバを SSL/TLS 化するために、以下のドキュメントにある方法を設定されると思います。
TLS を使用するための InterSystems IRIS スーパーサーバの構成

その際に、SSL/TLSサポートレベル  を 「必須」にしてしまうと、管理ポータルに接続できなくなる場合があります。

  
※管理ポータル:
     IRIS2024.1 ~ [システム管理] > [セキュリティ] > [スーパーサーバ]
     ~IRIS2023.1  [システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]


「必須」に設定する場合、すべてのクライアントからの接続を SSL/TLS 化する必要があります。
これは、WebゲートウェイからIRISへの接続にもあてはまるため、「Webゲートウェイ <==> IRIS」間を SSL/TLS 設定していない場合は、管理ポータル(REST/CSPを含む)に接続ができなくなってしまいます。

0
0 246
記事 Megumi Kakechi · 5月 27, 2024 4m read

こちら の記事では、LinuxでODBC接続を行う方法  をご紹介しました。

今回は、SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成 した IRIS に対して、ODBCで SSL/TLS 接続をする方法をご紹介します。

LinuxでODBC接続を行う方法 の記事で紹介している手順で、SSL/TLS なしでODBC接続できる環境を用意していることを前提にご説明します。

手順は以下のようになります。手順の詳細は、この後で説明します。


1.CA証明書を用意します

2.TLS 構成ファイルの設定を行います

3.TLS 構成ファイル odbcssl.ini を作成します

4.環境変数 ISC_SSLconfigurations で <path>/odbcssl.ini を指定します

5.IRISへのODBC接続確認をします



1.CA証明書を用意します

CA証明書に問題がないか証明書情報を確認します。
※ ***.***.***.*** :接続先IRISサーバのIPアドレス

# openssl s_client -connect ***.***.***.***:1972 -showcerts -CAfile /home/ec2-user/ca_certificate.
0
0 514
記事 Megumi Kakechi · 5月 24, 2024 4m read

こちら の記事では、LinuxでJDBC接続を行う方法  をご紹介しました。

今回は、SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成 した IRIS に対して、JDBCで SSL/TLS 接続をする方法をご紹介します。

LinuxでJDBC接続を行う方法 の記事で紹介している手順で、SSL/TLS なしでJDBC接続できる環境を用意していることを前提にご説明します。

手順は以下のようになります。手順の詳細は、この後で説明します。


1.CA証明書を用意します

2.Java キーストアに証明書をインポートします

3.Java ファイルを含むディレクトリに、SSLConfig.properties という名前の構成ファイルを作成ます

4.Java のコードに SSL/TLS の使用を指定する設定を追加します



1.CA証明書を用意します

最初に、CA証明書を用意します。証明書に問題がないか証明書情報を確認します。
※ ***.***.***.*** :接続先IRISサーバのIPアドレス

# openssl s_client -connect ***.***.***.***:1972 -showcerts -CAfile /home/ec2-user/ca_certificate.
0
0 487
InterSystems公式 Megumi Kakechi · 5月 15, 2024 2m read

インターシステムズは、InterSystems IRIS データ・プラットフォーム、InterSystems IRIS for Health 、HealthShare Health Connect のバージョン 2024.1.0.267.2 をリリースしました。
 

このリリースには、Ubuntu 24.04 オペレーティング・システムのサポートが追加されています。 Ubuntu 24.04 には、Linux カーネル 6.8、セキュリティの改善、インストーラおよびユーザ・インタフェースの改善が含まれています。 InterSystems IRIS IntegratedML は、Ubuntu 24.04 ではまだご利用いただけません。
 

さらにこのリリースでは、すべてのプラットフォームで以下の2つの不具合が修正されています:

  • "NOT %INLIST" を使用した SQL クエリが不正な結果を返す問題を修正しました。以前、このエラーに関する警告 を発行しました。
  • 特定の状況で不完全なスタック・トレースが発生する問題を修正しました。


ソフトウェアの入手方法

通常、拡張メンテナンス(EM)リリースには、サポートされているすべてのプラットフォーム用のクラシックインストールパッケージと、Dockerコンテナ形式のコンテナイメージがあります。

0
0 102
記事 Megumi Kakechi · 5月 6, 2024 4m read

前回、LinuxでODBC接続を行う方法 をご紹介しました。

今回は、LinuxでJDBC接続を行う方法 をご紹介します。作業は、root ユーザ で行います。

はじめに、Linuxのバージョンを確認します。

$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.4 (Plow)"
:


1. yumパッケージのアップデートを行います

$ su -
Password:
Last login: Tue May  7 01:04:35 UTC 2024 on pts/0
# yum update


2. Java をインストールします

今回は、Adoptium OpenJDK の Version 8 - LTS を使用してテストします。
※ *.tar.gz は、/usr/java 以下にダウンロードします。

# cd /usr/java
# ls
OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz
# tar zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz
:
# ls
jdk8u412-b08  OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz


3.

0
0 1386
記事 Megumi Kakechi · 5月 2, 2024 3m read

こちらの記事では、LinuxでODBC接続の設定を行う方法をご紹介します。


はじめに、Linuxのバージョンを確認します。

$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.4 (Plow)"
:


1. yumパッケージのアップデートを行います

$ sudo yum update


2. unixODBCをインストールします

$ sudo yum install unixODBC

確認します

$ which odbcinst
/usr/bin/odbcinst
$ which isql
/usr/bin/isql
$ odbcinst -j
unixODBC 2.3.9
DRIVERS.: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES.: /etc/ODBCDataSources
USER DATA SOURCES.: /home/ec2-user/.odbc.ini
SQLULEN Size.: 8
SQLLEN Size.
0
0 958
記事 Megumi Kakechi · 4月 25, 2024 2m read

大きなサイズのデータを持つフィールドに対してインデックスを作成すると、<SUBSCRIPT>エラーとなることがあります。

これは、グローバルの添え字(サブスクリプト)のサイズには制限があり、制限を超えるとエラーとなるためです。

例えば、以下のようなインデックスの場合、

^Sample.PersonI("NameIdx"," xxx...xxx",1)       =       ""

グローバル名+サブスクリプト部(=の左側)が、エンコード文字数で最長 511 文字を超えるとエラーとなります(日本語の場合はもっと小さな文字数です)。

※ご参考:グローバル参照の最大長


大きいデータを持つカラムに対してインデックスを設定したい場合の回避策としては、こちらの ドキュメント にありますように
「該当のプロパティのインデックス照合文字列を任意の文字数(例:128文字)に制限した照合を定義」
する方法があります。


具体的には、以下の2つの方法になります。
※クラス定義の変更/保存/コンパイル+インデックスの再構築が必要です。

0
0 158
記事 Megumi Kakechi · 4月 2, 2024 3m read

これは InterSystems FAQ サイトの記事です。

Caché 2016.2以降(IRISはすべてのバージョン)で、クエリプランの凍結機能 が実装されました。
この機能により、メジャーバージョンのアップグレードを行った場合、既存のクエリプランは自動的に凍結(※)されます。
2023.1以降のバージョンより、アダプティブモードが無効の場合のみ、クエリプランが自動的に凍結されます。有効の場合は、既存のクエリプランは無効になり、新しいシステムでクエリの最初の実行時に新しい最適化されたクエリプランを生成します。既定は有効です。

こちらのトピックでは、
「新しいバージョンにしたのに、一部のクエリで思うようなパフォーマンスが出ない」
「凍結プランが使用されている場合、新しいプランでパフォーマンスがどのくらいでるのかを知りたい」
という場合の確認手順について、ご説明します。
 


%NOFPLANキーワードで新しいプランを試してみる

Frozen Plan (古いバージョンと同じプラン)を使用していて思ったようなパフォーマンスが出ない場合、凍結を解除して新しいプランを試すことが可能です。
新しいプランを試したい場合は、%NOFPLANキーワードをつけてクエリを実行します。
%NOFPLANを付けた方がパフォーマンスが良ければ、プラン凍結を解除して新しいプランで実行するようにします。

0
0 118
記事 Megumi Kakechi · 3月 24, 2024 2m read

これは InterSystems FAQ サイトの記事です。

クエリパフォーマンスを左右するクエリプランは、テーブルチューニングを行った結果の統計情報を元に生成されます。

ある環境で期待したプランになったけれど、他の環境では意図したプランにならない場合、(期待したプランとなる)既存環境からテーブル統計情報をエクスポートして別の環境にインポートし、同じ統計情報をもとにしたクエリプランで実行することができます。
 


既存環境からテーブル統計情報をエクスポートして、対象環境にインポートする方法

新規環境にてテーブルチューニングをしても思うようなパフォーマンスが出ない場合に、パフォーマンスの出ていたテスト環境と、もう一つの別の環境で同じクエリプランでの実行を試してみたい場合があるかと思います。
そんな時は、テーブル統計情報である選択性(Selectivity)とデータ数(ExtentSize)情報等をエクスポートして、対象環境にインポートする方法が使用できます。
もちろん、データの偏りによってクエリオプティマイザが適切だと判断して作成したプランが最適だと考えられますが、どうしても思うようなパフォーマンスが出ない場合に、原因調査も含めてこちらの方法をお試しください。

以下のように統計情報をエクスポート/インポートすることで、同じテーブル統計情報=同じクエリプラン で実行することが可能となります。

0
0 300
記事 Megumi Kakechi · 3月 20, 2024 14m read

%Installerという特別なツールを使用すると、目的のIRIS構成を記述するインストールマニフェストを定義できることはご存じでしょうか?
インストールマニフェストに作成したい IRIS 構成を記述すると、インストール中、またはターミナルやコードからマニフェストを実行した際に、構成設定が適用されます。

インストールマニフェストについては、以下の記事でご紹介しておりますので是非ご覧ください(Cachéの記事になりますがIRISでも同様です)。
%InstallerでInterSystems Cachéにアプリケーションをデプロイする


こちらの記事では、実際にマニフェストで追加できる主な項目について、サンプルコードとあわせてご紹介します。
今回は、以下の機能の設定例をご紹介します。

1. ライセンスファイルのコピーと適用
2. ネームスペース・データベースの作成
3. 構成情報(ポートやデータベースキャッシュ・メモリ設定など)の適用
4. セキュリティ情報(ユーザ・サービスなど)のインポート ※同一バージョンのみ
5. セキュリティ情報(ユーザ・ロールなど)の作成
6. SQL情報の作成
7. ジャーナル情報の作成
8. ユーザ作成クラスやグローバルのインポート、メソッドの実行
9.

0
0 220
InterSystems公式 Megumi Kakechi · 3月 15, 2024 3m read

インターシステムズは、InterSystems IRIS Data Platform の2024.1 リリースを一般提供開始(GA)したことを発表しました。
2024.1 は、拡張メンテナンス(EM)リリースです。


【リリースハイライト】

今回のリリースには、以下のような数々の興味深いアップデートが含まれます:

1.  ObjectScript でのベクトルの使用: データ操作を最適化する強力な機能
2.  ベクトル検索 (実験的機能): 効率的なデータ検索のための最先端機能
3.  マルチボリュームデータベース: スケーラビリティとストレージ管理の強化
4.  ファスト・オンライン・バックアップ(実験的機能): バックアッププロセスの合理化
5.  複数のスーパーサーバポート: ネットワーク構成の柔軟性を提供
6.  その他多数!


【ドキュメント】

注目機能の詳細は、以下のリンクからご覧いただけます。
InterSystems IRIS 2024.1 (英語) 

本バージョンではプライベートWebサーバを使用した管理ポータル/Webアクセスが非推奨となりました。
詳細については以下もご参照ください。
https://jp.community.intersystems.

0
0 350
記事 Megumi Kakechi · 3月 11, 2024 2m read

これは InterSystems FAQ サイトの記事です。

SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。
以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。

1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する

2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする

1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。

クエリ実行例は、以下のようになります。

例:
UPDATE %NOINDEX tablename …
INSERT %NOINDEX INTO tablename …
DELETE %NOINDEX FROM tablename ...


更新後、あとでまとめてインデックスを再構築する場合は管理ポータルで行う方法と、コマンドで行う方法の2種類があります。

◆ 管理ポータルの場合...

[システムエクスプローラ] > [SQL]
 (ネームスペース指定&テーブルを選択して) アクション - テーブルのインデックスを再構築...

◆ コマンドの場合...

Set sc = ##class(Schems.
0
0 941
記事 Megumi Kakechi · 3月 3, 2024 2m read

これは InterSystems FAQ サイトの記事です。

ユーザに権限を与えたい場合、「GRANT」コマンドや「GrantPrivilegeメソッド」を使用しますが、ロールに対しても権限を与えることができます。

例えば、特定スキーマにのみ何でもできるロールを作成し、それを特定のユーザに割り当てるようなことが可能となります。

こちらの記事では、その方法をご紹介します。


(1) GrantPrivilegeメソッドを使用して「スキーマXXX に何でもできるロール」を作成し、
(2) 該当ユーザに (1) のロールを割り当てる



★GRANT文を使う場合

GRANT <priv> ON SCHEMA <your schema> TO <role>


例:ロール testRole に、スキーマ XXX に対する、挿入/更新/参照/削除 の権限を付与します。

GRANT Insert,Update,Select,Delete ON SCHEMA XXX TO testRole
※その他、Alter, References, Execute, Use などの指定も可能です。

こちらは、まだ存在しないスキーマに対しても実行可能です。
XXXスキーマにテーブルが登録されれば、自動的にそのテーブルに対して指定した権限が有効になります。


★$SYSTEM.SQL.Security.

0
0 134
記事 Megumi Kakechi · 2月 28, 2024 2m read

これは InterSystems FAQ サイトの記事です。

InterSystems IRIS との通信に SSL/TLS を使用する際のクライアントの構成は、使用する技術によって変わってきます。


1. ODBCクライアント、IRISクライアントから接続の場合(IRISスタジオやターミナルなど)
2. .NET クライアントから接続の場合(SSLDefs.iniは要りません)



★1.ODBCクライアント、IRISクライアントから接続の場合(IRISスタジオやターミナルなど)

ODBCやIRISクライアントから接続する場合は、以下の記事にある設定が必要となります。
具体的には、SSLDefs.iniという設定ファイルを作成し、決められた場所に配置します。
 

enlightened【ご参考】
スーパーサーバやTelnetポートでSSLを有効にする際のクライアントの設定

注意:
設定ファイル (SSLDefs.ini) の使用には、以下の制限が適用されます。

  • この設定ファイルは、irisconnect.dll 実行可能ファイルまたは irisconnect64.dll 実行可能ファイル (それぞれ 32 ビット・マシン用と 64 ビット・マシン用) を使用する接続にのみ使用できます。他のメカニズム (ADO など) を使用する接続では、この設定ファイルは使用されません。
0
0 202