1 WEBLOGIC服务器管理概述 10
域、管理服务器与受管服务器 10 启动管理控制台 12
运行时对象与配置对象 12 日志消息的集中访问 14
WEBLOGIC管理服务器与WEBLOGIC受管服务器 15 启动时的错误消息 15
启动WEBLOGIC管理服务器 15
WebLogic服务器启动时的口令使用 16
从Start菜单启动WebLogic管理服务器 16
启动与终止Windows服务形式的WebLogic服务器 16 从命令行启动WebLogic管理服务器 17 用脚本启动管理服务器 20
在受管服务器运行时重启管理服务器 20 在同台机器上重启管理服务器 21 在其它机器上重启管理服务器 21
将WEBLOGIC受管服务器加入到域 22 启动WEBLOGIC受管服务器 22
通过脚本启动WEBLOGIC受管服务器 24 从老版本WEBLOGIC服务器升级 25
从管理控制台终止WEBLOGIC服务器 25 从命令行停止服务器 25 暂停和恢复受管服务器 26
将WEBLOGIC服务器设置为WINDOWS服务 26 删除WINDOWS服务形式的WEBLOGIC服务器 27 更改安装成Windows服务的服务器口令 27 注册启动与终止类 28
2 节点管理器 29
节点管理器概述 29
配置与启动节点管理器 30 启动节点管理器 31 启动管理服务器 32
3 配置WEBLOGIC服务器与集群
服务器与集群配置概述 35 管理服务器的角色 35 启动管理控制台 37
动态配置的工作原理 38 集群配置规划 38
- 1 -
35
WebLogic管理指南
服务器配置任务列表 39 集群配置列表 41 新建一个域 42 概述 43
监控服务器 44
终止或暂停服务器 45 性能 45
集群数据 46
服务器安全 46 JMS 47 JTA 47
监控JDBC连接池 47
管理控制台的MONITORING页面一览表
4 用日志消息管理WEBLOGIC服务器
日志子系统概述 51
本地服务器的日志文件 53 启动日志 53
客户端日志 54
日志文件的格式 54 消息属性 54 消息目录 55
消息的严重级别 55 消息调试 56
浏览日志文件 56 查看日志 56
创建域日志过滤器 57
5 分发应用
58
51
48
分发格式 58
用管理控制台分发应用 58
步骤1:配置与分发应用 59 步骤2:分发应用组件 59 分发顺序 61 自动分发 62
启用或禁用自动部署 62 动态分发 64
启用与禁用自动分发 64
自动分发展开目录格式的应用 64
卸载或重新分发被自动分发的应用 65
6 配置WEBLOGIC服务器的WEB组件 66
- 2 -
WebLogic管理指南
概述 66
HTTP参数 66 配置监听端口 67 WEB应用 68
Web应用与集群 68
指定缺省的Web应用 68 配置虚拟主机 70
虚拟主机与缺省Web应用 70 设置虚拟主机 71
WEBLOGIC服务器如何解析HTTP请求 72 设置HTTP访问日志 73
日志回旋(Log Rotation) 73
使用管理控制台设置HTTP访问日志 73 普通日志格式 74
使用扩展日志格式 75
防止“POST拒绝服务”攻击 80
设置WEBLOGIC服务器的HTTP隧道 81 配置HTTP隧道连接 81
建立客户端与WebLogic服务器之间的连接 82
用本地I/O提供静态文件服务(只适用于WINDOWS) 82
7 代理对另一个HTTP服务器的请求 84
概述 84
设置从服务器的代理 84
代理SERVLET的分发描述符示例 85
8 代理对WEBLOGIC集群的请求
87
概述 87
设置HTTPCLUSTERSERVLET 87
HTTPCLUSTERSERVLET的分发描述符示例 88
9
91
配置WEB应用的安全性 91 设置对Web应用的授权 91
多Web应用、Cookies与身份验证 92 限制对Web应用资源的访问 92 在servlet中使用用户和角色 94 配置WEB应用的外部资源 96 在WEB应用中引用EJBS 97 配置会话管理 98
HTTP会话属性 98
- 3 -
WebLogic管理指南
会话超时 98
配置会话Cookies 99 使用长效 cookies 99
配置持久化会话 100 通用属性 100
使用基于内存的、单服务器的、非复制的持久存储 101 使用基于文件的持久存储 101 使用基于数据库的持久存储 102
使用URL重写 103
URL重写的编码指南 104
URL重写与无线访问协议(WAP) 104 使用字符集与POST数据 104
10 配置APACHE-WEBLOGIC服务器插件
106
概述 106 平台支持 107 安装库 107
配置HTTPD.CONF文件 109 通过URL代理 109
通过MIME文件类型代理 110
APACHE-WEBLOGIC SERVER插件的参数 110 使用SSL协议 112
与SSL-APACHE配置有关的问题 113 HTTPD.CONF文件示例 114 配置文件示例 115
使用WebLogic集群的例子 115
不使用WebLogic集群的例子 115 配置虚拟主机的例子 116
分发APACHE-WEBLOGIC SERVER插件 116
11 配置MICROSOFT-IIS插件 117
概述 117
连接池以及保持活动状态 117
安装库 118
更新IIS设置使请求转给WEBLOGIC 118 创建IISPROXY.INI文件 119
文件扩展名方式的请求代理 122 路径方式的请求代理 123 .ini文件示例 123 使用SSL 124
将SERVLETS请求转交给WEBLOGIC服务器处理
125
- 4 -
WebLogic管理指南
安装测试 126
12 配置NETSCAPE插件 127
概述 127
连接池和保持激活 127
插件的配置 128
步骤1:复制库 128
步骤2:设置obj.conf文件 128
步骤3:更改MIME.types文件 132 步骤4:分发与测试NSAPI插件 132 参数 132
使用SSL协议 135
有关WEBLOGIC服务器集群失败转移的注意事项 136
0BJ.CONF文件示例(不使用WEBLOGIC集群的情况) 136 OBJ.CONF文件(使用WEBLOGIC集群的情况) 138
13 安全管理 141
安全配置概述 141 改变系统口令 143
指定一个安全域 143 配置缓存域 144
配置LDAP安全域 147
配置Windows NT安全域 151 配置UNIX安全域 153
配置RDBMS安全域 154 安装一个定制安全域 155
测试代用安全域与定制安全域 156 迁移安全域 157 定义用户 157
定义用户组 159
定义虚拟机的用户组 159 定义ACL 160 配置SSL协议 161
获得私钥与数字证书 162 保存私钥与数字签名 164
定义可靠的证书管理机构 165 定义SSL协议的配置字段 165 配置双向验证 167
CONFIGURING RMI OVER IIOP OVER SSL(TBD) 口令的保护 168
安装审计提供者 170
168
- 5 -
WebLogic管理指南
安装连接过滤器 170
设置JAVA安全管理器 171 配置安全上下文传播 173
14 管理事务 176
事务管理概述 176 配置事务 177
事务的监控与日志记录 178
将服务器迁移到另一台机器中 178
15 管理JDBC连接
180
用管理控制台管理JDBC 180 JDBC配置指南 180 JDBC配置概述 181
配置JDBC驱动程序 182 连接池 187
设置连接池 187 管理连接池 188 多池 188
创建多池 188 管理多池 188 数据源 189
创建数据源 189 数据源管理 189
16 管理JMS 191
配置JMS
191
配置连接工厂 192 配置模板 193
配置收信方主键 193 配置备份库 194
配置JMS服务器 195 配置收信方 195 配置会话池 196
配置连接使用者 197 监控JMS 197
恢复失败的WEBLOGIC服务器 198 重启或替换WebLogic服务器 198 编程考虑 199
17 管理JNDI 200
- 6 -
WebLogic管理指南
将对象装载到JNDI树 200 查看JNDI树 200
18 管理WEBLOGIC J2EE连接器构架 201
WEBLOGIC J2EE连接器构架概述 201 安装资源适配器 202
配置与部署资源适配器 202 配置与部署资源适配器 202
查看已部署的资源适配器 203 卸载已部署的资源适配器 203 删除一个资源适配器 204 查看元素与属性 205 监控连接池与参数 205
编辑资源适配器分发描述符 205
19 管理WEBLOGIC服务器许可证 208
安装WEBLOGIC许可证 208 更新许可证 208
A 使用WEBLOGIC JAVA工具 210
APPLETARCHIVER 210 语法 211
CONVERSION 211 DER2PEM 211 例子 212
DBPING 212 语法 212
DEPLOY 212 参数 212
Actions(从下表中选一个) 其它参数 213 选项 213 例子 213
GETPROPERTY 215 语法 215 例子 215 LOGTOZIP 216 语法 216 例子 217
MULTICASTTEST 217 语法 218 例子 218
213
- 7 -
WebLogic管理指南
MYIP219
语法 219 例子 219
PEM2DER 219 语法 219 例子 220
SCHEMA 220 语法 220 例子 220
SHOWLICENSES 221 语法 221
SYSTEM 221 语法 221 例子 221 T3DBPING 222 语法 222
VERBOSETOZIP 222 语法 223
UNIX上的例子 223 NT上的例子 223 VERSION 223 语法 223 例子 223
WRITELIENSE 224 语法 224 例子 224
B WEBLOGIC服务器的命令行接口参考
命令行接口简介 226 Before You Begin 226
使用WEBLOGIC服务器命令 227 语法 227 参数 227
WEBLOGIC服务器管理命令参考 228 CONNECT 229 HELP 229
LICENSES 230 LIST 230
LOCK 231 PING 231
SERVERLOG 232 SHUTDOWN 233
THR EAD_DUMP 233
- 8 -
226
WebLogic管理指南
unlock 234 VERSION 234
MBEAN管理命令参考 235 CREATE命令 235 DELETE命令 236 GET命令 237 INVOKE命令 238 SET命令 239
配置及管理连接池的命令 240 命令的名字 240
WEB服务器插件的参数
241
241 245
概述 241
WEB SERVER插件的一般参数 WEB SERVER插件的SSL参数
- 9 -
WebLogic管理指南
1 WebLogic服务器管理概述
本章将介绍WebLogic服务器的管理工具,内容如下:
域、管理服务器以及受管理的服务器 启动管理控制台 运行时对象与配置对象 对日志消息的集中访问
BEA WebLogic Server™ 包含了许多互相关联的资源。对这些资源的管理包括下列任务:服务器的启动及终止,服务器以及连接池的负载平衡,资源配置的监控,诊断并修改问题,监控并评估系统性能,分发Web应用、EJB以及其它资源。
WebLogic服务器提供了一个健壮的基于Web的工具——管理控制台,它是执行上述任务的主要工具。通过管理控制台,你可以访问 WebLogic 管理服务。 管理服务实现了Sun的Java管理扩展标准(JMX),它是 WebLogic资源管理的基础。
你可以用管理控制台来配置资源的属性,分发应用及组件,监控资源的使用情况(如服务器负载,Java虚拟机的内存使用情况以及数据库连接池的负载),查看日志消息,终止服务器,以及执行其它管理任务。
域、管理服务器与受管服务器
作为一个单元来管理的并相互关联的一组WebLogic服务器资源被称为域。一个域可以包含一或多个WebLogic服务器,还可以包含WebLogic服务器集群。 域的配置使用扩展标记语言(XML)定义。install_dir/config/domain_name目录中的config.xml文件定义了域的配置,install_dir是WebLogic Server软件的安装目录。 域是一个完备的管理单元。向域里分发应用的时候,该应用的各组成部分只能分发到域之内的服务器上。如果域中包含集群,那么集群中的所有服务器都必须属于同一个域。
- 10 -
WebLogic管理指南
J2EE应用是一个组件集合,这些组件被组织成一个部署单元(例如EAR,WAR, 或JAR文件)。应用所需要的各种组件——EJBs或Web应用,服务器或集群,JDBC连接池等等都定义在一个域配置中。将这些资源组合在一个单一的、完备的域中使我们可以以统一的方式来看待或访问这些相互关联的资源。 运行管理服务的WebLogic服务器称为管理服务器。管理服务集中管理并监控域的所有资源。如果要对某个域执行管理操作,该域的管理服务器必须处于运行状态。
一个包含多个WebLogic服务器的域只能有一个管理服务器,其它服务器称为受管服务器。每个WebLogic受管服务器都会在启动时从管理服务器得到各自的属性配置。
管理服务器和WebLogic受管服务器启动时都运行webLogic.Server类。没有作为受管服务器启动的WebLogic服务器就是管理服务器。
在生产环境中,系统的典型配置是这样的:应用及业务逻辑组件被分发在多个受管服务器上,而管理服务器则负责配置及监控受管服务器。管理服务器的作用是配置与监控受管服务器。如果管理服务器宕机了,部署在受管服务器上的应用不受影响,可以继续处理客户端的请求;这种情况下,当管理服务器被重启后,可以重新获得对活动域的控制(详细内容,参见“受管服务器运行时重启管理服务器”中的内容)。
把应用或应用组件分散到一组受管服务器上能带来一些好处。将EJB以及其它组件分布到一组服务器上可以保证主应用的可用性。如果不同的组件完成不同的功能可以提高系统的性能,例如将数据库访问与帐单事务分在不同的受管服务器上处理。象EJB这种可以实现各种功能的组件或应用是可以被隔离开的,从而使它的可用性不依赖于其它组件的状态。多个应用可以部署在一个域中。 当管理服务器使用这样的配置启动以后,我们说该域是活动(active)的。在管理服务器运行期间,只有管理服务器才可以修改配置文件。管理控制台及命令行管理工具提供了访问管理服务器的手段,你可以通过它们来修改域的配置。一个域被激活后,可以通过管理控制台监控或配置整个域的资源。
配置存储库(configuration repository)还保存了其它非活动的配置文件,你可以通过管理终端来编辑这些文件。配置存储库由位于/config目录下的一系列子目录构成。任何域都是由位于一个与该域同名的子目录下的config.xml唯一定义的。你可以通过管理控制台在启动时出现的欢迎页面上的Configuation链接来访问非活动的配置文件。
- 11 -
WebLogic管理指南
启动管理控制台
管理控制台是一个Web应用,它使用JSP来访问管理服务器所管理的资源。 管理服务器启动以后(见“启动与终止WebLogic服务器”),在浏览器中使用以下URL启动管理控制台。 http://hostname:port/console
其中hostname为管理服务器终端的名字或IP地址,而port则为管理控制台用来监听请求的端口(缺省为7001)。如果你是用安全套接层(SSL)来启动管理服务器,那么必须在http后面加上s,如下所示。 https://hostname:port/console
如果浏览器被配置为使用代理服务器来发送请求,要将浏览器配置改为不使用代理服务器。如果管理服务器与浏览器位于同一台机器上,那么你要确保发送给localhost以及127.0.0.1的请求没有被发送给代理服务器。 管理控制台的左窗格包含了一个树形结构,你可以通过这棵树来浏览数据表、配置页面、监控页面,或者是访问日志文件。在树中选择一个项目(即用鼠标左点项目),就可以显示某种类型的资源的相关数据或者显示某个资源的配置页面以及监控页面。树的最左边的节点是一些文件夹,如果文件夹里包含有叶子节点,那么你可以点击其左边的加号来展开树并访问叶子节点。
实体表(某特定类型的资源的数据表)是可以定制的,这可以通过减少或增加显示不同属性的列来实现。你也可以点击表格上部的“Customize this table”链接对它进行定制。表中的每一列都对应于被选中一个属性。 启动管理控制台需要输入口令。第一次可以使用与启动管理服务器相同的用户名和口令来启动管理控制台,然后你可以使用管理控制台来创建一组具有管理权限的用户,此后这些用户就可以通过管理控制台来执行管理工作了。
运行时对象与配置对象
管理服务器中有许多类似于JavaBean的Management Beans(MBeans)对象。Mbeans遵循Sun的Java管理扩展标准(JMX)。这些对象提供了对域资源的管理访问。
- 12 -
WebLogic管理指南
管理服务器包含了配置Mbeans与运行时Mbeans。管理Mbeans提供了配置属性的SET(写)与GET(读)访问。
运行时Mbeans提供了域资源信息的快照,例如当前HTTP会话的信息与JDBC连接池的负载信息。如果域的某个资源(例如Web应用)被实例化,那么服务器会创建一个Mbeans的实例来收集这个资源的信息。
当你从管理控制台访问某一资源的监控页面时,管理控制台执行GET操作获取当前的属性值。
管理服务使域资源的属性可以被动态修改,即使WebLogic服务器正在运行,
- 13 -
WebLogic管理指南
也可以修改属性。许多属性改变不需要重启服务器就能生效。这时,修改后的属性不仅表示当前属性值,还会被保存到配置文件中。(有关配置WebLogic服务器的更多信息,请参见“配置WebLogic服务器与集群”中的内容。) 除了基于Web的管理控制台外,WebLogic服务器还提供了命令行工具来访问域资源配置及监控属性。可以用命令行工具创建script,使系统的管理自动化。(请参见“WebLogic域管理命令”)
日志消息的集中访问
通过管理服务器提供的域日志,你可以集中地访问所有服务器的关键系统消息。通过JMX提供的基本功能,消息可以转发到订阅该消息的实体。订阅实体通过设置过滤器来选择感兴趣的消息。本地服务器在启动时发向其它网络实体的信息称为一个布告。JMX布告使域内所有服务器的关键日志消息都被转发给管理服务器。在WebLogic受管服务器启动时,管理服务器会进行注册以便接受关键日志消息。这些消息被存储在域日志中。管理服务器向域里的每一个WebLogic服务器注册一个域日志过滤器来选择需要转发的消息。你可以通过管理控制台改变域日志过滤器,查看域日志以及查看本地服务器日志。(详细内容,请参见“使用日志消息管理WebLogic服务器”) 启动与终止WebLogic服务器 本章将介绍以下内容:
WebLogic管理服务器与WebLogic受管服务器 启动WebLogic管理服务器
将一个WebLogic受管服务器加到域中 启动WebLogic受管服务器 从老版本WebLogic服务器升级 通过管理控制台终止WebLogic服务器 受管服务器暂停和恢复
将WebLogic服务器设置为Windows服务 注册启动类与终止类
- 14 -
WebLogic管理指南
WebLogic管理服务器与WebLogic受管服务器
一个WebLogic域由多个WebLogic服务器组成,其中必须有一个管理服务器,该域中的其它WebLogic服务器被称为受管服务器。你可以将服务器启动为WebLogic管理服务器或WebLogic受管服务器。
管理服务器是WebLogic服务器的缺省角色。因此如果域中只有一个WebLogic服务器,那么该服务器的角色就是管理服务器。在一个多服务器的域中,只有当服务器在启动时被要求从一个运行着的管理服务器获得配置时才会成为受管服务器。
管理服务器控制对WebLogic域配置的访问以及提供诸如监控及日志消息浏览等功能。用户通过管理控制台来访问管理服务器所提供的管理服务。 WebLogic受管服务器在启动时会从管理服务器获得它的配置。因此启动一个多服务器的域只需要两个步骤:先启动管理服务器,然后启动受管服务器。 注意:受管服务器的版本必须与管理服务器的版本相同。
启动时的错误消息
在WebLogic启动时,标准日志子系统还不能用于日志记录。因此,任何在启动时发生的错误都会输出到stdOut以及一个特殊的启动日志文件——servername-startup.log文件中(其中servername是服务器的名字)。如果启动成功,那么该日志中的最后一条消息会指向本地服务器的日志文件所在的位置。有关WebLogic服务器的日志子系统的更多信息,请参见“利用日志消息管理WebLogic服务器”。
启动WebLogic管理服务器
启动WebLogic管理服务器有以下多种方式:
从命令行启动
启动WebLogic服务器的命令可以手工输入,也可以把启动命令写在一个脚本中,从而避免每次启动服务器时都要重输命令。有关WebLogic服务器提供的脚本示例的详细信息,请参见“使用脚本启动WebLogic受管服务器”中的内
- 15 -
WebLogic管理指南
容。
从Start菜单启动WebLogic服务器(只用于Windows)
如果你将WebLogic服务器安装为一个Windows服务,那么在计算机启动时WebLogic服务器将自动启动。
WebLogic服务器启动时的口令使用
安装WebLogic的过程中,会要求你输入一个用于WebLogic启动的口令。如果你是用脚本来启动管理服务器与受管服务器,那么应该在脚本中将口令加入命令参数(请参见“从命令行启动WebLogic管理服务器”)。如果启动服务器的脚本没有将口令指定为命令行参数,又没有password.ini文件,那么在启动时系统会提示你输入口令。
从Start菜单启动WebLogic管理服务器
如果WebLogic服务器是通过BEA安装程序安装的,那么你可以使用Windows启动菜单中的WebLogic Server快捷方式启动WebLogic管理服务器。选择:
Start->Programs-> BEA WebLogic E-Business Platform->Weblogic Server Version -> Start Default Server 其中version是指WebLogic服务器软件的版本号
调用Start菜单中的WebLogic Server快捷方式实际上就是启动了startWebLogic.cmd脚本(该脚本位于install_dir/config/domain_name目录下,其中domain_name是指域的名字,install_dir是指WebLogic服务器软件的安装目录)。
启动与终止Windows服务形式的WebLogic服务器
如果把WebLogic安装成Windows服务,那么WebLogic服务器会在计算机启动时自动启动。执行startWebLogic.cmd脚本会将WebLogic服务器启动为管理服务器。参见“从命令行启动WebLogic管理服务器”中的内容。
- 16 -
WebLogic管理指南
要使WebLogic服务器作为Windows服务运行,需要在安装时设定。有关安装及删除Windows服务形式的WebLogic服务器,请参见“将WebLogic服务器设置为Windows服务”。
你可以按以下步骤从服务控制面板启动或终止WebLogic服务器:
1.选择Start->Settings->Control Panel(编者注:对应中文windows就是开始->设置->控制面板->管理工具)
2.双击服务控制面板,这样便打开了服务控制面板
3.在服务控制面板中找到WebLogic服务器。如果WebLogic已经启动,你可以使用Stop按扭来终止WebLogic服务器。如果WebLogic已经终止,那么Start按扭就可以被用来启动WebLogic服务器。
Windows服务有三种模式:自动,手动与禁用。你可以通过Startup按钮来选择其中一种模式。
从命令行启动WebLogic管理服务器
因为WebLogic服务器是一个Java应用,因此与其它Java应用一样,你可以使用Java命令来启动WebLogic服务器。启动WebLogic服务器的参数非常长,因此如果要从命令行来启动它,那么你必须输入一长串的参数,这是非常烦人的。为了保证启动命令的正确性,BEA建议你将命令写入到一个脚本中,然后用这个脚本来启动WebLogic服务器。
以下参数是用Java命令行启动WebLogic管理服务器所必需的:
Java堆内存的最大与最小值
例如,你想使用缺省的64M堆内存来启动WebLogic服务器,那么你就应该使用java –ms 64m 与–mx 64选项来启动服务器。
上述参数值会影响WebLogic服务器的性能,上面所提供的值只是一个缺省值。在生产环境中,你应该仔细考虑应用及环境所要使用的堆内存的大小。 设置java –classpath选项
该选项的最简要的设置可以参见“设置类路径选项” 指定服务器的名字
域的配置通过服务器名字指定。在命令行中通过以下参数来指定服务器的名字: -Dweblogic.Name=Servername
- 17 -
WebLogic管理指南
缺省值为myserver。 提供用户名与口令
缺省用户为system,口令为安装时所输入的口令。要将WebLogic管理服务器启动为某一特定用户,那么命令行应该使用以下参数: -DwebLogic.management.username=username 使用以下参数给出该用户的口令:
-DwebLogic.management.password=password
如果你不是从WebLogic根目录启动WebLogic服务器,那么需要指定WebLogic根目录的位置。
域的安全资源以及配置存储库(缺省为\\config目录)位于WebLogic根目录下。你可以用以下参数在命令行中指定WebLogic的主目录: -Dweblogic.RootDirectory=path
其中path是主目录的路径。如果命令行中没有指定该属性,那么当前目录就被设置为该属性的动态值。
如果要使用SSL协议,那么在启动时需要把私钥密码传递给服务器以便服务器可以对SSL私钥文件解密。在命令行中用以下参数来传递SSL私钥口令: -Dweblogic.pkpassword=pkpassword 其中pkpassword是SSL私钥密码。
在命令行中使用以下参数可以在启动管理服务器时指定域配置文件的名字: -Dweblogic.Domain=domain_name
其中domain_name是域的名称。用来启动域的配置文件保存在同名子目录下。 配置存储库由/config目录下的域组成。配置存储库可能包含多个域配置。每个域分别位于一个子目录中,子目录的名字与域的同名。指定domain_name时,实际指定的是这个子目录的名字。所指定的子目录包含了一个XML配置文件(config.xml)以及对应域的安全资源(见下面的例子)。域的配置由config.xml文件指定。
图1.1 –
配置存储库中域目录中的内容
- 18 -
WebLogic管理指南
启动管理服务器所使用的域配置使这个域成为活动域。
在命令行中还可以指定WebLogic配置属性的值。所指定的值成为属性的运行时值。而保存在永久配置中的值将被忽略。在命令行中设置WebLogic属性的值采用以下格式: -Dweblogic.attribute=value
设置类路径选项:
以下参数必须包含在java命令行的classpath选项中
/weblogic/lib/weblogic_sp.jar /weblogic/lib/weblogic.jar
WebLogic服务器还包含一个名为Cloudscape的数据库系统。Cloudscape数据库系统是纯Java的数据库管理系统。如果你想使用这个DBMS,那么CLASSPATH还应该包含:
/weblogic/samples/eval/cloudscape/lib/cloudscape.jar
如果使用WebLogic Enterprise Connectivity,那么类路径中还应该包含: /weblogic/lib/poolorb.jar
其中weblogic指WebLogic服务器的安装目录。
- 19 -
WebLogic管理指南
用脚本启动管理服务器
WebLogic软件提供了一个用于启动WebLogic服务器的脚本示例。你可以根据环境及应用的需要对该脚本做适当的修改。启动管理服务器与启动受管服务器使用不同的脚本。启动管理服务器的脚本为startWebLogic.sh(UNIX环境)与startWebLogic.cmd(Windows环境)。这些脚本位于域配置子目录下。
使用WebLogic软件所提供的脚本示例时,应注意以下问题:
类路径的设置与目录名称
将变量JAVA_HOME的值改为JDK所在的目录
UNIX用户还要修改示例脚本文件的权限,以使该文件可以被执行。例如 chmod +x startAdminWebLogic.sh
在受管服务器运行时重启管理服务器
在生产环境中,我们建议将包含关键商业逻辑的应用分发在受管服务器中。这种情况下,管理服务器所起的作用只是配置与监控受管服务器。因此,在这种配置下,即使管理服务器不可用,运行在受管服务器中的应用仍然可以继续处理客户端请求。
管理服务器在启动时,会复制一份用来启动活动域的配置文件。所复制的文件被保存为:
install_dir/config/domain_name/config.xml.booted
其中install_dir指WebLogic服务器软件所在的目录。只有当管理服务器成功启动并可以处理请求时,它才会创建config.xml.booted文件。 你应该对这个文件进行备份,它可以帮助你从被更改过的活动配置回退到以前的配置。
如果在受管服务器运行时,管理服务器发生失败,你不需要重启受管服务器来恢复对域的管理。如何恢复对活动域的管理取决于是否可以在同台机器上启动管理服务器。
- 20 -
WebLogic管理指南
在同台机器上重启管理服务器
在受管服务器正在运行的情况下重启管理服务器时,如果让管理服务器执行寻找操作,那么管理服务器会寻找到所有正在运行的受管服务器。要让管理服务器执行寻找受管服务器的操作,需要在启动管理服务器的命令行中使用以下参数:
-Dweblogic.management.discover=true
该属性的缺省值为false。域配置目录中的running-managed-servers.xml文件列出了该管理服务器能识别出的受管服务器。如果管理服务器被指示在启动时执行寻找操作,那么它将使用这个列表来检查运行着的受管服务器。
重启管理服务器不会改变受管服务器的运行时配置。因此如果你修改了那些只能静态配置的属性,那么只有重启受管服务器才能使更改生效。管理服务器的发现操作不会使管理服务器监控受管服务器或者是更改动态配置属性的运行时值。
在其它机器上重启管理服务器
如果机器崩溃导致你无法在先前运行管理服务器的机器上重启管理服务器,你可以按照以下步骤来恢复对受管服务器的管理。
1.将另一台机器的主机名设为先前管理服务器所在服务器的主机名。
2.在这台将作为管理服务器的新机器上安装WebLogic服务器软件(如果该机器上没有安装WebLogic软件的话)
3.先前用来启动管理服务器的机器中的/config目录(the configuation repository)必须可以被新机器使用。/config目录可以通过备份介质获得也可以通过NFS mount获得。该目录下包含用来启动活动域的配置文件(config.xml)以及安装在/applications目录下的应用与组件。
4.在命令行中加入以下参数来重启新机器中的管理服务器 -Dweblogic.management.discover=true
使用上述参数会强制管理服务器去检测正在运行的受管服务器。
- 21 -
WebLogic管理指南
将WebLogic受管服务器加入到域
在运行管理服务器之前,你必须在域的配置文件中添加该服务器的条目。步骤如下
1.启动域中的管理服务器
2.在浏览器中输入http://hostname:port/console 以启动管理控制台。其中hostname是运行管理服务器的主机名, port是管理服务器的监听端口(缺省为7001)。
3.在管理控制台中为服务器所在的机器创建一个条目(Machines->Create a new machine, Servers->Create a new server)(如果该服务器与管理服务器在不同的机器上)
有关服务器配置的更多内容,请参见“配置WebLogic服务器集群”中的内容。
启动WebLogic受管服务器
在把WebLogic受管服务器加入到配置中以后(见“将受管服务器加入到域中”),你可以用java命令行启动受管服务器。启动受管服务器的命令可以手工输入,也可以编写成脚本以避免每次重启服务器时重复输入相同的内容。有关WebLogic所提供的脚本示例请参见“用脚本启动WebLogic受管服务器”中的内容。
受管服务器与管理服务器启动参数的主要区别在受管服务器需要一个用来识别管理服务器位置的参数,受管服务器通过这个参数从管理服务器获取配置。如果命令中没有这个参数,那么WebLogic服务器将启动为管理服务器。 以下是启动WebLogic受管服务器所必须的参数:
指定Java堆的最大内存与最小内存
例如,可以为WebLogic服务器分配64M Java堆内存,这是一个默认值。相应的选项为:java –ms64与 –mx64。
这两个参数的值对WebLogic服务器的性能有很大影响。在生成环境中,你应该谨慎考虑适合于应用与环境的值。
设置java –classpath选项
该选项的最基本设置请参见“设置类路径选项”中的内容 指定服务器的名字
当WebLogic受管服务器从管理服务器请求自己的配置信息时,管理服务器通过服务器名
- 22 -
WebLogic管理指南
来识别该受管服务器,这样管理服务器就可以将合适的配置信息传递给受管服务器。因此,在启动受管服务器时,你必须设置服务器名。你可以在启动WebLogic受管服务器的命令中使用以下参数:
-Dweblogic.Name=servername 提供用户名与口令
缺省的用户为System,System用户的口令是在安装时指定的。要用其它用户来启动WebLogic受管服务器,那么在命令行中使用以下参数: -Dweblogic.management.password=password
有关如何使用口令的内容,请参见“在启动WebLogic服务器时使用口令”。 如果要使用SSL协议,那么在启动时需要传入私有密钥口令以便服务器能够对SSL私钥文件进行解密。在启动服务器的命令中使用以下参数可以将SSL私有密钥传递给服务器。
-Dweblogic.pkpassword=pkpassword 其中pkppassword指的是私有密钥口令 指定管理服务器的主机名与监听端口
在启动受管服务器时,必须指定管理服务器的主机名与监听端口,因为受管服务器需要从管理服务器获得配置信息。你可以在启动受管服务器的命令行中使用以下参数: -Dweblogic.management.server=host:port 或
-Dweblogic.management.server=http://host:port
其中host是管理服务器所在机器的名字或IP地址,port是管理服务器的监听端口。缺省情况下,该监听端口为7001
如果使用SSL与管理服务器通信,那么管理服务器必须指定为: -Dweblogic.management.server=https://host:port
如果管理服务器与受管服务器的通信采用SSL协议,那么你应该在管理服务器中启用SSL。详细内容请参见“安全管理”。
注意:如果WebLogic服务器在启动时没有指定管理服务器的位置,那么该WebLogic服务器将启动为管理服务器。
注意:因为受管服务器从管理服务器获得其配置,因此所指定的管理服务器必须与受管服务器在同一个域中。
你可以在命令行中指定WebLogic配置属性的值。由这种方式设置的值将成为该属性的运行时值,保存在永久配置中的值将被忽略。在命令行中指定WebLogic属性值使
- 23 -
WebLogic管理指南
用以下形式:
-Dweblogic.attribute=value
通过脚本启动WebLogic受管服务器
WebLogic提供了用来启动WebLogic服务器的脚本示例。你可以根据实际运行环境与应用的情况修改脚本示例。启动管理服务器与受管服务器的脚本是不一样的。启动受管服务器的脚本为startMangagedWebLogic.sh(Unix)与startManagedWebLogic.cmd(Windows)。这些脚本位于域的配置子目录中。
使用脚本示例时应注意以下事项:
路径的设置与目录名称
将变量JAVA_HOME的值设置为JDK所在的目录
UNIX用户还应修改示例脚本的权限,使该文件成为可执行文件。例如: chmod +x startManagedWebLogic.sh
以下是用脚本启动受管服务器的两种方式:
如果已经设置了SERVER_NAME与ADMIN_URL环境变量,调用启动脚本时就不需要提供这两个参数的值了。SERVER_NAME变量应该设为要启动的WebLogic受管服务器的名字。ADMIN_URL设置为管理服务器所在机器的主机名及其监听端口(缺省为7001)。例如
set SERVER_NAME=bigguy set ADMIN_SERVER=peach:7001 startManagedWebLogic
你可以在调用启动脚本的命令中传入受管服务器的名字与管理服务器的URL。 startManagedWebLogic server_name admin:url
其中server_name是要启动的受管服务器的名字,admin_url可以是http://host:port 或者是https://host:port,其中host是指管理服务器所在机器的主机名或者是IP地址, port是管理服务器的监听端口。
- 24 -
WebLogic管理指南
从老版本WebLogic服务器升级
如果你想用老版本的启动脚本来启动WebLogic 6.0 服务器软件,那么你需要对该脚本作一些修改。以下是WebLogic6.0与以前版本的主要不同点:
动态类装载
在启动以前版本的WebLogic服务器时,需要设置两种类路径(Class Path) 1.Java系统类路径 2.WebLogic类路径
WebLogic类路径属性用于动态类装载的配置。6.0版本的WebLogic不再使用WebLogic类路径属性,同时对Java系统路径也做了修改。因此,启动老版本WebLogic软件的脚本需要做相应的修改才能用来启动WebLogic 6.0 服务器。在这个版本中,需要动态装载的类由应用负责设置,这可以通过应用的XML描述符文件指定类的位置来实现。 有关Java类路径设置的信息,请参见“设置Classpath选项”。 命令中不需要指定许可证文件或Policy文件所在的位置
管理服务器与受管服务器的区别是在这个版本才出现的。如果你想将WebLogic服务器启动为受管服务器,那么在启动时,需要有指向一个正在运行着的管理服务器的URL。 启动WebLogic受管服务器使用新的启动脚本——startManagedWebLogic.cmd(Windows)与startManagedWebLogic.sh(UNIX),而原来的startWebLogic.sh与startWebLogic.cmd则用来启动管理服务器。
从管理控制台终止WebLogic服务器
要终止一个WebLogic服务器:
在管理控制台的域树上(位于左边窗格),选择要停止的服务器
选择Monitoring->General标签页,点“Shutdown this server”链接
从命令行停止服务器
你可以用以下命令停止WebLogic服务器:
java weblogic.Admin -url host:port SHUTDOWN -username adminname -password password
- 25 -
WebLogic管理指南
其中:
host是运行WebLogic服务器的主机名或IP地址。 port是WebLogic服务器的监听端口(缺省为7001)。
adminname指的是具有WebLogic服务器管理员权限的用户,缺省为system。 password指的是adminname用户的口令。
暂停和恢复受管服务器
你可以通过管理控制台暂停一个WebLogic受管服务器,此时,WebLogic受管服务器只接受来自管理服务器的请求。这种情况的典型应用是将一个WebLogic服务器作为另一台服务器的“热”备份运行。该备份服务器将一直保持暂停状态,直到你让它处理请求为止。
注意:被暂停的WebLogic服务器只是不响应HTTP请求,而Java应用与RMI调用没有被暂停。
要暂停一个WebLogic受管服务器:
在管理控制台的域树上(位于左边的窗格),选择你要暂停的服务器。
在Monitoring->General标签页上,选择“Suspend this server”链接。
要使受管服务器恢复对客户端请求的处理:
在管理控制台的域树上,选择需要恢复的服务器。
在Monitoring->General标签页上,选择Resume this server链接
将WebLogic服务器设置为Windows服务
WebLogic服务器可以作为Windows服务运行。如果你将WebLogic安装为Windows服务,那么,在启动计算机时,系统会调用启动脚本startWeblogic.cmd而启动WebLogic服务器。WebLogic服务器是启动为管理服务器还是受管服务器取决于调用WebLogic服务器的java命令中的参数设置。具体内容请参见“通过命令行启动WebLogic受管服务器以及WebLogic管理服务器”。
要使WebLogic服务器以Windows服务的形式运行或者不再将其运行为
- 26 -
WebLogic管理指南
Windows服务,你首先要有管理员级权限。要将WebLogic服务器作为Windows服务启动,需要:
1. 找到weblogic\\config\\mydomain目录(其中weblogic是安装WebLogic服务器的目录,mydomain是与你所在的域对应的子目录)。 2.执行installNTService.cmd脚本。
删除Windows服务形式的WebLogic服务器
删除Windows服务形式的WebLogic的步骤如下:
1.定位到weblogic\\config\\mydomain目录(其中weblogic是安装WebLogic服务器的目录,而mydomain是域配置所在的子目录)。 2.执行uninstallNTService.cmd脚本
你也可以从Windows的启动菜单中卸载WebLogic服务。
更改安装成Windows服务的服务器口令
如果你将缺省服务器安装为Windows服务,那么创建服务会用到安装WebLogic软件时键入的口令。如果要更改这个口令,你应该:
1.使用uninstallNTService.cmd脚本来卸载作为Windows服务的WebLogic服务器(该脚本位于install_dir/config/domain_name目录下,其中install_dir是安装WebLogic产品的目录)。
2.installNTservice.cmd脚本包含了以下命令:
rem *** 安装服务
“C:\\bea\\wlserver6.0\\bin\\beasvc” -install –svcname :myserver -javahome : ”C:\\bea\\jdk130” –execdir :”C:\\bea\\wlserver6.0” -extrapath : ”C\\bea\\wlserver6.0\\bin” –cmdline : %CMDLINE%
在上述命令后加上以下命令:
-password : ”your_password”
其中your_password是新口令
3.执行更改后的installNTservice.cmd脚本。这将使用更新的口令创建一个新服务
- 27 -
WebLogic管理指南
注册启动与终止类
你可能想在WebLogic启动或正常关闭时执行某些任务,那么WebLogic所提供的启动类与终止类就是实现这些任务的一种机制。启动类是在WebLogic服务器启动或重启时自动装载并执行的Java程序,启动类在所有的服务器初始化任务都完成后才会被装载及执行。
终止类的工作原理与启动类相同。当你通过管理控制台或者是使用weblogic.admin shutdown命令来终止WebLogic服务器时,终止类会自动装载并执行。
要使WebLogic服务器使用启动类或终止类,你必须通过管理控制台注册这些类。
注册启动类或终止类的步骤如下:
1.通过管理控制台的Domain树(位于左窗格)访问Startup & Shutdown表。在这个表中创建启动类与终止类的条目。
2.在Configuration标签页中,为所添加的终止及启动类提供名字及其它必要的参数。
详细信息,请参见管理控制台在线帮助以下部分的内容:
启动类 终止类
- 28 -
WebLogic管理指南
2 节点管理器
本章将介绍以下内容:
节点管理器(Node Manager)概述 配置与启动节点管理器
受管服务器的远程启动与Killing
节点管理器概述
节点管理器是一个Java应用程序。借助该应用,你可以从管理控制台远程地启动或kill WebLogic受管服务器。节点管理器是单独的一个Java应用,随同WebLogic服务器软件供应。
你可以通过管理控制台来结束受管服务器,另一种方式是用节点管理器kill远程受管服务器。当远程服务器被hung或没有响应时,就需要杀掉远程服务器进程。
为了能远程启动受管服务器,首先要在受管服务器所在的机器上配置并运行节点管理器。一个节点管理器进行可以负责一台机器上所有受管服务器的远程启动与killing。为了保证节点管理器的可用性,应该把节点管理器配置为UNIX机器的守护程序或Windows NT机器的Windowns NT服务。这保证了机器上的管理服务器可以用来启动受管服务器。
如果一台机器中运行了节点管理服务器,那么当它获得管理服务器的请求后,可以启动或杀掉这台机器上所安装配置的任何受管服务器。节点管理器与管理服务器之间的通信采用安全套接字层(Secure Socket Layer)。 WebLogic服务器在启动时,会将各种启动与错误消息打印到STDOUT或STDERROR中。节点管理器将这些信息保存在节点管理器日志目录中的文件里,这些消息同时会显示在管理控制台的右窗格中。
缺省情况下,节点管理器的日志文件保存在节点管理器被启动时所在的那个目录中。节点管理器为每个由它启动的受管服务器创建一个日志文件子目录。
- 29 -
WebLogic管理指南
配置与启动节点管理器
节点管理器与管理服务器之间的所有通信都使用安全套接层以提供身份认证与加密。同时还用客户端验证保证节点管理器与管理服务器之间的所有通信都使用双向认证。为了进一步提高安全性,节点管理器还保存了一个可靠主机的列表。节点管理器只接受这些主机上的管理服务器所发出的命令。因此你需要为节点管理服务器编辑一个可靠主机列表文件,在文件中为每个可以向节点管理器发出命令的管理服务器所在主机加上一行。该主机列表文件的名字为nodemanager.host,安装在\\config目录中。缺省情况下,该文件包括以下两个条目: localhost 127.0.0.1
在典型的生成环境中,节点管理器与管理服务器不会运行在同一主机中。因此,应该编辑该可靠主机文件,使它只包含可以启动或killing本机受管服务器的
- 30 -
WebLogic管理指南
管理服务器所在机器的主机名或IP地址。可靠主机文件的每个条目由一行构成,列出了管理服务器所在机器的DNS主机名或IP地址。
有关数字证书与安全套接层的更多信息,请参见“安全管理”中的内容。
启动节点管理器
启动节点管理器之前,首先应该保证JAVA_HOME环境变量指向了JDK的根目录。节点管理器需要用到JDK。以下是一个Window NT中的例子: set JAVA_HOME=D:\\bea\\jdk130
节点管理器JDK版本的要求与WebLogic服务器的JDK版本要求一样。 类路径必须作为Java命令行的选项或者作为一个环境变量来设置。下面(在Window NT中)是一个将类路径设置为一个环境变量的例子。
set CLASSPATH=.;.\\lib\\weblogic_sp.jar;.\\lib\\weblogic.jar 启动节点管理器的命令为:
java weblogic.nodemanager.NodeManager
命令行参数
应该用以下参数指定节点管理器所在机器的IP地址或主机名: -Dweblogic.nodemanager.listenAddress=address
节点管理器监听管理服务器请求的缺省端口号为5555,你可以用以下启动参数设置监听端口号:
-Dweblogic.nodemanager.listenPort=port
节点管理器为它所负责的每个受管服务器创建日志文件。缺省情况下,这些子目录位于NodeManagerLogs目录中,你可以用以下启动参数改变目录的位置:
-Dweblogic.nodemanager.saveFilesDirectory=path
- 31 -
WebLogic管理指南
节点管理器使用安全套接层与管理服务器进行通信。因此启动节点管理器时,必须指定一个数字证书。应该用以下参数指
定数字证书所在的位置:
-Dweblogic.nodemanager.certificateFile=path_to_cert
如果在可靠主机文件中使用的是主机名而不是IP地址,那么应该包括以下启动参数:
-Dweblogic.nodemanager.reverseDnsEnabled=true 缺省情况下,DNS是禁用的。
可以用以下参数指定可靠主机文件所在的位置: -Dweblogic.nodemanager.trustedHosts=path 其中path是指文件nodemanager.hosts所在的位置。
类路径选项
节点管理器要用到一些WebLogic服务器同样也要使用的Java类。在启动管理服务器时,-classpath选项中包含以下值:
/weblogic/lib/weblogic_sp.jar /weblogic/lib/weblogic.jar
启动管理服务器
为了让管理服务器能够使用节点管理器来启动或结束WebLogic受管服务器,需要完成一些事情。你可以使用WebLogic管理控制台来完成这些任务。
步骤1:创建一个机器配置条目
你应该在域配置中每个安装了受管服务器的机器创建一个条目,步骤如下
1.运行管理服务器,调用管理控制台(如果还没有被运行起来) 2.在左窗格中选择Machines节点以显示机器表格
3.选择表上部的Create a new Machine链接(或Create a new UNIX Machine)。
- 32 -
WebLogic管理指南
4.填写这个机器的信息并点Apply按钮创建一个新的机器条目。
步骤2:配置每个机器的节点管理器
对于每个要使用节点管理器的机器,应该相应地改变这个机器的配置条目:
1.在管理控制台中,选择Machines->machine_name->Node Manager。其中machine_name是运行节点管理器的机器的名字。 2.填写Node Manager标签页的以下字段:
Listen Address:监听管理服务器请求的节点管理器所在机器的IP地址或主机名。该监听地址为你在启动节点管理器时所指定的地址。
Listen Port:该字段的值必须与你在启动节点管理器时所指定的端口号一样。 管理服务器用来与该节点管理器会话的证书。默认证书为democert。在生成环境中,建议你换一个证书。
3.点Apply按钮。
步骤3:配置受管服务器的启动信息
如果要用节点管理器启动WebLogic受管服务器,那么应该为它提供启动受管服务器所需要的启动参数与选项。步骤如下:
1.在管理控制台中,选择server_name->Configuration->start其中server_name是受管服务器的名字。
2.输入受管服务器启动所需要的类路径 Classpath选项中至少应该指定以下内容: /weblogic/lib/weblogic_sp.jar /weblogic/lib/weblogic.jar
该选项可能还需包含启动受管服务器所用到的JDK的根目录。有关设置类路径的更多信息,可以参见“启动与终止WebLogic服务器”中的内容。 3.在Arguments字段中输入启动命令所需要的参数。
例如,你想设置Java堆内存的最大最小值。可以使用-ms64m与-mx64m选项将默认的65M java堆内存指定给WebLogic服务器。 不需要指定服务器的名字,也不需要指定用户名与口令
- 33 -
WebLogic管理指南
远程启动与Killing受管服务器
如果在受管服务器所在的机器中运行了节点管理器,可以按以下步骤启动受管服务器:
1.启动管理控制台(如果它还没有运行起来) 2.在导航树(位于左窗格)中右点服务器的名字 3.选择Start this server…
在启动管理服务器时,通常打印到STDOUT与STDERROR的消息会显示在管理控制台的由窗格中。这些消息同时被写到节点管理器的日志文件中。 终止受管服务器的方式也一样:
1.右点左窗格中受管服务器的名字 2.选kill this server …
- 34 -
WebLogic管理指南
3 配置WebLogic服务器与集群
本章将介绍以下内容:
服务器与集群配置概述 管理服务器的角色 启动管理控制台 动态配置的原理 服务器的配置任务列表 集群的配置任务列表 创建一个新的域
服务器与集群配置概述
一个域的WebLogic服务器与集群的永久配置保存在一个XML配置文件中,你可通过以下途径改变这个文件:
通过管理控制台。管理控制台是用来管理与监控域配置的一个图形用户界面。这是改变或监控域配置的主要方式。
使用WebLogic服务器所提供的配置应用编程接口,以编程的方式修改配置属性。 通过行WebLogic服务器的命令行工具访问域资源的属性。这主要是为那些希望通过脚本自动管理域资源的用户提供的。
管理服务器的角色
无论你使用上述方式的哪一种,在修改域的配置之前首先要运行管理服务器。 管理服务器是运行管理服务的WebLogic服务器。管理服务提供了WebLogic服务器功能,同时还提供了管理域所需要的功能。
缺省情况下,WebLogic服务器的实例会成为管理服务器。当管理服务器启动时,它会从WEBLOGIC_HOME目录的子目录Config目录中装载配置文件。与
- 35 -
WebLogic管理指南
该管理服务器关联的每一个域在config目录下都有同名子目录。域的配置文件就存放在同名子目录的config.xml文件中。缺省情况下,管理服务器在启动时,首先会在缺省子目录下查找配置文件(config.xml),缺省子目录的名字为mydomain。
管理服务器启动后,会创建名为config.xml.booted的配置文件备份并将它保存在相应的域目录下。如果在服务器的生命周期中,config.xml文件遭到破坏(当然这种情况极为少见),你就可以将配置恢复到该备份文件中的配置。 一个域可能只有一个WebLogic服务器,这个服务器将是管理服务器。 在生产环境中,域由一个管理服务器与多个WebLogic服务器组成。在启动这个域的WebLogic服务器时,首先必须先启动管理服务器,其它服务器启动时,会被命令从管理服务器获得配置信息。这样,管理服务器就成为整个域的配置控制中心。一个域只能有一个活动的管理服务器,只有运行的管理服务器能够修改配置文件。
- 36 -
WebLogic管理指南
图3.1 –
WebLogic服务器的配置
启动管理控制台
访问管理服务器的主要途径是管理控制台。打开管理控制台的步骤如下: http://host:port/console
URL中的host是管理服务器所在机器的主机名或IP地址。port是管理服务器监听请求
- 37 -
WebLogic管理指南
的端口(缺省为7001)。
系统提示你输入用户名与口令。输入你的用户名与口令。系统会进行身份验证与权限检查,它依据用户数据库来验证用户号与口令。
如果通过了身份验证并被确认可以使用管理控制台,那么管理控制台将显示为系统管理员分配给你的访问模式:或者是只读模式,或者是读/写模式。
动态配置的工作原理
WebLogic服务器允许动态(即在运行时)改变域资源的配置属性,大多数情况下,不需要重启WebLogic服务器就能使修改生效。属性值的改变会立即反映到当前正在运行的属性值中,也会被作为永久值保存在XML配置文件中。 当然也会有例外。例如,如果你改变了WebLogic服务器的监听端口。新设置的端口只有等到下次重启时才生效。这种情况下,属性值的改变体现在保存属性值的XML文件中,当前的运行时配置值不同于属性文件中的值。
当属性的永久值与运行时的值不同时,管理控制台用图标表示这种情形,指示服务器需要重启才能使该值生效。
管理控制台会对用户修改的属性值进行有效验证。所支持的错误有越界错误与数据类型不匹配错误。在这两种情况下,都会弹出错误信息提示你属性值设置有误。
在管理控制台启动后,如果有其它进程使用了分配给管理服务器的监听端口,那么应该删除这个进程。如果不能删除这个进程的话,那么必须编辑Config.XML文件修改管理服务器的监听端口。有关编辑Config.XML文件的更多信息,请参见“配置参考”。
集群配置规划
在规划集群配置时,应该牢记以下关于网络环境与集群配置的限制。
1.首先,集群中的WebLogic主机必须使用静态IP地址。动态IP地址分配不能用于集群环境。如果服务器位于防火墙后面,而客户机位于防火墙前面,那么服务器必须有公共的静态IP地址,只有这样,客户端才能访问服务器。
2. 集群中的所有WebLogic服务器必须位于同一个局域网,并且必须是IP广播可到达的。 3.集群中的所有WebLogic服务器必须使用相同的版本。
- 38 -
WebLogic管理指南
配置集群中的服务器,使它们支持所提供的服务。
对于使用了JDBC连接的EJB,所有分发了某EJB的服务器必须具有相同的分发与持久化配置。也就是说所有服务器都应该有相同的JDBC配置。
所有分发了servlet的主机必须维护一组具有相同ACL的servlets。 如果客户端应用直接使用JDBC连接池,那么你必须为每个WebLogic服务器创建相同的连接池(并具有相同的ACL)。这意味着集群所使用的连接池应该可以在所有的机器上创建。例如,一台运行WebLogic的NT服务器配置了连接Microsoft SQL Server数据库的连接池,那么一个包含非Windows机器(即不支持Microsoft SQL Server连接的机器)的集群不能使用这个连接池。
其它配置细节可能会因不同的集群成员而不同。例如,一台Solaris服务器可以比一台小的NT工作站处理更多的登录请求。这种差异是可以接受的。因此,正如这里所给出的例子,对于那些与性能相关的属性,你可以根据每个集群成员的特点来配置不同的值,只要所有成员的服务配置相同即可。因此,集群中的WebLogic服务器在所有与WebLogic服务、类文件以及外部资源(例如数据库)相关的方面具有相同的配置。
服务器配置任务列表
可以通过管理控制台进行以下服务器配置:
通过管理控制台的Server节点配置单独的服务器。可以配置的属性包括名字,监听端口与IP地址。
通过管理控制台的Server节点克隆一个服务器。克隆的服务器保存了原来服务器的属性值,你可以使用Server节点中的Configuration配置新服务器的名字。 使用管理控制台的Server节点来删除一个服务器。点击要删除的服务器的图标,将弹出一个删除服务器的确认对话框,点击对话框中的Yes按钮将删除服务器。 使用管理控制台的Server节点查看一个服务器的日志。点击要查看的服务器,点击Monitoring标签页。点击View Server Log连结,便可以在管理控制台的右窗格查看服务器日志。
使用管理控制台的Server节点查看一个服务器的JNDI树。点击所要查看的服务器,然后点击Monitoring标签页,点击该页面上View JNDI Tree连接,该服务器JNDI树的信息便显示在管理控制台的右窗格中。
使用管理控制台的Server节点查看服务器的执行队列。点击所要查看的服务器,然后点击View JNDI Tree连接,然后查看管理控制台右边窗格里的表格中的内容。 使用管理控制台的Server节点查看server sockets。点击所要查看的服务器,
- 39 -
WebLogic管理指南
点击View Sockets连接,然后查看管理控制台右边窗格里的表格中的内容。 使用管理控制台的Server节点查看服务器连接。点击所要查看的服务器,点击View Connections连接,然后查看管理控制台右边窗格里的表格中的内容。
使用管理控制台的Server节点进行强制垃圾收集。点击要监控的服务器,点击JVM标签页,点击页面上的Force Garbage Collection连接。将弹出是否要进行垃圾收集的确认对话框。
通过管理控制台的Server节点监控服务器的安全。点击要监控的服务器,点击Monitoring标签页,点击Security标签页。将显示安全信息。
通过管理控制台的Server节点查看服务器的版本。点击要查看的服务器,点击Version标签页,将显示服务器的版本信息。
通过管理控制台的Server节点监控服务器集群。点击要监控的服务器,点击Cluster标签页,将显示该服务器的集群数据。
通过管理控制台的Server节点来分发EJB。点击需要分发EJBs的服务器,点击需要分发的EJB并使用移动控件将它移到被选列中。点击Apply来保存你的选择。 通过管理控制台的Server节点来监控分发在某一服务器上的所有EJB。点击需要监控的服务器,点击Monitor All EJB Deployments连接来显示EJB分发表。 通过管理控制台的Server节点将web应用组件分发在某一服务器上。选择要分发web应用的服务器。选择需要分发的web应用,然后通过移动控件将它移到被选列中。点击Apply来保存你的选择。
通过管理控制台的Server节点来监控某一服务器上的所有web应用组件。点击web应用所在的服务器,然后点击Monitor All Web Applications连接来显示Web Application Deployments表。
通过管理控制台的Server节点在服务器上分发启动与终止类。点击需要分发启动类的服务器,然后点击需要分发的启动类并将它移到被选列中。点击Apply来保存你的选择。使用Shutdown Class控件来分发终止类的过程与此相同。
通过管理控制台的Server节点来分配web服务器。点击一个用来分发web应用的服务器。显示在右窗格的对话框包含了与该实例相关的标签页。在Availble列中点击一到多个需要分发到该服务器的web应用,然后使用移动控件将它们移动到Chosen列中。点击Apply来保存上述选择。
通过管理控制台的Server节点为服务器分配JDBC连接池。Click a server for web-server assignment。在Available列中点击一到多个JDBC连接池,并通过移动控件将所选择的JDBC连接池移到Chosen列。点击Apply来保存你所做的分配。 通过管理控制台的Server节点监控某一服务器的JDBC连接池。点及一个需要监控的连接池所在的服务器。点Monitor All JDBC Connection Pools on This Server链接。分配给该服务器的所有连接池都显示在右窗格中的JDBC连接池表格中。
- 40 -
WebLogic管理指南
通过管理控制台的Server节点为一个服务器分配WLEC连接池。点击需要分配WLEC连接池的服务器。在Available列中选择一个或多个要分配的WLEC连接池,使用移动控件将所选择的WLEC连接池移动到Chosen列。
通过管理控制台的Server节点监控某一服务器上的所有WLEC连接池。选择一个需要监控连接池的服务器。点Monitor All WLEC Connection Pools on This Server链接,所有分配给这台服务器的连接池显示在右窗格中的WLEC Connection Pools表格中。
通过管理控制台的Server节点为一台服务器分配JMS服务器,连接工厂,以及消息收信方。点击一个需要分配JMS的服务器,从Available列中选择需要分配给这个服务器的JMS服务器,然后点移动组件把所选择的JMS服务器移到Chosen列。使用JMS Connection Factories组件以及JMS Destination组件按照分配JMS服务器的步骤为服务器分配连接工厂与消息收信方。
通过管理控制台的Server节点为一台服务器分配XML registries。选择要分配XML registry的服务器,从XML Registry下拉列表中选择一个registry。点Apply保存设置。
通过管理控制台的Server节点分配邮件会话。选择一个要分配邮件会话的服务器。从Available列中选择要分配给服务器的邮件会话,使用移动控件把所选择的移动会话移动到Chosen列中。点Apply按钮保存设置。
通过管理控制台为服务器分配文件T3s。选择一个要分配文件T3的服务器。从Available列中选择要分配给服务器的文件T3s,使用移动控件把所选择的文件T3s移动到Chosen列。点Apply按钮保存设置。
集群配置列表
通过管理控制台可以进行以下集群配置:
通过管理控制台的Cluster节点配置集群服务器。可以配置的属性包括Cluster Name, Cluster ListenPort以及集群中的服务器名。
通过管理控制台的Cluster节点克隆一个集群。克隆的服务器与原服务器具有相同的属性设置,包含同样的服务器。新集群的名字在Server节点中的Configuration部分设置。
通过管理控制台的Cluster节点监控集群中的服务器。选择需要监控的集群,点Monitor Server Participating in This Cluster链接。该集群中的所有服务器显示在右窗格中的服务器表格中。
通过管理控制台的Cluster节点为集群分配服务器。选择需要分配服务器的集群,从Available列中选择要分配的服务器,使用移动控件把所选的服务器移到Chosen
- 41 -
WebLogic管理指南
列中。点Apply按钮保存设置。
通过管理控制台的Cluster节点删除集群。选择Delete图标,删除一个集群,右窗格中显示一个删除确认对话框,点Yes确认你的删除请求。
新建一个域
本节说明如何创建一个新的域。所有WebLogic域的配置信息都保存在/config目录的配置存储库中。每个域在/config目录下都有一个同名子目录。
安装WebLogic服务器时,建议你对缺省的/mydomain配置目录进行备份保存在一个zip文件中。并保存该zip文件的一个备份。/mydomain目录包含了域配置的基本组件,例如fileRealm.properties文件与配置文件。 以下是新建一个域的步骤:
1. 启动一个已存在的域(例如缺省的mydomain域)中的管理服务器。 2. 使用以下URI调用管理控制台。 http://hostname:port/console
其中hostname是管理服务器的主机名,port是管理服务器的监听端口(缺省为7001)。 3. 选择mydomain->Create或编辑其它域 这将显示domains表
4. 选择Default->Create a new Domain 输入新域的名字并点Create
5. 从左窗格的域列表中选择一个新域,使它成为当前域。 6. 为新建的域创建一个Administration Server条目。 选择Servers->Create a new Server 输入新建管理服务器的名字,然后点Create
7. 管理控制台会在\\configure目录下创建一个与新建域同名的子目录,并在这个子目录中创建一个配置文件config.xml。然后使用shell命令或使用Windows的浏览器在域目录下创建一个\\application子目录。
8. 将管理控制台应用复制到新建的\\applications目录。即把位于mydomain域的\\applications目录中的console.war文件复制到新建的\\applications目录。
- 42 -
WebLogic管理指南
9. 缺省的mydomain目录中包含启动WebLogic服务器的脚本。在windows中,启动WebLogic服务器的脚本为startWebLogic与startManagedWeblogic.cmd,在UNIX中为startWebLogic.sh与startManagedWebLogic.sh。把这些启动脚本复制到新的域目录中。 10.你可以在文本编辑器中编辑上述启动脚本。缺省情况下,域的名字设置为: -Dweblogic.Domain=mydomain 用新建域的名字代替mydomain 管理服务器的名字缺省设置为: -Dweblogic.Name=MyServer
用新建管理服务器的名字代替上面的Myserver。 11.启动脚本的最后是一个cd命令: cd config\\mydomain
使用新建域的子目录名替换上面的mydomain。启动脚本还包含下面一行:
echo startWebLogic.cmd must be run from the config\\mydomain directory 用新建域的名字替换上面的mydomain
12.把缺省域目录中的SerializedSystemIni.dat文件复制到新建的域目录中。如果还没有复制这个文件,千万别启动新建的管理服务器。
13.如果在安装时创建了password.ini文件,还必须把mydomain目录中的password.ini文件复制到新建域的子目录中。
完成上述步骤后,就可以启动新建域的管理服务器了。监控WebLogic域 本章主要介绍对WebLogic域的监控,包括以下内容:
概述 监控服务器 监控JDBC连接池
管理控制台的Monitoring页面一览表
概述
通过管理控制台,你可以对WebLogic域的性能以及运行状况进行监控。在管理控制台中,你可以查看到WebLogic资源的状态与统计数字,例如服务器、HTTP、JTA子系统、JNDI、安全性、CORBA连接池、EJB、JDBC与JMS等资源。
- 43 -
WebLogic管理指南
监控信息显示在管理控制台的右窗格中。在左窗格的域层次树上,选择一个容器或子系统或者是容器的某一实体,相关的监控信息便显示在管理控制台的右窗格中。
管理控制台提供了三种监控信息页面:
某一实体的Monitoring标签页(例如JDBC连接池实例或服务器的性能) 某一实体类型的数据表(例如WebLogic服务器表)
域日志与本地服务器日志视图。有关日志消息的详细内容,请参见“通过日志消息管理WebLogic服务器”中的内容。
管理控制台从管理服务器获得有关域资源的信息。管理服务器包含了Management Beans(MBeans)。Mbeans基于Sun的Java管理扩展标准(JMX),它提供了对域资源的管理访问策略。
管理服务器包含两种Mbeans:配置Mbeans与运行时Mbeans.配置Mbeans用于域的配置,运行时Mbeans则提供了诸如JVM内存资源使用状况以及WebLogic服务器状态等资源的信息快照。当域中的某一资源实例化时(例如Web应用),相应地就会创建一个Mbeans实例来收集该资源的信息。 在通过管理控制台访问某一资源的Monitoring页面时,管理服务器执行Get操作来获得该资源的当前属性值。
以下部分的内容描述了部分用来管理WebLogic域的Monitoring页面。我们以这些页面为例简要说明管理控制台所提供的监控功能。
监控服务器
你可以通过服务器表格以及单个服务器的监控标签页来监控WebLogic服务器。服务器表格提供了域中所有服务器的状态摘要信息。如果服务器只将其部分日志消息上传到域日志中,那么通过本地服务器的日志来修复故障或研究事件将是非常有用的。
有关日志文件以及日志子系统的更多内容,请参见“使用日志消息管理WebLogic服务器”。
每个WebLogic服务器的监控标签页都包含了该服务器的监控数据。通过Logging标签页可以访问服务器的本地日志(即保存在运行服务器的机器上的日志)
- 44 -
WebLogic管理指南
Monitoring->General标签页显示了服务器的当前状态。从这个标签页,你还可以访问JNDI树、Execute Queues表、Active Sockets表以及Connections表。Execute Queues表包含了有关性能的信息,如挂起时间最长的请求以及当前被起的请求数量。
终止或暂停服务器
你可以通过Monitoring->General标签页来终止或暂停服务器。暂停的服务器只能接收管理服务器的请求,客户的请求被忽略。
性能
Monitoring->Performance标签页以图形的方式描述了有关JVM内存堆使用状况、请求对象与等待请求的实时数据。通过该页面,你还可以强制JVM对内存堆执行垃圾收集。 图4-1 服务性能图
- 45 -
WebLogic管理指南
Java堆中存放了Java对象(可以是活动对象也可以是死亡对象)。正常情况下,因为JVM会自动进行垃圾收集,因此不需要你手工处理。当JVM的内存要用光时,它会停止所有执行应并使用垃圾收集算法来释放不在被应用使用的空间。
另一方面,程序员在调试应用时可能会执行强制性垃圾收集。手工执行垃圾收集非常有用,例如,可以用来测试JVM内存泄漏。
集群数据
Monitoring->Cluster标签页提供了集群的信息(例如集群中有多少服务器处于活动状态)。
服务器安全
Monitoring->Security标签页包含了以下信息:无效登录的统计信息,被
- 46 -
WebLogic管理指南
锁用户的统计信息与开启用户的统计信息。
JMS
Monitoring->JMS标签页提供了有关JMS服务器与连接的统计信息。在该页,你可以链接到活动JMS连接表格以及活动JMS服务器表格。通过这些表格,你可以监控诸如当前总会话数等属性。
JTA
Monitoring->JTA标签页提供了Java事务子系统的统计信息,如有关事务与所有回滚的统计信息。从该页面,你还可以链接到按资源或名字所选择的事务列表以及in-flight事务表格。
监控JDBC连接池
通过管理控制台,你可以对Java数据库连接(JDBC)子系统实行监控。在JDBC连接池的Monitoring标签页面上,你可以了解到有关连接池中的实例的统计信息。正如管理控制台的其它实体表,你可以定制该统计信息表,选择需要显示的属性。
许多属性提供了有关管理客户端数据库请求的重要信息。
Waiters Hight字段指明了最多有多少客户等待数据库连接。Waiters字段告诉你当前有多少客户正在等待连接。Connections Hight字段给出最大的并发连接数。Wait Seconds Hight字段显示了客户等待数据库连接的最长时间。通过这些属性,你可以判断当前的配置在响应用户请求方面是否有效。 如果Connections High字段的值近似于Maximum Capacity字段的值(该值在Configuration Connection标签页中设置),那么有必要考虑增加Maximum Capacity字段的值(即最大的并发连接数)。如果Waiters Hight字段的值显示用户必须经过长时间等待才能获得数据库连接,那么应该增加连接池的大小。
Shrink Period字段用来指定JDBC子系统在连接池开始进行缩减时所要等待的时间。当JDBC子系统要减小连接池的大小时,那么数据库连接将被释放。
- 47 -
WebLogic管理指南
因为创建数据库连接非常消耗资源和时间,因此如果密集的客户端请求阵歇性地出现,那么比较短的收缩周期将意味数据库连接要不断地被重新创建,从而导致性能的下降。
管理控制台的Monitoring页面一览表
下表列出了管理控制台中所有的表格以及监控标签页面。 表4-1 Monitoring页面一览表
页面 Monitoring标签页面 一般的服务器信息 服务器性能 集群的统计信息 服务器的安全信息 服务器的版本信息 集群 实体表 服务器 页面的路径 服务器名字-> Monitoring -> General 服务器名字-> Monitoring -> Performance 服务器名字-> Monitoring -> Cluster 服务器名字-> Monitoring -> Security Servername -> Monitoring -> Version Clusters -> clustername -> Monitoring 监控的数据 服务器的状态以及activation time 请求吞吐量、JVM的内存使用以及等候请求的实时图表 有关集群的统计信息,如集群中活动服务器的数量、sent and received fragments 无效的登录数量以及所有被锁定的用户数与未锁定的用户数 JDK, WebLogic以及操作系统的版本信息 集群的相关统计信息,如the number of alive servers and sent and received fragments Servers 执行队列 执行套接字 连接 集群 Transactions By Name Transaction By Resource 活动事务 机器 服务器的相关数据,例如内存使用、启动时间、状态、cluster participation,无效登录、堆的状态、套接字的数量and total restarts Servername -> Monitoring -> General -> 请求吞吐量、JVM内存使用状况以及等待请Monitor Execute Queues on this server 求等信息的实时显示 Servername -> Monitoring -> General -> 活动套接字的协议及其它属性 Monitor Active Sockets on this server Servername -> Monitoring -> General -> 连接的相关数据,如连接时间、远程地址、Monitor Connections on this server 所发送的字节数与接收到的字节数 Clusters 缺省的负载算法以及多点传送地址的相关数据 Servername -> Monitoring -> JTA -> 按名字所组织的事务的相关数据 Monitor Transactions by Name on this server Servername -> Monitoring -> JTA -> 按资源所组织的事务的相关数据 Monitor Transactions by Name on this server Servername -> Monitoring -> JTA -> 该服务器中有关活动事务的数据 Monitor In-flight Transactions on this server Machines 机器的地址以及其它属性 - 48 -
WebLogic管理指南
应用 EJB的分发 Web应用 活动的Web应用 Web应用的Servlets 启动类与终止类 JDBC连接池 JDBC 多池 JDBC数据源 JDBC Tx 数据源 JMS Connection Factories JMS 模板 JMS收信方关键字 JMS 存储器 JMS服务器 活动JMS服务 活动JMS服务器 活动JMS 收信方 活动JMS会话池 JMS 收信方 JMS会话池 XML 注册记录 WLEC 连接池 Jolt连接池 活动Jolt连接池 虚拟主机 Applications Deployments -> EJB Deployments -> Web Applications Deployments -> Web Applications appname -> Monitoring -> Monitor instances of appname Deployments -> Web Applications appname -> Monitoring -> Monitor servlets for this Web Application Deployments -> Startup & Shutdown Services -> JDBC -> Connection Pools Services -> JDBC -> Multipools Services -> JDBC -> Data Sources Services -> JDBC -> Tx Data Sources Services -> JMS -> Connection Factories Services -> JMS -> Templates Services -> JMS -> Desination Keys Services -> JMS -> Stores Services -> JMS -> Servers Services ->JMS -> Servers ->Monitor all Active JMS Services Services ->JMS ->Servers -> Monitor all instances Services ->JMS ->Servers -> Monitor all Active JMS Destinations Services -> JMS -> Servers -> Monitor all Active JMS Session Pools Services -> JMS -> jmsservername -> Destinations Services -> JMS -> jmsservername -> Session Pools 应用列表 各个EJB的URL、应用名字及其它属性 Web应用的URL以及它的缺省Servlet等属性 -> Data about deployed copies of this Web application all -> 有关Web应用的统计数据,如最大池容量以all 及最长的执行时间 经过注册的启动类与终止类列表 JDBC连接池的初始容量、容量增量及其它属性 JDBC多池的负载平衡及其它属性 JDBC数据源的Pool名、JNDI名字以及其它属性 JDBC Tx数据源的Pool名字、JNDI名字以及其它属性 JMS connection factories的JNDI名字,客户号,缺省优先级及其它属性 JMS模板的有关数据 JMS收信方的关键字类型与其它属性 JMS存储器的描述信息 JMS服务器的有关信息 连接的上限及其它活动JMS服务的有关数据 有关会话与消息挂起的统计信息以及其它数据。 活动JMS收信方的使用者、所收到的消息及其它属性。 使用者数量的上限及其它属性 JNDI名字及其它数据 JMS会话池的肯定应答模式、会话的最大量及其它属性 Services -> XML -> XML Registries DocumentBuilderFactories以及SAXPArserFactories列表 Services -> WLEC -> WLEC Connection WebLogic企业域的名字、失败转移地址、最Pools 大最小容量以及其它信息 Services -> Jolt Jolt连接池的失败转移地址、连接池的最大与最小容量以及其它信息 Service->Jolt->joltconnectionpoolname->Jolt连接池的最大实例数、当前连接及其它Monitoring -> Monitor all active pools 实例数据 ServiceVirtual Hosts 虚拟主机的格式、日志文件及其它属性 - 49 -
WebLogic管理指南
邮件会话 文件T3 用户 组 访问控制列表 缓存域 域 域日志过滤器 Service -> Mail Services -> File T3 Securit ->Users Security ->Groups Security->ACLs Security->Caching Realms Security->Realms Domain Log Filters 邮件会话的名字与虚拟列表 文件的名字与路径 用户列表 组列表 ACL列表 缓存域列表 对域的描述 Servers on which the filter is registered以及用于过滤消息的属性
- 50 -
WebLogic管理指南
4 用日志消息管理WebLogic服务器
本章将介绍以下内容:
日志子系统概述 本地服务器日志文件 消息属性 消息目录 消息的严重级别 浏览日志文件 创建域日志的过滤器
日志子系统概述
日志消息是管理系统的一个非常有用的工具。通过日志可以发现问题,跟踪错误来源,及时了解系统性能。WebLogic服务器产生的日志消息被保存在两个地方:
WebLogic服务器组件子系统产生的消息保存在本地文件中,即该文件位于运行服务器的机器上。如果一台机器上同时运行了若干个WebLogic服务器,那么每一个服务器都有自己的日志文件。分发在WebLogic服务器上的应用可以将它所产生的消息保存在服务器的本地日志文件中。
此外,一部分本地日志消息还被存储在由管理服务器维护的域日志文件中。
嵌在WebLogic服务器的JMX(Java管理扩展)程序,会把WebLogic服务器产生的日志消息传送到管理服务器。如果本地WebLogic服务器主动将消息发送到其它实体,用JMX的术语来说,这就是“布告”。
在WebLogic服务器启动时,管理控制台的消息处理器会向该服务器注册以便接收来自该服务器的日志消息。在注册过程中,本地服务器将使用一个可以被用户修改的过滤器选择要转发到管理服务器的日志消息。这些消息被收集在域日志中。
一般而言,只有最重要的日志消息(由“Message severity”决定)才会从
- 51 -
WebLogic管理指南
本地服务器转发到域日志中。域日志提供了域的一个总体视图,同时又能使你聚焦在那些最为关键的消息上。
你可以通过管理控制台来更改日志消息过滤器,这一过程是动态的,即不需要重启本地服务器,更新即可生效。(参见“创建日志过滤器”中的内容)。 开发人员可以用定制的消息处理器向WebLogic服务器注册并通过JMX布告接收日志消息
- 52 -
WebLogic管理指南
本地服务器的日志文件
老版本的WebLogic服务器在日志文件达到最大长度时会创建一个新的日志文件。这种自动创建日志文件的机制被称为日志回旋(Log Rotation)。在6.0版本中,你可以选择日志回旋的方式:(1)基于时间,(2)基于文件大小。在管理控制台中按以下步骤配置日志回旋: 1.在管理控制台的左窗格,选择一个服务器。 2.在右窗格,选择Configuration->Logging。 3.在Rotation Type字段中,选择时间或长度。
如果该字段的值为none,那么日志不进行回旋。如果选择基于时间的日志回旋,那么新日志文件按指定的时间间隔(由File Time Span指定)被创建。 缺省情况下,本地服务器的日志文件名为servername.log(其中servername指服务器的名字)。日志文件位于WebLogic服务器所在的目录。日志文件的名字可以在Configuration->Logging页面中设置。 File Count字段的值指定回旋日志文件的最大数量。如果日志文件的数量数达到这个数目,那么每次发生日志文件回旋时,最老的日志文件将被删除。日志文件按照创建的先后被命名为filenamennnnn,其中filename是在configuratin->Logging页面中设置的日志文件名。例如:webLogic.log00007
本地服务器日志包含所有被记录的日志消息。
在配置本地服务器日志时,你可以指定哪些日志消息将被输出到标准输出中。通过指定所要记录的日志的最低严重性级别,可以把一些不太严重的消息排除在外。也可以设置是否将调试消息输出到标准输出。
启动日志
在WebLogic服务器启动时,如果还未完成初始化就发生了错误,那么这些错误将输出到标准输出以及名字为weblogic-startup.log的本地服务器启动日志文件中。如果启动成功,那么启动日志文件的最后一条消息将指向记录普通日志信息的本地服务器日志文件。
- 53 -
WebLogic管理指南
客户端日志
使用WebLogic日志功能的Java客户端也会产生日志消息,但是这些客户端所产生的消息不能被转发到域日志中。要配置客户端的日志属性,可以在命令行中使用以下参数:
-Dweblogic.log.attribute=value
其中,attribute可以是任何LogMBean属性。缺省情况下,客户端的日志消息不会记录在日志文件中,而是输出到标准输出。
日志文件的格式
在日志文件中,每条消息的第一行都以####开始,紧跟其后是消息头。消息头说明了消息的运行时上下文。每个消息属性都包含在尖括号对中。
如果是异常消息,那么消息体后面是异常的堆栈形迹。如果消息不在事务上下文中,属性Transaction ID的尖括号对仍然会有,只是没有事务号而已。 以下是一个日志消息的例子:
#### 这个例子包含以下消息属性:ThreadID, UserID, Transaction ID, Message ID, 以及Message Text。 注意:客户端记录的日志消息没有Server Name与Thread ID属性 消息属性 日志文件中的每条消息都定义了下表所列出的属性。通过消息号,消息还可以关联Message Catalog的其它属性 (例如,Probable Cause与Recommended Action)。 - 54 - WebLogic管理指南 属性 时间戳 严重级别 子系统 服务器名 机器名 线程号 事务号 用户号 消息号 消息文字 描述 消息产生的日期与时间,格式因地区设置而异。 指消息事件的重要性或严重程度见“消息的严重级别” 该属性指出了该消息是WebLogic服务器的哪个子系统产生的。例如:EJB, RMI与JMS 这四个属性定义了该消息的来源。如果消息位于事务上下文中,那么就具有事务号属性。注意:Java客户端所产生的日志消息没有服务器名以及线程号属性。 在产生该消息时,安全上下文中的用户 唯一性的六位标识符。小于499999的消息号保留给WebLogic服务器系统消息 对于WebLogic服务器消息,该属性的内容是由系统消息目录所定义的短描述(见“消息目录”),对于其它消息,该属性的内容由程序开发者指定。 消息目录 除了保存在日志消息中的那些信息外,WebLogic服务器系统组件(或者是用户编写的代码)产生的消息另外还包含了其它预定义的信息,这些信息被保存在消息目录中。下表描述了保存在消息目录中的属性: 属性 消息体 消息细节 可能原因 建议 描述 对消息产生时的环境的简短的文字性描述。与消息的消息文字属性相同 对消息产生时的环境的更详尽的描述 解释记录该消息的原因。以及产生该消息的可能原因 管理员对解决或避免引起该消息的问题建议 你可以在管理控制台的日志视图查看上述属性 消息的严重级别 WebLogic服务器消息具有一个称作“严重级别”的属性。该属性反映了消息所报告的事件或系统状态的重要性或者可能对用户的潜在冲击 下表描述了被定义的各类严重性。下表按严重程度列出了各种严重情形,其中Energency的严重级别最高 严重级别 缺省情况下是否发送到域日志 否 含义 报告 用于报告普通操作 - 55 - WebLogic管理指南 警告 错误 注意 严重 警报 危急 否 是 是 是 是 是 发生了可疑的操作或配置,但对普通操作没有影响 发生了用户操作。系统或应用不需要中断服务就可以处理该错误 发生了可疑的错误或配置,可能不会影响服务器的正常操作 发生了系统或服务错误。系统可以恢复但是可能会造成瞬间或永久性的服务性能降低 某个服务不能使用,系统的其它部分还能正常工作。不可能进行自动恢复;管理员需要立即采取措施解决问题 服务器不能使用,该严重级别表明了发生服务器系统失败,情况十分危机。 消息调试 严重级别为调试的消息是一个特殊的情形。调试消息不会发送到域日志。调试消息包含了有关应用与服务器的详细信息。这些消息只有在应用是以调试模式运行时才会产生。 浏览日志文件 管理控制台提供了以下日志查看功能: 查看任一服务器的本地日志文件 查看域日志文件 无论是查看域日志还是本地服务器日志,你都可以 按照产生时间、用户号、子系统、消息严重级别或者是消息的短描述选择所要查看的消息 查看被记录的消息,或对日志消息进行查找 选择要显示在管理控制台的消息属性及其排列顺序 查看日志 你可以从管理控制台访问域日志与本地服务器日志。有关这些任务的具体操作参见控制台的在线帮助: 查看域日志(viewing the Domain Log) - 56 - WebLogic管理指南 查看本地服务器日志(Viewing the Local Server Log) 创建域日志过滤器 缺省情况下,被WebLogic服务器转发到域日志的日志消息是本地消息日志的子集。过滤器决定了要把哪些日志消息发送到域日志,你可以对过滤器进行配置,这样就可以根据消息的严重级别、产生消息的子系统或者是用户号来选择要转发的日志消息。(调试消息属特殊情况,它不能被转发到域日志)你可以创建一个过滤器也可以更改域日志过滤器表中的过滤器。从Domain Monitoring标签页可以访问域日志过滤器表。有关创建域日志的详细内容参见管理控制台的在线帮助。 - 57 - WebLogic管理指南 5 分发应用 本章将介绍如何在WebLogic服务器上分发应用程序以及应用组件,内容如下 分发格式 通过管理控制台分发应用 动态分发 分发格式 J2EE应用可以以企业应用包(Enterprise Application Archive,简称为EAR)的形式或者是展开目录格式的形式部署到WebLogic服务器上。 如果以展开格式的形式部署J2EE应用,那么我们建议你在此格式中只包含Web应用组件。如果是以包的形式部署J2EE应用,我们建议所有应用组件都采用包的形式。 一个组件可以被打包在EJB包(JAR)文件中,也可以在Web应用包(Web Application Archive,简称为WAR)文件中,或者是资源适配器包(Resource Adaptor Archive,简称为RAR)文件中。 有关Web应用的更多信息,请参见“配置WebLogic服务器Web组件”中的内容。 有关资源适配器组件的信息,可以参见“管理WebLogic J2EE连接器构架”中的内容。 用管理控制台分发应用 你可以通过管理控制台安装或分发应用或应用的组件(例如EJB JAR文件)并且将应用组件的实例分发到目标WebLogic服务器上。步骤如下: - 58 - WebLogic管理指南 步骤1:配置与分发应用 1.选择Deployments->Application调用applications表格. 2.点击Configure a new Application链接调用Create a new Application页面。 3.填写以下字段 应用的名字 应用(EAR文件)所在的路径 应用是否已经被部署到WebLogic服务器上了 4.点Create按钮创建一个新的条目 当你用管理控制台分发应用(或应用组件)时,管理服务器会在为应用在域配置文件中(/config/domain_name/config.xml)加上与被分发的应用或应用组件加上一个相应的条目。同时,管理服务器还会创建用以配置及监控该应用或应用组件的JMX Management Beans(MBeans)。 步骤2:分发应用组件 可以在WebLogic服务器中分发以下三种类型的应用组件:Web应用组件,EJBs与资源连接器组件。 注意:如果把应用组件(如EJBs或WAR文件)分发到集群中的受管服务器上,那么必须保证集群中的所有成员服务器都部署了同样的应用组件。为此,你可以选择集群作为分发的目标。 部署Web应用组件 以下是将Web应用部署到受管服务器上的步骤: 1.选择Deployments->Web Applications调用Web Applications表 2.点击Configure a new Web Application链接调用Create a new WebApp Component配置页面 3.填写以下字段: 组件的配置条目的名字 指向该组件的统一资源标识符(URI) - 59 - WebLogic管理指南 WAR文件的路径,或者是展开格式的Web应用所在目录的路径 选择分发顺序。该顺序指定了服务器启动时Web应用的分发顺序。(见分发顺序) 指出应用是否已经被部署了 4.点击Create按钮创建一个新的组件条目 5.选择组件的部署目标是受管服务器还是集群。点Targets->Servers将组件部署到目标服务器上。点Targets->Clusters将组件部署到目标集群上。 6.Available字段列出了受管服务器(如果选择Targets->Clusters则列出集群)。使用箭头按钮将它们移到Chosen字段,这样便选择了要部署该Web组件的目标服务器。点Apply使你的设置生效。 有关配置Web应用的更多信息,请参见“配置WebLogic服务器的Web组件”中的内容。 部署EJB组件 以下是把EJBs部署到受管服务器上的步骤: 1.选择Deployments->EJB调用EJB Deployment表格 2.点击Configure a new EJB链接调用Create a new EJB Component页面 3.填写以下字段: 该组件的配置条目的名字 指向该组件的统一资源标识符(Uniform Resource Identifier,简称为URI) JAR文件的路径 选择分发顺序。它决定了服务器启动时,该EJB被分发的顺序。 指出是否已经部署了该组件 4.点Create创建一个新的组件条目 5.选择组件的部署目标是受管服务器还是集群。点Targets->Servers将组件部署到目标服务器上。点Targets->Clusters将组件部署到目标集群上。 6.Available字段列出了受管服务器(如果选择Targets->Clusters则列出集群)。使用箭头按钮将它们移到Chosen字段,这样便选择了要部署该EJB的目标服务器。点Apply使你的设置生效。 部署资源适配器组件 以下是把EJBs部署到受管服务器上的步骤: - 60 - WebLogic管理指南 1.选择Deployments->Connectors调用EJB Deployment表格 2.点击Configure a new Connector Component链接调用Create a new Connector Component页面 3.填写以下字段: 该组件的配置条目的名字 指向该组件的统一资源标识符(Uniform Resource Identifier,简称为URI) RAR文件的路径 选择分发顺序。它决定了服务器启动时,该资源连接器被分发的顺序。(见“分发顺序”中的内容) 指出是否已经部署了该组件 4.点Create创建一个新的组件条目 5.选择组件的部署目标是受管服务器还是集群。点Targets->Servers将组件部署到目标服务器上。点Targets->Clusters将组件部署到目标集群上。 6.Available字段列出了受管服务器(如果选择Targets->Clusters则列出集群)。使用箭头按钮将它们移到Chosen字段,这样便选择了要部署该EJB的目标服务器。点Apply使你的设置生效。 有关资源连接器的更多信息,可以参考“管理WebLogic J2EE连接器构架”中的内容。 如果一个应用或应用组件(如一个EAR或WAR文件,或EJB JAR文件)被部署到一个特定的WebLogic服务器上,那么管理控制台将调用一个文件分发servlet将文件复制到目标服务器的/config/domain_name/applications/ wlnotdelete目录中。 分发顺序 对于同一类型的组件,例如EJBs,你可以指定WebLogic服务器在启动时部署这些组件的顺序。你在部署组件时,为Deployment Order字段所指定的整数是该组件相对于其它同类型组件的优先级,例如各EJB的部署顺序。分发顺序为0的组件是同类型组件中最先部署的组件。 但是,各种组件类型之间的分发顺序不受用户所定义的同类型分发顺序所影响。WebLogic在启动时,按以下顺序启动各类型的组件: 1.JDBC连接池 - 61 - WebLogic管理指南 2.JDBC多池 3.JDBC数据源 4.JDBC Tx数据源 5.JMS连接工厂 6.JMS服务器 7.连接器组件 8.EJB组件 9.Web应用组件 自动分发 自动分发(Auto-deployment)能够快速地在管理服务器上部署应用。但我们只建议你在开发环境中使用这种分发方式来测试应用。不建议你在生产环境或受管服务器上使用使用自动分发。 如果目标WebLogic服务器域启用了自动分发,当应用被复制到WebLogic管理服务器的/config/domain_name/applications目录时,管理服务器会自动检测到新应用并自动部署该应用(如果管理服务器是运行着的)。(子目录domain_name是启动管理服务器时所使用的WebLogic服务器域。 )如果在你把应用复制到/applications目录时,WebLogic服务器没有被运行,那么当WebLogic服务器启动时将分发这个应用。 启用或禁用自动部署 缺省情况下,自动部署是启用的。 自动分发选项是否开启决定了应用的分发有两种方式: - 62 - WebLogic管理指南 如果启用了自动分发选项,那么在把应用复制到管理服务器的/config/domain_name/applications目录下后,应用会自动分发到管理服务器上。 如果禁用了自动分发选项,你必须在这个应用的Configuration标签页上指明要分发该应用,那么所安装的这个应用才会被分发。 3、将应用组件(或者是Web应用组件与EJB)的实例分发在受管服务器上 当应用被安装到管理服务器上(/config/domain_name/applications目录)之后,就可以将应用的组件分发到WebLogic受管服务器上。 在管理控制台中,打开目标服务器的Deployments->EJB(见图6-3)或Deployments->Web Applications标签页,选择需要分发的应用组件。 或者通过组件的Targets 标签页面来选择要分发应用组件的目标服务器。 图5.1 – 某一服务器的Deployment->EJB标签页 如果要把应用组件(例如EJBs或WAR文件)分发到集群中的受管服务器中,那么就必须保证集群中的所有受管服务器都分发了该应用组件,选择集群作为分发目标就可以确保这一点。 - 63 - WebLogic管理指南 动态分发 当你将应用拷贝到WebLogic管理服务器的/config/domain_name/applications目录时(子目录domain_name是指要分发应用的WebLogic域的名字),如果目标WebLogic服务器域启用了自动分发并且运行了管理服务器,那么管理服务器将会检测到新应用并自动分发该应用。这种分发应用的方式被称为动态分发。如果在把应用复制到/applications目录下时没有运行WebLogic服务器,那么应用将在WebLogic服务器重新启动时分发。 缺省情况下,自动分发是启用的。如果禁用了自动分发,那么仍然可以通过管理控制台来手工分发应用组件,这种分发应用的方式被称为静态分发。 启用与禁用自动分发 缺省情况下,自动分发是启用的。 要确定是否启用了自动分发选项,可以进入管理控制台的域应用设置页面(domain_name->Configuration->Applications),在这个页面上可以设置自动分发是否启用以及设置WebLogic服务器检查新应用的时间间隔。缺省情况下,如果启用了自动部署,那么管理服务器每3秒种检查\\applications目录的变化。 自动分发展开目录格式的应用 自动分发的应用或应用组件可以采用展开目录格式或者EAR文件、WAR文件以及JAR文件等格式。 以下是自动分发展开式应用的步骤: 1.展开式应用的目录名应该与应用的上下文路径相同。 2.把应用复制到/config/domain_name/applications子目录下,其中。Domain_name是要部署应用的目标域。如果启用了自动分发,那么该应用被自动部署。 - 64 - WebLogic管理指南 卸载或重新分发被自动分发的应用 被自动分发的应用或应用组件可以在服务器运行的情况下动态地重新分发。因此可以不需要停止并重启WebLogic管理服务器,就能对应用或应用组件进行更新。如果要动态地重新部署一个应用或应用组件,只需要用更新后的文件覆盖/applications目录下的相应文件。 该功能对于开发人员很有用。开发人员只需要将更新后的文件复制到/applications目录下,服务器就会进行相应的更新。 展开式应用的自动重分发 你可以动态地重新分发分发展开式应用或应用组件。如果所分发的应用是展开格式,那么管理服务器会周期性地检查展开式应用目录中的REDEPLOY文件。如果该文件的时间戳改变了,那么管理服务器会自动地重新分发这个应用。 如果要更新展开式应用目录中的文件,按以下步骤: 1.第一次分发展开式应用时,在该应用所在的目录下创建一个名字为REDEPLOY的空文件 2.用更新后的应用文件覆盖目录下的相应文件。 3.复制完文件后,改变这个目录下的REDEPLOY文件的时间戳 当管理服务器发现该文件的时间戳改变了,它会自动分发展开式应用目录下的内容。 - 65 - WebLogic管理指南 6 配置WebLogic服务器的Web组件 本章将介绍Web组件的配置,主要内容如下: 概述 HTTP参数 配置监听端口 Web应用 配置虚拟主机 WebLogic服务器如何解析HTTP请求 设置HTTP访问日志 防止“POST拒绝服务”攻击 设置WebLogic服务器的HTTP Tunneling 用本地 I/O提供静态文件服务 概述 除了可以部署动态的、基于Java的分布式应用外,WebLogic服务器还是一个具有完整功能的Web服务器,它可以处理高流量的Web站点,提供HTML文件、图像文件、servlets以及JSP等静态页面服务。WebLogic服务器支持HTTP 1.1标准。 HTTP参数 你可以通过管理控制台配置每一个WebLogic服务器实例(或每个虚拟主机)的以下HTTP参数。 Default Web Application 缺省应用处理不能被其它Web应用解析的请求。访问缺省应用的URI不需要包含上下文路径(Web应用的上下文通常是Web应用的名字)。 - 66 - WebLogic管理指南 Post Timeout Seconds WebLogic服务器在相邻两次接收HTTP POST数据之间的等待时间,该参数被用来防止采用POST方法使服务器超载的“拒绝服务”攻击。 Max Post Time 限制了WebLogic服务器用于接收POST数据的时间 MAX Post Size 该参数限制了WebLogic服务器对每个请求所能接收的POST数据量(以字节为单位)。如果超出了该限制,将引发MaxPostSizeExceeded异常 Enable Keep Alive 启用或禁用持久的HTTP连接。如果浏览器使用HTTP 1.1协议,那么该参数一般是开启的。 Connection timeout WebLogic服务器在关闭非活动的HTTP连接之前所等待的时间 HTTPS Duration WebLogic服务器在关闭非活动的HTTPS(安全套接层或SSL)连接之前所等待的时间。 HTTP Access Logging 你可以禁用或启用HTTP访问日志,并且可以设置访问日志的回旋参数,如日志旋回的方式及时间。详细内容,请参见本章“设置HTTP访问日志”中的内容。 有关设置上述参数的详细信息,请参见以下网页的“虚拟主机”部分: http://e-docs.bea.com/wls/docs60/ConsoleHelp/virtualhost.html. 配置监听端口 你可以指定WebLogic服务器监听HTTP请求的端口。尽管可以指定任何有效的监听端口,但是如果把WebLogic服务器的监听端口设为80,那么当你访问Web应用的资源时,你就可以省略HTTP请求中的端口号。例如,当你使用80端口作为监听端口时,你就可以采用以下形式的URI: http://hostname/myfile.html而不是 http://hostname:portnumber/myfile.html 普通请求与安全(使用SSL)请求分别使用不同的监听端口。你可以通过管理控制台的Servers节点的Configuration/Gereral标签页定义普通的监 - 67 - WebLogic管理指南 听端口,在Configuration/SSL标签页中定义SSL监听端口。 Web应用 HTTP以及Web服务的部署遵照Sun MicroSystems的Servlet2.2标准。该标准定义Web 应用作为组合各种基于Web应用的组件的标准。这些组件可以是JSP页面,HTTP servlets以及诸如HTML页面与图象文件等静态资源。Web应用可以访问外部资源,例如EJBs与JSP标记库。一个服务器可以分发任意多个Web应用。当你从Web应用请求资源时,一般都要在请求的URI中包含该应用的名字。 详细内容,以下页面的Assembling and Configuring Web Applications: http://e-docs.bea.com/wls/docs61/webapp/index.html. Web应用与集群 Web应用可以部署到WebLogic服务器组成的集群中。当用户请求Web应用的资源时,那么请求会被引导到集群中的一个服务器上。如果应用使用了会话对象,那么会话应该复制到集群中的所有节点上。有多种方式复制会话。 详细内容,参见以下页面的“Using WebLogic Server Clusters”部分: http://e-docs.bea.com/wls/docs60/cluster/index.html. 指定缺省的Web应用 域中的每个服务器或虚拟主机都有一个特殊的Web应用——缺省Web应用。任何不能被其它Web应用所解析的请求将由缺省应用来处理。与一般Web应用不同的是,指向缺省Web应用的URI不需要包含应用的名字。部署在服务器或虚拟主机上的任何Web应用都可以声明为缺省Web应用。(稍后,我们将讨论“部署 Web应用”)。有关虚拟主机的更多信息,请参见本章“配置虚拟主机”中的内容。 如果没有声明缺省的Web应用,那么WebLogic服务器启动时时会自动创建一个缺省Web应用。所创建的缺省Web应用的名字为DefaultWebApp_servername,其中servername是服务器的名字;如果 - 68 - WebLogic管理指南 是虚拟主机,那么将被命名为DefaultWebApp_VirtualHostName。 如果没有正确分发所声明的缺省Web应用,那么当请求缺省Web应用的资源时,用户将接收到HTTP 400错误消息,同时日志中将记录这一错误消息。 例如,如果有一个名字为shopping的Web应用,那么应该用以下URI访问该Web应用的cart.jsp页面: http://host:port/shopping/cart.jsp 但是,如果你将该Web应用声明为缺省Web应用,那么你就可以用以下URI访问cart.jsp: http://host:port/cart.jsp (其中host是运行WebLogic服务器的机器的主机名,port是WebLogic服务器监听请求的端口)。 以下是用管理控制台为服务器或虚拟主机指定缺省Web应用的步骤: 1.在左窗格中,点击Web Appliction节点 2.选择你的Web应用 3.在右窗格中,点Targets标签页 4.选择Servers标签页,将服务器(或虚拟主机)移到chosen列。 (选择Clusters标签页面,将集群移动到Chosen列中,可以使集群中所有的服务器作为设置的目标)。 5.点击Apply按钮 6.点击左窗格中的Servers(或虚拟主机)节点 7.选择合适的服务器或虚拟主机 8.点击右窗格中的General标签页面。 9.选择HTTP标签页面 10.从Default Web Application下拉列表中选择一个Web应用 11.点击Apply按钮 12.如果要为多个受管服务器指定缺省Web应用,那么对每个受管服务器重复上述步骤 - 69 - WebLogic管理指南 配置虚拟主机 通过配置虚拟主机,你可以定义服务器或集群所响应的主机名。虚拟主机就是通过DNS将一个WebLogic服务器或集群的IP地址映射到一个或多个主机名并且指定用哪个虚拟主机来服务哪个Web应用。如果在集群中使用虚拟主机,那么负载平衡能够以最有效的方式使用硬件系统,即使是某一DNS主机名比其它DNS主机名处理更多的请求。 例如,你可以指定一个名字为books的Web应用响应对虚拟主机名www.books.com的请求,这些请求将由WebLogic服务器A,B,C来处理,而一个名字为cars的Web应用将响应对虚拟主机名www.autos.com的请求,这些请求将由WebLogic服务器D,E来处理。你可以根据应用以及Web服务器的需要来组合使用虚拟主机、WebLogic服务器、集群与Web应用。 每个虚拟主机都可以定义自己的HTTP参数与HTTP访问日志。为虚拟主机设置的这些参数会覆盖服务器的这些参相应数设置。你可以指定任意数量的虚拟主机。 当把服务器或集群作为虚拟主机的目标时,虚拟主机被激活。以集群为目标的虚拟主机会应用于集群中的所有服务器。 虚拟主机与缺省Web应用 每个虚拟主机都可以指定自己的缺省Web应用。一个虚拟主机的缺省应用将处理所有不能为该虚拟主机的其它Web应用所解析的请求。 与其它Web应用不同的是,在访问缺省应用的资源时,URI不需要包含缺省应用的名字(即上下文路径)。 例如,有一个www.mystore.com虚拟主机名,该虚拟主机名以WebLogic服务器为目标。如果你在该服务器上部署了一个名为shopping的web应用,那么你可以要以下URI访问该应用的cart.jsp页面: http://www.mystore.com/shopping/cart.jsp 如果,shopping应用被声明为虚拟主机www.mystore.com的缺省Web应用,那么访问cart.jsp页面的URI是: http://www.mystore.com/cart.jsp - 70 - WebLogic管理指南 详细信息,请参见本章的“WebLogic服务器如何解析HTTP请求” 设置虚拟主机 可以通过管理控制台来定义虚拟主机: 1.创建一个新的虚拟主机 a.在左窗格中点击Services节点,该节点被展开并显示一组服务。 b.点击Virtural Host节点。如果定义了虚拟主机,那么该节点将被展开并显示所有的虚拟主机 c.在右窗格中点击Create a New Virtual Host d.输入新建虚拟主机的名字 e.输入虚拟主机名,一行一个。只有那些与虚拟主机名匹配的请求才会被虚拟主机的目标WebLogic服务器或WebLogic集群处理。 f.(可选步骤)为虚拟主机分配一个缺省Web应用。 g.点击Create按钮 2.定义日志与HTTP参数 a.(可选步骤)点击Logging标签页,填写HTTP访问日志属性(详细内容,请参见本章“设置HTTP访问日志”中的内容) b.选择HTTP标签页,填写HTTP参数 3.定义虚拟主机的目标服务器 a.选择Targets标签页 b.选择Servers标签页,将列出可用服务器列表 c.选择available列中的一个服务器并用右箭头按钮将该服务器移到Chosen列中。 4.定义虚拟主机的目标集群(可选步骤)。在此之前先要定义一个WebLogic集群。详细内容,参见以下页面的“Using WebLogic Server Clusters”部分: http://e-docs.bea.com/wls/docs60/cluster/index.html. a.选择Targets标签页 b.选择Clusters标签页,该标签页上显示了一组可用的服务器集群。 c.选择Available列中的一个集群,用右箭头按钮将该服务器移到Chosen列中。集群中的所有服务器都将成为该虚拟主机的目标。 5.将Web应用部署到虚拟主机上。 a.点击左窗格中的Web Applications节点 b.选择要部署到虚拟主机上的Web应用 - 71 - WebLogic管理指南 c.选择右窗格中的Targets标签页面 d.选择Virtual Hosts标签页面 e.选择Available列中的虚拟主机并用右箭头按钮将它移动到Chosen列中。 WebLogic服务器如何解析HTTP请求 当WebLogic服务器接到一个HTTP请求时,它对URL的各个部分进行解析,然后根据解析所得到的信息来确定由哪个Web应用或服务器处理该请求。以下的例子说明了WebLogic服务器如何解析对Web应用、虚拟主机、servlets、JSP以及静态页面的请求及响应。 注意:如果Web应用包含在企业应用中,那么Web应用可以有另一个名字,可以用这个名字可解析对Web应用的请求。有关这方面的更多内容,请参见以下页面的“Deploying WebApplications as Part of an Enterprise Application”: http://e-docs.bea.com/wls/docs61/webapp/deployment.html#war-ear. 下表给出了一些示例URL以及WebLogic服务器所服务的文件。Index Directories Checked列指的是Index Directories属性,该属性决定当请求没有指定文件时是否要提供目录列表服务。该属性在管理控制台的Web Application节点的Configuration/Files标签页设置。 表8-1 WebLogic应用解析URL示例 URL Index Directories Checked No Yes 无关要紧 响应的文件 http://host:port/apples http://host:port/apples http://host:port/oranges/naval http://host:port/naval 无关要紧 http://host:port/apples/pie.jsp http://host:port http://host:port http://host:port/apples/myfile.html 无关要紧 Yes No 无关要紧 Apples web应用所定义的欢迎页面 列出apples web应用的最顶层目录的子目录 oranges应用中映射 http://e-docs.bea.com/wls/docs61/webapp/components.html#configuring-servlets Oranges应用中映射到 http://e-docs.bea.com/wls/docs61/webapp/components.html#configuring-servlets Apples应用顶层目录中的pie.jsp文件 缺省Web应用顶层目录的目录列表 缺省Web应用的欢迎页面 Apples应用顶层目录中的myfile.html文件 - 72 - WebLogic管理指南 http://host:port/myfile.html http://host:port/apples/images/red.gif http://host:port/myFile.html apples应用没有定义myFile.html并且也没有定义缺省servlet http://www.fruit.com/ http://www.fruit.com/ http://www.fruit.com/oranges/myfile.html 无关要紧 无关要紧 无关要紧 缺省Web应用顶层目录的myfile.html文件 Apples应用顶层目录的images子目录中的red.gif Error 404 详细内容,参见8-20页的“定制HTTP 错误响应” 虚拟主机www.fruit.com的缺省Web应用的欢迎页面 给出虚拟主机www.fruit.com上的缺省应用的最高层目录的子目录列表 位于虚拟主机www.fruit.com上的oranges Web应用中的myfile.html文件 No Yes 无关要紧 详细内容参见以下页面的“Configuring Welcome Pages” http://e-docs.bea.com/wls/docs61/webapp/components.html#welcom-pages 设置HTTP访问日志 WebLogic服务器可以把所有关于HTTP事务的日志保存到一个文本文件,该文本文件可以采用普通日志格式(common log format)或扩展日志格式(extended log format),缺省格式为遵循标准约定的普通日志格式。扩展日志格式可以定制要记录的信息。每个服务器或虚拟主机都可以定义自己的HTTP访问日志属性。 日志回旋(Log Rotation) 日志的回旋可以基于文件大小也可以基于时间间隔。当满足其中的一个条件时,当前访问日志被关闭,新的访问日志被创建。如果没有配置日志回旋,那么HTTP访问日志会无限增长。访问日志名中的数字部分随日志回旋而增长。每个Web服务器都定义了自己的HTTP访问日志。 使用管理控制台设置HTTP访问日志 有关使用管理控台设置HTTP访问日志的内容可以参见以下页面中的信息: http://e-docs.bea.com/wls/docs60/ConsoleHelp/virtualhost.html: 1.如果设置了虚拟主机: a.在左窗格中选择Services节点 b.选择Virtual hosts节点,该节点被展开并显示了一组虚拟主机 - 73 - WebLogic管理指南 c.选择一个虚拟主机 如果还没有设置虚拟主机 a.选择左窗格中的Servers节点,该节点被展开并显示了一组服务器。 b.选择一个服务器 c.选择Logging标签页 d.选择HTTP标签页 2.选中Enable Logging复选框 3.输入日志文件的名字 4.从Format下拉列表中选择Common或Extended 5.选择Rotation类型:By Size类型还是By Date类型的 By Size:当日志文件的大小大于Log Buffer Size参数的值时发生日志回旋。 By Date:当时间间隔大于Rotation Period参数的数值时发生日志回旋。 6.如果日志回旋的类型为By Size,那么将the Max Log File Size K Bytes字段设置为所期望的日志文件的最大容量(以字节数为单位) 7.设置Flush Every参数。该参数设置了每隔多长时间访问日志进行日志条目的写操作。. 8.如果日志回旋的类型设置为By Date,那么把Rotate time参数设为日志文件进行第一次回旋的时间(该参数只对By Date类型的日志回旋有效),日期的格式使用java.text.SimpleDateFormat,即MM-dd-yyyy-k:mm:ss。详细内容请参见java.text.SimpleDateFormat类的javadocs文档。 9.如果日志回旋的类型设为By Date,那么将Rotation Period设置为日志回旋的时间间隔。 普通日志格式 HTTP日志信息的缺省格式为普通日志格式。普通日志格式由http://www.w3.org/Daemon/User/Config/Logging.html#common-logfile-format定义,它遵循以下模式: host RFC931 auth_user [day/month/year:hour:minute:second UTC_offset] \"request\" status bytes 其中: host 指远程客户端的DNS名字或IP地址 RFC931 - 74 - WebLogic管理指南 任何由INDENTD 返回给客户端的消息;WebLogic服务器不支持用户标识 如果远程客户发送了一个用于身份验证的用户号,那么就是指用户名,否则就为“-” auth_user Day/month/year:hour:minute:second UTC_offset 日期、月份、年以及时间(使用24-小时格式)以及当地时间与GMT时间的时间差,它们被括在方括号中 “request” 远程HTTP请求的第一行,被双引号括起 status 服务器返回的HTTP状态代码,如果服务器没有返回HTTP状态代码,则为“-”。 bytes HTTP头中记录的内容长度(不包括HTTP头本身)。如果不可知,则为“-” 使用扩展日志格式 WebLogic服务器支持由W3C定义的1.0版本的扩展日志文件格式,这是一个正在形成的标准。目前WebLogic服务器遵循该标准的草案规范(www.w3.org/TR/WD-logfile.html)。请参见以下页面的“W3C Technical Reports and Publications”: www.w3.org/pub/www/TR 当所记录的HTTP日志采用扩展日志格式时,可以指定记录哪些类型的信息以及按什么顺序排列信息。在管理控制台的HTTP标签页中,将Format属性设置为Extended,这样便启用了扩展日志格式。(请参见本章“用管理控制台设置HTTP访问日志”中的步骤4)。 日志文件所要记录的信息类型通过日志文件中的指令来指定。每条指令必须新起一行,以#符号开始指令。如果系统还没有日志文件,那么会新建一个包含缺省指令的日志文件。如果在服务器启动时,已经有日志文件了,那么这个日志文件头中必须包含合法指令。 创建Fields指令 日志文件的第一行必须是表明日志文件格式的指令,紧跟其后是Fields指令: #Version: 1.0 #Fields: XXXX XXXX XXXX … - 75 - WebLogic管理指南 其中,每个XXXX描述要记录的数据字段。字段类型要么由简单的标识符来指定,要么采用W3C规范中的前缀标识符格式。以下是一个例子: #Fields: date time cx-method cs-url 该指令要求服务器要记录每次HTTP访问的以下信息:事务的日期与时间,客户端请求方式以及请求的URI。字段之间用空格阁开。每条日志记录都新起一行。 注意:#Fields指令后面必须有一新行,这样第一条日志信息才不会与#Fields指令在同一行上 字段标识符 以下是所支持的标识符,这些标识符不需要前缀。 date 事务完成的日期,类型为W3C规范定义的 事务完成的时间,类型为W3C规范定义的