データベースは運用中にさまざまな例外状況が発生することがあります。例えば、アプリケーションエラー、データベース接続エラー、データベース権限問題、データベースリソース問題、ネットワーク問題などです。これらすべての状況の中で、アプリケーション例外というものがありますが、そのエラーメッセージにはOBのエラーコードが含まれていません。このような問題では、OceanBaseデータベースとの関連性を判断することが一般的に難しく、そのためトラブルシューティングの方向性が不明確になることが多いです。
このようなシナリオでの問題の根本原因を迅速に特定し、効率的に解決するために、ここではOceanBaseのエラーコードが含まれないエラーメッセージに対する明確で実用的なトラブルシューティングプロセスをまとめました。このプロセスは明確な操作手順を提供し、問題処理の効率を向上させ、業務への影響を可能な限り低減することを目指しており、日常的な運用保守作業を強力にサポートします。
アプリケーション実行時にエラーが発生し、そのエラーメッセージにOceanBaseのエラーコードが含まれない場合のトラブルシューティングプロセスは以下の図のとおりです。
プロセスの紹介
アプリケーション実行時に例外が発生し、そのエラーメッセージにOceanBaseのエラーコード情報が含まれない場合は、このプロセスに従って問題のトラブルシューティングを行うことができます。
アプリケーション側のエラーロジックを分析し、切断異常の問題かどうかを判断します:
はいの場合は、アプリケーション切断問題のトラブルシューティングドキュメントを参照してトラブルシューティングを行います。
いいえの場合は、再現可能かどうかをさらに判断します:
はいの場合は、プログラムコードのデバッグやネットワークパケットキャプチャ分析(例:tcpdump)などの手段を用いて、プログラムコードのエラー原因を分析し、問題のトリガーロジックを明確にして分析の方向性を確立します。
いいえの場合は、既存の情報とプログラム自体のロジックを組み合わせて、エラー原因を推測し、問題のトリガーロジックを明確にして分析の方向性を確立します。
典型的なケース
アプリケーション側からのフィードバック:大量データのインポート時に、アプリケーションログにエラー
Connection is closed & Connection resetが報告されます。ビジネスがテスト環境で実行される際、アプリケーション側から観測したSQL平均実行時間は2msですが、本番環境で実行されると30〜40msに増加します。しかし、データベース内のSQL実行時間は増加していません。
- システムがOracleデータベースからOceanBaseデータベースのOracleテナントに切り替えた後、JBossでデプロイされたJDBCアプリケーションで接続数不足の問題が発生しました。