随笔-72  评论-63  文章-0  trackbacks-0
转自:http://www.blogjava.net/rosen/archive/2005/08/12/9894.html

当今
J2EE 服务器市场可谓百花齐放啊,本文主要介绍 OC4J Oracle Application Server Containers for J2EE )的特性和配置方式,它是 Oracle 公司提供的作为 J2EE Container ,由纯 Java 语言编写。要强调的是根据本人亲身体会, OC4J 绝对是一个十分可靠的服务器,在企业级应用环境中毫无问题!

   

    一、 OC4J 的最新版本是什么?

        OC4J 10g (9.0.4)

    二、 OC4J 是通过了 J2EE 兼容性认证的产品吗?

        是的, Oracle Sun 获得了 J2EE 技术的官方许可( http://java.sun.com/j2ee/licensees.html ), OC4J 也通过了 J2EE 兼容性认证的产品,可参考 J2EE 兼容性一览表( http://java.sun.com/j2ee/compatibility.html ),也可以从 Sun 的网站获得详情。

    三、不同的 OC4J 版本,与 J2EE 版本是怎样对应的?

           产品版本         兼容的 J2EE 版本

          OC4J 9.0.4         J2EE 1.3

          OC4J 9.0.3         J2EE 1.3

          OC4J 9.0.2         J2EE 1.2 

          OC4J 1.0.2.x       J2EE 1.2

    四、 J2SE 的哪些版本可以与 OC4J 搭配?

        Oracle 产品的所有官方认证信息,可以到 Oracle 技术支持网站 http://metalink.oracle.com 获得。

           产品版本           J2SE 版本

          OC4J 9.0.4     J2SE 1.4.x, J2SE 1.3.x

          OC4J 9.0.3     J2SE 1.4.x, J2SE 1.3.x

          OC4J 9.0.2     J2SE 1.3.x, J2SE 1.2.x

          OC4J 1.0.2.x   J2SE 1.3.1, J2SE 1.2.x 

    五、什么是 OC4J 独立版?

        OC4J 独立版是 Oracle 应用服务器产品家族的成员,包含 J2EE Web 服务组件。 OC4J 独立版比完整的 Oracle 应用服务器产品稍小,下载以后只有一个 ZIP 文件。它作为单 JAVA 进程执行。

       

        OC4J 独立版兼容于 J2EE1.3 ,可用于开发和运行小规模产品。 OC4J 独立版提供了内嵌的 HTTP/S 监听器,允许客户端运行发布后的应用程序。 OC4J 独立版的应用程序发布与服务器的配置,需要手工编辑几个 XML 文件。

       

        大规模的企业级发布, Oracle 应用服务器产品或许更适合于它,来适应广泛的企业级需求(而不是 OC4J 独立版),这样可以更好的进行程序控制和性能管理,以及配置、管理控制台。

    六、那么 Oracle 独立版和在 Oracle 应用服务器之内的 OC4J 有什么重大不同之处?

        在代码方面,构造 OC4J 独立版的单元集合与 Oracle 应用服务器之内的 OC4J 几乎一样。如果你在 OC4J 独立版中开发并发布一个应用程序,那么这个程序也可以在 Oracle 应用服务器上很好的运行。

       

        这两种环境的最主要的不同点是配置上的。 Oracle 应用服务器的 OC4J 被配置在运行于 Oracle 应用服务器环境中。意味着 Oracle 应用服务器类似于一个入口,这个入口是附加的特征,通过附加的类库提供支持。它在不同的端口之间监听连接( Oracle 应用服务器动态平分),日志输出到不同的文件和目录,它的默认 Web 监听器使用 mod_oc4j ,能和 AJP 协议交流,胜于 HTTP 协议直接浏览客户端。

       

        另外一个不同在于控制和管理 OC4J 的方式。在 Oracle 应用服务器环境下, OC4J 被配置为完整的应用程序服务器技术的一部分,使用 Oracle 企业级应用程序管理器控制,或者用等价的命令行工具, dcmctl 。直接对 XML 配置文件操作并不是首选方案,尽管也能完成配置。应用程序发布也使用 Oracle 企业级应用程序管理器操作,或用命令行工具。 Oracle 应用服务器的 OC4J 启动和停止也通过以上同样的控制台操作,并能作为 Oracle 应用服务器实例的一部分,可配置成自动管理。

       

        与之相反,对 OC4J 独立版的操作、发布以及管理工作很大程度上依赖手工编辑 XML 文件。命令行工具不适用于 OC4J 独立版。 admin.jar ,能够利用一组命令把多个任务执行完,但不能将这些命令适用于 Oracle 应用服务器环境。

       

        关于更多的 Oracle 应用服务器 OC4J 配置信息以及命令行工具 dcmctl 方面的操作,请参考 OC4J 独立版用户指南。

       

        关于更多的 OC4J 独立版配置信息以及命令行工具 admin.jar 方面的操作,请参考 OC4J 独立版用户指南。

    七、在哪里能看到 OC4J 的文档?

        所有 Oracle 产品的相关文档都能在 OTN 网站上找到 http://otn.oracle.com/documentation/content.html 。更加详细的 OC4J 文档在 http://otn.oracle.com/documentation/appserver10g.html OC4J 独立版用户指南在 OC4J 大类中提供。 Readme.txt 文件在 OC4J 独立版的根目录,提供了一些关于安装和使用的基本信息。

    八、在哪里能找到关于 OC4J 性能的列表?

        得到 OC4J 技术信息最好的地方是在 OTN 上的 OC4J 技术专区 http://otn.oracle.com/tech/java/oc4j OC4J 的特性总览在 http://otn.oracle.com/tech/java/oc4j/904/collateral/OC4J-FOV-904.html ,列举了 OC4J 10g (9.0.4) 的所有特点。

    九、在哪里可以得到更多关于 OC4J 的信息?

        呵呵,说来说去还是 OTN 网站 http://otn.oracle.com/tech/java/oc4j

 

    十、安装 Oracle 独立版需要怎样做?

        安装 Oracle 独立版,需要解压缩 oc4j_extended.zip 文件。

        会创建这样的目录结构:

        <install-dir>

        /bin

        /j2ee

        /javacache

        /javavm

        /jdbc

        /jdk

        /jlib

        /lib

        /rdbms

        /soap

        /sqlj

        /webservices

        <install-dir> 就是你解压缩 oc4j_extended.zip 后所产生的目录。

       

        完整安装 OC4J ,需要切换到 <install-dir>j2ee/home 目录,用以下命令:

        > cd <install-dir>/j2ee/home

        > java -jar oc4j.jar -install

       

        <install-dir>/j2ee/home 目录作为 <J2EE_HOME> 提交。

        安装会提示你输入和验证管理员密码,以便使用控制台命令行工具,管理员用户名默认为“ admin ”。

       

一系列的指令包含在 Readme.txt 文件中,它跟随 OC4J 独立版一起发布。

   

  十一、怎样启动 OC4J 独立版?

        启动 OC4J 服务器,首先要用 DOS 命令切换到 J2EE_HOME 目录,然后:

       

        a )根据 j2ee/home/config 目录下的默认配置文件启动 OC4J

                   > cd <J2EE_HOME>

                   > java -jar oc4j.jar

                  

        b )根据自定义的 server.xml 文件启动 OC4J (在 /mypath 中):

                  > cd <J2EE_HOME>

                  > java -jar oc4j.jar -config /mypath/server.xml

       

        当服务器启动以后,将会出现初始化信息,包括版本号等信息,例如:

            Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized

       

  十二、怎样停止 OC4J 独立版?

        OC4J 进程窗口中按下 ^c Ctrl+c )就可以停止它了,或者使用在 admin.jar 命令行工具中的停止命令,或者使用操作系统的进程终止命令(例如 UNIX/Linux 的“ kill ”)。

   

  十三、怎样使用 admin.jar 命令行工具停止 OC4J 呢?

        admin.jar 停止 OC4J ,需要按如下的方法:

          >cd <J2EE_HOME>

          > java -jar admin.jar ormi://<oc4j_host>:<oc4j_ormi_port> <admin>

          <admin-password> -shutdown

        这个命令是一个完美的关闭 OC4J 的方法。如果 OC4J 还没有被关闭,你就需要用 -force 参数强行关闭了:

         > java -jar admin.jar ormi://<oc4j_host>:<oc4j_ormi_port> <admin>

         <admin-password> -shutdown force

       更多信息请参考 OC4J 独立版用户手册。

      

  十四、可以在 Windows 2000/XP 中把 OC4J 作为一个服务运行吗?

        目前不提供在 Windows 平台中把 OC4J 作为直接的服务这一机制。如果你定要 24x7 小时的运行策略,我们推荐你应该选用 Oracle 应用服务器版。作为安装并运行为 Windows 平台服务的 Oracle 应用服务器,它拥有自动进程管理的能力。倘若要让 Windows 平台的 OC4J 有自动启动 / 重启的机制, Oracle 应用服务器进程管理器能被配置成为运行 OC4J 的实例。

        参考 Oracle 应用服务器指南,可获得更多信息。

 

  十五、 OC4J HTTP 默认端口是什么?

        OC4J 独立版的默认 HTTP 端口是 8888 。指定的配置文件是 <J2EE_HOME>/config/http-web-site.xml 。如果你已经安装了 Oracle 应用服务器,而现在想用 OC4J 独立版来代替,你必须通过 Oracle HTTP 服务器访问发布在 OC4J 上面的 Web 应用程序。 Oracle HTTP 服务器的默认端口是 7777

