データベースの運用中には、アプリケーションエラー、データベース接続エラー、データベース権限問題、データベースリソース問題、ネットワーク問題など、さまざまな異常が発生することがよくあります。これらすべてのケースの中で、アプリケーション例外の一種として、エラーメッセージにOBのエラーコードが含まれない場合があります。このような問題では、問題がOceanBaseデータベースと関連しているかどうかを判断しにくく、トラブルシューティングの方向性が不明確になることが一般的です。
このようなシナリオで問題の根本原因を迅速に特定し、効率的に解決するために、ここではアプリケーション例外でエラーメッセージにOceanBaseエラーコードが含まれない場合の、明確で実用的なトラブルシューティングプロセスをまとめました。このプロセスは明確な操作手順を提供し、問題処理の効率を向上させ、業務への影響を可能な限り低減し、日常的な運用保守作業を強力にサポートすることを目的としています。
アプリケーション実行時にエラーが発生し、エラーメッセージにOceanBaseエラーコードが含まれない場合の問題トラブルシューティングプロセスは、以下の図のとおりです。

プロセスの概要
アプリケーション実行時に例外が発生し、エラーメッセージにOceanBaseエラーコード情報が含まれないシナリオに遭遇した場合、このプロセスに従って問題をトラブルシューティングできます。
アプリケーション側のエラーロジックを分析し、切断例外の問題かどうかを判断します:
はいの場合、アプリケーション切断問題のトラブルシューティングドキュメントを参照してトラブルシューティングを行います。
いいえの場合、再現可能かどうかをさらに判断します:
はいの場合、プログラムコードのデバッグ、ネットワークパケットキャプチャ分析(例:tcpdump)などの手段を用いて、プログラムコードのエラー原因を分析し、問題のトリガーロジックを明確にして分析の方向性を定めます。
いいえの場合、既存の情報とプログラム自体のロジックを組み合わせて、エラー原因を推測し、問題のトリガーロジックを明確にして分析の方向性を定めます。
典型的な事例
アプリケーション側からのフィードバック:大量データをインポートする際、アプリケーションログに
Connection is closed & Connection resetエラーが報告された。業務処理をテスト環境で実行した際、アプリケーション側で観測されたSQLの平均実行時間は2msでしたが、本番環境で実行すると30〜40msに増加しました。ただし、データベース内部でのSQL実行時間は増加していません。具体的なトラブルシューティングの手順については、アプリケーション側でのSQL実行時間がデータベース内部の実行時間よりも大幅に高い問題を参照してください。
- システムがOracleデータベースからOceanBaseデータベースのOracleテナントに切り替えた後、JBoss上にデプロイされたJDBCアプリケーションで接続数不足の問題が発生しました。