dev2dev.bea.com.cn
首页 资源中心 dev2dev学堂 在线技术论坛 专家Blog User Group CodeShare

再论WLST startServer

2007-03-13 13:44:39 | 评论 (0) | 被访问(346)次

Satya Ghattu
  Satya Ghattu加入BEA公司已经有4年多了,担任软件工程师,专门负责WebLogic Platform的Operations Administration以及Management方面。Satya拥有将近8年的软件开发经验,主要是在应用服务器、核心java以及相关的(J2EE)技术方面。他还领导着dev2dev上CodeShare中的几个开源项目,并向dev2dev社区贡献了大量的代码示例。Satya是WebLogic Scripting Tool (WLST)的最初设计者,该工具是BEA官方支持的WebLogic Server命令行工具。在加入BEA之前,他曾在许多软件公司担任各种不同的职务,做过高级Java开发人员、软件分析师,还做过Oracle数据库管理员。Satya持有俄亥俄州Akron大学的工程学硕士学位。


  过去的几个月以来我一直忙于一个项目,那就是为我们的WebLogic应用程序开发人员创建一个框架,以便他们容易地构建、配置和管理WebLogic服务器。无需多说,该框架是广泛使用WLST而构建的。

  WebLogic 域配置完成后我们还会提供基础架构管理他们的域,主要用于启动、停止服务器和获取域状态,并且将他们的配置从开发阶段推向uat阶段以及生产阶段。

  我们使用WLST的startServer启动管理服务器和节点管理器,尽管startServer做了我们需要的事情,但在很多方面它仍有缺点。例如,它不能将PRE_CLASSPATH 或 POST_CLASSPATH添加到服务器的类路径(classpath)。另外,它从JVM继承了类路径,很多情况下在这里调用WLST可能不是所期望的。

  尽管startServer提供了一种重定向服务器的stdOut到文件的方法,但是一旦退出WLST客户端,重定向就会结束,而且无法再使WLST重定向服务器的stdout/stderr到文件。由于startServer的这些缺点,我希望在startServer命令中有个选项可以使用startWebLogic.sh或startManagedWebLogic.sh脚本来启动服务器。因为现在还没有这个选项,所以我想跟大家分享一下我用于处理这个问题的应急方案(workaround)。

  这个应急方案将用到域目录下的startWebLogic.sh。让WLST使用脚本的最大好处是任何添加到脚本中的定制扩展(比如PRE_CLASSPATH/POST_CLASSPATH设置)在启动服务器时都会保留,而且您可以重定向stdout/stderr到文件。

  将下面的定义复制到脚本,并通过传递所需的参数来调用该命令。

def startAdminServerViaScript(domainDirectory, adminServerName):
    try:
      svrOutLoc = domainDirectory+"/servers/"+adminServerName+"/logs/"+adminServerName+".out"
      os._shellEnv.system(domainDirectory+"/bin/startWebLogic.sh > "+svrOutLoc+" 2>&1 &\n")
   except Exception,e:
      e.printStackTrace()
      raise "Error starting the admin server"
def startManagedServerViaScript(domainDirectory, managedServerName, adminUrl):
   try:
      svrOutLoc = domainDirectory+"/servers/"+managedServerName+"/logs/"+managedServerName+"_"+".out"
      os._shellEnv.system(domainDirectory+"/bin/startManagedWebLogic.sh "+managedServerName+" "+adminUrl+" > "+svrOutLoc+" 2>&1 &\n")
   except Exception,e:
      e.printStackTrace()
      raise "Error starting the weblogic server "+managedServerName

  两个函数都会从WLST调用作为域一部分的启动脚本。注意这两个函数都是在Unix/Linux上工作的,如果使用的是Windows,则需要进行适当的修改以调用正确的脚本。

原文出处:http://dev2dev.bea.com/blog/sghattu/archive/2007/01/wlst_startserve.html



Tags: java soa WebLogic Platform WebLogic服务器 WLST startServer
文章评论:(以下网友留言只代表个人观点,不代表BEA观点和立场)
暂时没有评论!

2007年03月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
             
RSS订阅

Satya Ghattu's Blog搜索