【发布时间】:2014-05-12 22:47:30
【问题描述】:
在 Oracle WebLogic 中,设置环境变量以便您的代码可以访问它的最佳方法是什么?我们有运行 WebLogic 的第三方应用程序来寻找环境变量。
注意:我们使用节点管理器启动托管服务器。
我希望能够在域配置中的某个位置设置它,例如在管理控制台的“服务器启动”选项卡中,但似乎没有好地方这样做。
我能想到的唯一方法是
- 编辑
bin/setDomainEnv.sh以导出环境变量 - 将
nodemanager.properties修改为StartScriptEnabled=true
它的作用是强制 NodeManager 使用 <ms_home>/bin/startManagedWebLogic.sh,它是 setDomainEnv.sh 的来源,并且它们将在 NodeManager 启动时被拾取。但您也必须在每台机器上执行此操作。
想知道是否有比使用 Oracle 的启动脚本更简洁的方法。
【问题讨论】:
-
你有一个域还是多个域?如果您正在使用单个域,将环境添加到 setDomainEnv 或让 setDomainEnv 获取另一个脚本似乎是一个不错的选择。没有简单的方法可以做到这一点,因为与属性不同,环境可能不会在运行时设置。另一种选择 - 如果同一个用户正在启动节点管理器/服务器......您可以在他们的 .bashrc 中设置该用户的环境,以便在 weblogic 运行时它始终存在。
-
多个域,但在这种情况下,它特定于一个域。但即便如此,我们通常在一个域中有 4 台机器,因此需要在每台机器或某种共享存储上对其进行修改。我也喜欢用户环境的想法,但同样的警告仍然适用,它在每台服务器上。我认为真正的解决方案是我们应该让代码/供应商从类路径中读取系统属性或文件。 :)
-
你有没有设法解决这个问题?
-
嗨@Chrispie - 不幸的是没有。我的建议,@jason-alexander 几乎重申了,似乎是最好的方法。如果您可以使用良好的配置管理工具(puppet、ansible 等)管理您的机器,那么您可能可以通过在操作系统用户上一致/可靠地设置 ENV 变量或使用必要的变量修改
setDomainEnv文件来摆脱困境。不幸的是,它没有将配置与 weblogic 配置本身耦合,这正是我所追求的,但我找不到更好的方法。
标签: java weblogic environment-variables startup