如何为Node Manager启动的托管服务器设置带有配额的JVM参数



我有一个WebLogic域与多个托管服务器。一切都运行在独立的主机上。被管理的服务器由Node Manager启动。

根据Oracle WL文档,如果托管服务器由节点管理器启动,那么我需要使用Environments > Servers > MANAGED-SERVER-1 > Server Start > Arguments来添加额外的JVM参数。这很好,效果很好。如果我在这里添加一些东西,那么它就会在服务器上正确显示。

但是现在我需要添加一些包含配额的-D参数:

-Dhttps.protocols="TLSv1.2" -Djdk.tls.client.protocols="TLSv1.2"

WL控制台抱怨配额,不允许我保存/激活配额设置。

当我使用WLST时出现这个错误:

javax.management.InvalidAttributeValueException: javax.management.InvalidAttributeValueException: 
Arguments may not contain '"'

:

cd('/Servers/' + _managed_server_name + '/ServerStart/' + _managed_server_name)
cmo.setClassPath(_managed_server_classpath)
cmo.setArguments(_managed_server_arguments) <--- here

我的问题是如何添加-D参数到托管服务器,如果服务器只是由节点管理器启动和start.....sh脚本从未使用?

操作系统:Linux

引入jvm参数的一种方法是nodemanager和控制台,但这不是唯一的方法。您可以在$DOMAIN_HOME/bin下的脚本中添加jvm参数。例如setDomainEnv.sh有一个变量JAVA_OPTIONS你可以在那里添加你的参数。如果你有StartScriptEnabled=true和StartScriptName=startWebLogic.sh设置在你的nodemanager。在使用nodemanager启动服务器时,甚至会添加JVM选项的属性。另一个技巧是,如果您使用setDomainEnv.sh脚本设置jvm参数,您还可以编写if语句并检查根据您启动的服务器设置的$SERVER_NAME,例如,编写if语句仅向托管服务器或AdminServer添加特定的jvm参数。如果您搜索setDomainEnv.sh,您将找到有关如何编写检查服务器名称的If语句的示例。$SERVER_NAME是您在weblogic控制台中看到的服务器的确切名称。

最后,不要使用双引号,设置参数时不要使用双引号。如果你想使用wlst,你应该像这样设置参数

cmd . setarguments ("-Dhttps.protocols=TLSv1.2 " -Djdk.tls.client.protocols=TLSv1.2")引号包含所有参数

虽然这是针对11g和SOA的,但很多点都是WebLogic特有的,对于12c也是有效的。https://www.ateam-oracle.com/post/where-and-how-to-set-jvm-parameters-in-oracle-soa-11g

最新更新