http://www.ibm.com/developerworks/cn/websphere/techjournal/0505_wang/0505_wang.html
WebSphere Application Server V6 引进了概要文件概念,目的是将产品二进制文件(binaries)与用户数据物理分离,并使用户能定义多组用户数据。
在 WebSphere Application Server 第 6 版之前,产品二进制文件和用户数据都位于 WebSphere 安装目录下:
之前,产品安装程序常将产品二进制文件和 WebSphere 缺省配置置于安装目录下,用户通过产品提供的各种系统管理工具,自定义配置并部署应用程序。换句话说,之前的产品二进制文件和用户数据混在一起,并只有一组用户数据可以通过特定的 WebSphere 安装来定义。
而另一方面,概要文件可以获取磁盘上的一组用户数据和相关的运行时执行环境:WebSphere Application Server V6 概要文件由该文件集组成,该文件集由最终用户所有,并且最终用户可以对文件集进行写操作,且该流程以最终用户的身份执行。
在 UNIX® 和 Linux® 系统上,已创建的概要文件中所有文件和目录的组和所有者权限都与执行实用程序来创建这个概要文件的用户相同。可以认为 WebSphere 概要文件是"用户数据分区",等同于 UNIX/Linux 操作系统环境中用户的主目录。
WebSphere Application Server V6 产品安装程序将创建的文件分别放在两个隔开的环境中:一个用于安装产品二进制文件,另一个用于创建初始概要文件。创建初始概要文件的位置与产品二进制文件安装位置是分开的,且最终用户可以对其进行配置。用户还可以在安装完成之后创建其它概要文件。所有通过 WebSphere Application Server 安装创建的概要文件共享相同的产品二进制文件,且这些产品二进制文件是不能修改的。
如果您在之前使用过 wsinstance 实用程序,就会对概要文件的概念多少有些熟悉。在 WebSphere Application Server V5.1 中引入的 wsinstance 实用程序,用户可以用其创建产品安装的多个配置实例。概要文件是对该功能的扩展、增强和替换。
虽然看起来有些类似,这两种功能之间还是有很多重要的区别:
在上文提到,WebSphere Application Server 安装程序将所有的产品二进制文件置于用户指定的安装目录下。安装程序调用 GUI 概要文件创建工具(PCT)来创建初始概要文件。PCT 向导将帮助您创建初始概要文件。
图 1 是 PCT 工具的屏幕截图。该图中展示概要文件的名称、概要文件所在的目录、节点名称、主机名称以及其它相关信息。该工具还为概要文件提供一组缺省端口,必要时可以对其进行修改;缺省端口不能分配给同一台服务器上 WebSphere Application Server 已经在使用的概要文件,以避免和其它任何端口冲突。该工具也不提供 WebSphere Application Server 之外的服务所使用的端口。
在缺省情况下,创建的概要文件位于 <WAS_INSTALL_DIRECTORY>/profiles/<PROFILE_NAME> 目录下,您还可以在 PCT 提示时自定义概要文件的位置。概要文件可以位于文件系统中的任何位置,只要最终用户拥有在该位置创建目录和文件的足够权限。
如果正在使用 WebSphere Application Server Network Deployment(ND),您还将收到提示,选择预先定义的三种概要文件类型中的一种。其中两种类型都只可用于 ND 环境。(我们将在稍后描述如何使用这三类概要文件类型建立 ND 环境)。
概要文件类型 | 定义 |
---|---|
Application Server | 为 WebSphere Application Server、WebSphere Application Server ——Express 和 WebSphere Application Server Network Deployment 定义独立的应用服务器环境。该概要文件包含缺省的应用服务器定义。 |
部署管理器 | 定义部署管理器环境。该概要文件类型包含缺省的管理器定义,且只可用于 WebSphere Application Server ND。 |
自定义 | 定义一个不包含应用程序定义的空管理节点。在创建概要文件时,概要文件创建工具将为您提供一个选项,将已创建的自定义概要文件自动与作为管理节点的部署管理器相连,这样用户可以在节点上添加资源和自定义的服务器定义。 |
要使用之前创建的概要文件,需要调用 <PROFILE_DIRECTORY>/bin 目录中提供的命令。该目录中的命令和 <WAS_INSTALL_DIRECTORY>/bin 目录中的命令名称相同。如果之前您使用的是 WebSphere Application Server V5 产品,对这些命令就并不陌生了。可以按照以前在 V5 中的方法使用 <PROFILE_DIRECTORY>/bin 目录下的命令——唯一的区别是这些命令只能在这个指定的概要文件上使用。例如,要在 Windows 上启动通过这个概要文件定义的应用服务器,您可以使用 startServer 命令:
<PROFILE_DIRECTORY>\bin\startServer.bat server1
同样,如果想停止使用服务器,您可以使用 stopServer 命令:
<PROFILE_DIRECTORY>\bin\stopServer.bat server1
(参见 WebSphere Application Server 信息中心 获取这些命令的更多详细内容)。
通过管理控制台启动服务器以及安装在该服务器上的应用程序之后,您可能还不知道日志文件和安装的应用程序在哪。要回答这些问题,我们可以先检查该概要文件的目录结构:在概要文件目录下您可以看见除了 bin 子目录之外的其它子目录的清单。该表格详细描述了这些子目录及其内容:
子目录 | 内容 |
---|---|
bin | 该组命令可以在创建的概要文件上使用。这些命令和 <WAS_INSTALL_DIRECTORY>/bin 目录下的命令名称相同,但是只能在这个概要文件上使用。 |
config | 用于 WebSphere Application Server 流程(借助于这个概要文件而执行)的一组配置文档。如果该概要文件是部署管理器概要文件,那么它将包含整个单元的配置文档。其中还可能包含与该部署管理器相连的其它概要文件的配置。 |
databases | Cloudscape® 数据库。 |
etc | 密钥文件和证书(至少包括与产品捆绑的初始密钥文件和证书)。 |
installableApps | 可安装应用程序的缺省位置。 |
installedApps | 已安装并扩展的应用程序二进制文件 |
installedConnectors | 已安装的 JCA Resource Adapter 库。 |
logs | 所有类型的日志文件,例如 SystemOut.log、tranlog、FFDC、activity.log 等等。 |
properties | 各种属性文件,其中包含 V5 中相同的属性文件,但这些属性文件只适用与当前概要文件。 |
temp | 临时工作目录 |
tranlog | 缺省事务日志目录。 |
wstemp | 配置修改的临时工作区。如在版本 5 中一样,在用户决定将配置更改保存到配置储存库之前,概要文件上的配置修改将在临时工作区进行。在修改被保存之前,该目录将保存对当前概要文件的临时配置修改。 |
这些子目录将获取概要文件实例的全部内容。当最终用户启用定义在概要文件 bin 目录下的任意命令时,所启用的流程只修改该概要文件的用户数据,并不会更改其它概要文件实例的任何产品二进制文件或是用户数据。
在 WebSphere Application Server V5 中,建立 Network Deployment 环境需要执行多个步骤。为了便于比较,现在将大致的步骤介绍如下:
addNode
命令将节点和部署管理器相连。该步骤将建立基本 ND 环境,且使该节点作为 ND 环境的组成部分。在 WebSphere Application Server V6 中,设置 ND 环境的基础步骤大致相同,但是通过概要文件的支持将更加的有效和方便。要建立部署管理器,您需要在之前安装 WebSphere Application Server ND。然后:
startManager
命令。例如,在 Windows 平台上,您可以执行 <DMGR_PROFILE_DIRECTORY>\bin\startManager.bat
在版本 5 中,WebSphere Application Server ND 只创建部署管理器,而 WebSphere Application Server Base 或 Express 创建节点。在版本 6 中,ND 可以创建部署管理器和应用程序服务器,无需其它的安装程序。在版本 6 中,您可以使用相同的产品安装,创建同一个概要文件类型(或是不同概要文件类型)的多个实例。这样,您可以在部署管理器节点和其它节点之间共享产品二进制文件。那么,建立节点最经济的方式就是再次启用 PCT 工具,用应用服务器类型来创建应用服务器概要文件,然后执行 addNode 命令将新的节点联结到部署管理器概要文件。
还有要注意的事项是,您还需要调用节点概要文件 bin 目录下的 addNode
命令,比如 <NODE_PROFILE_DIRECTORY>\bin\addNode.bat。如果您执行 <INSTALL_DIRECTORY>/bin 目录下的命令,结果可能会出乎您的预料。接下来,我们将具体的描述在相同安装目录下有多个概要文件时,如何适当地调用 <INSTALL_DIRECTORY>/bin 目录下的 addNode
命令。
如果不想在节点和部署管理器之间共享产品二进制文件,或是需要从另一台主机添加节点,那么您还可以在其它产品安装中建立节点。您只要首先安装 WebSphere Application Server ND,按照以上针对版本 6 中所描述的步骤进行就可以实现。
除了自定义概要文件类型不包含任何服务器定义之外,它和应用程序服务器概要文件类型十分类似。因此,该概要文件类型不能独立使用,应该在创建以后联接到 ND 单元。
至此,您已经可以设置单个服务器和 ND 环境,并对概要文件有了更深入的了解。但是,如果在大多数情况下,您只在特定的安装目录下创建一个概要文件,且不想到其它的目录层调用命令,那么您可以使用缺省概要文件。
您可以在创建概要文件时,将其标记为安装目录下的缺省概要文件,如图 1 所示。即在 <INSTALL_DIRECTORY>/bin 目录下调用命令时,它们会自动在您定义的缺省概要文件上执行。这样您可以更轻松的调用命令,从而带来了极大的方便。概要文件的所有用户数据仍保存在概要文件目录下。
然而,在相同安装目录中有多个概要文件时,即使仍然可以应用缺省概要文件,但这并不是好办法。因为在整个产品安装中只能有一个缺省的概要文件。如果您再另外标记其它的概要文件作为缺省文件,那么该文件将覆盖最初标记的概要文件,原先的设置将被取消。在多个概要文件共存时,跟踪哪个文件是缺省概要文件会导致混乱的情况发生。
如果您经常在相同的产品安装下的多个概要文件之间来回切换,您或许将疲于将当前工作目录从一个概要文件地址的 bin 目录更改到另一个。此时,可以调用 <INSTALLATION_DIRECTORY>/bin 目录下的命令并通过 profileName 选项明确指定进行操作的概要文件。
例如,如果想要在 Windows 平台上启动 myProfile1 概要文件定义的服务器,以及 myProfile2 概要文件定义的服务器,您可以使用以下命令:
<INSTALLATION_DIRECTORY>\bin\startServer.bat server1 -profileName myProfile1 <INSTALLATION_DIRECTORY>\bin\startServer.bat server1 -profileName myProfile2
除 GUI PCT 向导之外,WebSphere Application Server V6 还为概要文件管理提供了命令行工具,称为 wasprofile。不仅可以使用 wasprofile 实用程序创建其它的概要文件,也可以通过该工具管理产品安装下的多个概要文件。该命令位于 <INSTALLATION_DIRECTORY>/bin 目录下,您可以在 WebSphere Application Server 信息中心找到完整的命令参考信息。还提供了可使用的各种不同模式和选项的命令范例。命令行中还可以使用帮助选项,如下图所示:
.\wasprofile.bat -help The available modes are: create, augment, delete, unaugment, deleteAll, listProfiles, getName, getPath, validateRegistry, validateAndUpdateRegistry, help For detailed help on each mode enter: -<mode> -help. For example, -create -help. 命令行参数区分大小写。
wasprofile 命令的基本语法为:
.\wasprofile.bat -<mode> -<option> value -<option> value
第一个参数通常是模式。之后的参数是特定于模式的选项和它们的值。这些选项不分先后顺序,所以您可以以任意次序指定。您可以为特定的模式获取合适的选项并通过帮助选项了解其语法,该帮助选项适用于任何模式。例如,要获取 "create" 模式的详细选项,可以使用:
.\wasprofile.bat -create -help
您可能经常需要用到的模式包括:
如果您感兴趣的话,还有其它的模式:
当执行 wasprofile 命令时,该命令将日志文件置于 <INSTALL_DIRECTORY>/logs 目录中,并通常将其取名为 XXX_<PROFILE_NAME>.log。在<PROFILE_DIRECTORY>/logs 目录下,您还将找到其它日志文件。
WebSphere Application Server V6 可以在应用服务器概要文件之间复制配置。您可以在相同或是不同的主机环境中的相同或是不同产品安装下的两个应用服务器概要文件之间使用该功能。一般而言,您可以使用该功能在不同的平台间复制概要文件配置——只要您没有在配置中添加 OS-specific 系统属性。例外的情况是,如果 z/OS 的配置和分布式平台概要文件不兼容,那么您就不能在这些平台之间复制配置。另一个限制是,该性能只对应用服务器概要文件生效,而不能用于 ND 概要文件。
要复制概要文件配置,您需要:
exportWasprofile
命令,将应用服务器概要文件配置导出到配置档案文件中。例如,下图所示的命令阐明了如何将当前概要文件的配置导出至配置档案文件 c:\work\myProfile1.car:wsadmin>$AdminTask exportWasprofile {-archive c:\work\myProfile1.car}
importWasprofile
命令将该配置档案文件导入至另一个应用服务器概要文件。如果目标概要文件不存在,需要首先创建。要执行 importWasprofile 命令,先启动目标概要文件上的 wsadmin。例如,如果想导入配置至概要文件 myProfile2,先使用 <INSTALL_DIRECTORY>\bin\wsadmin.bat -profileName myProfile2
importWasprofile
命令来导入该配置。例如,您可以通过 JACL 命令:wsadmin>$AdminTask importWasprofile {-archive c:\work\myProfile1.car}
importWasprofile
命令可以复制源概要文件的全部配置。这些配置包括服务器配置和部署在服务器上的应用程序。该命令并不将档案文件中的配置与目标概要文件合并,而是替换了目标概要文件的整个配置。它只描述与现有目标概要文件相关的信息,例如安装目录、主机名、服务器名和端口。该命令只复制 WebSphere Application Server 配置。如果您的应用程序依赖于 WebSphere Application Server 以外的产品(例如数据库或是消息传递产品),您还需要其它的步骤来复制这些环境。
与其它的 wsadmin 脚本命令一样,exportWasprofile
和 importWasprofile
命令也在 Jython 中可用。WebSphere Application Server 信息中心有关于 AdminTask 脚本命令以及以上两种特定命令的更多信息。
在 WebSphere Application Server V6 中,您同样可以在多个概要文件之间复制自定义的服务器配置(无需在其上部署应用程序)。同复制概要文件配置类似,可以在相同或是不同的主机环境中,不同或是相同的产品安装下使用该功能。一般而言,只要没有在服务器配置中添加 OS-specific 系统属性,您可以使用该功能在不同的平台之间复制服务器配置。例外的情况是,如果 z/OS 和分布式平台概要文件不兼容,那么您就不能在这些平台之间复制服务器配置。 。
虽然两种复制功能之间有雷同之处,但是仍然存在一些区别:
要复制服务器配置:
exportServer
命令,将服务器配置导出至配置档案文件。比如,下图的命令阐明了如何将当前概要文件的配置导出至 JACL 中的配置档案文件 c:\work\myServer.car。(当对单个服务器概要文件执行该操作时,无需 nodeName 和 serverName 选项。)wsadmin>$AdminTask exportServer {-nodeName myNode -serverName myServer -archive c:\work\myServer.car}
importServer
命令,将该配置档案文件导入到另一个概要文件。要执行该命令,先启动目标概要文件上的 wsadmin。例如,如果想将服务器 myServer 的配置导入到概要文件 myProfile2,可以使用 <INSTALL_DIRECTORY>\bin\wsadmin.bat -profileName myProfile2
importServer
命令来导入配置。例如,您可以通过以下所示的 JACL 命令将导出的服务器配置导入至 myProfile2 概要文件中的名为 anotherNode 的节点。如果没有使用 serverName 选项,那么配置档案文件中的服务器名称将被用作导入的服务器的名称。wsadmin>$AdminTask importServer {-node anotherNode -serverName myNewServer -archive c:\work\myServer.car}
importServer
命令可以通过自定义的配置创建新的服务器,该自定义配置基于档案文件中定义的服务器配置。该命令和覆盖服务器配置的importWasprofile
命令不同。由于对应用服务器概要文件没有创建新服务器这项功能,因此虽然您可以在应用服务器和 ND 概要文件上执行exportServer
命令,但 importServer
命令只可用于 ND 概要文件。
同样,与其它 wsadmin 脚本一样,这些命令在 Jython 中同样有效。参见 WebSphere Application Server 信息中心获取更多相关的详细信息。
WebSphere Application Server V6 引入了概要文件的概念,将产品二进制文件和用户数据物理分离;概要文件由一组用户数据及其运行时执行环境组成。本文描述了如何在基础应用服务器以及 Network Deployment(ND)环境中创建、使用和管理概要文件,以及如何在概要文件之间复制配置的机制。虽然版本 6 的概要文件概念是全新的,用户学习起来会遇到一些困难,但概要文件可以让用户更有效更灵活地使用 WebSphere 产品,并能更轻松和方便的建立 ND 环境。本文试图帮助读者解决学习过程中的难点,让读者更快地掌握概要文件特性并在环境中实现它们。