创建具有自定义内存的 WebLogic 开发域
Create a WebLogic development domain with custom memory
我一直在尝试通过结合批处理文件和 WLST 来自动创建我们的开发环境,但我正在努力更改 WebLogic 服务器启动时使用的内存。
目前我们正在 <DOMAIN_HOME>/bin/setDomainEnv.cmd
脚本中手动更改内存设置,但这是一种解决方法。应该可以毫不费力地自动完成。
设置域
设置域的脚本非常简单:
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
,但其中 none 被转发到域的最终配置,稍后它总是以 512 heap 和 128 perm 开始,这还不够。
WLST 内存启动参数
我们正在使用 Eclipse,它会调用 startWebLogic.cmd
作为启动脚本。是标准配置。
我尝试使用以下 WLST 脚本。它确实设置了服务器启动参数,但是 WebLogic 没有使用这些属性并且没有加载足够的内存。
edit()
startEdit()
cd('/Servers/myserver/ServerStart/myserver')
cmo.setArguments('-Xmx1024m -XX:MaxPermSize=256m')
activate()
有什么想法吗?
您可以使用技巧获取 ServerStart 参数:
- 编写简单的离线 WLST 脚本以从
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" %*
从 Eclipse 执行 WebLogic 时,没有简单的方法来设置值。它会调用批处理脚本,至少在当前版本中,不允许发送动态参数。
我们解决了它,使 setDomainEnv.cmd
文件成为我们版本化配置的一部分:
- 将
setDomainEnv.cmd
文件复制到您的版本控制配置。
- 随意编辑(内存等)
- 当运行你的开发环境配置脚本时,像
copy custom\setDomainEnv.cmd %DOMAIN_HOME%\bin /y
一样复制文件。
现在每次配置开发环境时,内存值都将准备就绪,无需手动干预。
您必须在更新 WebLogic 时重新编辑您的内容,这样您就不会得到过时的组件。
我一直在尝试通过结合批处理文件和 WLST 来自动创建我们的开发环境,但我正在努力更改 WebLogic 服务器启动时使用的内存。
目前我们正在 <DOMAIN_HOME>/bin/setDomainEnv.cmd
脚本中手动更改内存设置,但这是一种解决方法。应该可以毫不费力地自动完成。
设置域
设置域的脚本非常简单:
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
,但其中 none 被转发到域的最终配置,稍后它总是以 512 heap 和 128 perm 开始,这还不够。
WLST 内存启动参数
我们正在使用 Eclipse,它会调用 startWebLogic.cmd
作为启动脚本。是标准配置。
我尝试使用以下 WLST 脚本。它确实设置了服务器启动参数,但是 WebLogic 没有使用这些属性并且没有加载足够的内存。
edit()
startEdit()
cd('/Servers/myserver/ServerStart/myserver')
cmo.setArguments('-Xmx1024m -XX:MaxPermSize=256m')
activate()
有什么想法吗?
您可以使用技巧获取 ServerStart 参数:
- 编写简单的离线 WLST 脚本以从
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" %*
从 Eclipse 执行 WebLogic 时,没有简单的方法来设置值。它会调用批处理脚本,至少在当前版本中,不允许发送动态参数。
我们解决了它,使 setDomainEnv.cmd
文件成为我们版本化配置的一部分:
- 将
setDomainEnv.cmd
文件复制到您的版本控制配置。 - 随意编辑(内存等)
- 当运行你的开发环境配置脚本时,像
copy custom\setDomainEnv.cmd %DOMAIN_HOME%\bin /y
一样复制文件。
现在每次配置开发环境时,内存值都将准备就绪,无需手动干预。
您必须在更新 WebLogic 时重新编辑您的内容,这样您就不会得到过时的组件。