十六、 OC4J 独立版有图形用户界面的控制台吗?

这个版本没有。所有对 OC4J 独立版的配置和发布的操作只能通过手工修改其配置文件。将来我们会提供一个应用最新 JMX 规范,基于 Web 的控制台,来执行配置和发布任务。

十七、我可以把 HTTPS 用于 OC4J HTTP 监听器吗?

可以。 OC4J HTTP 监听器支持 HTTPS ,可被配置来顺应这种潮流。

参考相关 OC4J 用户指南(独立版或 Oracle 应用服务器版)来获得更多信息。

十八、怎样用 OC4J HTTP 监听器来改变 HTTP 端口?

OC4J HTTP 监听器使用的端口被定义在配置文件:

<J2EE_HOME>/config/http-web-site.xml 文件的 web-site 标签 port 属性中。

<web-site port="8888" display-name="Oracle Application Server Containers for J2EE HTTP Web Site">

你可以把 port="8888" 修改为不同的端口号。

十九、用 OC4J 怎样连接数据库?

OC4J 使用数据源来定义连接数据库的操作。当 OC4J 启动以后,它能建立基于配置文件的 DataSource 对象。这些 DataSource 对象担当连接工厂(连接池),允许应用程序获得一个连接,而不需要获得对这个数据库的物理上的详细连接信息。

