私のシステムでは、LockDuration = 5分、AutoRenewTimeout = 20分です。いくつかのメッセージを5分以上処理する(時には5:15、時には6:00)。私は例外持っているこれらのメッセージの :Azureサービスバスと長い処理メッセージ
"The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue."
私たちのログに読んで、そのシステムは、(Process_Aそれを呼び出すことができます)メッセージの処理を開始5分後に、システムが処理を開始するとき、それはまだ進行中でした同じメッセージをもう一度(Process_Bと呼ぶことができます)。 Process_Aが完了し、Complete()が呼び出されました。次にProcess_Bが作業を行い、Complete()を呼び出しました。そして、このメッセージはすでに合併されているため例外が発生します。
LockDurationの最大値が5分であることがドキュメントで分かりました。どうして? 5分を超えるメッセージは処理できません。または構成が間違っているかもしれませんか?
コードで行う必要がありますか?そのためにAutoRenewTimeoutはありませんか? – MichalO
'AutoRenewTimeout'のリンクを共有できますか?私はこのプロパティを見つけることができませんでした。 –
[OnMessageOptions](https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicebus.messaging.onmessageoptions?view=azureservicebus-4.0.0)クラスのフィールドです。 ここにそれに関する話題があります:http://stackoverflow.com/questions/36561227/azure-servicebus-autorenewtimeout – MichalO