2017-08-18 4 views
0

私は、クラスタ内のノードのスケーリングのためにカスタム自動スケールを設定しました。スケールアップは素晴らしい作品です。私は縮小に問題があります。問題は、ノードを削除するという目的でDeactivateNodeAsync()メソッドを呼び出した後で、スケールダウンしたいとき、削除したいノードを特定するときです。私は、非アクティブ化が完了するまで待って、ノードの状態が無効であることを確認します。それが消えたら、RemoveNodeStateAsync()メソッドを呼び出して、このノードが削除されていることをクラスタが登録できるようにします。ファブリッククラスタ内のノードのRemoveNodeStateAsync()は、ノードが無効な状態になっても失敗します。

しかし、私の問題は - RemoveNodeStateAsync()を呼び出すと、次の例外が発生しています - ノードが起動しているということです。これは完全な例外です。

スケールコンテナ:スケールノードが失敗しました。例外: System.AggregateException:1つ以上のエラーが発生しました。 ---> System.AggregateException:1つ以上のエラーが発生しました。 ---> System.Fabric.FabricException:ノードが起動しています。 ---> System.Runtime.InteropServices.COMException:HRESULTからの例外: System.Fabric.Interop.NativeClient.IFabricClusterManagementClient9.EndNodeStateRemoved(IFabricAsyncOperationContext 文脈)における 0x80071BC4 System.Fabric.Interop.Utilityました。インナーの<> System.Fabric.Interop.AsyncCallOutAdapter2`1.Finishでc__DisplayClass20_0.b__0(IFabricAsyncOperationContext コンテキスト)(IFabricAsyncOperationContext 文脈、ブールexpectedCompletedSynchronously)---内部 例外スタックトレースの終わり--- ---終了例外スタックトレース --- System.Threading.Tasks.Task.Wait(のInt32 millisecondsTimeout、 CancellationToken cancellationToken)

でSystem.Threading.Tasks.Task.ThrowIfExceptional(ブールincludeTaskCanceledExceptions)で私が何をしないのです?ノードが無効であるという状態を明示的にチェックした後でも、ノードが起動しているというのはなぜですか?何らかのノードが削除されたことをクラスタに登録するにはどうすればよいですか。これに関する助けを感謝します。

答えて

関連する問題