機能説明
本関数は、以下の機能を提供します。
指定したワークユニットを起動します。
本APIを使用する前に必ずInterstage運用API環境の初期化を行ってください。
注1) Solaris版で、ISOP_005以降を指定した場合は、環境初期化時に指定したシステムが対象となります。
注2) 以下の場合は、デフォルトシステムが対象となります。
- Windows(R)版の場合
- pktvl に ISOP_003以下を指定した場合
- Linux版の場合
指定したワークユニットを停止します。
本APIを使用する前に必ずInterstage運用API環境の初期化を行ってください。
注1) Solaris版で、ISOP_005以降を指定した場合は、環境初期化時に指定したシステムが対象となります。
注2) 以下の場合は、デフォルトシステムが対象となります。
- Windows(R)版の場合
- pktvl に ISOP_003以下を指定した場合
- Linux版の場合
指定したオブジェクトを閉塞します。
本APIを使用する前に必ずInterstage運用API環境の初期化を行ってください。
注1) Solaris版で、ISOP_005以降を指定した場合は、環境初期化時に指定したシステムが対象となります。
注2) 以下の場合は、デフォルトシステムが対象となります。
- Windows(R)版の場合
- pktvl に ISOP_003以下を指定した場合
- Linux版の場合
指定したオブジェクトの閉塞を解除します。
本APIを使用する前に必ずInterstage運用API環境の初期化を行ってください。
注1) Solaris版で、ISOP_005以降を指定した場合は、環境初期化時に指定したシステムが対象となります。
注2) 以下の場合は、デフォルトシステムが対象となります。
- Windows(R)版の場合
- pktvl に ISOP_003以下を指定した場合
- Linux版の場合
形式
#include <ISOP.h> void ISOPoperate (char *reqparm)
引数reqparmは、パラメタ構造体を指すポインタです。パラメタ構造体は使用する機能ごとに、指定された形式の構造体を使用者が獲得し、設定します。
パラメタ構造体へのポインタをchar*型にキャストして、引数としてください。
獲得した領域は、あらかじめゼロクリアしてください。
1)ワークユニット起動
下記のISOP_OPEWU構造体を獲得し、パラメタとして指定してください。
typedef struct _isop_opewu_t { /* パラメタ設定用制御表定義 */ ISOP_CTRL opctrl; /* 基本情報 */ char wuname[ISOP_DEFWUNMMAX]; /* ワークユニット名 */ long ctrlopt; /* 停止オプション */ char rsv[64]; /* リザーブ */ } ISOP_OPEWU;
メンバ名 | 型 | 設定値 | 意味 |
---|---|---|---|
opctrl.request | long | ISOP_RSTRWU | 要求コード: |
opctrl.pktvl | unsigned long | ISOP_006 | 制御表のバージョン情報 |
wuname | char[] | ワークユニット名 | ワークユニット名 |
メンバ名 | 型 | 復帰値 | 意味 |
---|---|---|---|
opctrl.pktvl | unsigned long | ISOP_006 | 復帰した制御表のバージョン情報 |
opctrl.result | long | 0 | 正常終了 |
-1 | 異常終了 | ||
opctrl.detail | long | 原因コード | エラーの詳細情報(実行結果詳細値を参照) |
注1)
APIが復帰時に通知する制御表のバージョン情報については、“OLTPサーバ運用ガイド”の“Interstage運用APIの制御表のバージョン・レベルについて”を参照してください。
注2)
異常終了した場合はopctrl.detailのみ正しい値を設定します。その他の値の内容は不定です。
define値 | 値 | 意味 |
---|---|---|
ISOP_ENOINIT | 2003 | API環境が初期化されていません。 |
ISOP_EINVAL_REQ | 2101 | 要求コードに誤りがあります。 |
ISOP_EAGAIN | 3001 | システム資源不足が発生しました。しばらくしてから再度実行してください。 |
ISOP_ENOMEM | 3002 | メモリ不足が発生しました。 |
ISOP_ESYSERR | 4001 | システムエラー。 |
ISOP_EAPMERROR | 4003 | 何らかの原因でワークユニットの起動に失敗しました。コンソールに異常内容をしめすメッセージが出力されます。 |
ISOP_ESTPIS | 4102 | Interstageが起動されていません。 |
ISOP_ENOWU | 4103 | 指定されたワークユニットは存在しません。または、ワークユニットの形式に誤りがあります。 |
ISOP_EWUDEF | 4104 | 指定されたワークユニットの定義に誤りがあります。 |
| 4107 | 割り込みが発生しました。 |
| 4110 | 操作対象システムが削除されました。(注) |
ISOP_ESTRWU | 4206 | 指定されたワークユニットはすでに起動/活性化されています。 |
ISOP_ECONDWU | 4210 | 指定されたワークユニットは操作できない状態です。 |
注)pktvlがISOP_005以降の場合に有効。
2)ワークユニット停止
ワークユニット起動時に獲得、設定した制御表を、パラメタとして指定してください。
・ワークユニット起動時の制御表が存在する場合
メンバ名 | 型 | 設定値 | 意味 |
---|---|---|---|
opctrl.request | long | ISOP_RSTPWU | 要求コード: |
ctrlopt | long | ISOP_RSTPWU_NORMAL | 停止オプション:通常停止 |
ISOP_RSTPWU_CANCEL | 停止オプション:強制停止 | ||
ISOP_RSTPWU_SYNC | 同期停止 (注1) |
注1)
CORBAワークユニットのみ同期停止を指定できます。
・ワークユニット起動時の制御表が存在しない場合
メンバ名 | 型 | 設定値 | 意味 |
---|---|---|---|
opctrl.request | long | ISOP_RSTPWU | 要求コード: |
opctrl.pktvl | unsigned long | ISOP_006 | 制御表のバージョン情報 |
wuname | char[] | ワークユニット名 | ワークユニット名 |
ctrlopt | long | ISOP_RSTPWU_NORMAL | 停止オプション:通常停止 |
ISOP_RSTPWU_CANCEL | 停止オプション:強制停止 | ||
ISOP_RSTPWU_SYNC | 同期停止 |
メンバ名 | 型 | 復帰値 | 意味 |
---|---|---|---|
opctrl.pktvl (注1) | unsigned long | ISOP_006 | 復帰した制御表のバージョン情報 |
opctrl.result | long | 0 | 正常終了 |
-1 | 異常終了 | ||
opctrl.detail | long | 原因コード | エラーの詳細情報(実行結果詳細値を参照) |
注1)
APIが復帰時に通知する制御表のバージョン情報については、“OLTPサーバ運用ガイド”の“Interstage運用APIの制御表のバージョン・レベルについて”を参照してください。
注2)
異常終了した場合はopctrl.detailのみ正しい値を設定します。その他の値の内容は不定です。
define値 | 値 | 意味 |
---|---|---|
ISOP_ENOINIT | 2003 | API環境が初期化されていません。 |
ISOP_EINVAL_REQ | 2101 | 要求コードに誤りがあります。 |
ISOP_EINVAL_CTRL | 2102 | 停止オプションに誤りがあります。 |
ISOP_EAGAIN | 3001 | システム資源不足が発生しました。しばらくしてから再度実行してください。 |
ISOP_ENOMEM | 3002 | メモリ不足が発生しました。 |
ISOP_ESYSERR | 4001 | システムエラー。 |
ISOP_ESTPABNDWU | 4004 | ワークユニットの停止処理中にワークユニットが異常終了しました。 |
ISOP_ESTPIS | 4102 | Interstageが起動されていません。 |
ISOP_ENOWU | 4103 | 指定されたワークユニットは存在しません。または、ワークユニットの形式に誤りがあります。 |
| 4107 | 割り込みが発生しました。 |
| 4110 | 操作対象システムが削除されました。(注) |
| 4201 | ワークユニット起動ユーザと異なったユーザが指定されています。 |
ISOP_ESTPWU | 4204 | 指定されたワークユニットは起動されていません。 |
ISOP_EREQREJECT | 4205 | キューにデータが存在するためワークユニットは停止できない状態です。 |
ISOP_ECONDWU | 4210 | 指定されたワークユニットは操作できない状態です。 |
注)pktvlがISOP_005以降の場合に有効。
3)オブジェクト閉塞
下記のISOP_OPEOBJ構造体を獲得し、パラメタとして指定してください。
typedef struct _isop_opeobj_t { /* パラメタ設定用制御表定義 */ ISOP_CTRL opctrl; /* 基本情報 */ char objname[256]; /* オブジェクト名(インプリメンテーショリポジトリID) */ char objname2[256]; /* インプリメンテーションリポジトリID内オブジェクト名 */ char rsv[256]; /* リザーブ */ } ISOP_OPEOBJ;
メンバ名 | 型 | 設定値 | 意味 |
---|---|---|---|
opctrl.request | long | ISOP_RINHOBJ | 要求コード: |
opctrl.pktvl | unsigned long | ISOP_006 | 制御表のバージョン情報 |
objname | char* | オブジェクト名 | オブジェクト名 (注1) (注2) |
objname2 | char* | インプリメンテーションリポジトリID内オブジェクト名 | インプリメンテーションリポジトリID内オブジェクト名 (注2) |
注1)
objnameのみを設定した場合、オブジェクトの閉塞が行われます。
注2)
objname,objname2を設定した場合、インプリメンテーションリポジトリID内オブジェクトのキュー閉塞が行われます。
メンバ名 | 型 | 復帰値 | 意味 |
---|---|---|---|
opctrl.pktvl (注1) | unsigned long | ISOP_006 | 復帰した制御表のバージョン情報 |
opctrl.result (注2) | long | 0 | 正常終了 |
-1 | 異常終了 | ||
opctrl.detail | long | 原因コード | エラーの詳細情報(実行結果詳細値を参照) |
注1)
APIが復帰時に通知する制御表のバージョン情報については、“OLTPサーバ運用ガイド”の“Interstage運用APIの制御表のバージョン・レベルについて”を参照してください。
注2)
異常終了した場合はopctrl.detailのみ正しい値を設定します。その他の値の内容は不定です。
define値 | 値 | 意味 |
---|---|---|
ISOP_ENOINIT | 2003 | API環境が初期化されていません。 |
ISOP_EINVAL_REQ | 2101 | 要求コードに誤りがあります。 |
ISOP_EAGAIN | 3001 | システム資源不足が発生しました。しばらくしてから再度実行してください。 |
ISOP_ENOMEM | 3002 | メモリ不足が発生しました。 |
ISOP_ESYSERR | 4001 | システムエラー。 |
ISOP_ESTPIS | 4102 | Interstageが起動されていません。 |
ISOP_ENOOBJ | 4105 | 指定されたオブジェクトは存在しません。 |
ISOP_EINTR | 4107 | 割り込みが発生しました。 |
| 4110 | 操作対象システムが削除されました。 |
| 4201 | ワークユニット起動ユーザと異なったユーザが指定されています。 |
ISOP_ESTPWU | 4204 | 指定されたオブジェクトが属するワークユニットが起動されていません。 |
ISOP_EINHOBJ | 4207 | 指定されたオブジェクトはすでに閉塞されています。 |
ISOP_EKINDOBJ | 4209 | 指定されたオブジェクトの種別では閉塞できません。 |
ISOP_ECONDWU | 4210 | 指定されたオブジェクトが属するワークユニットが操作できる状態ではありません。 |
ISOP_ENOTSUPPORT | 4401 | 使用できない機能を使おうとしています。 |
注1)
Interstage Application Server Enterprise Edition以外の製品の場合に復帰します。
4)オブジェクト閉塞解除
下記のISOP_OPEOBJ構造体を獲得し、パラメタとして指定してください。
typedef struct _isop_opeobj_t { /* パラメタ設定用制御表定義 */ ISOP_CTRL opctrl; /* 基本情報 */ char objname[ISOP_DEFOBJNMMAX]; /* オブジェクト名 */ char objname2[256]; /* インプリメンテーションリポジトリID内オブジェクト名 */ char rsv[256]; /* リザーブ */ } ISOP_OPEOBJ;
メンバ名 | 型 | 設定値 | 意味 |
---|---|---|---|
opctrl.request | long | ISOP_RPMTOBJ | 要求コード: |
opctrl.pktvl | unsigned long | ISOP_006 | 制御表のバージョン情報 |
objname | char* | オブジェクト名 | オブジェクト名 (注1) (注2) |
objname2 | char* | インプリメンテーションリポジトリID内オブジェクト名 | インプリメンテーションリポジトリID内オブジェクト名 (注2) |
注1)
objnameのみを設定した場合、オブジェクトの閉塞解除が行われます。
注2)
objname,objname2を設定した場合、インプリメンテーションリポジトリID内オブジェクトのキュー閉塞解除が行われます。
メンバ名 | 型 | 復帰値 | 意味 |
---|---|---|---|
opctrl.pktvl(注1) | unsigned long | ISOP_006 | 復帰した制御表のバージョン情報 |
opctrl.result(注2) | long | 0 | 正常終了 |
-1 | 異常終了 | ||
opctrl.detail | long | 原因コード | エラーの詳細情報(実行結果詳細値を参照) |
注1)
APIが復帰時に通知する制御表のバージョン情報については、“OLTPサーバ運用ガイド”の“Interstage運用APIの制御表のバージョン・レベルについて”を参照してください。
注2)
異常終了した場合はopctrl.detailのみ正しい値を設定します。その他の値の内容は不定です。
define値 | 値 | 意味 |
---|---|---|
ISOP_ENOINIT | 2003 | API環境が初期化されていません。 |
ISOP_EINVAL_REQ | 2101 | 要求コードに誤りがあります。 |
ISOP_EAGAIN | 3001 | システム資源不足が発生しました。しばらくしてから再度実行してください。 |
ISOP_ENOMEM | 3002 | メモリ不足が発生しました。 |
ISOP_ESYSERR | 4001 | システムエラー。 |
ISOP_ESTPIS | 4102 | Interstageが起動されていません。 |
ISOP_ENOOBJ | 4105 | 指定されたオブジェクトは存在しません。 |
| 4107 | 割り込みが発生しました。 |
| 4110 | 操作対象システムが削除されました。 |
| 4201 | ワークユニット起動ユーザと異なったユーザが指定されています。 |
ISOP_ESTPWU | 4204 | 指定されたオブジェクトが属するワークユニットが起動されていません。 |
ISOP_EINHOBJ | 4208 | 指定されたオブジェクトは閉塞されていません。 |
ISOP_EKINDOBJ | 4209 | 指定されたオブジェクトの種別では閉塞解除できません。 |
ISOP_ECONDWU | 4210 | 指定されたオブジェクトが属するワークユニットが操作できる状態ではありません。 |
ISOP_ENOTSUPPORT | 4401 | 使用できない機能を使おうとしています。 |
注1)
Interstage Application Server Enterprise Edition以外の製品の場合に復帰します。
注意事項
本関数を使用するには、isstartコマンドを使用し、Interstageの起動を行う必要があります。各コンポーネントから提供されている起動コマンドは使用しないでください。
なお、クラスタ構成で運用する場合には、isstartコマンドを使用する必要はありません。