Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


クラス TP1Client

[図データ]

public final class TP1Client
extends java.lang.Object

TP1/Serverのサーバに対してサービス要求を行うクラスです。

〈このページの構成〉

関連項目

TP1ClientException

フィールド

●DCNOFLAGS

public static final int DCNOFLAGS = 0x00000000

RPCの形態に同期応答型RPCを指定します。

●DCRPC_NOREPLY

public static final int DCRPC_NOREPLY = 0x00000001

RPCの形態に非応答型RPCを指定します。

●DCRPC_CHAINED

public static final int DCRPC_CHAINED = 0x00000004

RPCの形態に連鎖型RPCを指定します。

●DCRPC_SCD_LOAD_PRIORITY

public static final int DCRPC_SCD_LOAD_PRIORITY = 0x00000008

サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうかを指定します。

●DCRPC_WATCHTIMINHERIT

public static final int DCRPC_WATCHTIMINHERIT = 0x00000010

リモートAPI機能を使用したRPCを行う場合に,CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定します。

●DCRPC_RAP_AUTOCONNECT

public static final int DCRPC_RAP_AUTOCONNECT = 0x00000020

リモートAPI機能を利用したRPCを行う場合に,TP1/Client/Jが自動的にコネクションを確立するかどうかを指定します。

●DCRPC_TPNOTRAN

public static final int DCRPC_TPNOTRAN = 0x00000020

RPCの形態にトランザクションを引き継がないRPCを指定します。

●DCRPC_WATCHTIMRPCINHERIT

public static final int DCRPC_WATCHTIMRPCINHERIT = 0x00000040

CUPの最大応答待ち時間を,サーバ側に引き継ぐかどうかを指定します。

●DCRPC_MAX_MESSAGE_SIZE

public static final int DCRPC_MAX_MESSAGE_SIZE = 1048576

RPC電文の最大長を指定します。指定できる最大値は1048576バイトです。ただし,dccltrpcmaxmsgsizeオペランドを使用した場合,RPC電文の最大長は,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

コンストラクタ

●TP1Client

public TP1Client()

TP1Clientクラスのインスタンスを作成します。CUPをJavaアプリケーション,またはJavaサーブレットで作成する場合に使用します。

●TP1Client

public TP1Client(Applet app)

TP1Clientクラスのインスタンスを作成します。CUPをJavaアプレットとして作成する場合に使用します。

パラメタ
app

Javaアプレットのインスタンスオブジェクトを指定します。

メソッド

setDccltinquiretime

public void setDccltinquiretime(int sec)
                         throws ErrInvalidArgsException

CUPがサーバに対して問い合わせを行ってから,次の問い合わせをするまでの間隔の最大時間を設定します。この値は,rapサーバで監視するタイマです。指定時間を超えても問い合わせがない場合,rapサーバは強制的に常設コネクションを切断します。このメソッドはTP1Clientクラスのインスタンスが存在している間,呼び出せます。

パラメタ
sec

rapサーバが監視する問い合わせ間隔最大時間を0から1048575(単位:秒)までの範囲で指定します。0を指定した場合は,rapサーバはCUPからの問い合わせを無限に待ちます。

戻り値

なし。

例外
ErrInvalidArgsException

sec引数に指定された値が,0から1048575までの範囲にありません。

注意事項

常設コネクションの確立前に「問い合わせ間隔最大時間」を変更できます。

常設コネクションの確立後に「問い合わせ間隔最大時間」を変更しても,rapサーバ側の監視タイマには反映されません。この場合,確立中の常設コネクションを切断し,次回常設コネクションを確立するタイミングでrapサーバ側の監視タイマに反映されます。

setDccltdelay

public void setDccltdelay(int sec)
                   throws ErrInvalidArgsException

rapサーバと,CUP間の通信遅延時間を設定します。このメソッドを設定すると,rapサーバ側の最大応答待ち時間の時間監視を指定した値の分だけ早く終了させ,CUP側の最大応答待ち時間の監視時間タイムアウトによる電文のすれ違いを防止できます。

setDcwatchtimメソッドで指定した最大応答待ち時間が0の場合,このメソッドで指定した通信遅延時間は無視されます。また,最大応答待ち時間からrapサーバ通信時間を引いた値が0または負の値になるときは,rapサーバ側での最大応答待ち時間を1と仮定してrapサーバが動作します。

なお,このメソッドの指定を有効にするには,TP1/Client/J環境定義でdcwatchtiminherit=Yを指定するか,またはsetRpcextendメソッドのDRPC_WATCHTIMINHERIT引数を指定してください。

パラメタ
sec

rapサーバと,CUP間の通信遅延時間を0から65535(単位:秒)までの範囲で指定します。

戻り値

なし。

例外
ErrInvalidArgsException

sec引数に指定された値が,0から65535までの範囲にありません。

setDcwatchtim

public void setDcwatchtim(int sec)
                   throws ErrInvalidArgsException

同期応答型RPCの場合に,CUPからSPPへサービス要求を送ってからサービスの応答が返るまでの最大応答待ち時間を設定します。このメソッドで設定する値は,TP1/Client/Jの内部通信での最大応答待ち時間としても使用されます。

パラメタ
sec

最大応答待ち時間を0から65535(単位:秒)までの範囲で指定します。0を指定した場合は,応答を受信するまで無限に待ちます。使用するJava環境によっては,サーバがダウンしてもTCP/IPコネクションの切断を検出できない場合があります。この場合,待ち時間を無限にすると存在しないサーバからの応答を永久に待ち続けることになるため,適当な待ち時間を設定してください。

戻り値

なし。

例外
ErrInvalidArgsException

sec引数に指定された値が,0から65535までの範囲にありません。

setDcselint

public void setDcselint(int msec)
                 throws ErrInvalidArgsException

推奨されていません。旧バージョンからのソースの互換性を保証するためだけに残しているメソッドです。現在は,このメソッドは意味を持ちません。

setDccltextend

public void setDccltextend(int flags)

TP1/Client/Jの機能の拡張レベルを指定します。機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定します。

パラメタ
flags

TP1/Client/Jの機能の拡張レベルを指定します。

0x00000000:TP1/Client/Jの機能を拡張しません。

0x00000001:TP1/Client/Jの機能を拡張します。rpcCallメソッド呼び出し時,自CUPのIPアドレスをサービスに連絡します。呼び出したサービスでdc_rpc_get_callers_address()関数を実行し,CUPのアドレスを求める必要がある場合,指定してください。

戻り値

なし。

setRpcextend

public void setRpcextend(int extendoption)
                  throws ErrInvalidArgsException

TP1/Client/Jから発行するRPCの機能拡張オプションを指定します。RPC機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定します。

パラメタ
extendoption

RPC機能の拡張レベルを指定します。

DCRPC_SCD_LOAD_PRIORITY:サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうかを指定します。このオプションが真の場合,TP1/Client/J環境定義にdcscdloadpriority=Yを指定したときと同じ動作をします。このオプションが偽の場合,TP1/Client/J環境定義にdcscdloadpriority=Nを指定したときと同じ動作をします。

DCRPC_WATCHTIMINHERIT:リモートAPI機能を使用したRPCを行う場合に,CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定します。このオプションが真の場合,TP1/Client/J環境定義にdcwatchtiminherit=Yを指定したときと同じ動作をします。このオプションが偽の場合,TP1/Client/J環境定義にdcwatchtiminherit=Nを指定したときと同じ動作をします。

DCRPC_RAP_AUTOCONNECT:リモートAPI機能を使用したRPCを行う場合に,TP1/Client/Jが自動的にコネクションを確立するかどうかを指定します。このオプションが真の場合,TP1/Client/J環境定義にdcrapautoconnect=Yを指定したときと同じ動作をします。このオプションが偽の場合,TP1/Client/J環境定義にdcrapautoconnect=Nを指定したときと同じ動作をします。また,すでに非オートコネクトモードを使用し,openConnectionメソッドを呼び出してコネクションを確立している場合は,このオプションは無視されます。

DCRPC_WATCHTIMRPCINHERIT:CUPの最大応答待ち時間を,サーバ側に引き継ぐかどうかを指定します。このオプションが真の場合,TP1/Client/J環境定義にdcwatchtimrpcinherit=Yを指定したときと同じ動作をします。このオプションが偽の場合,TP1/Client/J環境定義にdcwatchtimrpcinherit=Nを指定したときと同じ動作をします。

戻り値

なし。

例外
ErrInvalidArgsException

extendoption引数の指定に誤りがあります。

setRpcServicePrio

public void setRpcServicePrio(int prio)
                  throws ErrInvalidArgsException

サービス要求のプライオリティを設定します。サービス要求単位でスケジュールプライオリティを制御する場合に呼び出します。このメソッドで設定したプライオリティは,このメソッドを再び呼び出すまで更新されません。したがって,同じプライオリティでまとめてサービス要求する場合は,このメソッドを1回だけ呼び出します。

このメソッドで指定したプライオリティは,直後に呼び出すrpcCallメソッドで,スケジュールキューを経由してサーバに通知されます。

このメソッドを一度も呼び出さない場合の処理は,省略時解釈値である4が,サービス要求のプライオリティとして指定されます。

rpcCloseメソッドを呼び出した場合は,サービス要求のプライオリティを省略時解釈値である4にリセットします。

パラメタ
prio

サービス要求のスケジュールプライオリティを,0または1から8の範囲で設定します。prioの設定は省略できません。

最も高いプライオリティの値は1で,最も低いプライオリティの値は8です。0を設定した場合は,省略時解釈値である4が,サービス要求のプライオリティとして指定されます。上記以外の値を設定した場合,setRpcServicePrioメソッドは例外を返します。

戻り値

なし。

例外
ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

注意事項
  • 設定したサービス要求のプライオリティは,サーバUAPがキュー受信型サーバであり,かつサーバUAPのユーザサービス定義にservice_priority_control=Y(プライオリティを制御する)を指定している場合だけ有効です。サービス要求する相手のサーバUAPでプライオリティを制御していない場合は,このメソッドを呼び出しても無効になります。

  • リモートAPI機能を使用したRPCでは,このメソッドでサービス要求のプライオリティを設定しても無効になります。

  • rpcCallメソッドは,サービス要求のプライオリティを省略値にリセットしません。サービス要求のプライオリティをリセットする場合は,引数prioに0を設定したsetRpcServicePrioメソッドを呼び出し直してください。

setDchost

public void setDchost(String host, int port)
               throws ErrHostUndefException,
                      ErrInvalidPortException,
                      ErrProtoException

窓口となるTP1/Serverのホスト名とポート番号を設定します。

パラメタ
host

