Java 使用自定义内存创建WebLogic开发域

Java 使用自定义内存创建WebLogic开发域,java,weblogic,Java,Weblogic,我一直试图通过结合批处理文件和WLST来自动化开发环境的创建,但我正在努力改变WebLogic服务器的内存 目前,我们正在手动更改/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 %M

我一直试图通过结合批处理文件和WLST来自动化开发环境的创建,但我正在努力改变WebLogic服务器的内存

目前,我们正在手动更改
/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
,但这些变量都不会被转发到域的最终配置,之后它总是以512堆和128个perm开始,这是不够的

WLST内存启动参数 我们使用的是Eclipse,它确实调用了
startweblog.cmd
作为开始脚本。这是标准配置

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

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

有什么想法吗?

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

  • 编写简单的脱机WLST脚本以从
    config.xml
    获取参数:
  • getArguments.py

  • 将此脚本添加到
    startweblog.cmd
    中,如下所示:
  • startweblog.cmd

    。。。
    设置域_HOME=%~dp0
    路径\to\wlst.cmd getArguments.py%域\u主目录%admin\u服务器\u名称
    
    set/p EXTRA_JAVA_PROPERTIES=您可以使用以下技巧获取ServerStart参数:

  • 编写简单的脱机WLST脚本以从
    config.xml
    获取参数:
  • getArguments.py

  • 将此脚本添加到
    startweblog.cmd
    中,如下所示:
  • startweblog.cmd

    。。。
    设置域_HOME=%~dp0
    路径\to\wlst.cmd getArguments.py%域\u主目录%admin\u服务器\u名称
    
    set/p EXTRA_JAVA_PROPERTIES=从Eclipse执行WebLogic时,没有简单的方法来设置值。它将调用批处理脚本,并且至少在当前版本中,不允许发送动态参数

    我们将
    setDomainEnv.cmd
    文件作为版本化配置的一部分解决了这个问题:

  • setDomainEnv.cmd
    文件复制到您的版本控制配置中
  • 编辑您想要的内容(内存等)
  • 运行开发环境配置脚本时,复制文件,如
    Copy custom\setdomainev.cmd%DOMAIN\u HOME%\bin/y
  • 现在,每次配置开发环境时,内存值都将准备就绪,无需手动干预


    更新WebLogic时,您必须重新编辑您的内容,这样您就不会得到过时的组件。

    从Eclipse执行WebLogic时,没有简单的方法来设置值。它将调用批处理脚本,并且至少在当前版本中,不允许发送动态参数

    我们将
    setDomainEnv.cmd
    文件作为版本化配置的一部分解决了这个问题:

  • setDomainEnv.cmd
    文件复制到您的版本控制配置中
  • 编辑您想要的内容(内存等)
  • 运行开发环境配置脚本时,复制文件,如
    Copy custom\setdomainev.cmd%DOMAIN\u HOME%\bin/y
  • 现在,每次配置开发环境时,内存值都将准备就绪,无需手动干预


    更新WebLogic时,您必须重新编辑您的内容,这样您就不会得到过时的组件。

    我们使用的是WebLogic 10.3.6开发ZIP发行版。请查找WLS用于设置Java参数的环境变量,我们正在使用WebLogic 10.3.6开发ZIP发行版。找到WLS用来设置Java参数的环境变量,然后设置它。
    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
    
    ...
    
    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" %*