数据源在 J2EE_HOME/config/data-sources.xml 中被定义为默认值。使用 OC4J 独立版时,你应该手工添加一个你需要的数据库连接声明。当使用 Oracle 应用服务器版时,你应该用 Oracle 企业管理控制台来定义数据源。

一个数据源的定义包含这个数据源所要连接数据库的所有信息。典型的例子如下:

<data-source

class="com.evermind.sql.DriverManagerDataSource"

name="OracleDS"

location="jdbc/OracleCoreDS"

xa-location="jdbc/xa/OracleXADS"

ejb-location="jdbc/OracleDS"

connection-driver="oracle.jdbc.driver.OracleDriver"

username="scott"

password="tiger"

url="jdbc:oracle:thin:@localhost:1521:oracle"

inactivity-timeout="120"

stmt-cache-size="100"

/>

参考 OC4J 文档的 J2EE 服务指南来获得更多信息。

二十、如果我不想把数据库的密码这么直白的表现出来,该这么办?

OC4J 9.0.4 允许你把密码放在不同的配置文件中,以便通过一种安全的方式来间接管理。允许你指定一特定安全包, OC4J 会自己解析出密码来。这样能使密码继续留在一个集中控制的区域被管理,还可选择本地 XML 用户存储或使用 Oracle 互联网目录( Oracle Internet Directory )。

参考 OC4J 文档的 J2EE 服务指南来获得更多信息。

二十一、我可以让 OC4J 连接非 Oracle 数据库吗?

可以,实际上 Oracle 支持一整套 JDBC 驱动程序,可以用来连接 IBM Sybase ,和 Microsoft 的数据库产品。利用 JDBC 驱动程序,来弥补那些 Oracle 支持库所不支持的产品。与非 Oracle 数据库产品建立一个连接,你应该为 OC4J 配置数据源,来定义一系列必须的 JDBC 驱动程序信息,例如 JDBC URL 、连接名,等。

参考 OC4J 文档的 J2EE 服务指南的数据源章节获得更多信息。

 

二十二、 WAR 文件能发布为 Web 应用程序吗?

当然可以,如果你希望只以 Web 模式发布,那么可以利用默认的 OC4J 配置。这里有两步:

首先,告诉容器 WAR 文件被发布到哪里。用编辑器打开 <J2EE_HOME>/config/application.xml 文件,增加 <web-module> 标签,定义 WAR 文件属性。

<web-module id="HRWebModule" path="<PATH-TO-WAR-FILE>"/>

