Windows クライアントからの InterSystems IRIS の制御
InterSystems IRIS® データ・プラットフォームには、InterSystems IRIS 構成を制御し、InterSystems IRIS プロセスを開始する Windows クライアント・プログラムのメカニズムが用意されています。これにより、標準 InterSystems IRIS ツールを使用せずに、正確な構成情報で InterSystems IRIS プロセスを自動的に開始するアプリケーションを配布できます。このツールにより、以下が可能になります。
-
指定された構成名の InterSystems IRIS ディレクトリ・パスとサービス名を検索
-
InterSystems IRIS システムの状態を取得
-
InterSystems IRIS 構成を直接、あるいは InterSystems IRIS コントロール・サービスから制御。これは、実行中の Windows バージョンに依存します。
-
適切な設定で InterSystems IRIS プロセスを開始
irisctl.dll を動的にロードし、その機能を使用することにより、これらのアクションを実行できます。
IRISctlGetDirs
指定された構成名に対して、構成・バイナリ・マネージャ、それぞれのディレクトリ・パスと、サービス名を検索します。
IRISctlGetDirs(char *config, IRISCTL_DIR_INFO *dirinfo)
config | 要求される構成名 |
dirinfo | ディレクトリ情報が格納される C 構造へのポインタ |
エラー時に (char *0) 返します。
IRISctlConfigStatus
InterSystems IRIS 構成の状態を返します。
IRISctlConfigStatus(char* config)
config | 要求される構成名 |
以下の 0 から 4 までの値を返します。
0 | 構成は起動され、実行中です。 |
1 | 構成は、開始あるいは終了中です。 |
2 | 構成の開始あるいはシャット・ダウンがアボートされました。 |
3 | 構成はダウンしました。 |
4 | エラー |
IRISctlControl
Windows の InterSystems IRIS コントロール・サービスを経由して InterSystems IRIS 構成を制御します。
IRISctlControl(char *command, char *config)
command | 以下のコマンドのいずれか 1 つを使用します。
|
config | 要求される構成名 |
IRISCTL_SUCCESS | 処理の成功 |
IRISCTL_ERROR | 汎用エラー |
IRISCTL_INVALID_COMMAND | 無効なコマンド引数 |
IRISCTL_INVALID_CONFIGURATION | 未定義の構成 |
IRISCTL_CONTROL_STU_ERROR | ^STU の失敗 |
IRISctlGetLastError は、エラーの返り値の後ろに、エラー文字列情報へのポインタを返します。
IRISctlRun
指示された構成とネームスペースで InterSystems IRIS プロセスを開始し、指示された主要入出力デバイスを使用し、指示されたルーチンを呼び出します。
IRISctlRun(char *config, char *routine, char *namespace, char *IOtype)
config | 実行中の構成名です。 |
routine | 開始するために要求されるルーチン名です。 |
namespace | 要求されるネームスペース名です。 |
IOtype | 入出力の処理方法です。以下の値を指定できます。
|
IRISCTL_SUCCESS | 処理の成功 |
IRISCTL_ERROR | 汎用エラー |
IRISCTL_INVALID_COMMAND | 無効なコマンド引数 |
IRISCTL_INVALID_CONFIGURATION | 未定義の構成 |
IRISCTL_CONTROL_STU_ERROR | ^STU の失敗 |
Windows では、指定の構成を実行する必要があります。構成が実行中かどうかが判別できない場合、IRISctlConfigStatus と IRISctlControl を使用してチェックし、必要な構成を開始してください。これにより InterSystems IRIS は、コントロール・サービスを使用せずに構成を開始しないようにします。
IRISctlRunIO
指示された構成とネームスペースで InterSystems IRIS プロセスを開始し、指示された主要入出力デバイス・タイプを使用し、指示されたルーチンと、入出力デバイスおよびエラー・デバイス用の追加の入出力仕様を呼び出します。
IRISctlRunIO(
char *config,
char *routine,
char *namespace,
char *IOtype,
HANDLE *hIO,
char *cwd,
char *options,
HANDLE *child,
DWORD *childPID))
config | 実行中の構成名で、すべて大文字です。 |
routine | 開始するために要求されるルーチン名です。 |
namespace | 要求されるネームスペース名です。 |
IOtype | 入出力の処理方法です。プロセスで TCP ソケットが使用されるため、値は TCP である必要があります。 |
hIO | 3 つの配列は、InterSystems IRIS プロセスの標準入出力、エラー・デバイスとして使用するために処理します。 |
cwd | 子プロセスの作業中のディレクトリ・パスです。ディレクトリ引数が 0 の場合、現在のプロセスの作業ディレクトリを使用します。 |
option | 追加の irisdb.exe コマンド行オプションが、生成されたコマンド行に追加されます。例えば、大規模プロセスのメモリ・サイズ (-b 1024) を定義できます。 |
child | 子プロセスへのハンドルが返される HANDLE タイプ変数へのポインタです。ハンドルの値が 0 の場合、子プロセスのハンドルは、この関数によってクローズされます。 |
childPID | 生成された irisdb.exe プロセスの PID へのポインタです。 この引数は、子の PID が要求されない場合、ゼロになります。 |
IRISCTL_SUCCESS | 処理の成功 |
IRISCTL_ERROR | 汎用エラー |
IRISCTL_INVALID_COMMAND | 無効なコマンド引数 |
IRISCTL_INVALID_CONFIGURATION | 未定義の構成 |
IRISCTL_CONTROL_STU_ERROR | ^STU の失敗 |
hIO 配列のハンドルは、必ず継承できる必要があります。 DuplicateHandle を使用して、子プロセスによるハンドルの継承を可能にします。
Windows では、指定の構成を実行する必要があります。構成が実行中かどうかが判別できない場合、IRISctlConfigStatus と IRISctlControl を使用してチェックし、必要な構成を開始してください。これにより InterSystems IRIS は、コントロール・サービスを使用せずに構成を開始しないようにします。