窓口となるTP1/Serverのホスト名を指定します。リモートAPI機能を使用したRPCを行う場合は,通信先のrapリスナーのホスト名を指定します。CUPとTP1/Serverの間にファイアウォールがある場合は,ファイアウォールのホスト名を指定します。

port

窓口となるTP1/Server上で動作しているスケジュールサーバのポート番号,ネームサーバのポート番号を指定します。リモートAPI機能を使用したRPCを行う場合は,通信先のrapリスナーのポート番号を指定します。ポート番号は,5001から65535までの範囲で指定します。

戻り値

なし。

例外
ErrHostUndefException

host引数の指定に誤りがあります。

ErrInvalidPortException

port引数の指定に誤りがあります。

ErrProtoException

メソッドの発行順序に誤りがあります。リモートAPI機能を使用したRPCを行う場合で,すでにrapサーバとの間に常設コネクションが確立されている状態でこのメソッドが呼び出されました。

setTraceArray

public void setTraceArray(String[] array)

引数に指定された配列にエラートレースを取得するかどうかを指定します。CUPがJavaアプレット,Javaアプリケーション,およびJavaサーブレットのどの場合でも,このメソッドを呼び出せます。

パラメタ
array

エラートレースを格納するString配列を指定します。nullを指定した場合,エラートレースを取得しません。

戻り値

なし。

setUapTraceMode

public void setUapTraceMode(String TrcPath,
                            int size,
                            boolean flag)
                     throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合,UAPトレースを取得するかどうかを指定します。CUPがJavaアプレットの場合,このメソッドを呼び出さないでください。

パラメタ
TrcPath

UAPトレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するUAPトレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

UAPトレースを取得するかどうかを指定します。

true:UAPトレースを取得します。

false:UAPトレースを取得しません。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

setMethodTraceMode

public void setMethodTraceMode(String TrcPath,
                               int size,
                               boolean flag)
                        throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合,メソッドトレースを取得するかどうかを指定します。CUPがJavaアプレットの場合,このメソッドを呼び出さないでください。

パラメタ
TrcPath

メソッドトレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するメソッドトレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

メソッドトレースを取得するかどうかを指定します。

true:メソッドトレースを取得します。

false:メソッドトレースを取得しません。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

setDataTraceMode

public void setDataTraceMode(String TrcPath,
                             int size,
                             int DataSize,
                             boolean flag)
                      throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合,データトレースを取得するかどうかを指定します。CUPがJavaアプレットの場合,このメソッドを呼び出さないでください。

パラメタ
TrcPath

データトレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するデータトレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

DataSize

出力するデータサイズ16から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

データトレースを取得するかどうかを指定します。

true:データトレースを取得します。

false:データトレースを取得しません。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

setErrorTraceMode

public void setErrorTraceMode(String TrcPath,
                              int size,
                              boolean flag)
                       throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合,エラートレースを取得するかどうかを指定します。CUPがJavaアプレットの場合,このメソッドを呼び出さないでください。

パラメタ
TrcPath

エラートレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するエラートレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

エラートレースを取得するかどうかを指定します。

true:エラートレースを取得します。

false:エラートレースを取得しません。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

rpcOpen

public void rpcOpen()
             throws ErrIOErrException,
                    ErrProtoException,
                    ErrFatalException,
                    ErrSecurityException,
                    ErrSyserrException

TP1/Client/Jの各機能を使用する環境を初期化します。CUPを実行するとき,最初にこのメソッドを呼び出します。

パラメタ

なし。

戻り値

なし。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。rpcCloseメソッドが呼び出されないで再度rpcOpenメソッドが呼び出されました。

ErrFatalException

TP1/Client/J環境定義の指定に誤りがあります。または,TP1/Serverとの通信環境の初期化に失敗しました。

ErrSyserrException

システムエラーが発生しました。

ErrSecurityException

セキュリティ例外が発生しました。

注意事項
  • このメソッドをJavaアプリケーション,またはJavaサーブレットで使用する場合は,TP1/Client/J環境定義をシステムプロパティから取得します。

  • このメソッドをJavaアプレットで使用する場合は,TP1/Client/J環境定義をアプレットのparamタグから取得します。

  • このメソッドをJavaアプレットで使用する場合は,TP1Clientクラスをインスタンス化するコンストラクタに,TP1Client(Applet app)を使用してください。

rpcOpen

public void rpcOpen(String deffilename)
             throws ErrIOErrException,
                    ErrProtoException,
                    ErrFatalException,
                    ErrSyserrException,
                    ErrInvalidArgsException,
                    ErrSecurityException

TP1/Client/Jの各機能を使用する環境を初期化します。CUPを実行するとき,最初にこのメソッドを呼び出します。

パラメタ
deffilename

TP1/Client/J環境定義を格納したファイルのパス名を完全パス名または相対パス名で指定します。

戻り値

なし。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。rpcCloseメソッドを呼び出さないで再度rpcOpenメソッドが呼び出されました。

ErrFatalException

TP1/Client/J環境定義に誤りがあります。または,TP1/Serverとの通信環境の初期化に失敗しました。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrSecurityException

セキュリティ例外が発生しました。

注意事項

このメソッドは,Javaアプレットでは使用できません。Javaアプレットで使用する場合は,このメソッドの前に説明したrpcOpenメソッドを使用してください。

rpcClose

public void rpcClose()
              throws ErrIOErrException,
                     ErrSyserrException,
                     ErrNetDownException

TP1/Client/Jの各機能を使用する環境を解放します。TP1/Client/Jの各機能を使用する場合は,rpcOpenメソッドを呼び出します。CUPの実行の最後にこのメソッドを呼び出します。

パラメタ

なし。

戻り値

なし。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrNetDownException

ネットワーク障害が発生しました。

openConnection

public void openConnection()
                    throws ErrIOErrException,
                           ErrHostUndefException,
                           ErrTimedOutException,
                           ErrNetDownException,
                           ErrNoBufsException,
                           ErrNotUpException,
                           ErrSyserrException,
                           ErrProtoException,
                           ErrInvalidPortException

TP1/Client/J環境定義のdchostオペランドおよびdcrapportオペランドで指定されたrapサーバとの間に常設コネクションを確立するか,またはdcweburlオペランドで指定されたOpenTP1のWWWセション管理機能を利用したサーバ(TP1/Web)に接続して擬似セションを開始します。

なお,TP1Clientクラスの1つのインスタンスに対して,同時に複数の常設コネクションは確立できません。

ただし,CUPと接続要求先rapリスナーの間にファイアウォールがある場合,接続要求先rapリスナーにはファイアウォールのホスト名とポート番号を指定してください。

パラメタ

なし。

戻り値

なし。例外を返さない場合,正常終了したか,またはすでに常設コネクションが確立されています。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrHostUndefException

rapリスナーのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていません。

または,TP1/Client/J環境定義のdcweburlオペランドに指定されたURL(プロトコル,WWWサーバ,プロンプターのCGI名称,TP1/Webのサービス名などの情報)に誤りがあります。

ErrTimedOutException

rapリスナーとのコネクション確立中にタイムアウトが発生しました。

または,TP1/Webの擬似セション開始中にタイムアウトが発生しました。

ErrNetDownException

rapリスナー,またはTP1/Webとの通信でネットワーク障害が発生しました。

または,通信先のTP1/Serverが稼働していません。

ErrNoBufsException

rapリスナー,rapサーバでメモリ不足が発生しました。

または,TP1/Webでメモリ不足が発生しました。

ErrNotUpException

rapリスナー,rapサーバが稼働していません。

または,TP1/Webが稼働していません。

ErrSyserrException

システムエラーが発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。すでにコネクションを確立している間に再度openConnectionメソッドが呼び出されました。

ErrInvalidPortException

TP1/Client/J環境定義のdcrapportオペランドに指定されたポート番号が不正,または未指定です。

注意事項

接続先のrapリスナーが起動していない場合,ErrIOErrExceptionまたはErrNetDownExceptionが返されます。

このメソッドが例外を返した場合,常設コネクションは確立されていません。

openConnection

public void openConnection(String host,
                           int port)
                    throws ErrIOErrException,
                           ErrHostUndefException,
                           ErrTimedOutException,
                           ErrNoBufsException,
                           ErrNotUpException,
                           ErrSyserrException,
                           ErrInvalidPortException,
                           ErrProtoException,
                           ErrInvalidArgsException,
                           ErrNetDownException

リモートAPI機能を使用したRPCを行うために,CUPとrapリスナー,rapサーバとの間に常設コネクションを確立します。常設コネクションの確立先はパラメタで指定された値を使用します。

パラメタ
host

rapリスナー,またはファイアウォールのホスト名を指定します。

port

rapリスナー,またはファイアウォールのポート番号を5001から65535までの範囲で指定します。

戻り値

なし。例外を返さない場合,正常終了したか,またはすでに常設コネクションが確立されています。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrHostUndefException

host引数の指定に誤りがあります。

ErrTimedOutException

rapリスナーとのコネクションの確立中にタイムアウトが発生しました。

ErrNoBufsException

rapリスナー,rapサーバでメモリ不足が発生しました。

ErrNotUpException

rapリスナー,rapサーバが稼働していません。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidPortException

port引数の指定に誤りがあります。

ErrProtoException

メソッドの発行順序に誤りがあります。すでにコネクションを確立している間に再度openConnectionメソッドが呼び出されました。

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrNetDownException

rapリスナーとの通信でネットワーク障害が発生しました。または,通信先のTP1/Serverが稼働していません。

注意事項

接続先のrapリスナーが起動していない場合,ErrIOErrExceptionまたはErrNetDownExceptionが返されます。このメソッドが例外を返した場合,常設コネクションは確立されていません。

openConnection

public void openConnection(String   url,
                           short   flags)
                    throws ErrIOErrException,
                           ErrHostUndefException,
                           ErrTimedOutException,
                           ErrNetDownException,
                           ErrNoBufsException,
                           ErrNotUpException,
                           ErrSyserrException,
                           ErrProtoException,
                           ErrInvalidArgsException

OpenTP1のWWWセション管理機能を利用したサーバ(TP1/Web)に接続し,擬似セションを開始します。以降,HTTPプロトコルに基づいた通信サービスを行えます。

パラメタ
url

プロトコル,WWWサーバ,プロンプターのCGI名称,TP1/Webのサービス名などの情報をURL形式で指定します。

flags

DCSESSIONを指定します。

戻り値

なし。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrHostUndefException

url引数で指定されたURL(プロトコル,WWWサーバ,プロンプターのCGI名称,TP1/Webのサービス名などの情報)に誤りがあります。

