Hitachi

TP1/COBOL adapter for Cosminexus ユーザーズガイド


8.2.2 TP1/COBOLアクセス用BeanユーザインタフェースAPI

TP1/COBOLアクセス用Beanで使用できるメソッドについて説明します。

〈この項の構成〉

(1) 遠隔サービスの要求

(a) 遠隔サービスの要求

[ callメソッド ]
 
public void call(int cltid,
                java.lang.String group,
                java.lang.String service,
                int flags)
         throws J2CBException
パラメタ:

cltid - クライアントID

group - サービスグループ名

service - サービス名

flags - RPCの形態を指定

:TP1Const.DCNOFLAGS - 同期応答型RPC

:TP1Const.DCRPC_NOREPLY - 非応答型RPC

:TP1Const.DCRPC_CHAINED - 連鎖RPC

戻り値:

なし

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。

注意事項:

出力引数の指定がない場合,flagsにTP1Const.DCRPC_NOREPLY以外を指定してこのメソッドを実行すると,例外が発生します。

(b) 通信先を指定した遠隔サービスの要求

[ callToメソッド ]
 
public void callTo(int cltid,
                java.lang.String hostnm,
                int scdport,
                java.lang.String group,
                java.lang.String service,
                int flags)
         throws J2CBException
パラメタ:

cltid - クライアントID

hostnm - サービス要求先のホスト名

scdport - サービス要求先のホストに存在するスケジュールサービスのポート番号

group - サービスグループ名

service - サービス名

flags - RPCの形態を指定

:TP1Const.DCNOFLAGS - 同期応答型RPC

:TP1Const.DCRPC_NOREPLY - 非応答型RPC

戻り値:

なし

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。

注意事項:

出力引数の指定がない場合,flagsにTP1Const.DCRPC_NOREPLY以外を指定してこのメソッドを実行すると,例外が発生します。

(2) 出力引数データの取得

[getXxxOメソッド]
 
public Object getXxxO( [ int dim1 { , int dim2 } … ] ) throws J2CBException

メソッド名getXxxOのXxxは,設定するデータ項目のデータ名を表します。また,[ int dim1 { , int dim2 } … ]は,OCCURS句による繰り返しがあることを表します。([setXxxIメソッド]の例をご覧ください)

パラメタ:

dim1,dim2… :(添字が必要な場合の)各次元の添字

戻り値:

取得できたデータオブジェクト

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。

(3) メッセージの送受信

(a) メッセージの受信

[ receiveメソッド ]
 
public void receive(int cltid,
                int timeout,
                int flags)
         throws J2CBException
パラメタ:

cltid - クライアントID

timeout - メッセージ受信時の最大待ち時間(秒)

flags - メッセージ受信後に,コネクションを解放するかどうかを指定

:TP1Const.DCNOFLAGS - 解放しない

:TP1Const.DCCLT_RCV_CLOSE - 解放する

戻り値:

なし

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。

注意事項:

出力引数をgetterで取得できる点が,「8.3 TP1/COBOL基本BeanユーザインタフェースAPI(TP1/Client/PおよびTP1/Client/W)」で提供されるreceiveメソッドと異なります。

(b) メッセージの受信(障害時メッセージ受信)

[ receive2メソッド ]
 
public void receive2(int cltid,
                int timeout,
                int flags)
         throws J2CBException
パラメタ:

cltid - クライアントID

timeout - メッセージ受信時の最大待ち時間(秒)

flags - メッセージ受信後に,コネクションを解放するかどうかを指定

:TP1Const.DCNOFLAGS - 解放しない

:TP1Const.DCCLT_RCV_CLOSE - 解放する

戻り値:

なし

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。

注意事項:

出力引数をgetterで取得できる点が,「8.3 TP1/COBOL基本BeanユーザインタフェースAPI(TP1/Client/PおよびTP1/Client/W)」で提供されるreceive2メソッドと異なります。

(c) メッセージの送信

[ sendメソッド ]
 
public void send(int cltid,
                java.lang.String hostname,
                int portnum,
                int flags)
         throws J2CBException
パラメタ:

cltid - クライアントID

hostname - 接続するMHPが存在するノードのホスト名

portnum - MHPのポート番号

flags - メッセージ送信後に,コネクションを解放するかどうかを指定

:TP1Const.DCNOFLAGS - 解放しない

:TP1Const.DCCLT_SND_CLOSE - 解放する

戻り値:

なし

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。

注意事項:

入力引数をsetterで設定できる点が,「8.3 TP1/COBOL基本BeanユーザインタフェースAPI(TP1/Client/PおよびTP1/Client/W)」で提供されるsendメソッドと異なります。

(4) setter発行時の入力引数長設定

[setInLenFollowSetDataメソッド]
 
public void setInLenFollowSetData()

TP1/Clientに渡す入力引数の長さをこのメソッドを呼び出した直後のsetXxx(obj)の末尾までの長さとします。また.設定するデータが英数字項目(Stringまたはbyte[])の場合は,objを英数字項目に転記後の末尾までの長さとします。

このメソッドを呼び出す例
01  ARG.
 02 ARGCOMP PIC S9(9) USAGE COMP.   --> setter名はsetArgcompIとなる
 02 ARGALNUM PIC X(60).       --> setter名はsetArgalnumIとなる

上記の入力引数の設定前にこのメソッドを呼び出すと,入力引数の長さを変更できます。

(その1)ARGCOMPまでの入力引数とする場合
  setInLenFollowSetData();
  setArgcompI(new Integer(10));
  call(....);                 --> 入力引数の長さは4となる。
(その2)ARGALNUMの先頭8文字までを入力引数とする場合
  setArgcompI(new Integer(4));
  setInLenFollowSetData();
  setArgalnumI("abcdefgh");
  call(....);                 --> 入力引数の長さは12となる。

このメソッドを呼び出さない場合

入力引数の長さは,入力引数領域長です。

パラメタ:なし

戻り値:なし

例外:なし

(5) 入力引数データの設定

[setXxxIメソッド]
 
public void setXxxI(Object xxxI [ , int dim1 { , int dim2 } … ] ) throws J2CBException

メソッド名setXxxIのXxxおよび引数xxxIのxxxは,設定するデータ項目のデータ名を表します。

(例)

02 WK-DATANAME PIC X(10). と定義されたデータが入力引数にある場合,次に示すsetterになります。

public void setWk_datanameI(Object wk_datanameI) throws J2CBException
(例)

2次元の文字データが引数にある場合,次に示すsetterになります。

public void setWk_dataname(Object wk_datanameI, int dim1, int dim2) throws J2CBException
パラメタ:

xxxI - 設定するデータ

dim1,dim2… :(添字が必要な場合の)各次元の添字

戻り値:

なし

例外:J2CBException - 例外情報の取得

詳細は「8.8 J2CBExceptionユーザインタフェースAPI」をご覧ください。