2012-06-11 177 views
0

我正在做一些與SQL服務代理接口的工作,我有一個服務與一個隊列相關聯,它只包含一個方法,問題是當我收到消息時,如果我發出事務。回滾()消息從我認爲不應該發生的隊列中消失。下面是方法:SQL ServiceBrokerInterface事務回滾不回滾

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

和這裏的服務實例:

service.Run(false, conn, null); 

感謝 mhashim

回答

0

一切都應該工作..

您是否正確實施服務類?並在構造函數中調用基類?像:

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

      [BrokerMethod("DEFAULT")] 
      public void DoSmth(Message msg, SqlConnection con, SqlTransaction tran) 
      { 
       //... 
      } 
     } 
+0

是的,我有,任何方式我探索我的下一個項目,並深挖實施後,服務代理接口,我得出的結論,它不是生產的材料。無論如何,thanx – mhashim

+0

那麼 - 你會做什麼 - 創建你自己的界面?或者不會使用Service Broker? –

+0

我的朋友服務代理界面是一個例子,說明如何在服務代理上實現sql clr層,只要一個例子很好就可以了。 – mhashim