コネクションの強制切断は、アプリケーションの異常状態を解消する場合に利用します。
たとえば、接続したまま長時間使用していないコネクションや、資源を占有したままのコネクションが存在すると、新しいコネクションの接続が失敗したり、待ち状態になることがあります。
このような場合には、rdbtermコマンドを使用して、原因となるコネクションを切断することで新しいコネクションの接続や、待ち状態の解除を行うことができます。
なお、rdbtermコマンドのコネクションの切断は非同期で実行されます。
コネクションが回収されたかどうかは、rdbcninfコマンドで確認してください。
参照
rdbtermコマンドの指定方法の詳細については、“Symfoware Server コマンドリファレンス”を参照してください。
アプリケーションに“JYP1052E”が返却された場合には、不要なコネクションが存在しないかを、rdbcninfコマンドで確認してください。不要なコネクションかどうかは、rdbcninfコマンドのトランザクション状態(Tran)やアイドル時間(Idle)を基に、長時間アプリケーションからの要求のないコネクションを特定します。この不要なコネクションを、rdbtermコマンドで切断することにより、新しいコネクションの接続が可能になります。
rdb: ERROR: qdg12147e:通信処理において異常が発生しました:'JYP1052E 接続できる 通信の最大数を越えました.通信種別 =“SYS”’ (システム名=DBAP) $ rdbcninf -s RDBII rdbcninf DATE:2007/04/14 TIME:11/36/00 Remote Connection Status(exec/term/free/total) : 5/ 0/ 0/ 5 Status Idle Tran Type Connection-Info EXEC 00:00 ACT TCP/IP 10.124.4.123/19562/1 EXEC 00:00 ACT TCP/IP 10.124.4.123/19562/2 EXEC 00:00 ACT TCP/IP 10.124.4.123/19562/3 EXEC 131:32 INACT TCP/IP 10.124.4.234/19598/1 EXEC 125:58 INACT TCP/IP 10.124.4.234/19616/1
アプリケーションと接続しているRDBサーバの応答が長時間ない場合は、対象となる資源を別のアプリケーションが占有したままとなっているため、待ち状態になっている可能性があります。この場合は、rdbtermコマンドにより、資源を占有しているコネクションを切断することで、アプリケーションの処理を続行することができます。占有しているかどうかは、rdblkinfコマンドおよびrdbcninfコマンドを基に特定します。
コネクションの切断方法を、以下に示します。
rdb: ERROR: qdg12147e:通信処理において異常が発生しました:'JYP1052E 接続できる 通信の最大数を越えました.通信種別 =“SYS”’ (システム名=DBAP) $ rdblkinf -l -e RDBII rdblkinf DATE:2007/04/14 TIME:11/35/50 DSI-name : DB0001.DSI0001 Status Uid Pid Sid Type Name Unit Purpose ACTIVE I4874 19656 1 TCP/IP 10.124.4.123/DEFAULT DSI REFER|UPDATE WAIT I4874 19641 2 TCP/IP 10.124.4.123/DEFAULT DSI REFER $ rdbcninf -s RDBII rdbcninf DATE:2007/04/14 TIME:11/36/00 Remote Connection Status(exec/term/free/total) : 0/ 0/ 0/ 5 $ rdbterm -p 19656/1