Web アプリケーションのテスト中にデータベースの一貫性をチェックしていたところ、奇妙な現象が発生しました。
特定の時間の間にすべてのテーブルに Id のギャップがあります。つまり、114 から 130 までのすべての ID がなくなっており、その間に約 20 分の間隔があります。
詳しく説明すると、ロールバックされたトランザクションのように見えます。行の記録はなく、トリガーも実行されておらず、ログも記録されていません。
私のアプリケーションにはテーブルからデータを削除できるものは何もないので、Spring がコミットされずに残されていた (複数のデータベース要求の) 大規模なトランザクションをロールバックしたと信じるしかありません。
自動コミット オプションがオンになっており、サーバーはこの期間に再起動されませんでした。
このようなことが以前に起こったことを聞いたことがありますか?どんな助けや提案も大歓迎です...
ありがとう。
編集:
Tomcat ログを見ると、サーバーが適切なタイミングで再起動を強制したようです。これにより、JDBC はこのようなトランザクションをロールバックしますか?
サーバーが理由もなく再起動したようです... これは Tomcat または JDBC のバグですか?