RPG クライアントが Java Service Manager サービスとのやりとりを完全に行うには、7 つの API 呼び出しが必要です。
これらの API では、同じジョブ内での複数の接続が可能です。
3.1.1 JSMX_BEGIN | サービス・プログラムの内部状態を初期化または再初期化する |
3.1.2 JSMX_OPEN | サービスを開く |
3.1.3 JSMX_BINDFLD | プログラム・フィールドを接続ハンドルにバインドする |
3.1.4 JSMX_BINDLST | プログラム・リストを接続ハンドルにバインドする |
3.1.5 JSMX_COMMAND | コマンドを送信する |
3.1.6 JSMX_CLOSE | サービスを終了する |
3.1.7 JSMX_END | サービス・プログラムの内部状態を終了および再初期化する |
RPG 開発者に必要なのは、JSM サービスで提供されるコマンドの使い方を理解することだけです。
RPG プログラム全体の構造は同じです。
プログラムは以下の操作を実行します。
- API インターフェース使用を開始する
- Java Service Manager への接続を開く
- サービスを読み込むするコマンドを発行する
- サービスでサポートされるコマンドを実行する
- サービスをアンロードするコマンドを発行する
- Java Service Manager への接続を閉じる
- API インターフェースの使用を終了する
IBM i では、RPG プログラムはサービス・プログラム JSMRPGSRV にバインドする必要があり、RPG プログラムを配布する場合は、このサービス・プログラムも同様に配布する必要があります。このプログラムはまた JSMCLTDTA データ域と JSMMSGF メッセージ・ファイルへの依存性があります。
ソース・コード例とプログラムの作成方法は、JSM ライブラリ (LANSA Integrator のインストール時に指定) のファイル QRPGLESRC および QCLSRC にあります。
サービス・プログラムは IBM の CEEGSI API を使って文字入力の長さを決定するため、サービス・プログラムのほとんどの API 文字列パラメータはどのサイズにもできます。接続ハンドル・パラメータの文字長は常に 4 です。
フィールドとリスト交換の概要
コマンド | フィールド無し | リスト無し |
コマンド + JSMX_BINDFLD | フィールド | リスト無し |
コマンド + JSMX_BINDLST | フィールド無し | リスト |
コマンド + JSMX_BINDFLD+JSMX_BINDLST | フィールド | リスト |