web-dev-qa-db-ja.com

MSMQディザスタリカバリ-クラッシュしたマシンからメッセージキューをリカバリする方法は?

クラッシュしたマシンからメッセージキューを回復して、トランザクションメッセージを新しいマシンに復元するにはどうすればよいですか?

4
Thomas Bratt

ソースマシンと宛先マシンの両方でMSMQサービスを停止します。

ネットストップMSMQ

移行先マシンの次のフォルダを削除し、移行元マシンの対応するフォルダの内容に置き換えます。

C:\ Windows\System32\msmq

宛先MSMQサービス上のコピーされたフォルダーへのアクセスを許可します。

icacls.exe "C:\ Windows\System32\msmq"/grant "NT SERVICE\MSMQ" :( F)

チェックポイントファイルを無視するようにMSMQを構成します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parametersを参照し、[パラメーター]をクリックします。 [編集]メニューの[新規]をポイントし、[DWORD(32ビット)値]をクリックします。 「名前」フィールドに「LogDataCreated」と入力し、値が0に設定されていることを確認します。

次の場所でキューのプロパティを開きます。ファイルはテキストであり、メモ帳で開くことができます。

C:\ Windows\System32\msmq\storage\lqs

[セキュリティ]フィールドを変更して、作業キューのフィールドと一致させます。以下に例を示します。

セキュリティ= 0100078 ...など

宛先マシンでMSMQサービスを再起動します。

ネットスタートMSMQ

トラブルシューティング:

  • 宛先ファイルの書き込みの失敗:エクスプローラーがアクセスを許可するように要求するように、宛先サブフォルダーをナビゲートします。
  • チェックポイントファイルが削除されているため、一部のメッセージが重複している可能性があります。
  • メッセージのリストは表示できるが、メッセージの内容自体は表示できない場合は、キューのプロパティで「セキュリティ」フィールドを変更する必要があります。

参照:

MicrosoftメッセージキューサーバーおよびMicrosoftメッセージキューイングのストレージディレクトリ内のファイル名の解釈

http://technet.Microsoft.com/en-us/library/cc733512.aspx

http://blog.aggregatedintelligence.com/2012/03/msmqsecurity-descriptor-cannot-be-set.html

2
Thomas Bratt