Mule ESB 启动脚本参数

Mule ESB Startup Script Parameters

Mule 是 运行 作为 Windows 服务,当服务器重新启动时,我们需要以非常特定的方式启动备份流。 我已经编辑了位于 $HOME\bin\mule.bat 的 bat 文件 使用这些参数:

./mule -app app1:app2:app3 start

然而,这似乎对启动没有影响。

你从哪里发现它甚至可以工作的? 看看这里关于 starting/stopping Mule 的文档。 https://docs.mulesoft.com/mule-user-guide/v/3.7/starting-and-stopping-mule-esb

据我所知这是不可能的。 您可以将 Anypoint Studio 中流的初始状态更改为已停止。 这将帮助您解决重启后不想启动的流程。 但是,您之后应该通过 MMC 或通过 API.

手动启动它们

这是骡子的回答。 在 Windows

运行 作为 Windows 服务:

按照后续步骤使用系统变量控制顺序。

  • 停止 windows 服务。
  • 创建一个包含所需顺序的系统变量MULE_STARTUP_ORDER(应用程序以“:”分隔)即:APP1:APP2:APP3
  • 将下一行添加到 $MULE_HOME/conf/wrapper.conf 文件中:

    wrapper.app.parameter.10=-应用 wrapper.app.parameter.11=%MULE_STARTUP_ORDER%

  • 启动windows服务。

  • 顺序应该符合预期。

注意:使用此方法,您需要手动 add/delete 应用程序到 MULE_STARTUP_ORDER 变量才能启动

它可能对其他人有帮助 运行 Mule 3.8 Standalone 作为 Window 服务,但这对我有用。 运行 从命令行

删除现有的 Mule 服务(如果存在)

${MULE_HOME}\bin>mule remove

其中${MULE_HOME}是Mule的安装目录

编辑以下文件 \Mule\bin\mule.bat

set MULE_OPTS=set.MULE_APP=%MULE_APP% set.MULE_APP_LONG=%MULE_APP_LONG% set.MULE_HOME="%MULE_HOME%" set.MULE_BASE="%MULE_BASE%" set.MULE_LIB=%MULE_LIB% wrapper.working.dir=%_REALPATH% wrapper.app.parameter.1=-app wrapper.app.parameter.2="appName1:appName2" wrapper.app.parameter.3=%3 wrapper.app.parameter.4=%4 wrapper.app.parameter.5=%5 wrapper.app.parameter.6=%6 wrapper.app.parameter.7=%7 wrapper.app.parameter.8=%8 wrapper.app.parameter.9=%9

其中 appName1 和 appName2 是我在 \Mule\apps

中的 Mule 应用程序的名称

再次安装 Mule 作为服务

${MULE_HOME}\bin>mule install

启动您的 Mule 服务并检查日志以确认 Mule 应用程序正在按预期顺序启动。

最后,如果您希望从命令行执行相同的操作,请尝试

${MULE_HOME}\bin>mule -app=appName1:appName2

希望对您有所帮助!