在每篇专栏文章中,“WebSphere 反向投资者”将回答问题、提供指导和讨论与 WebSphere 产品相关的基础主题,经常会给出与流行的看法相悖的经过实践验证的建议。
送给您的礼物
又到假日了,这意味着每个人都在忙着完成当年的项目、购物,以及各种各样的传统年终任务。所有这些活动可能意味着您会欢迎任何节省时间的技巧,因为您可能有太多的事情需要处理,但是却只有太少的时间去全部完成。为了尽自己的一份力量帮助您提高效率,我将在本月的专栏中花些时间提供一些用于加速 IBM WebSphere Application Server 中的应用程序部署的技巧,这些技巧也适用于诸如 IBM WebSphere Portal、IBM Process Server 等产品以及其他基于 WebSphere Application Server 的产品。
应用程序部署流
在讨论一些有关如何提高应用程序部署效率的选项之前,最好了解一下应用程序部署过程中究竟发生了什么事情。该过程可以划分如下:
通过控制台或 wsadmin 从远程客户端连接到 WebSphere Application Server。
将应用程序 EAR 从远程客户端复制到管理节点(WebSphere Application Server“基本”版本的“WAS”应用程序服务器或 WebSphere Application Server Network Deployment 的部署管理器)上的临时目录。
以读/写模式打开 EAR。
收集部署器中的绑定。
保存临时 EAR。
将临时 EAR 上载到应用程序服务器节点。
在应用程序服务器节点上展开 EAR。
停止和启动应用程序服务器。
如果进一步观察应用程序部署流,您会注意到进行了两次复制操作。复制文件(尤其是通过网络)会非常耗时,因此首先要考虑消除或尽最大限度减少的就是复制操作的数量。这可以通过多种方法来实现:
将 EAR 存储在管理节点的本地文件系统上,而不是存储在客户端节点的文件系统上。这样可以省去从浏览器客户端或 wsadmin 客户端所连接到的节点进行的文件复制(上述第 2 项)。
将二进制分发到所有应用程序节点并使用 WebSphere Application Server earexpander 展开 EAR(还可以解压缩等等),然后使用带 –nodistributeApp 选项的 wadmin AdminApp 来部署应用程序,或者在执行安装时在管理控制台中取消选中 Distribute application 选项。这样做可以省去从管理节点到应用程序服务器节点的另一次应用程序复制(上述第 6 项),以及 EAR 展开操作(上述第 7 项)。
通过这样消除两次 EAR 文件复制以及 EAR 文件展开,您可能会注意到应用程序部署时间显著缩短,不过我只知道你们中有些人可能还希望进一步改进应用程序安装效率。在讨论支持并行应用程序部署的选项之前,我想介绍另外几个使用 wsadmin 时的时间节省技巧:
使用 RMI 而不是 SOAP(缺省协议)来建立 wsadmin 连接。SOAP over HTTP 协议没有内置的请求/响应机制,因此在响应从服务器流回 wsadmin 客户端之前存在(很短的)延迟。另一方面,RMI/IIOP 协议则具有请求/响应机制,因此使用 RMI/IIOP 的等效请求要比运行于 SOAP/HTTP 之上的请求更快获得响应。
与从文件中或从命令行运行多个 wsadmin –c 命令不同,应使用单个 wsadmin –f 命令,并将多个命令放在目标文件中。例如,不是使用:
wsadmin -c "$AdminApp install c:\\myApps\\App1.ear {-appname myapp}"
wsadmin -c "$AdminApp install c:\\myApps\\App1.ear {-appname yourapp)"
而是创建一个名为 my.jacl 的文件(如果您喜欢的话,也可以是某个 jython 文件),其中包含以下命令:
"$AdminApp install c:\\myApps\\App1.ear {-appname myapp}"
"$AdminApp install c:\\myApps\\App1.ear {-appname yourapp)"
并使用单个命令调用该文件:
wsadmin –f my.jacl
在每篇专栏文章中,“WebSphere 反向投资者”将回答问题、提供指导和讨论与 WebSphere 产品相关的基础主题,经常会给出与流行的看法相悖的经过实践验证的建议。
送给您的礼物
又到假日了,这意味着每个人都在忙着完成当年的项目、购物,以及各种各样的传统年终任务。所有这些活动可能意味着您会欢迎任何节省时间的技巧,因为您可能有太多的事情需要处理,但是却只有太少的时间去全部完成。为了尽自己的一份力量帮助您提高效率,我将在本月的专栏中花些时间提供一些用于加速 IBM WebSphere Application Server 中的应用程序部署的技巧,这些技巧也适用于诸如 IBM WebSphere Portal、IBM Process Server 等产品以及其他基于 WebSphere Application Server 的产品。
应用程序部署流
在讨论一些有关如何提高应用程序部署效率的选项之前,最好了解一下应用程序部署过程中究竟发生了什么事情。该过程可以划分如下:
通过控制台或 wsadmin 从远程客户端连接到 WebSphere Application Server。
将应用程序 EAR 从远程客户端复制到管理节点(WebSphere Application Server“基本”版本的“WAS”应用程序服务器或 WebSphere Application Server Network Deployment 的部署管理器)上的临时目录。
以读/写模式打开 EAR。
收集部署器中的绑定。
保存临时 EAR。
将临时 EAR 上载到应用程序服务器节点。
在应用程序服务器节点上展开 EAR。
停止和启动应用程序服务器。
如果进一步观察应用程序部署流,您会注意到进行了两次复制操作。复制文件(尤其是通过网络)会非常耗时,因此首先要考虑消除或尽最大限度减少的就是复制操作的数量。这可以通过多种方法来实现: