我一直在尝试通过组合批处理文件和WLST来自动创建我们的开发环境,但我很难改变WebLogic服务器将开始的内存。
目前我们正在手动更改<DOMAIN_HOME>/bin/setDomainEnv.cmd
脚本中的内存设置,但这是一种解决方法。应该可以自动完成它。
将Domain设置为非常简单的脚本:
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
set MW_HOME=C:\dev\wls1036_dev
set DOMAIN_HOME=C:\dev\domain
cd %MW_HOME%
call configure.cmd
mkdir %DOMAIN_HOME%
cd %DOMAIN_HOME%
%JAVA_HOME%\bin\java.exe -Xmx1024m -XX:MaxPermSize=256m -Dweblogic.management.username=weblogic -Dweblogic.management.password=welcome1 weblogic.Server
我尝试在此脚本中使用一些变量,例如MEM_ARGS
,JAVA_OPTIONS
,但这些变量都不会转发到域的最终配置,以后它总是以512堆开头,和128烫,这还不够。
我们正在使用Eclipse,它确实将startWebLogic.cmd
称为启动脚本。这是标准配置。
我尝试使用以下WLST脚本。它确实设置了服务器启动参数,但WebLogic没有使用这些属性并且加载的内存不足。
edit()
startEdit()
cd('/Servers/myserver/ServerStart/myserver')
cmo.setArguments('-Xmx1024m -XX:MaxPermSize=256m')
activate()
有什么想法吗?
答案 0 :(得分:0)
您可以使用技巧获取 ServerStart参数:
config.xml
获取参数:getArguments.py
import sys
readDomain(sys.argv[1])
cd('Server/%s/ServerStart/NO_NAME_0' % sys.argv[2])
argsFile = open('arguments.txt', 'w')
print >>argsFile, cmo.arguments
startWeblogic.cmd
,例如:的startWebLogic.cmd
...
set DOMAIN_HOME=%~dp0
path\to\wlst.cmd getArguments.py %DOMAIN_HOME% admin_server_name
set /p EXTRA_JAVA_PROPERTIES=<arguments.txt
call "%DOMAIN_HOME%\bin\startWebLogic.cmd" %*
答案 1 :(得分:0)
从Eclipse执行WebLogic时,没有简单的方法来设置值。它会调用批处理脚本,至少在当前版本中,不允许发送动态参数。
我们解决了这个问题,使setDomainEnv.cmd
文件成为我们版本化配置的一部分:
setDomainEnv.cmd
文件复制到版本控制配置。copy custom\setDomainEnv.cmd %DOMAIN_HOME%\bin /y
。现在,每次配置开发环境时,内存值都将准备就绪,无需人工干预。
在更新WebLogic时,您必须重新编写您的内容,因此您不会得到过时的组件。