Amazon RDS for Oracle インスタンスに接続しようとしたときに、「JavaSQLSQLException: これ以上ソケットから読み取るデータがありません」というエラーのトラブルシューティングを教えてください。

最終更新日: 2021 年 11 月 12 日

Oracle DB インスタンス用の Amazon Relational Database Service (Amazon RDS) に接続しようとすると、「JavaSQLSQLException: これ以上ソケットから読み込むデータがありません」というエラーが表示されます。

解決方法

Oracle サーバーとクライアント JDBC ドライバの間の接続上の問題により、「JavaSQLSQLException: これ以上ソケットから読み取るデータがありません」というエラーが表示されます。これらの接続障害の最も一般的な原因とトラブルシューティングの選択肢は、次のとおりです。

  • ネットワークの中断により接続が突然終了する: この問題のトラブルシューティングを行うには、アプリケーション側から接続がタイムアウトした間に発生した TNS タイムアウトエラーがないかをインスタンスの alert.log ファイルを確認します。詳細については、Oracle のドキュメントの TNS タイムアウトエラーを参照してください。RDS インスタンスのアラートログへのアクセスの詳細はについては、「Oracle データベースログファイル」を参照してください。
  • サーバー側で Oracle エラーが発生したため、接続は終了します。alert.log ファイルで ORA-0600 または ORA-07445 エラーがないか確認してください。特定の Oracle エラーのトレースダンプを収集します。これらのエラーに、Oracle サポートが提供している既知の修正があるかどうかを確認します。
  • クライアント/サーバー接続がアクティブでない。この問題をトラブルシューティングするには、SQLNET.EXPIRE_TIME パラメータを指定した間隔 (分単位) に設定して、クライアントとサーバーの接続がアクティブであることを確認するプローブを送信します。詳細な情報については、SQLNET に関する Oracle ドキュメンテーションをご参照ください。EXPIRE_TIME
  • RDS for Oracle インスタンスが使用できないか、JDBC クライアントが Oracle サーバーへの既存の接続を使用しようとしたときに再起動されました。この問題をトラブルシューティングするには、RDS インスタンスのイベントを取得し、インスタンスが再起動されたかどうかを確認します。JDBC クライアントからの接続が確立されると停止しました。
  • RDS for Oracle インスタンスへの接続に使用される JDBC ドライバに互換性がありません: この問題をトラブルシューティングするには、JDBC ドライバのバージョンが DB インスタンスのバージョンと互換性があることを確認します。互換性のある JDBC ドライバーの一覧については、ODI で使用される Java マシンおよび JDBC ドライバーの互換性マトリックスの Oracle ドキュメントを参照してください。JDBC ドライバーに互換性がない場合は、ソースコード内の最新の JAR ファイルをダウンロードします。次に、データベースへの接続を作成するクラスをコンパイルするときに、このファイルをクラスパスに含めます。詳細については、「JDBC ドライバーのダウンロード」を参照してください。
  • クライアント側のメモリコンポーネントがタイムアウトを引き起こす: この問題をトラブルシューティングするには、Oracle Data Integrator のクライアント側に不要なタイムアウトの原因となるメモリコンポーネントがあるかどうかを確認します。クライアント側でこれらのコンポーネントに正しい値を設定していることを確認してください。詳細は、ODI で Java オプション (メモリヒープの制限、Java以外のライブラリの場所など) を定義する方法に関する Oracle のドキュメントを参照してください

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?