ErrTimedOutException

TP1/Webの擬似セション開始中にタイムアウトが発生しました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrNoBufsException

TP1/Webでメモリ不足が発生しました。

ErrNotUpException

TP1/Webが稼働していません。

ErrSyserrException

システムエラーが発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。

すでにrapサーバとの間に常設コネクションが確立されている状態で,TP1/Client/J環境定義でdcrapautoconnect=Yまたはdcrapdirect=Nを指定しました。

ErrInvalidArgsException

引数の指定に誤りがあります。

closeConnection

public void closeConnection()
                     throws ErrIOErrException,
                            ErrSyserrException,
                            ErrProtoException,
                            ErrTimedOutException,
                            ErrNetDownException

CUPとrapリスナー,rapサーバとの間で確立されている常設コネクションを切断します。

パラメタ

なし。

戻り値

なし。

例外
ErrIOErrException

何らかの入出力例外が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。すでにコネクションが切断されている間に再度closeConnectionメソッドが呼び出されました。

ErrTimedOutException

TP1/Webとの擬似セション切断中またはrapリスナー,rapサーバとのコネクション切断中に,タイムアウトが発生しました。

ErrNetDownException

rapリスナーとの通信でネットワーク障害が発生しました。

注意事項

このメソッドが例外を返した場合でも,常設コネクションは切断されています。

rpcCall

public void rpcCall(String group,
                    String service,
                    byte[] in_data,
                    int[] in_len,
                    byte[] out_data,
                    int[] out_len,
                    int flags)
             throws ErrInvalidArgsException,
                    ErrProtoException,
                    ErrNoBufsException,
                    ErrNetDownException,
                    ErrTimedOutException,
                    ErrMessageTooBigException,
                    ErrReplyTooBigException,
                    ErrNoSuchServiceGroupException,
                    ErrNoSuchServiceException,
                    ErrServiceClosedException,
                    ErrServiceTerminatingException,
                    ErrServiceNotUpException,
                    ErrNotUpException,
                    ErrSyserrAtServerException,
                    ErrSyserrException,
                    ErrNoBufsAtServerException,
                    ErrInvalidReplyException,
                    ErrInitializingException,
                    ErrTrnchkException,
                    ErrServerBusyException,
                    ErrSecchkException,
                    ErrServiceTerminatedException,
                    ErrIOErrException,
                    ErrTestmodeException,
                    ErrConnfreeException,
                    ErrHostUndefException,
                    ErrInvalidPortException

SPPのサービスを要求します。サービスグループ名とサービス名の組み合わせで識別されるサービス関数を呼び出し,その応答を受け取ります。このメソッドを呼び出したときに,目的のサービスグループが閉塞されているとErrServiceClosedExceptionが返されます。

flags引数にDCRPC_TPNOTRANを指定すると,トランザクションの処理からのRPCをトランザクションの処理ではないサービス要求にできます。

このメソッドを呼び出したときに,目的のサービスグループがdcsvstopコマンドなどで終了処理中,または終了している場合,ErrServiceTerminatingException,ErrServiceClosedException,またはErrNoSuchServiceGroupExceptionのどれかが返されます。どの例外が返されるかは,このメソッドを呼び出したタイミングによって異なります。

ソケット受信型サーバでは,ユーザサービス定義のmax_socket_msgおよびmax_socket_msglenオペランドの指定で電文の輻輳制御を行っています。そのためサーバがサービス要求を受信できない場合があります。この場合,メソッドを呼び出すとErrServerBusyExceptionが返されます。この例外が返されたあと,適当な時間を置いてから再度このメソッドを呼び出すと,サービス要求できることがあります。

パラメタ
group

サービスグループ名を31文字以内の識別子で指定します。

service

サービス名を31文字以内の識別子で指定します。

in_data

サービスの入力パラメタを指定します。

in_len

サービスの入力パラメタ長を1からDCRPC_MAX_MESSAGE_SIZEの指定値までの範囲で指定します。入力パラメタ長はin_len[0]に格納してください。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

out_data

サービス関数で指定した応答が返される領域を指定します。

非応答型RPCの場合はnullを指定します。非応答型RPCの場合,null以外の値を指定しても何も格納されません。

out_len

サービスの応答の長さを1からDCRPC_MAX_MESSAGE_SIZEの指定値までの範囲で指定します。応答の長さはout_len[0]に格納してください。

サービス要求終了時,SPPのサービス関数で指定した応答の長さがout_len[0]に設定されます。

非応答型RPCの場合,応答の長さを指定しても無視され,サービス要求終了時,out_len[0]には何も設定されません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

flags

RPCの形態を指定します。

DCNOFLAGS:同期応答型RPC

DCRPC_NOREPLY:非応答型RPC

DCRPC_CHAINED:連鎖型RPC

DCRPC_TPNOTRAN:トランザクションを引き継がないRPC

DCNOFLAGSまたはDCRPC_CHAINEDを指定すると,サーバから応答が返されるか,TP1/Client/J環境定義のdcwatchtimオペランドで指定した最大応答待ち時間が経過してタイムアウトになるまで,このメソッドは制御を戻しません。ただし,サービス要求先のSPPが異常終了した場合は,すぐに例外を返します。この場合,TP1/Client/J環境定義のdcwatchtimオペランドで指定した値によって,次の例外を返します。

  • 1〜65535の値を指定した場合

    ErrTimedOutException

  • 0を指定した場合

    ErrServiceNotUpException

DCRPC_NOREPLYを指定すると,要求したサービスは応答を返さないサービスとみなされます。この場合,このメソッドはサービスの実行終了を待たないですぐに制御を戻します。このフラグを指定した場合,応答(out_data引数の指定値)と応答の長さ(out_len引数の指定値)は参照できません。さらに,サービス関数が実行されたかどうかはCUP側からはわかりません。

DCRPC_CHAINEDを指定すると,同じサービスグループに属するサービスを複数回要求する場合は,最初の要求時と同一のプロセスで実行されます。

連鎖型RPCを使用する場合,次に示す制限があります。

  • 2回目以降のこのメソッドの呼び出しは,ユーザサーバおよびサービスの閉塞を検出できません。

  • 2回目以降のこのメソッドの呼び出しで,サービス関数の処理に異常が発生した場合,サービス単位ではなくユーザサーバ全体が閉塞します。

  • リモートAPI機能を使用する場合に限り,flags引数にDCRPC_CHAINEDを指定できます。リモートAPI機能を使用しない場合,flags引数にDCRPC_CHAINEDを指定するとErrInvalidArgsExceptionが返されます。

  • 連鎖型RPCは,次のどちらかの方法で終了させてください。

    ・連鎖型RPCを実行しているサービスグループに対して,flags引数にDCNOFLAGSを指定したrpcCallメソッド(同期応答型RPC)を実行する。

    ・連鎖型RPCを実行しているグローバルトランザクションを同期点処理(コミットまたはロールバック)で完了させる。

    注※

     同期応答型RPCを実行しないでcloseConnectionメソッドまたはrpcCloseメソッドを呼び出すと,TP1/Client/JのAPIは正常終了しますが,次の状態となります。

    ・グローバルトランザクションの範囲外の場合

     サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまで占有されます。

    ・グローバルトランザクションの範囲内の場合

     暗黙的にコミットされ,連鎖型RPCを終了します。

DCRPC_TPNOTRANを指定すると,トランザクションの処理からのRPCは,トランザクションの処理にしないサービス要求になります。トランザクションの処理からだけDCRPC_TPNOTRANを指定できます。DCRPC_TPNOTRANは,DCNOFLAGS,DCRPC_NOREPLY,またはDCRPC_CHAINEDとあわせて指定できます。

(例)flags = TP1Client.DCNOFLAGS|TP1Client.DCRPC_TPNOTRAN;

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。この場合,詳細メッセージに誤った引数名が設定されます。

ErrProtoException

メソッドの発行順序に誤りがあります。openConnectionメソッドが呼び出されていません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNetDownException

ネットワーク障害が発生しました。または,通信先のTP1/Serverが稼働していません。

ErrTimedOutException

次の要因が考えられます。

  • このメソッドの処理でタイムアウトが発生しました。

  • サービス要求先SPPが処理を完了する前に異常終了しました。

  • dcresponsehostオペランドに指定したホスト名またはIPアドレスが誤っているため,応答電文の受信ができず時間切れ(タイムアウト)が発生しました。

ErrMessageTooBigException

in_len引数に指定した入力パラメタ長が最大値を超えています。

ErrReplyTooBigException

サーバから返された応答の長さが,CUPで用意した領域(out_data引数の指定値)の長さを超えています。

ErrNoSuchServiceGroupException

group引数に指定したサービスグループ名は定義されていません。

ErrNoSuchServiceException

service引数に指定したサービス名は定義されていません。

ErrServiceClosedException

service引数に指定したサービス名が存在するサービスグループは閉塞されています。

ErrServiceTerminatingException

service引数に指定したサービスは終了処理中です。

ErrServiceNotUpException

サービス要求したSPPは稼働していません。または,サービス要求したSPPが処理を完了する前に異常終了しました。この例外はTP1/Client/J環境定義にdcwatchtim=0を指定(応答を無限に待つ)した場合に返されます。

ErrNotUpException

指定したサービスが存在するノードのTP1/Serverが稼働していません。この場合,異常終了,停止中,終了処理中,およびネットワーク障害の発生が考えられます。

ErrSyserrAtServerException

指定したサービスでシステムエラーが発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrNoBufsAtServerException

指定したサービスでメモリ不足が発生しました。

ErrInvalidReplyException

サービス関数が返した応答の長さが1からDCRPC_MAX_MESSAGE_SIZEで指定した値までの範囲にありません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

ErrInitializingException

サービス要求したノードにあるTP1/Serverは開始処理中です。

ErrTrnchkException

ノード間負荷バランス機能を使用している環境で,複数のSPPのトランザクション属性が一致していません。または,負荷を分散する先のノードにあるTP1/Serverのバージョンが,TP1/Client/Jのバージョンよりも古いため,ノード間負荷バランス機能を実行できません。この例外は,ノード間負荷バランス機能を使用しているSPPにサービス要求した場合にだけ返されます。

ErrServerBusyException

サービス要求先のソケット受信型サーバが,サービス要求を受信できません。

ErrSecchkException

サービス要求先のSPPは,セキュリティ機能で保護されています。rpcCallメソッドを呼び出したCUPには,SPPへのアクセス権限がありません。

ErrServiceTerminatedException

