非互換
FUJITSU Enterprise Postgres 12 SP1では、Connection Managerを使用しているアプリケーションが、Connection Managerがデータベース異常検知によりエラーとしたコネクションにおいて、再度SQL実行を試みた際のエラー情報を変更します。
変更後のエラー情報は、“アプリケーション開発ガイド”の各クライアントドライバの“アプリケーションの接続先切り替えが発生した場合のエラーと対処”で提示しているエラーに含まれます。
以下の条件を満たす場合、非互換が発生する場合があります。
1) 次のいずれかのドライバを利用したアプリケーションである。かつ、
- libpq(C言語用ライブラリ)
- ECPG(C言語による埋め込みSQL)
2) Connection Managerを使用している。かつ、
3) 1)のアプリケーションが接続していたデータベースサーバがダウンする。かつ、
4) 3)でデータベースがダウンした際に、Connection Managerがエラーを1)のアプリケーションへ通知している。かつ、
5) 1)のアプリケーションがダウンしたデータベースサーバとのコネクションを切断せず、そのコネクションを用いてSQLを実行した場合。
実際のデータベースサーバの異常状態によって返却されるエラー情報が異なります。
次のエラー情報が返却されます。
libpq(C言語用ライブラリ)の場合: CONNECTION_BAD (PQstatus()の返却値)
ECPG(C言語による埋め込みSQL)の場合: 57P02 (SQLSTATEの返却値)
実際のデータベースサーバの異常状態によって返却されるエラー情報が異なります。
対処方法
SQLエラー時の判定処理において、前述のエラーが返却される場合があることを考慮するようにしてください。
また、“アプリケーション開発ガイド”の各クライアントドライバの“アプリケーションの接続先切り替えが発生した場合のエラーと対処”で説明しているように、アプリケーションの接続先の切り替えに関するエラーが発生した場合は、明示的にコネクションを切断し、コネクションの再接続またはアプリケーションを再実行するようにしてください。