0

私が関与しているプロジェクトは外部サービス (SOA) に依存しており、トランザクション管理はデフォルトでオンになっています。ただし、エラーが発生した場合、ロールバックすると、「支払いのキャプチャ ログ」などの重要なデータが失われます (例: キャプチャが行われた後にコードが失敗した場合)。

現在のトランザクションの外でクエリを実行する実用的な方法はありますか? どのような例外が発生しても、常に外部呼び出しをログに記録したいと考えています。コンベンション用の外部ロギング サービスを実装したくありません。セーブポイントではそこに移動できません。おそらく、その瞬間に別のデータベース接続が必要ですか?

4

1 に答える 1

2

現在のトランザクションの外でクエリを実行する実用的な方法はありますか?

PostgreSQL は、自律的な (サブ) トランザクションである、必要なものをネイティブにサポートしていません。

不器用ではありますが、 dblinkでそれらをシミュレートできます。dblinkあなたが提案したことを正確に行います。ある PostgreSQL サーバーから別の PostgreSQL サーバーへの接続を確立します。接続は、それ自体に接続しているサーバーである可能性があります。

アプリケーション レベルでこれを実行できる場合は、その方がよい場合がよくありますが、dblink は確かにオプションです。

于 2013-08-30T12:32:06.633 に答える