0

SQLサービスブローカーインターフェイスでいくつかの作業を行っています。1つのキューに関連付けられたサービスがあり、メソッドが1つしか含まれていません。問題は、transaction.Rollback()を発行すると、メッセージを受信したときにメッセージがキューから消えることです。私は起こるべきではないと思います。方法は次のとおりです。

    [BrokerMethod("MySBResponseMessage")]
    public void ProcessRequestMessage(Message ReceivedMessage, SqlConnection conn, SqlTransaction trans)
    {
        trans.Rollback();
    }

これがサービスインスタンスです。

    service.Run(false, conn, null);

ありがとうmhashim

4

1 に答える 1

0

すべてが機能するはずです。

サービスクラスを正しく実装しましたか?そして、コンストラクターで基本クラスを呼び出しますか?お気に入り:

        class MyService : ServiceBrokerInterface.Service
        {
            public MyService(SqlConnection con)
                : base("ServiceName", con)
            {
                //...
            }

            [BrokerMethod("DEFAULT")]
            public void DoSmth(Message msg, SqlConnection con, SqlTransaction tran)
            {
                //...
            }
        }
于 2012-06-13T06:18:41.890 に答える