これは InterSystems FAQ サイトの記事です。
答え:必要ありません。
InterSystems 製品では、クライアント機能用に特別なライセンスを設けておりません。
通常のサーバーライセンス(サブスクリプションを含む)を保有していれば、そのサーバーライセンスで許容しているキャパシティに応じて、複数のクライアントシステムにクライアント機能をインストールして利用することができます。
InterSystems IRIS for Health™は、世界で最も重要なデータを管理する医療アプリケーションの迅速な開発を目的に特別に設計された世界初、かつ唯一のデータプラットフォームです。 トランザクションの処理と分析、拡張可能な医療データモデル、FHIRベースのソリューション開発、医療情報の相互運用性に関わる標準規格への対応など、すぐに使える強力な機能を搭載しています。 これらすべての機能により、開発者は価値を実現し、画期的なアプリケーションをすばやく構築することができます。 詳細はこちらをご覧ください
これは InterSystems FAQ サイトの記事です。
答え:必要ありません。
InterSystems 製品では、クライアント機能用に特別なライセンスを設けておりません。
通常のサーバーライセンス(サブスクリプションを含む)を保有していれば、そのサーバーライセンスで許容しているキャパシティに応じて、複数のクライアントシステムにクライアント機能をインストールして利用することができます。
InterSystemsは最近、HL7バージョン2の相互運用性に焦点を当てた、IRIS for Health 2020.1のパフォーマンスとスケーラビリティのベンチマークを完了しました。 この記事では、さまざまなワークロードで観察されたスループットを説明し、IRIS for HealthをHL7v2メッセージングの相互運用性エンジンとして使用しているシステムの一般的な構成とサイジングのガイドラインを提供します。
これは InterSystems FAQ サイトの記事です。
管理ポータルの SQL 画面(管理ポータル > システムエクスプローラ > SQL)で、任意の SQL を実行した後、結果の行数などが表示されいる行の右端にある「印刷」のリンクから、CSVファイル出力を選択できます。

「クエリ印刷」画面で「ファイルにエクスポート」をチェックすると「ファイル形式」の欄が表示されます。
形式に「CSV」を指定し、出力ファイル名を指定したあと「エクスポート」ボタンをクリックすると出力できます。
注意:古いバージョンでは正しくCSV出力が行えない場合もあります。新しいバージョンをぜひご利用ください。
プログラムでCSV出力を行いたい場合は、関連記事をご参照ください。
この連載の第1回では、リレーショナルデータベースにおけるEAV(Entity-Attribute-Value)モデルを取り上げ、テーブルにエンティティ、属性、および値を保存することのメリットとデメリットについて確認しました。 このアプローチには柔軟性という点でメリットがあるにもかかわらず、特にデータの論理構造と物理ストレージの基本的な不一致などによりさまざまな問題が引き起こされるという深刻なデメリットがあります。
こういった問題を解決するために、階層情報の保存向けに最適化されたグローバル変数を、EAVアプローチが通常処理するタスクに使用できるかどうかを確認することにしました。
パート1では、オンラインストア向けのカタログをテーブルを使って作成し、その後で1つのグローバル変数のみで作成しました。 それでは、複数のグローバル変数で同じ構造を実装してみることにしましょう。
最初のグローバル変数^catalogには、ディレクトリ構造を保存します。 2つ目のグローバル変数^goodには、店の商品を保存します。 ^indexグローバルには、店のインデックスを保存します。 プロパティは階層的なカタログに関連付けられているため、プロパティ用の個別のグローバル変数は作成しません。
特定文字列が含まれるグローバルを検索する時、どのように行われているでしょうか?
管理ポータルでグローバルを表示して Ctrl+F で検索することもできますが、サイズが大きなグローバルでは表示に時間がかかり難しい場合もあります。
もちろん、$ORDER や $QUERY 関数でループして含まれる文字列を検索することは可能です。
しかし、もっと簡単で便利な方法があります。
管理ポータルで行える、グローバル文字列検索機能 を使う方法です。
こちら、管理ポータルの [システムエクスプローラ] > [グローバル] :検索 から簡単に行えます
例えば、^%ISCLOGグローバルの中から「CSP error cleaning up after page」というエラーが含まれるグローバルを検索するときは以下のようになります。
.png)
↓