其次,告诉 OC4J HTTP 服务器关于如何通过 URL 来访问部署的 WAR 文件。用编辑器打开 <J2EE_HOME>/config/http-web-site.xml 文件。添加 <web-app> 标签,并为你的 Web 程序定义属性。请注意, application 属性必须定义为“ default ”,是因为发布的是默认应用程序。 name 属性应该匹配你的 Web 程序所定义的 ID 属性。

<web-app application="default" name="HRWebModule" root="/hrweb" />

WAR 文件被 OC4J 发布,并可通过浏览器来访问 /hrweb 目录。

如果你使用的是 Oracle 应用程序服务器来代替 OC4J 独立版,那么应该通过管理控制台来发布 WAR 文件。

二十三、哪里可以放置我的共享类库,以便它们可以访问我发布的应用程序?

OC4J 配置了一个默认的共享目录,目录就是 <J2EE_HOME>/applib 。任何类库都可以放在这个目录,发布在 OC4J 上的应用程序就可以访问了。

共享目录在 <J2EE_HOME>/config/application.xml 文件的 <library> 标签中定义:

<orion-application autocreate-tables="true" default-data-source="jdbc/OracleDS">

<web-module id="defaultWebApp" path="../../home/default-web-app"/>

<web-module id="dms0" path="../../home/applications/dms0.war"/>

<web-module id="dms" path="../../home/applications/dms.war"/>

<persistence path="../persistence"/>
<!-- Path to the libraries that are installed on this server.

These will accesible for the servlets, EJBs etc -->

<library path="../applib"/>

...

</orion-application>

更多关于装载类和打包的问题,可参考 OTN 的文档 http://otn.oracle.com/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf

二十四、怎样在 OC4J 中使用像 xerces 这种第三方的 XML 解析器?

OC4J 已经自带了 Oracle XML 解析器。 Oracle XML 解析器与 JAXP 1.1 标准完全兼容,可服务于需要 JAXP 功能的应用程序场合。这种方式不需要下载、安装、配置其他的 XML 解析器。

Oracle XML 解析器( xmlparserv2.jar )默认装载于 OC4J 的系统级库,通过包含 oc4j.jar Manifest.mf 文件实现。这种机制可让 Oracle XML 解析器适用于所有普通的发布和打包的情况。但不能修改 oc4j.jar Manifest.mf 文件。

需要注意的是,通过修改 OC4J 的配置文件来运行其他 XML 解析器或 JDBC 库是不被支持的。我们有的客户已经成功地替换了系统级 XML 解析器以及 JDBC 驱动程序,并重新装载在这个产品上。但我们不支持随意移动已测试和认证的类库,这将会导致意想不到的系统动作,和系统错误。

如果你一定要坚持使用像 xerces 这样的第三方 XML 解析器,那么当 OC4J 启动时, xerces.jar 文件必须被装载于 OC4J 系统级类路径中。可以使用 JRE Xbootclasspath 标记来达到这一目的:

java -Xbootclasspath/a:d:\xerces\xerces.jar -jar oc4j.jar

再一次重申,想当然的配置是不允许的。

二十五、可以和我的应用程序一起发布数据源文件吗?

可以,应该把安全文件(比如口令)和数据源文件一起打包在你的应用程序中,保存为 EAR 文件。当应用程序被发布,这些文件会被 OC4J 用于建立连接或验证用户信息。另外,当需要发布应用程序时, Oracle JDeveloper 已经标准化了这种打包机制。

要达到这一目的(打包),你应该提供所有想要捆绑发布的文件,并放在和 application.xml 文件同一目录中。另外,还要有一个引用这些东西的 orion-application.xml 文件。

如果 data-sources.xml 文件也要包含在应用程序中的话, data-sources.xml 应该包含一系列关于连接数据库的配置信息。

EAR 文件结构应该像这样:

<EAR-FILE>

/META-INF

application.xml

orion-application.xml

data-sources.xml

webmodule.war

ejbmodule.jar

例如, orion-application.xml 文件包含引用本地 data-sources.xml 文件的入口:

<orion-application>

<data-sources path="./data-sources.xml"/>

</orion-application>

在发布的时候, OC4J 引用 orion-application.xml 的内容。它会拷贝定义在 EAR 文件中的 data-sources.xml ,并作为应用程序的数据源配置文件来使用。

posted on 2006-06-24 20:12 船长 阅读(1638) 评论(0)  编辑  收藏 所属分类: J2EE

只有注册用户登录后才能发表评论。


网站导航: