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 構造へのポインタ |
IRISctlConfigStatus
InterSystems IRIS 構成の状態を返します。
構文
IRISctlConfigStatus(char* config)
返り値
以下の 0 から 4 までの値を返します。
0 |
構成は起動され、実行中です。 |
1 |
構成は、開始あるいは終了中です。 |
2 |
構成の開始あるいはシャット・ダウンがアボートされました。 |
3 |
構成はダウンしました。 |
4 |
エラー |
IRISctlControl
Windows NT の InterSystems IRIS コントロール・サービスを経由して、あるいは Windows 95/98 で直接 InterSystems IRIS 構成を制御します。
構文
IRISctlControl(char *command, char *config)
command |
以下のコマンドのいずれか 1 つを使用します。
-
start — 構成を開始
-
stop — 構成の無理のないシャット・ダウン
-
stopnoshut — ユーザ提供のシャット・ダウン・ルーチンを実行せずに、構成をシャット・ダウン
-
force — 構成の強制終了。UNIX® システムの irisforce と同じです。
-
stopstart — 無理のない構成の停止と、すばやい再起動
|
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 の失敗 |
Note:
Windows NT では、指定の構成を実行する必要があります。構成が実行中かどうかが判別できない場合、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 の失敗 |
Note:
hIO 配列のハンドルは、必ず継承できる必要があります。 DuplicateHandle を使用して、子プロセスによるハンドルの継承を可能にします。
Windows NT では、指定の構成を実行する必要があります。構成が実行中かどうかが判別できない場合、IRISctlConfigStatus と IRISctlControl を使用してチェックし、必要な構成を開始してください。これにより InterSystems IRIS は、コントロール・サービスを使用せずに構成を開始しないようにします。