我正在Service Fabric上升级应用程序,其中一个副本显示以下警告:
不健康的事件:SourceId =' System.RAP',Property =' IStatefulServiceReplica.ChangeRole(S)Duration',HealthState =' Warning',ConsideWarningAsError = false 。 节点_gtmsf1_0上的api IStatefulServiceReplica.ChangeRole(S)被卡住了。开始时间(UTC):2018-03-21 15:49:54.326。
经过一些调试后,我怀疑我没有正确兑现取消令牌。与此同时,如何安全地强制重新启动此卡住的副本以使服务再次运行?
Get-ServiceFabricDeployedReplica
的部分结果:
...
ReplicaRole : ActiveSecondary
ReplicaStatus : Ready
ServiceTypeName : MarketServiceType
...
ServicePackageActivationId :
CodePackageName : Code
...
HostProcessId : 6180
ReconfigurationInformation : {
PreviousConfigurationRole : Primary
ReconfigurationPhase : Phase0
ReconfigurationType : SwapPrimary
ReconfigurationStartTimeUtc : 3/21/2018 3:49:54 PM
}
答案 0 :(得分:1)
您可以将其直接传递给Restart-ServiceFabricReplica
。如果仍然卡住,那么您应该可以使用Get-ServiceFabricDeployedCodePackage
和Restart-ServiceFabricDeployedCodePackage
重新启动周围的流程。由于Restart-ServiceFabricDeployedCodePackage
具有选择随机包以模拟失败的选项,因此请确保定位您有兴趣重新启动的特定代码包。