問題タブ [iinterceptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nhibernate - NHibernate とインターセプター - SQL ラウンドトリップ時間の測定/監視
低速または潜在的に低速な領域の早期警告を取得するために、パフォーマンス モニターとして機能できる NHibernate のインターセプターが必要です。これにより、一定時間以上かかるデータベース操作がイベントを発生させ、(重要なこと) アプリケーションのログへの完全なスタック トレース。
インターセプターは、これに対する良い窓のように見えました。ただし、実験したところ、「SQL から戻るだけ」イベントをキャッチする方法はないようです。
OnPreFlush
OnPostFlush
書き込みが含まれる完全なバッチで動作しますが、読み取りイベントでは呼び出されません。OnPrepareStatement()
測定を開始するのに最適なようですが、停止するには?- 読み取りイベントの場合
OnLoad
、クロックを停止する場所になる可能性がありますが、返されるエンティティごとに 1 回と呼ばれます。 OnPostFlush
書き込みイベントの場合、SQL 後のイベントは表示されません (バッチ全体で動作するものを除き、実際のデータベース呼び出しが発生する前に 、 などが呼び出されるという印象を受けますが、修正していただければ幸いです)OnAfterTransaction
。OnSave
OnFlushDirty
私が知る限り、NHibernate のデータベースとのやり取りでパイプラインの順序が正確に何であるかについてのドキュメントが大幅に不足しているため、そのパイプラインで実際の SQL 実行自体に関連してさまざまなイベントとインターセプター呼び出しが呼び出される場合があります。
これは、バックグラウンドに常駐する必要があり、遅いクエリが検出された場合を除いて、人間の介入をほとんど必要としないものです。また、大規模なサーバー ファームでヘッドレスで実行する必要があるため、NHibernate Profiler などのインタラクティブなツールは出てきました。
見逃したり誤解したりしたことはありますか?
c# - Nibernate でテーブル履歴を維持する
テーブルの履歴を維持しなければならない状況があります。
例: PaymentTransaction テーブルがあり、監査目的で PaymentTransactionHistory を保持したい。
これを達成するために使用できる NHIbernate には何かありますか。IInterceptor と Events について読みましたが、それらが私の場合に役立つかどうかを本当に理解できませんでした。
Fluent NHIbernate を使用しています。
どうもありがとう
c# - 静的メソッドのインターセプター
レガシ コードがあり、アプリケーションがいつ 'Execute' メソッドを呼び出すかを知りたいと考えています。
従来のコード構造:
IInterceptor または PostSharp.dll を使用して、静的メソッドの実行後または実行前に追加の操作を実装することは可能ですか?