8

Entity Framework (ODP.Net) を使用して、潜在的に大量のバイナリ データをリモートの Oracle (11g) データベースに挿入しようとしています。非常に小さなファイル (5 KB 未満) では問題なく動作しますが、大きなファイル (44 KB など) では、「ORA-03135: 接続が失われました」というエラーが発生します。

コマンドを実行してから1秒以内に例外が発生するため、タイムアウトではないと思います。

接続文字列で次の両方を設定しようとしましたが、役に立ちませんでした。

  • Validate Connection=true
  • Pooling=false

listener.logリモートマシンのファイルも調べました。接続が行われていることを示していますが、例外や接続の終了の兆候はありません。

提案された修正またはトラブルシューティングの方法を探しています。

編集:

ローカル ネットワーク上の Oracle インスタンスにアクセスする場合も、同じ SQL 操作が機能します。

4

3 に答える 3

3

これは、さまざまな原因と解決策が考えられる複雑な問題になる可能性があります。ここから始める:

http://www.dba-oracle.com/t_ora_03135_connection_lost_contact.htm

回答: oerr ユーティリティは、ORA-03135 エラーに対して次のように表示します。

ORA-03135: 接続が切断されました

原因: 1) サーバーが予期せず終了したか、強制終了されました。または 2) サーバーが接続をタイムアウトしました。

処置: 1) サーバー・セッションが終了したかどうかを確認してください。2) タイムアウト パラメータが sqlnet.ora で正しく設定されているかどうかを確認します。

ORA-03135 エラーは、ファイアウォールが接続を終了したときにリモート接続するときによく発生します。

ORA-03135 エラーの 1 つの解決策は、sqlnet.ora ファイルの sqlnet.ora expire_time パラメータの値を大きくするか、SQL*Plus プロファイルの expire パラメータをチェックすることです。

ORA-03135 エラーを診断するには、まず ps –ef|grep 構文を使用して、OS PID がまだ存在するかどうかを確認します。

クライアントとサーバー間にネットワーク アドレス変換 (NAT) があるかどうかを確認します。

Windows では、Windows ファイアウォールがローカル接続をチェックしているかどうかを確認します。

Windows XP -> コントロール パネル -> セキュリティ -> タブ「詳細設定」

また、パラメーター sqlnet.inbound_connect_timeout および inbound_connect_timeout_listenername を 0 に設定すると、ORA-03135 エラーを停止できます。

また、上記と同様に、データベース アラート ログで、接続の切断と同時に発生したエラーを確認します。たとえば、ora-600 または ora-7445 が原因である場合もあります。ハンドシェイクが完了した後にのみこのエラーが発生するため、リスナー ログには表示されません。

于 2014-02-19T13:14:19.840 に答える