使用自定义内存

时间:2017-02-13 12:41:13

标签: java weblogic

我一直在尝试通过组合批处理文件和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_ARGSJAVA_OPTIONS,但这些变量都不会转发到域的最终配置,以后它总是以512堆开头,和128烫,这还不够。

WLST内存启动参数

我们正在使用Eclipse,它确实将startWebLogic.cmd称为启动脚本。这是标准配置。

我尝试使用以下WLST脚本。它确实设置了服务器启动参数,但WebLogic没有使用这些属性并且加载的内存不足。

edit()
startEdit()
cd('/Servers/myserver/ServerStart/myserver')
cmo.setArguments('-Xmx1024m -XX:MaxPermSize=256m')
activate()

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用技巧获取 ServerStart参数

  1. 编写简单的离线WLST脚本以从config.xml获取参数:
  2. 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
    
    1. 将此脚本添加到startWeblogic.cmd,例如:
    2. 的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文件成为我们版本化配置的一部分:

  1. setDomainEnv.cmd文件复制到版本控制配置。
  2. 编辑您想要的任何内容(内存等)
  3. 运行开发环境配置脚本时复制文件copy custom\setDomainEnv.cmd %DOMAIN_HOME%\bin /y
  4. 现在,每次配置开发环境时,内存值都将准备就绪,无需人工干预。

    在更新WebLogic时,您必须重新编写您的内容,因此您不会得到过时的组件。