サービス要求したSPPが,処理を完了する前に異常終了しました。この例外はrapリスナーサービス定義のrpc_extend_functionオペランドに00000001を指定した場合にだけ返されます。rpc_extend_functionオペランドに00000000を指定,またはオペランドを省略した場合は,ErrTimedOutExceptionまたはErrServiceNotUpExceptionが返されます。

ErrIOErrException

何らかの入出力例外が発生しました。rapサーバが問い合わせ間隔の時間監視でタイムアウトし,コネクションを切断したことも考えられます。

ErrTestmodeException

テストモードのSPPに対してサービス要求を行いました。

ErrConnfreeException

rapサーバとの常設コネクションが切断されました。または,TP1/Webとの擬似セションが切断されました。

ErrHostUndefException

次の要因が考えられます。

  • 通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか,または指定に誤りがあります。

  • TP1/Client/J環境定義のdcweburlオペランドに指定されたURL(プロトコル,WWWサーバ,プロンプターのCGI名称,TP1/Webのサービス名などの情報)に誤りがあります。

ErrInvalidPortException

次の要因が考えられます。

  • リモートAPI機能を使用したRPCを行う場合,TP1/Client/J環境定義のdcrapportオペランドが指定されていない

  • スケジューラダイレクト機能を使用したRPCを行う場合,TP1/Client/J環境定義のdcscdportオペランドが指定されていない

注意事項
  • 入力パラメタ(in_data引数の指定値)と,サービス関数の応答(out_data引数の指定値)に同じ領域を指定しないでください。

  • flags引数にDCRPC_NOREPLYを指定した場合,次の例外は返されません。

発生しない例外
  • ErrReplyTooBigException

  • ErrInvalidReplyException

発生しても検出できない例外
  • ErrNoSuchServiceException

  • ErrServiceClosedException

  • ErrServiceTerminatingException

  • ErrSyserrAtServerException

  • ErrNoBufsAtServerException

  • ErrNotUpException

  • ErrTimedOutExceptionが返される場合,次に示す要因が考えられます。

    ・TP1/Client/J環境定義またはTP1/Serverの定義で指定した最大応答待ち時間が短い

    ・サービス要求先のSPPから発行したサービス関数が異常終了した

    ・サービス要求先のSPPが存在するノードに障害が発生した

    ・サービス要求先のSPPの処理完了前に異常終了した

    ・ネットワーク障害が発生した

    ・dcresponsehostオペランドに指定したホスト名またはIPアドレスが誤っているため,応答電文の受信ができず時間切れ(タイムアウト)が発生した

    上記の場合,サービス要求先のSPPから開始したトランザクションの処理はコミットされて,データベースが更新されていることがあります。データベースが更新されているかどうか確認してください。

  • このメソッドの呼び出し時,何らかの障害が発生した場合には例外が返されますが,その障害によってrapリスナー,rapサーバとの常設コネクションが切断されたかどうかは,その時点では判断できません。この場合,再びこのメソッドを呼び出すと,rapリスナー,rapサーバとの常設コネクションが切断されていればErrConnfreeExceptionが返されます。

  • このメソッドの呼び出し時,何らかの障害でrapリスナー,rapサーバとの常設コネクションが切断された場合,再びopenConnectionメソッドを呼び出してrapリスナー,rapサーバとの常設コネクションを確立する必要があります。

  • オートコネクトモードを使用した常設コネクションの場合,サービス要求送信時にrapサーバとのネットワーク障害が発生すると,一度だけリトライ処理を行います。リトライしてもコネクションが確立されない場合は,ErrNetDownExceptionが返されます。

  • スケジューラダイレクト機能を使用したRPC,およびネームサービスを使用したRPCでは,flags引数にDCRPC_CHAINEDを指定できません。リモートAPI機能を使用する場合は,flags引数にDCRPC_CHAINEDを指定できます。

rpcCall

public void rpcCall(String group,
                    String service,
                    byte[] in_data,
                    byte[] out_data,
                    int flags)
             throws ErrInvalidArgsException,
                    ErrProtoException,
                    ErrNoBufsException,
                    ErrNetDownException,
                    ErrTimedOutException,
                    ErrMessageTooBigException,
                    ErrReplyTooBigException,
                    ErrNoSuchServiceGroupException,
                    ErrNoSuchServiceException,
                    ErrServiceClosedException,
                    ErrServiceTerminatingException,
                    ErrServiceNotUpException,
                    ErrNotUpException,
                    ErrSyserrAtServerException,
                    ErrSyserrException,
                    ErrNoBufsAtServerException,
                    ErrInvalidReplyException,
                    ErrInitializingException,
                    ErrTrnchkException,
                    ErrServerBusyException,
                    ErrSecchkException,
                    ErrServiceTerminatedException,
                    ErrIOErrException,
                    ErrTestmodeException,
                    ErrConnfreeException,
                    ErrHostUndefException,
                    ErrInvalidPortException

SPPのサービスを要求します。サービスグループ名とサービス名の組み合わせで識別されるサービス関数を呼び出し,その応答を受け取ります。このメソッドを呼び出したときに,目的のサービスグループが閉塞されているとErrServiceClosedExceptionが返されます。

flags引数にDCRPC_TPNOTRANを指定すると,トランザクションの処理からのRPCをトランザクションの処理ではないサービス要求にできます。

このメソッドを呼び出したときに,目的のサービスグループがdcsvstopコマンドなどで終了処理中,または終了している場合,ErrServiceTerminatingException,ErrServiceClosedException,またはErrNoSuchServiceGroupExceptionのどれかが返されます。どの例外が返されるかは,このメソッドを呼び出したタイミングによって異なります。

ソケット受信型サーバでは,ユーザサービス定義のmax_socket_msgおよびmax_socket_msglenオペランドの指定で電文の輻輳制御を行っています。そのためサーバがサービス要求を受信できない場合があります。この場合,このメソッドを呼び出すとErrServerBusyExceptionが返されます。この例外が返されたあと,適当な時間を置いてから再度このメソッドを呼び出すと,サービス要求できることがあります。

パラメタ
group

サービスグループ名を31文字以内の識別子で指定します。

service

サービス名を31文字以内の識別子で指定します。

in_data

サービスの入力パラメタを指定します。

out_data

サービス関数で指定した応答が返される領域を指定します。

非応答型RPCの場合はnullを指定します。非応答型RPCの場合,null以外の値を指定しても何も格納されません。

flags

RPCの形態を指定します。

DCNOFLAGS:同期応答型RPC

DCRPC_NOREPLY:非応答型RPC

DCRPC_CHAINED:連鎖型RPC

DCRPC_TPNOTRAN:トランザクションを引き継がないRPC

DCNOFLAGSまたはDCRPC_CHAINEDを指定すると,サーバから応答が返されるか,TP1/Client/J環境定義のdcwatchtimオペランドで指定した最大応答待ち時間が経過してタイムアウトになるまで,このメソッドは制御を戻しません。ただし,サービス要求先のSPPが異常終了した場合は,すぐに例外を返します。この場合,TP1/Client/J環境定義のdcwatchtimオペランドで指定された最大応答待ち時間によって,次の例外を返します。

  • 1〜65535の値を指定した場合

    ErrTimedOutException

  • 0を指定した場合

    ErrServiceNotUpException

DCRPC_NOREPLYを指定すると,要求したサービスは応答を返さないサービスとみなされます。この場合,このメソッドはサービスの実行終了を待たないですぐに制御を戻します。このフラグを指定した場合,応答(out_data引数の指定値)と応答の長さ(out_len引数の指定値)は参照できません。さらに,サービス関数が実行されたかどうかはCUP側からはわかりません。

DCRPC_CHAINEDを指定すると,同じサービスグループに属するサービスを複数回要求する場合は,最初の要求時と同一のプロセスで実行されます。

連鎖型RPCを使用する場合,次に示す制限があります。

  • 2回目以降のこのメソッドの呼び出しは,ユーザサーバおよびサービスの閉塞を検出できません。

  • 2回目以降のこのメソッドの呼び出しでサービス関数の処理に異常が発生した場合,サービス単位ではなくユーザサーバ全体が閉塞します。

  • flags引数にDCRPC_CHAINEDを指定して呼び出したサービスの場合,最後のサービス要求ではDCNOFLAGSを指定してRPCを実行してください。最後のサービス要求でDCNOFLAGSを指定しないでcloseConnectionメソッドを呼び出すと,ErrTimedOutException,またはほかの例外が返されます。また,サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまでプロセスを占有されます。

  • リモートAPI機能を使用する場合に限り,flags引数にDCRPC_CHAINEDを指定できます。

  • 連鎖型RPCは,次のどちらかの方法で終了させてください。

    ・連鎖型RPCを実行しているサービスグループに対して,flags引数にDCNOFLAGSを指定したrpcCallメソッド(同期応答型RPC)を実行する。

    ・連鎖型RPCを実行しているグローバルトランザクションを同期点処理(コミット,またはロールバック)で完了させる。

    注※

     同期応答型RPCを実行しないでcloseConnectionメソッド,またはrpcCloseメソッドを呼び出すと,TP1/Client/JのAPIは正常終了しますが,次の状態となります。

    ・グローバルトランザクションの範囲外の場合

     サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまで占有されます。

    ・グローバルトランザクションの範囲内の場合

     暗黙的にコミットされ,連鎖型RPCを終了します。

DCRPC_TPNOTRANを指定すると,トランザクションの処理からのRPCは,トランザクションの処理にしないサービス要求になります。トランザクション外の処理からはDCRPC_TPNOTRANを指定できません。DCRPC_TPNOTRANは,DCNOFLAGS,DCRPC_NOREPLY,またはDCRPC_CHAINEDとあわせて指定できます。

(例)flags = TP1Client.DCNOFLAGS|TP1Client.DCRPC_TPNOTRAN;

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。この場合,詳細メッセージに誤った引数名が設定されます。

ErrProtoException

メソッドの発行順序に誤りがあります。openConnectionメソッドが呼び出されていません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNetDownException

ネットワーク障害が発生しました。または,通信先のTP1/Serverが稼働していません。

ErrTimedOutException

次の要因が考えられます。

  • このメソッドの処理でタイムアウトが発生しました。

  • サービス要求先SPPが処理を完了する前に異常終了しました。

  • dcresponsehostオペランドに指定したホスト名またはIPアドレスが誤っているため,応答電文の受信ができず時間切れ(タイムアウト)が発生しました。

ErrMessageTooBigException

in_len引数に指定した入力パラメタ長が最大値を超えています。

ErrReplyTooBigException

サーバから返された応答の長さが,CUPで用意した領域(out_data引数の指定値)の長さを超えています。

ErrNoSuchServiceGroupException

group引数に指定したサービスグループ名は定義されていません。

ErrNoSuchServiceException