どうしても $ORDER や $QUERY 関数を使用してプログラムで行いたい、という場合は以下のようになります。
※サブスクリプトが複数あるときは、 $QUERY 関数で複数階層ループします。
これは InterSystems FAQ サイトの記事です。
システムクラス Config.MapGlobals を使用して登録することができます。
ネームスペース USER からデフォルトデータベース以外のデータベース SAMPLES にある ^Sample.PersonD をグローバルマッピングする方法は以下の通りです(ターミナルでの実行例)。
Config.MapGlobals クラスを使用する方法以外に、インストールマニフェストクラスを利用して定義することもできます。
インストールマニフェストクラスの作成方法詳細については添付をご参照ください。
以下例は、インストールマニフェストでの定義例です(クラス定義は添付内に含まれています)。
これは InterSystems FAQ サイトの記事です。
2025.1以降CORS関連の設定方法は大きく変わっています。
詳細は、以下の記事を参照してください。
jQueryを使用してIRISからJSONデータを取得する方法
%CSP.REST クラスを継承する REST 用ディスパッチクラスで REST を実装している場合は、クロスドメイン制約回避用に用意されたパラメータ HandleCorsRequest を利用します。
設定方法は以下の通りです。
REST 用ディスパッチクラスをスタジオで修正する場合は、
[クラス] > [リファクタ] > [オーバーライド] を開き、[パラメータ]タブを選択 > [HandleCorsRequest] を選択後OKボタンを押下します。
以下の定義が追加されるので、1を設定します。
REST ディスパッチクラスを Atelier で修正する場合は、オーバーライドメニューの用意がないため、パラメータの定義を追加するか、%CSP.REST クラスを開き、HandleCorsRequest の定義をコピーし修正します。
これは InterSystems FAQ サイトの記事です。
Windows システムにインストールされた InterSystems 製品を削除するには、コントロールパネルにあるプログラムの追加と削除(Windows 10の場合は、Windows の設定からアプリを選択)を使用します。
システムに変更を加えますので、管理者権限を持ったユーザでログインして作業を行う必要があります。
1) 管理者(Administrator)でシステムにログインします。
2) システムトレイから、アンインストールを行う InterSystems 製品インスタンスのランチャーを終了します(ランチャークリック → 終了)。
3)コントロールパネルにある プログラムの追加と削除 (Windows 10の場合は、Windows の設定からアプリを選択)で
<InterSystems製品> instance [xxxx] ( xxxx にはインスタンス名が表示されています) を削除します。
例:InterSystems IRIS instance [IRIS]
4) InterSystems 製品インストールディレクトリ(既定では C:\InterSystems\<InterSystems製品> )を Windows エクスプローラ等を使用して削除します。
これは InterSystems FAQ サイトの記事です。
%SYSTEM.License クラスのメソッド利用すると、ライセンス情報を取得できます(実行時は、$SYSTEM.License.メソッド名() と記述します)。
%SYSTEM.License クラスは、ライセンスユーティリティ用システムオブジェクトです。
ユーティリティの詳細については、添付資料をご参照ください。
(クラス詳細については、クラスリファレンス内 %SYSTEM パッケージ以下 License クラスも併せてご覧ください。)
また、ライセンス情報は、管理ポータルからも確認できます。
ライセンスキー情報:
[システム管理] > [ライセンス] 以下
ライセンス使用状況:
[システムオペレーション] > [ライセンス使用量] 以下
これは InterSystems FAQ サイトの記事です。
$ZSTRIPコマンドは、指定された文字列から文字のタイプと文字を削除します。
このコマンドを使用することで文字列から数値部分のみを抽出することが可能です。
$ZSTRIP(string,action,remchar,keepchar)
第1引数(string) :対象文字列
第2引数(action) :string から削除する対象。アクションコードとマスクコードで構成。
第3引数(remchar) :削除する特定の文字を指定。第2引数のマスクコードに含まれない文字も指定可能。【オプション】
第4引数(keepchar):削除しない特定の文字を指定。【オプション】
以下はその例です。
これは InterSystems FAQ サイトの記事です。
$ZF(-100) のコマンドは、以下のフォーマットで使用します。
$ZF(-100, フラグ, コマンド名, コマンドの引数)
OSコマンドを実行する場合は、「/shell」フラグが必要です。
例えば mkdir であれば、次のように使用します。
コマンドの引数が複数ある場合は、以下の例のように引数の数だけ二重引用符で括ってカンマ区切りで指定します。
また、同期・非同期実行は以下のように使用します。
記事で使用されているすべてのソースコード: https://github.com/antonum/ha-iris-k8s
前の記事では、従来型のミラーリングではなく分散ストレージに基づいて、高可用性のあるk8sでIRISをセットアップする方法について説明しました。 その記事では例としてAzure AKSクラスタを使用しました。 この記事では引き続き、k8sで可用性の高い構成を詳しく見ていきますが、 今回は、Amazon EKS(AWSが管理するKubernetesサービス)に基づき、Kubernetes Snapshotに基づいてデータベースのバックアップと復元を行うためのオプションが含まれます。
早速作業に取り掛かりましょう。 まず、AWSアカウントが必要です。AWS CLI、kubectl、およびeksctlツールがインストールされている必要があります。 新しいクラスタを作成するために、次のコマンドを実行します。
eksctl create cluster
--name my-cluster
--node-type m5.2xlarge
--nodes 3
--node-volume-size 500
--region us-east-1
このコマンドは約15分掛けてEKSクラスタをデプロイし、それをkubectlツールのデフォルトのフォルダに設定します。
これは InterSystems FAQ サイトの記事です。
InterSystems製品のクラスクエリにはSQL文を利用する方法と、ユーザコードによる記述が選択できます。
スタジオメニューの [クラス] >[追加] > [クエリ] を選択すると、クエリウィザードが起動します。
.png)
画面に、「実装」を選択する項目があり、「このクエリはユーザコードで定義されている」を選択すると SQL文ではなく、ユーザコードによりクエリ定義が行えます。

