用wlst监控weblogic服务器

上传人:第*** 文档编号:30569788 上传时间:2018-01-30 格式:DOC 页数:17 大小:73.50KB
返回 下载 相关 举报
用wlst监控weblogic服务器_第1页
第1页 / 共17页
用wlst监控weblogic服务器_第2页
第2页 / 共17页
用wlst监控weblogic服务器_第3页
第3页 / 共17页
用wlst监控weblogic服务器_第4页
第4页 / 共17页
用wlst监控weblogic服务器_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《用wlst监控weblogic服务器》由会员分享,可在线阅读,更多相关《用wlst监控weblogic服务器(17页珍藏版)》请在金锄头文库上搜索。

1、用 WLST 监控 WEBLOGIC 服务器脚本语言近来受到一些关注。随着 Groovy 和 Jython 的到来,编写与 Java 合并的脚本比 Ant 更简单自然。一直以来使用 XML 来调用 Java 方法都是被迫的,这主要是因为在标记语言中解释流、条件表达式和自定义代码比较困难(虽然自 Ant 1.5 之后这一点有了较大的改进)。 为什么用脚本语言呢?是这样的,如果我有完整的 Java 编程 IDE,用 Jython 或是 Groovy 看起来就显得有些落伍了。虽然可以用较少行来编码(虽然不是少很多),但是我希望输入的编写能够自动化。我希望编译器在编码时告警,而且我需要分解。这需要 J

2、ava IDE 以外的插件。但有时候没有完整的 IDE 配置。想一下要自动敏捷的工作,或者想一下服务器管理员。这些人没有任何像Eclipse 之类的东西,而且他们的工作不可能事先完成。不可能为系统管理而编码。这就是像 WLST 这类工具产生的来由,它们使得世界更美好。WebLogic 脚本工具( WLST,WebLogic Scripting Tool)是一个帮助编写远程管理和修改服务器安装脚本的 Jython 模块。它有两个版本:离线,它可以配置尚不存在的服务器实例,以及在线,它需要连接到一个WebLogic 服务器。这两个版本都是 Beta 版而且文档很少,但是它们保证会改进并在将来的某个

3、 WebLogic版本中包含。这里我们将专注于在线版本,因为它的功能比离线版本更为完整。使服务器配置自动化:让我们从难以对付的 WebLogic 服务器配置开始吧!典型的开发团队在几台主机上复制同样的配置,仅仅改变少量参数,如 IP、主机名和 TCP 端口。在相对典型的项目中,必须对每个开发人员的 PC、集成测试主机和生产主机,都要执行一遍这个过程。Ant 任务对这个问题有很大帮助,但是它还没有准备好处理像定制 JMX bean 这类的事务。我们将创建并装载服务器,配置它,然后关机,混合使用 Ant 和 WLST。首先,让我们创建清单 1 中的服务器。为了简化,我们将在这里使用 Ant 任务,

4、因为结合使用 WLST 离线和在线会使事情复杂化。 清单 1build.properties:server=weblogicweblogic.server.name=myserverweblogic.domain.name=mydomainweblogic.admin.username=weblogicweblogic.admin.password=weblogicweblogic.home=C:/beaweblogic.lib.dir=/weblogic81/server/libweblogic.mbeantypes.dir=/mbeantypesserver.project.root.di

5、r=/user_projects/domains/server.deploy.dir=/applications我检查了属性,因为在多于一个品牌的应用服务器上部署时,很容易使用错误的 build.properties 文件(参见清单 2)。清单 2build.xml:.Weblogic properties are missing. Double check build.properties.Missing file /weblogic.jarCreating server at 我们刚刚删除了整个域目录,创建了一个新的、干净的目录,并让服务器运行,这样,在清单 3 中,我们可连接并配置它。

6、清单 3停止服务器是必要的,因为有些设置改变了,如安全验证者,需要正常关机以保存到磁盘。省略这一步将会在 Ant 脚本结束处突然中止服务器。注意:WLST 任务有分叉,因此,如果 WLST 在脚本中发现了错误, Ant 仍将会显示“成功编译”,从而会使得装载该脚本的人迷惑。让我们将 WLST 脚本分成两个部份,这样在以后的管理任务中能尽可能多的重用它。我已经使用了包含在WLST 包中的很棒的例子,并且将 saveDomain()命令的输出作为起点。saveDomain()生成的脚本不是很完美,但是它能指出工具的可能性(参见清单 4)。清单 4createAll.py:execfile(Admi

7、nTool.py)admin.configureServer()admin.createXaPool()AdminTool.py:from javax.management import InstanceNotFoundException# Python 2.4 will include booleans, but until then this is requiredtrue = 1false = 0class AdminTool:def _init_(self):loadProperties(administration.properties)# Connects with a weblo

