コネクションが切断された場合,実行中のUAPを終了後,再起動してください。再起動すると,自動的にコネクションが再接続されます。
UAPを再起動したくない場合は,コネクションが切断されたことを示すエラーがUAPに返ったときに,tx_open関数を再発行してください。そうすれば,UAPを終了しなくてもサービスを続行できます。tx_open関数を再発行するときのコーディング例を次に示します。
int connection = 1; |
トランザクションの開始又は終了時にHiRDBとのコネクションを確立又は切断するため,途中で切断した場合も次回のトランザクション開始時にコネクションが再接続されます。
動的登録の場合は,OpenTP1/Server Baseのtrn_rm_open_close_scopeオペランドにtransactionを指定してください。そうすれば,OpenTP1/Server Baseはトランザクションの開始又は終了でHiRDBとのコネクションを確立又は切断します。したがって,途中でコネクションが切断されても,次回のトランザクションの開始時にコネクションが再接続されます。
静的登録の場合は,トランザクションの開始時にHiRDBとのコネクションが確立されているかどうかをトランザクションマネジャが確認します。コネクションが切断されている場合は,自動的に再接続されて,トランザクションを開始します。なお,TP1/EEの場合は,HiRDBのクライアント環境定義PDXAAUTORECONNECTにYESを指定する必要があります。
トランザクションマネジャでトランザクションを開始して,最初にHiRDBにアクセスするSQL文を実行するまでに,HiRDBとのコネクションが切断されていた場合,SQL文の実行時にHiRDBクライアントライブラリでコネクションが再接続されます。ただし,ネットワーク障害による切断は検知できないため,再接続されません。