service引数に指定したサービス名は定義されていません。

ErrServiceClosedException

service引数に指定したサービス名が存在するサービスグループは閉塞されています。

ErrServiceTerminatingException

service引数に指定したサービスは終了処理中です。

ErrServiceNotUpException

サービス要求したSPPは稼働していません。または,サービス要求したSPPが処理を完了する前に異常終了しました。この例外はTP1/Client/J環境定義にdcwatchtim=0を指定(応答を無限に待つ)した場合に返されます。

ErrNotUpException

指定したサービスが存在するノードのTP1/Serverが稼働していません。この場合,異常終了,停止中,終了処理中,およびネットワーク障害の発生が考えられます。

ErrSyserrAtServerException

指定したサービスでシステムエラーが発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrNoBufsAtServerException

指定したサービスでメモリ不足が発生しました。

ErrInvalidReplyException

サービス関数が返した応答の長さが1からDCRPC_MAX_MESSAGE_SIZEで指定した値までの範囲にありません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

ErrInitializingException

サービス要求したノードにあるTP1/Serverは開始処理中です。

ErrTrnchkException

ノード間負荷バランス機能を使用している環境で,複数のSPPのトランザクション属性が一致していません。または,負荷を分散する先のノードにあるTP1/Serverのバージョンが,TP1/Client/Jのバージョンよりも古いため,ノード間負荷バランス機能を実行できません。この例外は,ノード間負荷バランス機能を使用しているSPPにサービス要求した場合にだけ返されます。

ErrServerBusyException

サービス要求先のソケット受信型サーバが,サービス要求を受信できません。

ErrSecchkException

サービス要求先のSPPは,セキュリティ機能で保護されています。rpcCallメソッドを呼び出したCUPには,SPPへのアクセス権限がありません。

ErrServiceTerminatedException

サービス要求したSPPが,処理を完了する前に異常終了しました。この例外はrapリスナーサービス定義のrpc_extend_functionオペランドに00000001を指定した場合にだけ返されます。rpc_extend_functionオペランドに00000000を指定,またはオペランドを省略した場合は,ErrTimedOutExceptionまたはErrServiceNotUpExceptionが返されます。

ErrIOErrException

何らかの入出力例外が発生しました。rapサーバが問い合わせ間隔の時間監視でタイムアウトし,コネクションを切断したことも考えられます。

ErrTestmodeException

テストモードのSPPに対してサービス要求を行いました。

ErrConnfreeException

rapサーバとの常設コネクションが切断されました。または,TP1/Webとの擬似セションが切断されました。

ErrHostUndefException

次の要因が考えられます。

  • 通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか,または指定に誤りがあります。

  • TP1/Client/J環境定義のdcweburlオペランドに指定されたURL(プロトコル,WWWサーバ,プロンプターのCGI名称,TP1/Webのサービス名などの情報)に誤りがあります。

ErrInvalidPortException

次の要因が考えられます。

  • リモートAPI機能を使用したRPCを行う場合,TP1/Client/J環境定義のdcrapportオペランドが指定されていない

  • スケジューラダイレクト機能を使用したRPCを行う場合,TP1/Client/J環境定義のdcscdportオペランドが指定されていない

注意事項
  • 入力パラメタ(in_data引数の指定値)と,サービス関数の応答(out_data引数の指定値)に同じ領域を指定しないでください。

  • flags引数にDCRPC_NOREPLYを指定した場合,次の例外は返されません。

発生しない例外
  • ErrReplyTooBigException

  • ErrInvalidReplyException

発生しても検出できない例外
  • ErrNoSuchServiceException

  • ErrServiceClosedException

  • ErrServiceTerminatingException

  • ErrSyserrAtServerException

  • ErrNoBufsAtServerException

  • ErrNotUpException

  • ErrTimedOutExceptionが返される場合,次に示す要因が考えられます。

    ・TP1/Client/J環境定義またはTP1/Serverの定義で指定した最大応答待ち時間が短い

    ・サービス要求先のSPPから発行したサービス関数が異常終了した

    ・サービス要求先のSPPが存在するノードに障害が発生した

    ・サービス要求先のSPPの処理完了前に異常終了した

    ・ネットワーク障害が発生した

    ・dcresponsehostオペランドに指定したホスト名またはIPアドレスが誤っているため,応答電文の受信ができず時間切れ(タイムアウト)が発生した

    上記の場合,サービス要求先のSPPから開始したトランザクションの処理はコミットされて,データベースが更新されていることがあります。データベースが更新されているかどうか確認してください。

  • このメソッドの呼び出し時,何らかの障害が発生した場合には例外が返されますが,その障害によってrapリスナー,rapサーバとの常設コネクションが切断されたかどうかは,その時点では判断できません。この場合,再びこのメソッドを呼び出すと,rapリスナー,rapサーバとの常設コネクションが切断されていればErrConnfreeExceptionが返されます。

  • このメソッドの呼び出し時,何らかの障害でrapリスナー,rapサーバとの常設コネクションが切断された場合,再びopenConnectionメソッドを呼び出してrapリスナー,rapサーバとの常設コネクションを確立する必要があります。

  • オートコネクトモードを使用した常設コネクションの場合,サービス要求送信時にrapサーバとのネットワーク障害が発生すると,一度だけリトライ処理を行います。リトライしてもコネクションが確立されない場合は,ErrNetDownExceptionが返されます。

  • スケジューラダイレクト機能を使用したRPC,およびネームサービスを使用したRPCでは,flags引数にDCRPC_CHAINEDを指定できません。リモートAPI機能を使用する場合は,flags引数にDCRPC_CHAINEDを指定できます。

rpcCallTo

public void rpcCallTo(DCRpcBindTbl direction,
                    String group,
                    String service,
                    byte[] in_data,
                    int[] in_len,
                    byte[] out_data,
                    int[] out_len,
                    int flags)
             throws ErrInvalidArgsException,
                    ErrProtoException,
                    ErrNoBufsException,
                    ErrNetDownException,
                    ErrTimedOutException,
                    ErrMessageTooBigException,
                    ErrReplyTooBigException,
                    ErrNoSuchServiceGroupException,
                    ErrNoSuchServiceException,
                    ErrServiceClosedException,
                    ErrServiceTerminatingException,
                    ErrServiceNotUpException,
                    ErrNotUpException,
                    ErrSyserrAtServerException,
                    ErrSyserrException,
                    ErrNoBufsAtServerException,
                    ErrInvalidReplyException,
                    ErrInitializingException,
                    ErrTrnchkException,
                    ErrServerBusyException,
                    ErrSecchkException,
                    ErrServiceTerminatedException,
                    ErrIOErrException,
                    ErrTestmodeException,
                    ErrConnfreeException,
                    ErrHostUndefException,
                    ErrInvalidPortException

rpcCallメソッドと同様に,SPPのサービスを要求します。rpcCallToメソッドでは,サービスグループ名,サービス名,およびホスト名を検索のキーにして,該当するサービス関数をサービスの要求先に限定します。

このメソッドを呼び出す前にsetScdDirectObjectメソッドを呼び出し,DCRpcBindTblインスタンスを作成しておく必要があります。それ以外のインタフェースは,rpcCallメソッドと同じです。

パラメタ
direction

DCRpcBindTblオブジェクトを指定します。このメソッドを呼び出す前にsetScdDirectObjectメソッドを呼び出し,通信先情報を設定しておきます。

group

サービスグループ名を31文字以内の識別子で指定します。

service

サービス名を31文字以内の識別子で指定します。

in_data

サービスの入力パラメタを指定します。

in_len

サービスの入力パラメタ長を1からDCRPC_MAX_MESSAGE_SIZEの指定値までの範囲で指定します。入力パラメタ長はin_len[0]に格納してください。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

out_data

サービス関数で指定した応答が返される領域を指定します。

非応答型RPCの場合はnullを指定します。非応答型RPCの場合,null以外の値を指定しても何も格納されません。

out_len

サービスの応答の長さを1からDCRPC_MAX_MESSAGE_SIZEの指定値までの範囲で指定します。応答の長さはout_len[0]に格納してください。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値ではなく,dccltrpcmaxmsgsizeオペランドに指定した値になります。

flags

RPCの形態を指定します。

DCNOFLAGS:同期応答型RPC

DCRPC_NOREPLY:非応答型RPC

戻り値

なし。

例外

rpcCallメソッドの例外と同じ。

注意事項
  • ソケット受信型のユーザサーバにサービス要求を行った場合,このメソッドは,ErrServiceNotUpExceptionを返します。

  • サービス要求先のTP1/Serverのバージョンは,03-03以降でなければなりません。これ以前のバージョンのTP1/Serverをサービス要求先に指定した場合は,動作の保証はできません。

  • このメソッドは,リモートAPI機能を使用したRPCでは使用できません。リモートAPI機能を使用しているときにこのメソッドを発行した場合,このメソッドは,ErrProtoExceptionを返します。

  • このメソッドは,連鎖型RPCでは使用できません。flags引数にDCRPC_CHAINEDを指定した場合,このメソッドはErrInvalidArgsExceptionを返します。

  • rpcCallToメソッドの呼び出し時は,TP1/Client/J環境定義の次のオペランドは参照されません。

    ・dchost

    ・dcscdport

    ・dcnamport

    ・dcscdloadpriority

    また,setDchostメソッドで指定されたホスト名,ポート番号も参照されません。これらの指定値は,次回rpcCallメソッドの呼び出し時に有効になります。

  • サービス要求先のホスト名に誤りがあった場合,このメソッドはErrHostUndefExceptionを返します。

  • サービス要求先のポート番号に誤りがあった場合,このメソッドはErrInvalidPortExceptionを返します。

setScdDirectObject

public DCRpcBindTbl setScdDirectObject(String scdhost,
                                      int scdport,
                                      int flags)

通信先スケジューラのホスト名,ポート番号を設定します。

パラメタ
scdhost

通信先スケジュールサーバのホスト名を指定します。不正なホスト名,およびnullが指定された場合,このメソッドのあとに呼び出すrpcCallToメソッドは,ErrHostUndefExceptionを返します。

scdport

通信先スケジュールサーバのポート番号を指定します。ポート番号は,5001から65535までの範囲で指定します。不正なポート番号が指定された場合,このメソッドのあとに呼び出すrpcCallToメソッドは,ErrInvalidPortExceptionを返します。

flags

DCNOFLAGSを指定します。

戻り値

DCRpcBindTblオブジェクト。

trnBegin

