1. ホーム
  2. java

[解決済み] Oracle 11gのコネクションリセットエラー

2022-02-27 08:48:38

質問

Red Hat Linux, 64-bit で thin jdbc driver を使用して Oracle 11g に接続しようとすると、以下のエラーが表示されます。このトラブルシューティングの方法について、どなたか詳しい情報を教えていただければ幸いです。

 Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at oracle.net.ns.DataPacket.send(DataPacket.java:199)
    at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211)
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:227)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366)

解決方法は?

何が変わったのか、など、問題の詳細が書かれていませんね。 新しい設定なのか、突然動かなくなったのか? 十分な接続が可能かどうか分かりますか? これはすべての接続で発生するのですか、それとも断続的に発生するのですか?

ログオン時にエラーが発生していることを考慮すると、いくつかの可能性が考えられます。

  1. ネットワーク障害
  2. 最大接続数を超えたため、Oracleがハングアップしました。
  3. ファイアウォールによる制限
  4. データベースサーバーまたはリスナーに問題がある。 セッションを提供する処理が、セッションを開いた後にクラッシュしている可能性があります。

アクティブな接続数と最大値を確認する方法については、以下のstackoverflowのスレッドを確認してください。 もしそれが問題なら "ORA-00018: maximum number of sessions exceeded" というエラーが出ると思うので、そうでない可能性もありますね。 しかし、確認する価値はあります。

Oracleデータベースへの接続可能な最大数を確認する方法は?