8、gic instancedef connect(self):connect(username, password, t3:/ + host + : + port)self.myServer = getTarget(/Server/ + serverName)# Server attributes that cannot be generated via antdef configureServer(self):# Activates console DEBUG mode - I really like thatself.myServer.setStdoutSeverityLevel(64)pr

9、int Configured server + self.myServer.getName()# Creates a JDBC pool:def createPool(self, poolName, driverName):pool = create(poolName, JDBCConnectionPool)pool.setDriverName(driverName)pool.setURL(dbURL)pool.setPassword(dbPassword)pool.setProperties(makePropertiesObject(user= + dbUsername)pool.setRe

10、moveInfectedConnectionsEnabled(false)pool.setTestConnectionsOnCreate(true)pool.setTestTableName(SQL SELECT 1 FROM DUAL)# setTestFrecuencySeconds is not soported by WLST objects# so here is a workaroundcd(/JDBCConnectionPool/ + poolName)set(TestFrequencySeconds, 300)cd(/)pool.addTarget(self.myServer)

11、def createXaPool(self):self.createPool(MY_POOL_NAME, oracle.jdbc.xa.client.? OracleXADataSource)# Removes an element if it existsdef removeIfExists(self, name, type):try:mbean = home.getAdminMBean(name, type)home.deleteMBean(mbean)print Removed the + type + : + nameexcept InstanceNotFoundException,

12、e:print Cannot remove + name + ,type= + type + because ? it does not existdef removeXaPool(self):self.removeIfExists(MY_POOL_NAME, JDBCConnectionPool)# The JDBC Connection Pool nameMY_POOL_NAME=MyPool# the instance we are going to use admin = AdminTool()admin.connect()administration.propertieshost=1

13、27.0.0.1port=7001username=weblogicpassword=weblogicdbURL=jdbc:oracle:thin:1521:DATABASEdbUsername=foodbPassword=barLoadProperties 任务将 administration.properties 文件中的所有项转换成 Jython 变量。我们已经使用了 Jython 类的第一个方法来管理 WebLogic 服务器实例。还可以轻易将它扩展到创建和删除 DataSources,这是一个 JMS 环境,甚至还可以扩展到安全领域。MBean 方法前面我们已经看到的是创建和配置 M

14、Beans 的一个方法(下一节会解释另一种方法)。不利的一面是必须知道支持的属性和方法,而 WLST 没有这些文档。我怎么去猜哪个方法可用呢?噢,我想到的第一个方法是到 config.xml 文件或是 Web 控制台去找,并假设属性名称未改变。如果有一个不错的 IDE,我们还可以打开 Mbean 接口类看看那里有些什么(它和 Mbean 的名称一样,以“Mbean”结束)。这不会显示代码,但是可以查到哪个方法可用。我喜欢连接到 http:/e- 包的内容。比如,如果我们找到 ServerMBean 类,就可以看到两个有趣的但是不太为人们所熟悉的方法 isJDBCLoggingEnabled()

15、和 setJDBCLoggingEnabled()。我们可通过打开 wlst 交互 shell 来查看它们,如下所示:wls:/mydomain/config server=home.getAdminMBean(myserver, Server)wls:/mydomain/config server.setJDBCLoggingEnabled(1)wls:/mydomain/config server.isJDBCLoggingEnabled()1(“home”是一个 AdminMbeanHomeImpl 类型的变量,可以像对任何其他 Mbean 一样研究;唯一的问题是因为它是一个内部类,所以

16、没有 javadoc 可用。)如果最后三个命令不好理解,不要担心。我们会在下一节介绍 Shell。命令行系统管理系统管理员也可以通过使用交互式 shell 来手工管理 WebLogic 服务器实例。其优点是在试图修改系统配置时,不用事先知道 Mbean 接口。对这一部分,需要在 classpath 包含 webLogic.jar、jython.jar 以及wlst.jar,并启动主类 weblogic.WLST,它是交互式控制台。要记住这是 Jython。引号和双引号用于字符串声明;实例化不需要新的运算符(事实上,这是一个语法错误);不需要分号,因为每行用回车结束;而且不必声明变量(la Unix shell 脚本)。如果这还不够,请参考P

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号