2016-09-02 15 views
0

Windows Server 2012 R2、PowerShell 4.0がインストールされている2ノードクラスタがあります。クラスタ内の役割の1つは、約20個のプライベートキューがインストールされている「TESTMSMQ」という名前の「メッセージングキューイング」です。新鮮PowerShellコンソールで Get-MsmqQueueでクラスタ内のキューが見つかりません

は、私が-Name *-MsmqQueueを取得し、私は戻って何を取得実行すると、コマンド

$env:_CLUSTER_NETWORK_NAME_='TESTMSMQ' 

を使用して、「TESTMSMQ」であると、環境変数_CLUSTER_NETWORK_NAME_を設定します。しかし、compmgmt.mscを実行すると、リストにあるすべてのキューが表示され、System.MessagingアセンブリをPowerShellセッションにロードすると、キューが表示されます。真

[System.Reflection.Assembly]::LoadWithPartialName("System.Messaging") 
[System.Messaging.MessageQueue]::Exists('.\private$\MyTestQueue') 

戻り

誰もがMSMQコマンドレットは、キューを見つけることができない理由のアイデアが、およびコンピュータ経営管理論は、スナップインできる.NETアセンブリが同様にキューを見ていますか?

ローカルノードまたは物理ノードで定義されたキューはありません。 "private $ \ MyTestQueue"は、MSMQのインストール済みロール "TESTMSMQ"でのみ定義されています。

したがって、Exists()がローカルホスト名を使用してTrueを返す場合、環境は物理ノードではなくMSMQロールであると想定します。

答えて

0

古典的なクラスター化されたMSMQの問題のように聞こえます。

Clustering MSMQ applications – rule #1

、あなたのアプリケーションを実行している場所を指定しないでください。たとえば、「Exists( '。\ private $ \ MyTestQueue')」がTrueを返すと、MSMQサービスがテストでローカルに実行されていることを意味します。したがって、ノード上のコマンドプロンプトからテストを実行した場合、クラスタ上ではなくノード上のMSMQと対話しています。クラスター化されたMSMQサービスを使用する代わりに、クラスター化されたコマンドプロンプトからテストを実行する必要があります。

+0

環境を_CLUSTER_NETWORK_NAME_に設定すると、クラスタ化されたコマンドプロンプトに表示されません。 * [クラスタ化MSMQでPowerShellを使用する](http://www.winterdom.com/msmq/2011/10/25/using-powershell-with-clustered-msmq.html) * [GetHostNameW関数](https:///msdn.microsoft.com/en-us/library/windows/desktop/dn793576(v=vs.85).aspx) – jcjustesen

関連する問題