使用 setModelStep 方法将监控模型生命周期步骤设置为一致状态

尝试卸载监控模型时,可能会遇到一个错误条件。META_MODEL_STEP_T 表与模型的当前状态不匹配时,会发生此错误。例如,尝试运行删除模式脚本,但由于步骤表指示该模式尚未创建,因此该脚本无法运行,即便该模式确实存在时也不例外。要解决此问题条件,可以调用 MBean 方法来强制生命周期步骤进入一致状态。使用包含参数 modelIDversionDatestepNameisComplete 的 setModelStep 方法可设置步骤的状态。

setModelStep 方法具有四个参数:
  • modelID:模型名称
  • versionDate:模型版本时间戳记
  • stepName:将在 META_MODEL_STEP_T 表中更新的生命周期步骤的名称。
    注: stepName 参数区分大小写。
  • isComplete:将 META_MODEL_STEP_T 表中 IS_COMPLETE 列的值设置为一 (1) 或零 (0),其中 1 相当于 true0 相当于 false
stepName 参数的值指示将更新的生命周期步骤。最常用的 stepName 包括:
  • configureCEIDistribution
  • confirmInstall
  • confirmUninstall
  • disableDashboards
  • enableDashboards
  • rebootCEI
  • runCreateDMSScript
  • runCreateSchemaScript
  • runDeleteSchemaScript
要点: 调用 setModelStep 方法之前,请确保监控模型已停止。

在以下示例中,您已删除模型版本的模式,但监控模型版本页面会报告该模式仍存在。此情况通过管理控制台中监控模型页面上的“模式已创建”部署步骤旁边的绿色选中标记予以指示。要强制“模式已创建”生命周期步骤进入正确的状态,请使用示例代码中所示的 wsadmin 和 setModelStep MBean 方法。

要启动 wsadmin,请使用以下命令:
wsadmin -lang <lang_type> -wsadmin_classpath <WAS_home>/plugins/com.ibm.wbimonitor.lifecycle.spi.jar
其中,lang_type 是 jythonjacl。 对于所有操作系统,为 wsadmin_classpath 指定的路径都使用正斜杠。
调用 setModelStep 方法的 Jacl 示例:
set lcMbean [$AdminControl queryNames type=LifecycleServices,*]
$AdminControl invoke $lcMbean setModelStep {MyModelID 20100629113451 runCreateSchemaScript 0 }
调用 setModelStep 方法的 Jython 示例:
lcMbean=AdminControl.queryNames('WebSphere:type=LifecycleServices,*')
AdminControl.invoke(lcMbean, 'setModelStep', '[MyModelID 20100629113451 runCreateSchemaScript 0]')