oracle-plsql 関数を実行する毎日のバッチ ジョブがあります。実際には、Quartz スケジューラは oracle-plsql 関数を呼び出す Java プログラムを呼び出します。この oracle plsql 関数は、4 つのテーブルからデータ (6 か月以上) を削除し、トランザクションをコミットします。
このバッチ ジョブはテスト環境で正常に実行されていましたが、2 週間前に発生した新しいデータがテーブルにダンプされたときに失敗し始めました (コードは今週実稼働する予定です)。以前は、各テーブルの行数は 10 万以下でした。しかし、今では 3 つのテーブルで 100 万、もう 1 つのテーブルで 240 万です。
3時間実行した後、Javaでエラーが発生しています(ログファイルに書き込まれています)「...接続リセット;ネストされた例外はjava.sql.SQLException:Io例外:接続リセット....」。テーブルの行数を確認したところ、どのテーブルからもレコードが削除されていないことが明らかになりました。
Oracleデータベースで、接続がタイムアウトし、呼び出しセッションがアクティブでなくなったときに、plsqlプロシージャ/関数が自動的に終了/強制終了される可能性はありますか?
前もってありがとう、Pradeep。