次画面以降では、必要な情報として、入力パラメータ、結果セットの選択カラムの指定を行います。 ウィザード終了後、ユーザコードのひな型として、以下のメソッドがクラス定義に追加されます。
{QueryName}Execute()
{QueryName}Fetch()
{QueryName}Close()
({QueryName}はクエリウィザードで指定するクエリ名です。)
これらのメソッドに実際に実行したいユーザコードを記述していきます。
以下に、詳細記述とJavaから呼び出すサンプルがございますのでご参照ください。
これは InterSystems FAQ サイトの記事です。
Linux上では、以下の手順で InterSystems IRIS (以降IRIS)のインスタンスを削除してください。
(1) アンインストールしたい IRIS のインスタンスを iris stop で停止
# iris stop インスタンス名
(2) 以下のコマンドでインスタンス情報を削除
# iris delete インスタンス名
(3) IRIS のインストールディレクトリを rm コマンドで削除
# rm -r インストールディレクトリ
IRISは、インストール先のディレクトリのほかに、以下の(a)(b)も使用しています。
-----------------------------------------
(a) /usr/local/etc/irissys フォルダ
(b) /usr/bin/iris
/usr/bin/irisdb
/usr/bin/irissession
-----------------------------------------
もしマシン上から、すべての IRIS を完全に削除したい場合は、上記のアンインストール手順に加えて、(a)(b)をすべて削除してください。
但し、これらは全インスタンスで共通で使用しています。
これは InterSystems FAQ サイトの記事です。
ネームスペースを作成後にInteroperability機能を有効にするには、%EnsembleMgrクラスのEnableNamespaceメソッドを使用します。
do ##class(%EnsembleMgr).EnableNamespace($namespace)これは InterSystems FAQ サイトの記事です。
24時間停止しないシステムの場合、「ジャーナルファイルの削除設定」に合わせて 0時30分 に古いジャーナルファイルを削除します。
「ジャーナルファイルの削除設定」より古いジャーナルファイルが残っている原因として、オープンされたままのトランザクションが存在していることが考えられます。
その場合、トランザクション実行中プロセスを探し、トランザクションを確定させることでジャーナルファイルを削除できるようになります。
以下のサンプルは、オープンされたままのトランザクションの存在確認と、存在する場合は対象ファイル名とジャーナルレコード情報が出力されます。
(サンプルは、https://github.com/Intersystems-jp/CheckOpenTransaction からダウンロードできます)
※注意※
確認対象のジャーナルファイルサイズが大きい場合、ジャーナルファイルが多数ある場合は、実行に時間がかかるため、弊社サポートセンターまでご連絡ください。
Class ISJ.JournalUtility
{
ClassMethod GetOpenTransaction() As %Status
{
set status=$$$OK
#dim ex As %Exception.これは InterSystems FAQ サイトの記事です。
何らかの理由でサーバー移行が必要になった際に、移行前の環境から移行後の環境に設定情報をコピーすることで設定作業を軽減できます。
以下の設定情報を移行できます。
注1 パスワードを設定している場合には、パスワードのみ手動で再設定が必要です。
注2 ^%ZSTART, ^ZMIRRORルーチンなど
優先接続サーバー設定に関しても、物理的には移行可能ですが、Windowsのレジストリー情報をコピーする必要があります。
しかしながらレジストリー情報をコピーして他システムに移行する方法は通常推奨される方法ではありませんので、安心、安全を優先する場合は、手動設定することをお勧めします。
各設定のエクスポート/インポート方法は、以下のリンクをご確認ください。
また、以下のドキュメントもあわせてご覧ください。
これは InterSystems FAQ サイトの記事です。
InterSystems 製品には、テーブルのコンテンツに関する統計を収集し、クエリの最適化に役立てる「テーブルチューニング機能」があります。
設定方法は、以下のドキュメントをご参照ください。
ターミナルでは次のコマンドを実行します。
do $SYSTEM.SQL.Stats.Table.GatherTableStats("スキーマ名.テーブル名")2021.1以前のバージョンでは以下メソッドを利用します。
Do $system.SQL.TuneTable("スキーマ名.テーブル名",1,1)また、以下の資料もご参照ください。
1) パフォーマンス調査の基礎知識として必要なグローバル構造の解説やSQLの動作の仕組みからクエリプランの見方の解説
2) パフォーマンスチューニングの例(P13~)
3) ビットマップ・インデックスの圧縮やオプティマイザ・ヒントなど、Caché SQLのパフォーマンスを最大限に引き出すための情報について
4) パフォーマンスに困ったときにどこに着目し、どのツールで調べていくか、お客様から日々ご相談をいただくカスタマーサポートから、解決に向かうアプローチの「イロハ」をご紹介するビデオ
5) 開発者コミュティのパフォーマンス関連情報(performanceタグ)
これは InterSystems FAQ サイトの記事です。
リレーションシップが設定されており 1対n の n が多量の場合、そのリレーションシップの順次処理などで大量のメモリ消費となるケースがあります。
プログラムの中で多側オブジェクトを参照し内部的にスウィズル処理した後には、そのOREFを含む変数の解放(削除、他の値の設定など)だけでは、その多側オブジェクトとリレーションシップオブジェクトが解放されないことが原因です。
それらを完全にメモリから解放するためには、OREF変数の解放とRelationshipオブジェクトの%UnSwizzleAt<%Library.RelationshipObject >メソッドの実行による明示的なメモリ解放が必要です。
- 使用例 -
Do {
Set employee = company.Employees.GetNext(.key)
If (employee '= "") {
Write employee.Name,!
// remove employee from memory
Do company.Employees.これは InterSystems FAQ サイトの記事です。
こちらは、コンパイル時に既にそのクラスのインスタンスを開いている場合に起こるエラーです。
対処方としては以下の2つの方法があります。
インスタンス化しているプロセスを特定したい場合は、以下のサンプルルーチンをお試しください。
/// Test.これは InterSystems FAQ サイトの記事です。
インターシステムズでは、お客様のペースで学ぶことができる柔軟でユーザセントリックな教育サービスを提供しています。
ラーン&プレイ
InterSystems オンラインラーニングにご登録いただくと、Java から InterSystems IRISにアクセスする様々なサンプルをご利用いただけます。
Java のサンプルは、オンラインラーニングの以下のページでご紹介しています(英語のみ)。
Welcome to the Java QuickStart!
オンラインラーニングサービスアカウントのない方のために、簡単に手順をご紹介します。
※詳細については、上記オンラインラーニングサービスページをご覧ください。
http://github.com/intersystems/quickstarts-java Eclipse を使用する場合:
https://github.ソリューションを Amazon Web Services エコシステム、サーバーレスアプリケーション、または boto3 を使用した Python スクリプトにスムーズに統合する方法を探している場合は、IRIS Python Native API を使用するのが最適です。 IRIS で何かを取得したり設定したりしてアプリケーションに素晴らしい機能を備える必要があるまで、本番の実装を大々的に構築する必要はありません。したがって、誰かにとって重要なものまたはあなた以外にはまったく重要でないもの(これも同じくらい重要なことです)を構築できるようにこの記事が役に立てればと思います。

これは InterSystems FAQ サイトの記事です。
InterSystems IRIS Business Intelligence 用メニューの Analytics(または DeepSee)を使用するためには、使用するネームスペース用ウェブアプリケーションパスを Analytics(またはDeepSee)に対応するように設定変更する必要があります。
詳細については以下のドキュメントをご参照ください。
【IRIS】
InterSystems IRIS Business Intelligence の Web アプリケーション設定について
【2015.1~2018.1】
DeepSee の Web アプリケーション設定について
これは InterSystems FAQ サイトの記事です。
※データベースファイルとは、IRIS.DAT、および、CACHE.DATのことを指します。
Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 以降のバージョンより、データベースファイル のサイズの縮小に、データベースの「圧縮」と「未使用領域の削除」機能をあわせて使用できます。
※注意※
Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 より前のバージョンでは、データベースの「圧縮」機能は使用できません。使用された場合、データベース破損が引き起こされる可能性があります(「未使用領域の削除」機能は利用できます)。
詳細情報は以下、弊社ウェブサイト内のページをご確認ください。
製品ニュースとアラート>警告: データベース圧縮またはデフラグ後のデータベース整合性の問題
データベースサイズ縮小手順は以下の通りです。
管理ポータル: [システムオペレーション] > [データベース] を開き、操作したいデータベース名をクリックします。
(または、画面左上の[空き容量]ボタンをクリックし、データベースの空き容量を表示します。
PHP はその公開当初から、多くのライブラリや市場に出回っているほぼすべてのデータベースとの統合をサポートしていることでよく知られています(またそのことで批判を受けてもいます)。 にもかかわらず、何らかの不可解な理由により、グローバル変数については階層型データベースをサポートしませんでした。
グローバル変数は階層情報を格納するための構造です。 Key-Value型データベースにある程度似ていますが、キーを次のようにマルチレベルにできるという点で異なっています。
InterSystems Reportsでレポートを作成するのは難しいですか?
ネタバレ
これは InterSystems FAQ サイトの記事です。
以下のような情報収集ツールがあります。
| GLOSTAT | グローバルアクセスのカウンター情報 |
| mgstat | グローバルアクセスのカウンター情報を連続してファイルに記録する |
| JOBEXAM | 問題のあるプロセスをモニターする |
| SystemCheck または Buttons |
内部情報の収集
使用方法詳細は以下の記事もご参照ください。
|
| PERFMON |
グローバル、ルーチン、プロセス毎のグローバルアクセスカウンタ情報
|
これは InterSystems FAQ サイトの記事です。
ジャーナルファイルの削除は、自動削除と手動削除が選択できます。
「自動削除」については、以下2つの方法が選択できます。
A) タスクスケジュールを使用して指定時間に自動削除する方法
B) オンラインバックアップ使用時、指定回数成功後に自動削除する方法
A) タスクスケジュールを使用して指定時間に自動削除する方法
インストール時デフォルトで登録されるタスクスケジュール「ジャーナルファイルの削除」を使用して自動削除します。
自動削除を行う前に運用環境に合わせて適切な日数分ジャーナルを保持するよう、ジャーナルファイルの設定を修正します。
ジャーナルファイルの設定は以下メニューを使用します。
【バージョン2011.1以降】 [ホーム] > [システム管理] > [構成] > [システム構成] > [ジャーナル設定]
【バージョン5.1~2010.x】 [ホーム] > [構成] > [ジャーナル設定]
「ジャーナル設定画面」にある「ジャーナルファイルの削除」から「この日数後」の設定を使用します。
日数の指定はバックアップ期間に合わせて設定します。
例えば、バックアップが1週間毎に行われている場合は、バックアップが行なわれる間のジャーナルファイルをを保持する必要があるため、「7」を設定します。
1 年ほど前、私のチーム(多数の社内アプリケーションの構築と管理、および他の部署のアプリケーションで使用するツールやベストプラクティスの提供を担う InterSystems のアプリケーションサービス部門)は、Angular/REST ベースのユーザーインターフェースを元々 CSP や Zen を使って構築された既存のアプリケーションに作りこむ作業を開始しました。 この道のりには、皆さんも経験したことがあるかもしれない興味深いチャレンジがありました。既存のデータモデルとビジネスロジックに新しい REST API を構築するというチャレンジです。
このプロセスの一環として、REST API 用に新しいフレームワークを構築しました。あまりにも便利であるため、自分たちだけに取っておくわけにはいきません。 そこで、Open Exchange の
はじめに、設計の目標と意図についていくつか以下に示します。 すべての目標が実現したわけではありませんが、順調に進んでいます!
開発者の皆様、 InterSystems IRIS for Health の日本語オンラインドキュメントを、一時的にご用意しました。
こちらをご覧ください。
日本語 2020.1 になります。
InterSystems IRIS for Health のドキュメントはInterSystems IRIS のドキュメントを包含しています。
一時的な英語版ドキュメントについては、以下の記事をご参照ください。
※2021年8月13日追記
ドキュメントサーバが復活したため、通常のドキュメントページをご確認くださいませ。長時間ご迷惑をおかけし、申し訳ございませんでした。