大多数开发人员和系统管理员的共同本性是什么?是懒惰。遗憾的是,我也不能逃脱这条规则。正是由于这种懒惰,我才决定看看是否有可能在我的笔记本电脑上双重启动一个ALUI门户实例。让我来回顾一下这个过程。
双重启动是指什么?
我所说的双重启动门户就是指:能够运行(或许是同步运行)门户基础的4种不同的常见配置:
- 一个.NET/IIS实例
- 一个Java/Weblogic/Tomcat实例
- 一个Oracle XE/10g实例
- 一个SQL Server实例
理想情况下,这应在配置和/或干扰最小的情况下完成。当然,使所有环境正常工作意味着修改部分配置文件,这样同时运行所有环境就会对环境变量产生一些影响,并安装我懒得去处理的那些目录。
出于多方面的原因,这可能很有用。对于我的情况,如果我正从希望使用服务器API在.NET中进行开发的客户端过渡到希望使用基于Java的自动化服务器脚本且在Solaris上运行的客户端,那么这就是必需的。也许这对您来说,并非“常见”场景,但您可能会打算评估产品的各种功能,或者只是试试看。无论是哪种情况,我认为我这种懒惰都是一个有趣的主题。
如何去做?
幸运的是,事情并不困难。由于这种门户的众多后端服务在设计时都考虑了模块性,只要您了解如何使用正确的配置设置,那差不多就达到目标了。这并不是指受支持的配置或某些您应考虑在生产环境中完成的任务。我做了下面这些事情:
- 创建oracle SID和.NET 数据库,来容纳门户组件。我用的是Oracle XE,所以可供使用的SID只有一个。确保plumdbuser的用户名和密码对于各实例均惟一。
- 将映像服务器组件安装到一个静态Web服务器上(apache,IIS)。可以选择为映像服务器创建DNS别名,以使切换更轻松(我也使用了一个别名,以便在一时兴起时从其他位置进行托管)。
- 安装该门户的.NET版本(所有组件)。
- 将该门户的Java版本安装到同一目录——仅安装管理服务器(使用任一数据库配置)。
- 还可以选择安装一个Tomcat/Weblogic 版本的门户(如果合适,也可以仅在多个位置部署portal.war)。
- 在$PORTAL_HOME/sql中为Oracle和SQL Server数据库编写恰当的脚本。
- 将portal.war中的jar文件复制到$PORTAL_HOME\webapp\portal\web\bin (使用压缩文件编辑器——我比较喜欢用 Winrar)。
- 通过以下方法修改$PT_HOME/settings/portal/portalconfig.xml:
- 将WebHome值设置为$PORTAL_HOME/webapp/portal/web/bin。
- 确保数据库连接,即adonet-license-file-directory,被设置为serverconfig.xml中的$PORTAL_HOME/bin/ assemblies(如果先安装的是.NET,则这一条可能是不正确的)。
至此,您就有了一个基本配置,可加以修改,来支持任意Web应用服务器或数据库配置。
要在weblogic/apache/tomcat/IIS间切换::
- 将$PT_HOME/settings/portal/portalconfig.xml中的AdminSiteBaseURL修改为指向合适的端口,重启恰当的Web服务器
要支持Oracle/SQLServer:
- 通过修改数据库组件中的以下内容来更改$PT_HOME/settings/common/serverconfig.xml:
- database-connection-port值应设置为1433, 1521或其他端口
- database-connection:dbtype值应设置为oracle或mssql
- 如果未使用Oracle,注释掉database-connection:dbname
如果其中一个环境中安装了任何定制组件,则必须编辑Custom*.xml文件,来添加/删除库。
当然,有一些东西可能看上去有点偏差。如果观察Administrative Utility下拉菜单中的服务器设置,可能会看到一些古怪的URL。但总体上来说,您应能够为任何平台构建、测试和编译Server API 代码,或许也可以运行大多数嵌入式应用服务器。
许多人接下来可能提出的问题就是:“为什么不能只运行目标环境的一个VM映像?” (我的许多同事都提出了这个问题。)答案是双重的:1.) 每个VM都会带来一份令人烦恼的性能滞后,另外,2.) 那将意味着我不得不到处移动我的源代码/二进制代码。(还记得这篇文章的第一句话吗?)
原文出处:http://dev2dev.bea.com/blog/rbrodbec/archive/2007/05/dual_booting_th.html