Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

プロダクションのデータ・ストレージの制御

この章では、InterSystems IRIS® のデータの格納場所を制御する方法について説明します。相互運用対応ネームスペースでは、InterSystems IRIS データベースにデータが格納されます。InterSystems IRIS データベース・ストレージを制御する方法に関する一般情報は、"システム管理ガイド" を参照してください。この章では、InterSystems IRIS のインストール環境にとって有用ないくつかの補足情報を提供します。

ルーチンとグローバルの個別のデータベース

新規ネームスペースを作成する際は、ルーチン (コード) が格納されているデータベースとグローバル (データ) が格納されているデータベースを指定します。新規ネームスペースの場合、ルーチンとグローバルに個別のデータベースを指定することをお勧めします。多くの既存のネームスペースで、ルーチンとグローバルの両方を格納する 1 つのデータベースが使用されています。このようなデータベースを 2 つの個別のデータベースに分離することはできますが、データベース間でのルーチンのコピーなどの処理を伴うため、通常はそこまでする価値はありません。

Note:

Ens.ProductionOpens in a new tabEns.Rule.RuleOpens in a new tabなどのクラスは、動的に更新できますが、ルーチン用データベースに格納されます。このため、相互運用対応ネームスペースで動的データをミラーリングする場合は、ミラーにルーチン用データベースを含める必要があります。

プロダクションのコンパイルは常に、そのプロダクションが実行されているシステム上で行う必要があります。InterSystems IRIS のコードをあるシステム上でコンパイルして、“プリコンパイル” されたデータベースを別のシステムにコピーできますが、この操作を相互運用対応ネームスペースについて実行することは避けてください。

プロダクションとネームスペース

ほとんどの場合、プロダクションは同一のネームスペース内で定義され実行されますが、プロダクション・クラスを定義したネームスペースとは別のネームスペースでプロダクション・クラスを認識できるようにするために、InterSystems IRIS パッケージ・マッピングを使用できます。パッケージ・マッピングを使用して、複数のネームスペースでプロダクションを認識できるようにしている場合は、それらのネームスペースのうちの 1 つのみを指定してプロダクションのコンパイルと実行を行う必要があります。そのプロダクションを別のネームスペースでコンパイル、変更、または実行してはいけません。同一のプロダクションを複数のネームスペースで実行または変更すると、診断困難な問題が発生することがあります。どのような場合であっても、この操作を行ってはいけません。パッケージ・マッピングを使用してデータベースをネームスペースにマップしていない場合は、この問題について配慮する必要はありません。

InterSystems IRIS のパスワード資格情報の格納場所

InterSystems IRIS では、以下のオプションを有効にしてネームスペースを新規作成した場合、パスワード資格情報を格納するための専用のデータベースが作成されます。

  • [このネームスペースでグローバルのデフォルト・データベースは] を [ローカルデータベース] に指定

  • [相互運用プロダクション用にネームスペースを有効化]

Note:

InterSystems IRIS では、USER ネームスペースの場合、パスワード用データベースは作成されません。

また、InterSystems IRIS for Health および HealthShare ではデフォルトでパスワード用データベースは作成されません。これらは、必要に応じて、%Library.EnsembleMgrOpens in a new tab クラスの CreateNewDBForSecondary() メソッドを呼び出すことで作成できます。

パスワード用データベースは、グローバル用のデフォルト・データベースを含むディレクトリのサブディレクトリ内に表示されます。パスワード用データベースとそれに対応するサブディレクトリの両方に、グローバル用のデフォルト・データベースの名前に SECONDARY が追加された名前が付けられます。例えば、グローバル用のデフォルト・データベースの名前が LABS の場合、パスワード用データベースとそれに対応するサブディレクトリの名前は LABSSECONDARY になります。

InterSystems IRIS では、%DB_database という名前のリソースによってパスワード用データベースが保護されます。database はパスワード用データベースの名前です。例えば、LABSSECONDARY データベースは、%DB_LABSSECONDARY リソースによって保護されます。通常、ユーザには、パスワード用データベースを保護しているリソースに対する特権は不要です。

パスワード用データベース内のデータは、^Ens.SecondaryData.Password グローバルに格納されます。

InterSystems IRIS では、パスワードを別個のデータベースに格納することで、すべてのネームスペース・データを暗号化するという処理負荷が生じることなく、機密アカウント情報を暗号化できます。

Note:

一次 InterSystems IRIS データベースをミラー・データベースとして作成した場合は、パスワード用データベースは一次データベースと同じ設定に基づいて自動的にミラーリングされます。既存の InterSystems IRIS データベースにミラーリングを追加する場合は、パスワード用データベースにミラーリングを明示的に追加する必要があります。ミラーリングの詳細は、"高可用性ガイド" を参照してください。

InterSystems IRIS の一時プロダクション・データの格納場所

プロダクションの稼働中に、InterSystems IRIS では一時データが作成されます。このデータは、プロダクションが停止すると削除されます。通常はこの一時データを無視できますが、エラー状態からの回復に使用できる場合があります。

以下のオプションを有効にして新しいネームスペースを作成すると、InterSystems IRIS では、一時データ用のジャーナリングされないデータベースが追加で作成されます。

  • [このネームスペースでグローバルのデフォルト・データベースは] を [ローカルデータベース] に指定

  • [相互運用プロダクション用にネームスペースを有効化]

Note:

InterSystems IRIS では、USER ネームスペースの場合、一時データ用データベースは作成されません。

InterSystems IRIS for Health および HealthShare ではデフォルトで一時データ用データベースは作成されません。これらは、必要に応じて、%Library.EnsembleMgrOpens in a new tab クラスの createNewDBForEnsTemp() メソッドを呼び出すことで作成できます。

ネームスペースレベルの一時データ用のデータベースは、IRISTEMP データベースとは別であり、以下のグローバルが含まれます。

  • ^IRIS.Temp.EnsRuntimeAppData — プロダクションを実行するために必要な一時データが含まれます。

  • ^IRIS.Temp.EnsJobStatus — プロダクションが開始されるたびにエントリが追加されます。このエントリは、プロダクションが停止すると削除されます。

  • ^IRIS.Temp.EnsMetrics — プロダクション・モニタによって表示されるメトリックと同様の、プロダクションのメトリックが含まれます。

一時データ用データベースは、グローバル用のデフォルト・データベースを含むディレクトリのサブディレクトリ内に表示されます。一時データ用データベースとそれに対応するサブディレクトリの両方に、グローバル用のデフォルト・データベースの名前に ENSTEMP が追加された名前が付けられます。例えば、グローバル用のデフォルト・データベースの名前が LABS の場合、一時データ用データベースとそれに対応するサブディレクトリの名前は LABSENSTEMP になります。

InterSystems IRIS では、グローバル用のデフォルト・データベースを保護するものと同じリソースで、一時データ用データベースが保護されます。

FeedbackOpens in a new tab