public void trnBegin()
              throws ErrProtoException,
                     ErrTMException,
                     ErrRMException,
                     ErrNoBufsException,
                     ErrNotUpException,
                     ErrTimedOutException,
                     ErrIOErrException,
                     ErrConnfreeException,
                     ErrSyserrException,
                     ErrNetDownException,
                     ErrHostUndefException,
                     ErrInvalidPortException

グローバルトランザクションを,trnBeginメソッドを呼び出すTP1Clientオブジェクトから開始します。

このメソッドは,リモートAPI機能を使用する場合で,要求先TP1/Server Baseのバージョンが05-00以降のときだけ使用できます。

パラメタ

なし。

戻り値

なし。

例外
ErrProtoException

trnBeginメソッドを不正なコンテキストから呼び出しています。

ErrTMException

トランザクションサービスでエラーが発生したため,トランザクションは開始できませんでした。この例外が返されたあと,適当な時間を置いてから再度このメソッドを呼び出すと,トランザクションを開始できることがあります。

ErrRMException

リソースマネジャでエラーが発生しました。トランザクションは開始できませんでした。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrSyserrException

システムエラーが発生しました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrHostUndefException

通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか,または指定に誤りがあります。

ErrInvalidPortException

TP1/Client/J環境定義のdcrapportオペランドに指定されたポート番号が不正,または未指定です。

trnChainedCommit

public void trnChainedCommit()
                      throws ErrProtoException,
                             ErrRollbackException,
                             ErrHeuristicException,
                             ErrHazardException,
                             ErrNoBeginException,
                             ErrRollbackNoBeginException,
                             ErrHeuristicNoBeginException,
                             ErrHazardNoBeginException,
                             ErrNoBufsException,
                             ErrNotUpException,
                             ErrTimedOutException,
                             ErrIOErrException,
                             ErrConnfreeException,
                             ErrNetDownException,
                             ErrSyserrException

トランザクションの同期点を取得します。

trnChainedCommitメソッドが正常終了すると新しいグローバルトランザクションが発生し,以降実行するメソッドは新しいグローバルトランザクションの範囲になります。

パラメタ

なし。

戻り値

なし。

例外
ErrProtoException

trnChainedCommitメソッドを不正なコンテキストから呼び出しています。

ErrRollbackException

現在のトランザクションはコミットできないでロールバックしました。この例外が返されたあとも,このプロセスはトランザクション下にあり,グローバルトランザクションの範囲内です。

ErrHeuristicException

dc_trn_chained_commit関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,あるトランザクションブランチはコミット,あるトランザクションブランチはロールバックしました。この例外は,ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも,このプロセスはトランザクション下にあり,グローバルトランザクションの範囲内です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも,このプロセスはトランザクション下にあり,グローバルトランザクションの範囲内です。

ErrNoBeginException

コミットまたはロールバック処理は正常に終了しましたが,新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrRollbackNoBeginException

コミットしようとしたトランザクションは,コミットできないでロールバックしました。新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrHeuristicNoBeginException

dc_trn_chained_commit関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,あるトランザクションブランチはコミット,あるトランザクションブランチはロールバックしました。この例外は,ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrHazardNoBeginException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

trnChainedRollback

public void trnChainedRollback()
                        throws ErrProtoException,
                               ErrHeuristicException,
                               ErrHazardException,
                               ErrNoBeginException,
                               ErrHeuristicNoBeginException,
                               ErrHazardNoBeginException,
                               ErrNoBufsException,
                               ErrNotUpException,
                               ErrTimedOutException,
                               ErrIOErrException,
                               ErrConnfreeException,
                               ErrNetDownException,
                               ErrSyserrException

トランザクションをロールバックします。

trnChainedRollbackメソッドが正常終了すると,新しいグローバルトランザクションが発生し,以降呼び出すメソッドは新しいグローバルトランザクションの範囲になります。

パラメタ

なし。

戻り値

なし。

例外
ErrProtoException

trnChainedRollbackメソッドを不正なコンテキストから呼び出しています。

ErrHeuristicException

dc_trn_chained_rollback関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,あるトランザクションブランチはコミット,あるトランザクションブランチはロールバックしました。この例外は,ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも,このプロセスはトランザクション下にあり,グローバルトランザクションの範囲内です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも,このプロセスはトランザクション下にあり,グローバルトランザクションの範囲内です。

ErrNoBeginException

コミットまたはロールバック処理は正常に終了しましたが,新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrHeuristicNoBeginException

dc_trn_chained_rollback関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,あるトランザクションブランチはコミット,あるトランザクションブランチはロールバックしました。この例外は,ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrHazardNoBeginException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因となったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと,このプロセスはトランザクション下にありません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

trnUnchainedCommit

public void trnUnchainedCommit()
                        throws ErrProtoException,
                               ErrRollbackException,
                               ErrHeuristicException,
                               ErrHazardException,
                               ErrNoBufsException,
                               ErrNotUpException,
                               ErrTimedOutException,
                               ErrIOErrException,
                               ErrConnfreeException,
                               ErrNetDownException,
                               ErrSyserrException

トランザクションの同期点を取得します。

trnUnchainedCommitメソッドが正常に終了すると,グローバルトランザクションは終了します。グローバルトランザクションの範囲外からは,SPPをトランザクションとして実行できません。

パラメタ

なし。

戻り値

なし。

例外
ErrProtoException

trnUnchainedCommitメソッドを不正なコンテキストから呼び出しています。

ErrRollbackException

現在のトランザクションは,コミットできないでロールバックしました。プロセスはトランザクションの範囲外です。

ErrHeuristicException

dc_trn_unchained_commit関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,あるトランザクションブランチはコミット,あるトランザクションブランチはロールバックしました。この例外は,ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと,このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと,このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

trnUnchainedRollback

public void trnUnchainedRollback()
                          throws ErrProtoException,
                                 ErrHeuristicException,
                                 ErrHazardException,
                                 ErrNoBufsException,
                                 ErrNotUpException,
                                 ErrTimedOutException,
                                 ErrIOErrException,
                                 ErrConnfreeException,
                                 ErrNetDownException,
                                 ErrSyserrException

トランザクションをロールバックします。

trnUnchainedRollbackメソッドを呼び出すと,グローバルトランザクションは終了します。グローバルトランザクションの範囲外からは,SPPをトランザクションとして実行できません。

パラメタ

なし。

戻り値

なし。

例外
ErrProtoException

trnUnchainedRollbackメソッドを不正なコンテキストから呼び出しています。

ErrHeuristicException

dc_trn_unchained_rollback関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,あるトランザクションブランチはコミット,あるトランザクションブランチはロールバックしました。この例外は,ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと,このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと,このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

trnInfo

public boolean trnInfo()

trnInfoメソッドを呼び出したTP1Clientオブジェクトが,現在トランザクションとして稼働しているかどうかを報告します。このメソッドは内部の変数を参照するだけで,rapサーバとは通信しません。

パラメタ

なし。

戻り値
true

trnInfoメソッドを呼び出したTP1Clientオブジェクトは,トランザクションの範囲内にあります。

false

trnInfoメソッドを呼び出したTP1Clientオブジェクトは,トランザクションの範囲外にあります。

例外

なし。

getTrnID

public void getTrnID(byte[] gid,byte[] bid)
              throws ErrInvalidArgsException,
                     ErrProtoException

現在のトランザクショングローバル識別子,およびトランザクションブランチ識別子を取得します。このメソッドは内部の変数を参照するだけで,rapサーバとは通信しません。

現在のトランザクショングローバル識別子,およびトランザクションブランチ識別子は,次に示すメソッドを呼び出してトランザクションが起動したときに,TP1/Serverが割り当てたものです。

  • trnBeginメソッド

  • trnChainedCommitメソッド

  • trnChainedRollbackメソッド

パラメタ
gid

トランザクショングローバル識別子を格納する16バイト以上のbyte型配列を指定します。

bid

トランザクションブランチ識別子を格納する16バイト以上のbyte型配列を指定します。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

getTrnIDメソッドを不正なコンテキストから呼び出しています。

getRpcServicePrio

public int getRpcServicePrio()

setRpcServicePrioメソッドで設定した,サービス要求のスケジュールプライオリティを取得します。

このメソッドが取得するスケジュールプライオリティの値は,CUPが再びsetRpcServicePrioメソッドを呼び出すか,またはrpcCloseメソッドを呼び出すまで変わりません。

次に示す場合,getRpcServicePrioメソッドは省略時解釈値である4を取得します。

  • CUPでsetRpcServicePrioメソッドを呼び出していない場合

  • setRpcServicePrioメソッドの引数prioに0を設定して呼び出した場合

  • rpcCloseメソッドを呼び出した場合

パラメタ

なし。

戻り値

setRpcServicePrioメソッドで設定したスケジュールプライオリティを,1〜8までの整数で取得します。

例外

なし。

cltReceive

public void cltReceive(byte[]  buff,
                       int[]   recvleng,
                       int     timeout,
                       int     flags)
                throws ErrInvalidArgsException,
                       ErrProtoException,
                       ErrNetDownException,
                       ErrTimedOutException,
                       ErrSyserrException,
                       ErrInvalidPortException,
                       ErrConnfreeException

MHPが送信したメッセージを受信します。

cltReceiveメソッドを実行する場合,TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定して,rpcOpenメソッドをあらかじめ実行しておく必要があります。

パラメタ
buff

受信したメッセージを格納する領域を指定します。recvlengで指定する長さ以上の領域を指定してください。メソッド実行後は受信したメッセージが返されます。

recvleng

recvleng[0]に受信するメッセージの長さを指定します。メソッド実行後は受信したメッセージの長さが返されます。

timeout

メッセージ受信時の最大待ち時間を,-1から65535までの整数(単位:秒)で指定します。

-1を指定した場合は,メッセージを受信するまで無制限に待ちます。

0を指定した場合は,メッセージの受信を待ちません。受信するメッセージがなかった場合は,ErrTimedOutExceptionが返されます。

1から65535を指定した場合は,指定した秒数だけメッセージの受信を待ちます。指定した秒数を過ぎてもメッセージを受信できない場合は,ErrTimedOutExceptionが返されます。

flags

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

DCNOFLAGS:メッセージ受信後,コネクションを解放しません。

DCNOFLAGSを指定した場合は,障害時を除き,rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_RCV_CLOSE:メッセージ受信後,コネクションを解放します。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または,rpcOpenメソッドは実行されていますが,TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVもしくはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrTimedOutException

メッセージ受信時にタイムアウトしました。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidPortException

この例外は,TP1/Client/J環境定義のdcsockopenatrcvオペランドにYを指定し,dcrcvportオペランドに指定したポートがすでに使用中の場合に発生します。dcsockopenatrcvオペランドにNを指定した場合は,rpcOpenメソッドがErrFatalExceptionを返します。

