1

Saga で NServiceBus 3.0 ITimeoutState および IHandleTimeouts 機能を使用しようとしています。次のコードスニップがあります。次のコードは、NServiceBus.3.0.0-rc5 で問題なく正常に動作します。しかし、3.0.0 以上のバージョンで DLL を更新すると、サガのタイムアウトが期待どおりに機能せず、次の警告が表示されます。

2012-04-05 09:15:26,267 [Worker.5] INFO NServiceBus.Sagas.Impl.SagaDispatcherFactory [(null)] <(null)> - ID 9496c29e のメッセージ タイプ SomeNameSpace.MySagaTimeout のサガが見つかりませんでした- f745-4ada-8212-99e47324922b\20920. SagaNotFoundHandlersを呼び出します。

この問題を解決するのを手伝ってください。

TimeoutMessage:

public class MySagaTimeout : ITimeoutState
{
    public InputMessage1 Source { get; set; }
}

サガコード:

public class BrandMerchandisingRoot : Saga<MySagaState>,
                                          IAmStartedByMessages<InputMessage1>,
                                          IHandleTimeouts<MySagaTimeout>,
                                          IHandleMessages<MySagaTimeout>
{
      public void Handle(InputMessage1 message)
      {
        RequestUtcTimeout(5.Seconds(), new MySagaTimeout {Source = message});
      }

      public void Timeout(MySagaTimeout state)
      {
        //some other code here
      }

      public void Handle(MySagaTimeout message)
      {
         Timeout(message);
      }
}

構成:

Configure.With()
.StructureMapBuilder(ObjectFactory.Container)
.RunTimeoutManager()
.UseInMemoryTimeoutPersister()
.MsmqSubscriptionStorage()
.Sagas()
.UnicastBus();

注: 私は独自の saga 永続化機能を使用しており、 IFindSagas<MySagaState>.Using<MySagaTimeout>の実装があります。

4

0 に答える 0