0

数週間 nservicebus で遊んでいますが、ローカル マシンですべてが順調に進んでいたので、テスト環境をセットアップして展開に取り組むことにしました。nservicebus に付属する汎用ホストを使用しており、ローカルで実行するときに nservicebus.Integration プロファイルを使用していましたが、テスト環境で Nservicebus.Production を使用したいと考えています。SQL Server 2008 データベースをセットアップし、app.config に変更を加えたところ、すべて正常に動作しているように見えました。しかし、何度か試行した後、メッセージがサブスクライバーによって取得されていないことに気付きました。サブスクリプション テーブルを確認したところ、空でした。ログを調べたところ、次のことに気付きました。

2010-05-06 15:07:57,416 [1] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister [(null)] <(null)> - 0 を挿入: INSERT INTO [サブスクリプション] (SubscriberEndpo int、MessageType) 値 (? 、?) 2010-05-06 15:07:57,416 [1] DEBUG NHibernate.Persister.Entity.AbstractEntityPers ister [(null)] <(null)> - 更新 0: 2010-05-06 15:07:57,416 [ 1] DEBUG NHibernate.Persister.Entity.AbstractEntityPers ister [(null)] <(null)> - 削除 0: DELETE FROM [サブスクリプション] WHERE サブスクライバー エンドポイント = ? AND MessageType = ?

サブスクリプションを挿入してすぐに削除するのはなぜですか? nhibernate ダイアレクトの問題を除外するために、サブスクリプション ストレージを oracle 10g データベースに切り替えてみました。まったく同じように動作し、最初の 2 回は機能しましたが、サブスクリプションが挿入された直後に削除されるのを見始めました。この動作の原因は何ですか?

4

2 に答える 2

0

バージョン 2.0.0.1145 にアップグレードして以来、この問題は発生していません。他の変更 (ログ構成以外) を行っていないので、これは以前のバージョンのバグであると想定しています。

于 2010-06-02T14:03:37.927 に答える
0

削除は、サブスクライバーがサブスクライブ解除の要求を受信した場合にのみ発生します。コードのどこでも bus.Unsubscribe を呼び出していないことを確認できますか?

于 2010-05-06T20:32:41.307 に答える