ErrConnfreeException

MHPからコネクションが解放されました。

注意事項

cltReceiveメソッドは,次に示す場合にCUPに制御を戻します。

  • MHPからrecvleng引数で指定した長さ分のメッセージを受信した場合

  • MHPからのメッセージ受信時に,タイムアウトが発生した場合

  • MHPからコネクションが解放された場合

  • ネットワーク障害が発生した場合

cltReceiveメソッドの発行時に,MHPからコネクションが解放された場合,ErrConnfreeExceptionでエラーリターンします。

cltSend

public void cltSend(byte[]  buff,
                    int     sendleng,
                    String  hostname,
                    int     portnum,
                    int     flags)
             throws ErrInvalidArgsException,
                    ErrProtoException,
                    ErrNetDownException,
                    ErrSyserrException,
                    ErrHostUndefException,
                    ErrInvalidPortException,
                    ErrConnRefusedException

MHPへメッセージを送信します。

cltSendメソッドを実行する場合,TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定して,rpcOpenメソッドをあらかじめ実行しておく必要があります。

パラメタ
buff

送信するメッセージが格納されている領域を指定します。sendlengで指定する長さ以上の領域を指定してください。

sendleng

送信するメッセージの長さを指定します。

hostname

コネクションが確立されていない場合,接続するMHPが存在するノードのホスト名を指定します。

nullを指定した場合は,rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndhostオペランドの内容を参照します。

また,ホスト名として,10進ドット記法のIPアドレスを指定することもできます。

コネクションが確立されている場合,この引数は無視されます。

portnum

コネクションが確立されていない場合,接続するMHPのポート番号を,0から65535までの整数で指定します。

0を指定すると,rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndportオペランドの内容を参照します。

コネクションが確立されている場合,この引数は無視されます。

flags

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

DCNOFLAGS:メッセージ送信後,コネクションを解放しません。

DCNOFLAGSを指定した場合は,障害時を除き,rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_SND_CLOSE:メッセージ送信後,コネクションを解放します。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または,rpcOpenメソッドは実行されていますが,TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDもしくはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrHostUndefException

hostname引数の指定に誤りがあります。または,hostname引数およびTP1/Client/J環境定義のdcsndhostオペランドの両方にホスト名が指定されていません。

ErrInvalidPortException

portnum引数の指定に誤りがあります。

ErrConnRefusedException

MHPに対するコネクションの確立要求が拒否されました(接続を待ち受けていないポートに対してコネクションを確立しようとしました)。

注意事項

cltSendメソッドを実行してメッセージを送信しているときに,MHPからコネクションが解放されると,次に実行するcltSendメソッドは正常終了または異常終了します。正常終了した場合は,その次に実行するcltSendメソッドで初めて異常終了します。そのため,CUPを作成するときは注意してください。

cltAssemSend

public void cltAssemSend(byte[] buff,
                         int sendleng,
                         String hostname,
                         int portnum,
                         int timeout,
                         int flags)
                  throws ErrInvalidArgsException,
                         ErrProtoException,
                         ErrNetDownException,
                         ErrSyserrException,
                         ErrHostUndefException,
                         ErrInvalidPortException,
                         ErrConnRefusedException,
                         ErrTimedOutException,
                         ErrConnfreeException,
                         ErrInvalidMessageException,
                         ErrCollisionMessageException

受信メッセージの組み立て機能を使用してメッセージを送信します。

cltAssemSendメソッドを実行する場合,TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定して,rpcOpenメソッドをあらかじめ実行しておく必要があります。

受信メッセージの組み立て機能を使用した場合,メッセージの先頭4バイトにメッセージ長(4+sendleng引数の指定値)を付けて,buff[0]〜buff[sendleng−1]の長さのメッセージを送信します。

相手システムとのコネクションが確立されていない場合,hostname引数およびportnum引数の指定に従ってコネクションを確立し,メッセージを送信します。

パラメタ
buff

送信するメッセージが格納されている領域を指定します。sendleng引数で指定する長さ以上の領域を指定してください。

sendleng

送信するメッセージの長さを指定します。

hostname

コネクションが確立されていない場合,接続する相手システムのホスト名を指定します。

nullを指定した場合は,rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndhostオペランドの内容を参照します。

ホスト名として,10進ドット記法のIPアドレスを指定することもできます。コネクションが確立されている場合,この引数は無視されます。

portnum

コネクションが確立されていない場合,接続する相手システムのポート番号を,0から65535までの整数で指定します。

0を指定すると,rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndportオペランドの内容を参照します。コネクションが確立されている場合,この引数は無視されます。

timeout

予約引数です。指定した値は無視されます。

flags

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

DCNOFLAGS:メッセージ送信後,コネクションを解放しません。

DCNOFLAGSを指定した場合は,障害時を除き,rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_SND_CLOSE:メッセージ送信後,コネクションを解放します。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または,rpcOpenメソッドは実行されていますが,TP1/Client/J環境定義のdcsndrcvtypeオペランドでDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrHostUndefException

接続する相手システムのホスト名に誤りがあります。または,hostname引数およびTP1/Client/J環境定義のdcsndhostオペランドの両方にホスト名が指定されていません。

ErrInvalidPortException

portnum引数の指定に誤りがあります。

ErrConnRefusedException

相手システムに対するコネクションの確立要求が拒否されました(接続を待ち受けていないポートに対してコネクションを確立しようとしました)。

ErrTimedOutException

応答メッセージの受信時に,タイムアウトが発生しました。コネクションは解放されます。

ErrConnfreeException

相手システムからコネクションが解放されました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrCollisionMessageException

送受信メッセージの衝突が発生しました。

注意事項

cltAssemSendメソッドを実行してメッセージを送信するときに,相手システムからコネクションが解放されると,次に実行するcltAssemSendメソッドは正常終了または異常終了します。正常終了した場合は,その次に実行するcltAssemSendメソッドで初めて異常終了します。そのため,CUPを作成するときは注意してください。

cltAssemReceive

public void cltAssemReceive(byte[] buff,
                            int[] recvleng,
                            int timeout,
                            int flags)
                     throws ErrInvalidArgsException,
                            ErrProtoException,
                            ErrNetDownException,
                            ErrTimedOutException,
                            ErrSyserrException,
                            ErrInvalidPortException,
                            ErrConnfreeException,
                            ErrInvalidMessageException,
                            ErrBufferOverflowException

受信メッセージの組み立て機能を使用してメッセージを受信します。

cltAssemReceiveメソッドを実行する場合,TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定して,rpcOpenメソッドをあらかじめ実行しておく必要があります。

受信メッセージの組み立て機能を使用した場合,メッセージの先頭4バイトは,buff引数に指定されたバッファに格納されません。

このメソッドが正常終了した場合,recvleng[0]の長さのユーザデータを含むメッセージを受信し,ユーザデータがbuff[0]〜buff[recvleng[0]−1]に格納されます。

パラメタ
buff

受信したメッセージを格納する領域を指定します。受信するメッセージの長さ以上の領域を指定してください。

recvleng

メソッド実行後に,受信したメッセージの長さがrecvleng[0]に返されます。

timeout

メッセージ受信時の最大待ち時間を,-1から65535までの整数(単位:秒)で指定します。

-1を指定した場合は,メッセージを受信するまで無制限に待ちます。

0を指定した場合は,メッセージの受信を待ちません。受信するメッセージがなかった場合は,ErrTimedOutExceptionが返されます。

1から65535を指定した場合は,指定した秒数だけメッセージの受信を待ちます。指定した秒数を過ぎてもメッセージを受信できない場合は,ErrTimedOutExceptionが返されます。

flags

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

DCNOFLAGS:メッセージ受信後,コネクションを解放しません。

DCNOFLAGSを指定した場合は,障害時を除き,rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_RCV_CLOSE:メッセージ受信後,コネクションを解放します。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または,rpcOpenメソッドは実行されていますが,TP1/Client/J環境定義のdcsndrcvtypeオペランドでDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrTimedOutException

メッセージの受信時にタイムアウトが発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidPortException

この例外は,TP1/Client/J環境定義のdcsockopenatrcvオペランドにYを指定し,dcrcvportオペランドに指定したポートがすでに使用中の場合に発生します。dcsockopenatrcvオペランドにNを指定した場合は,rpcOpenメソッドがErrFatalExceptionを返します。

ErrConnfreeException

相手システムからコネクションが解放されました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrBufferOverflowException

buff引数の指定値を超える長さのメッセージを受信しました。

注意事項

cltAssemReceiveメソッドは,次に示す場合にCUPに制御を戻します。

  • メッセージ受信が完了した場合

  • buff引数の指定値を超える長さのメッセージを受信した場合

  • ネットワーク障害が発生した場合

  • メッセージ受信時に,タイムアウトが発生した場合

  • 相手システムからコネクションが解放された場合

  • 不正なメッセージ長のメッセージを受信した場合

  • 不正なセグメント情報のメッセージを受信した場合

cltAssemReceiveメソッドの発行時に,相手システムからコネクションが解放された場合,ErrConnfreeExceptionでエラーリターンします。

setConnectInformation

public void setConnectInformation(byte[] inf,
                                  short inf_len)
                           throws ErrInvalidArgsException

端末識別情報を設定します。

このメソッドに指定した端末識別情報は,TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名を,dchostオペランドまたはdcrapportオペランドにDCCM3論理端末のポート番号を指定し,次のどちらかの方法でDCCM3論理端末との常設コネクションを確立した場合に有効となります。

  • openConnectionメソッドを呼び出します。引数有りのopenConnectionメソッドの場合,引数hostにDCCM3論理端末のホスト名,引数portにDCCM3論理端末のポート番号を指定します。

  • TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定し,rpcCallメソッドを呼び出します。

このメソッドを呼び出した場合,TP1/Client/J環境定義のdccltconnectinfオペランドに指定した端末識別情報は,再びrpcOpenメソッドを呼び出すまで無視されます。

なお,このメソッドに指定した端末識別情報は,DCCM3論理端末との常設コネクション確立時に認識されます。このメソッドを複数回呼び出した場合は,DCCM3論理端末との常設コネクションを確立する直前に指定した端末識別情報が有効となります。

また,ネームサービスを使用したRPC,またはスケジューラダイレクト機能を使用したRPCの場合は,このメソッドで指定した端末識別情報は無視されます。

パラメタ
inf

端末識別情報として,DCCM3論理端末の論理端末名称を64バイト以内のEBCDIKコードで指定します。ただし,DCCM3側では先頭8バイト目までに指定した値だけが有効になり,9バイト目以降に指定した値は無視されます。

inf_len

