当使用stsadm -o execadMsvcjobs作为批处理命令的一部分时,我们发现即使命令说所有作业已经运行,但工作也不一定要完成。

这意味着我们的下一个批处理作业例如激活功能可能会失败,因为该解决方案尚未及时部署。

我们目前有批处理文件的延迟来解决此问题,但想知道是否有更好的解决方案。

一切顺利

有帮助吗?

解决方案

EASJ有几个问题。

首先,不能保证部署在运行EASJ后成功了。您将不得不致电枚举并解析返回的XML,以查看部署是否很好。

其次,EASJ仅检查当前Web前端服务器的SpadMinistrationserviceJobDefinitionCollection中的作业。当您激活功能时,这可能会导致您的悲伤:该作业可能在当前的WFE上完成,但在所有WFE上都没有完成。另一个变体是,如果您较早地在WFE#1上部署了解决方案,并且该工作以某种方式停滞不前,并且您将解决方案重新删除了WFE#2上的解决方案,您将收到有关待处理工作等的怪异警告。 这就是为什么始终从同一WFE部署的原因!

STSADM Extension Guru和MVP Gary Lapointe进行了扩展,应解决以后的问题,因此要安全(R)用于脚本:http://stsadm.blogspot.com/2008/10/better-execadmsvcjobs-stsadm-command.html

AFAICS他没有解决部署期间可能发生部署的事实。

关于PowerShell解决方案:虽然听起来很吸引人,但它可能会变得很快(我们已经在PowerShell中创建了一个部署解决方案,并且相信我不是Picknick)。有关部署的逻辑也很多是内部类(例如SPTimerStore)。不过,这肯定是可行的:-)

许可以下: CC-BY-SA归因
scroll top