端末識別情報長を指定します。1から64までの範囲のバイト長を指定します。

戻り値

なし。

例外
ErrInvalidArgsException

引数の指定に誤りがあります。

acceptNotification

public void acceptNotification(
                               byte[] inf,
                               int[] inf_len,
                               int port,
                               int timeout,
                               byte[] hostname,
                               byte[] nodeid)
                       throws  ErrInvalidArgsException,
                               ErrProtoException,
                               ErrIOErrException,
                               ErrSecurityException,
                               ErrInvalidPortException,
                               ErrTimedOutException,
                               ErrNetDownException,
                               ErrInvalidMessageException,
                               ErrAcceptCanceledException,
                               ErrReplyTooBigException,
                               ErrVersionException,
                               ErrSyserrException

サーバ側の関数(dc_rpc_cltsend関数)によって通知されるメッセージを,timeout引数に指定した時間まで待ち続けます。メッセージを受信した時点でCUPに制御を戻し,通知メッセージ,通知メッセージ長,通知元サーバのホスト名,および通知元サーバのノード識別子を返します。

パラメタ
inf

サーバからの通知メッセージを格納する領域を指定します。

メソッドが正常終了した場合,サーバからの通知メッセージが格納されます。

inf_len

サーバからの通知メッセージを格納する領域の長さ(inf引数の長さ)を指定します。0からDCRPC_MAX_MESSAGE_SIZEの範囲で指定します。

ただし,TP1/Client/J環境定義dccltrpcmaxmsgsizeに2以上を指定した場合,指定できる値の最大値は,DCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,TP1/Client/J環境定義dccltrpcmaxmsgsizeに指定した値になります。

メソッドが正常終了した場合,サーバからの通知メッセージ長が格納されます。

port

サーバからの通知メッセージを受信するポート番号を,5001から65535の範囲で指定します。

同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合,port引数にはそれぞれ異なるポート番号を指定してください。また,port引数に指定できるポート番号でも,OS,またはほかのプログラムが使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSが使用するポート番号については,ご利用のOSの関連ドキュメントを参照してください。

timeout

タイムアウト値を,0から65535(単位:秒)の範囲で指定します。0を指定した場合,無限に待ち続けます。

hostname

通知してきたサーバのホスト名を格納する領域を指定します。256バイト以上を指定してください。

メソッドが正常終了した場合,通知元サーバのホスト名が格納されます。TP1/Client/Jは,java.net.InetAddressクラスのgetHostNameメソッドで通知元サーバのIPアドレスからホスト名を取得し,プラットフォームのデフォルトの文字セットを使用して,取得したホスト名をバイト配列に変換します。この結果が,hostnameに格納されます。通知元サーバのIPアドレスからホスト名への変換に失敗した場合,10進ドット記法(例:10.209.15.124)のIPアドレスをhostnameに格納します。

nullを指定した場合,通知してきたサーバのホスト名を格納しません。

nodeid

通知してきたサーバのノード識別子を格納する領域を指定します。8バイト以上を指定してください。

メソッドが正常終了した場合,通知元サーバのノード識別子が格納されます。ノード識別子のフォーマットは,次のとおりです。

[図データ]

戻り値

なし。

例外
ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrSecurityException

セキュリティ例外が発生しました。

ErrInvalidPortException

port引数で指定したポート番号は使用中です。

ErrClientTimedOutException

TP1/Client/Jでタイムアウトが発生しました。

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrAcceptCanceledException

一方通知受信待ち状態がcancelNotificationメソッドで解除されました。このとき,inf引数,inf_len引数,およびhostname引数にはすでに値が設定されています。nodeid引数には,先頭から8バイト目まで0で初期化された値が設定されます。

ErrReplyTooBigException

受信したメッセージが,CUPで用意した領域に収まりません。収まらないメッセージを切り捨てました。このとき,hostname引数およびnodeid引数には,すでに値を設定されています。

ErrVersionException

通知元サーバのバージョンが不正です。

ErrSyserrException

システムエラーが発生しました。

cancelNotification

public void cancelNotification(
                               byte[] inf,
                               int inf_len,
                               String hostname,
                               int port)
                       throws  ErrInvalidArgsException,
                               ErrProtoException,
                               ErrIOErrException,
                               ErrInvalidPortException,
                               ErrTimedOutException,
                               ErrNetDownException,
                               ErrHostUndefException,
                               ErrSyserrException

サーバからの一方通知受信待ち状態(acceptNotificationメソッド,またはacceptNotificationChainedメソッドの発行)を解除します。解除するときに,inf引数に指定したメッセージを,一方通知受信待ち状態のCUPに通知できます。

パラメタ
inf

CUPに通知するメッセージを指定します。

inf_len

CUPに通知するメッセージ長(inf引数の長さ)を指定します。0からDCRPC_MAX_MESSAGE_SIZEの範囲で指定します。0を指定した場合はCUPにメッセージを通知しません。

ただし,TP1/Client/J環境定義dccltrpcmaxmsgsizeに2以上を指定した場合,指定できる値の最大値はDCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,TP1/Client/J環境定義dccltrpcmaxmsgsizeに指定した値になります。

hostname

一方通知受信待ち状態のCUPが存在するホスト名を指定します。ホスト名として,10進ドット記法(例:10.209.15.124)のIPアドレスを指定することもできます。

port

一方通知受信待ち状態のCUPのポート番号を,5001から65535の範囲で指定します

戻り値

なし。

例外
ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrInvalidPortException

port引数で指定したポート番号が不正です。

ErrClientTimedOutException

TP1/Client/Jでタイムアウトが発生しました。

ErrNetDownAtClientException

CUP間でネットワーク障害が発生しました。

ErrHostUndefException

hostname引数で指定したホスト名が不正です。

ErrSyserrException

システムエラーが発生しました。

openNotification

public void openNotification(int port)
                     throws  ErrInvalidArgsException,
                             ErrProtoException,
                             ErrInvalidPortException,
                             ErrNetDownException,
                             ErrSyserrException

一方通知連続受信機能を使用するための環境を作成します。このメソッドは,closeNotificationメソッドと対で発行します。このメソッドが正常終了した場合は,必ずcloseNotificationメソッドを発行してください。

パラメタ
port

サーバからの通知メッセージを受信するポート番号を,5001から65535の範囲で指定します。

同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合,port引数にはそれぞれ異なるポート番号を指定してください。また,port引数に指定できるポート番号でも,OS,またはほかのプログラムが使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSが使用するポート番号については,ご利用のOSの関連ドキュメントを参照してください。

戻り値

なし。

例外
ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていない,またはopenNotificationメソッドがすでに実行されています。

ErrInvalidPortException

port引数で指定したポート番号は,すでに使用されています。

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

acceptNotificationChained

public void acceptNotificationChained(
                                      byte[] inf,
                                      int[] inf_len,
                                      int timeout,
                                      byte[] hostname,
                                      byte[] nodeid)
                              throws  ErrInvalidArgsException,
                                      ErrProtoException,
                                      ErrIOErrException,
                                      ErrSecurityException,
                                      ErrTimedOutException,
                                      ErrNetDownException,
                                      ErrInvalidMessageException,
                                      ErrAcceptCanceledException,
                                      ErrReplyTooBigException,
                                      ErrVersionException,
                                      ErrSyserrException

サーバ側の関数(dc_rpc_cltsend関数)によって通知されるメッセージを,timeout引数で指定した時間まで待ち続けます。メッセージを受信した時点でCUPに制御を戻し,通知メッセージ,通知メッセージ長,通知元サーバのホスト名,および通知元サーバのノード識別子を返します。このメソッドを発行するときは,あらかじめopenNotificationメソッドを発行しておく必要があります。このメソッドは,openNotificationメソッドからcloseNotificationメソッドまでの間で発行できます。

パラメタ
inf

サーバからの通知メッセージを格納する領域を指定します。

メソッドが正常終了した場合,サーバからの通知メッセージが格納されます。

inf_len

サーバからの通知メッセージを格納する領域の長さ(inf引数の長さ)を指定します。0からDCRPC_MAX_MESSAGE_SIZEの範囲で指定します。

ただし,TP1/Client/J環境定義dccltrpcmaxmsgsizeに2以上を指定した場合,指定できる値の最大値はDCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,TP1/Client/J環境定義dccltrpcmaxmsgsizeに指定した値になります。

メソッドが正常終了した場合,サーバからの通知メッセージ長が格納されます。

timeout

タイムアウト値を,0から65535(単位:秒)の範囲で指定します。0を指定した場合,無限に待ち続けます。

hostname

通知してきたサーバのホスト名を格納する領域を指定します。256バイト以上を指定してください。

メソッドが正常終了した場合,通知元サーバのホスト名が格納されます。

TP1/Client/Jは,java.net.InetAddressクラスのgetHostNameメソッドで通知元サーバのIPアドレスからホスト名を取得し,プラットフォームのデフォルトの文字セットを使用して,取得したホスト名をバイト配列に変換します。この結果が,hostnameに格納されます。通知元サーバのIPアドレスからホスト名への変換に失敗した場合,10進ドット記法(例:10.209.15.124)のIPアドレスをhostnameに格納します。

nullを指定した場合,通知してきたサーバのホスト名を格納しません。

nodeid

通知してきたサーバのノード識別子を格納する領域を指定します。8バイト以上を指定してください。

メソッドが正常終了した場合,通知元サーバのノード識別子が格納されます。ノード識別子のフォーマットは,次のとおりです。

[図データ]

戻り値

なし。

例外
ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

openNotificationメソッドが実行されていません。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrSecurityException

セキュリティ例外が発生しました。

ErrClientTimedOutException

TP1/Client/Jでタイムアウトが発生しました。

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrAcceptCanceledException

一方通知受信待ち状態がcancelNotificationメソッドによって解除されました。このとき,inf引数,inf_len引数,およびhostname引数には,すでに値が設定されています。nodeid引数は,先頭から8バイト目まで0で初期化された値が設定されます。

ErrReplyTooBigException

受信したメッセージが,CUPで用意した領域に収まりません。収まらないメッセージは切り捨てました。このとき,hostname引数およびnodeid引数にはすでに値が設定されています。

ErrVersionException

通知元サーバのバージョンが不正です。

ErrSyserrException

システムエラーが発生しました。

closeNotification

public void closeNotification()
                      throws  ErrNetDownException,
                              ErrSyserrException

一方通知連続受信機能を使用するための環境を削除します。このメソッドは,openNotificationメソッドと対で発行します。openNotificationメソッドが正常終了した場合は,必ずこのメソッドを発行してください。

パラメタ

なし。

戻り値

なし。

例外
ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。