在J2EE服务器环境中使用Derby - 编程入门网
y Bradbury
参数代码( 多数情况下是可选的) 捕捉数据源信息和部署数据源的过程会随着 J2EE 服务器 的不同而不同。很多系统有一个控制台应用程序来帮助定义和部署数据源。下一节展示了 如何使用 Gluecode Standard Edition Console 来设置数据源。在后面的 参考资料 小 节中,通过相应的链接可以找到关于将 Derby 设置为 IBM WebSphere® 和 Apache Geronimo 中的 Resource Manager 的手册说明。 使用 Gluecode Standard Edition 设置 Derby Resource Manager Gluecode Standard Edition 是一种集成 了很多开放源码技术的应用程序服务器。它简化了 J2EE 环境中 Java 应用程序的部署和 管理。Gluecode 捆绑了 Apache Geronimo J2EE 服务器,并提供了一个 GUI 管理控制台 ,用于连接 Resource Manager 和部署应用程序(要了解关于获得和使用 Gluecode 的信 息,请访问 参考资料 小节中的 Gluecode 链接)。下面的步骤概括了为一个名为 JPetstoreDB 的 Derby 数据库创建数据源的过程。对于这个例子,必须将该数据库复制 到 Gluecode 子目录 ...var/derby/Databases 中。该实现使用与 Gluecode 捆绑的 Apache Derby(可以在 ...repository/incubator-derby/jars 中找到)。 启动 Gluecode 并访问管理控制台(URL:http://localhost:8080/console/login.html)。 在开始的 Information 屏幕中,单击左侧导航列表中的 Databases 链接(图 2 )。 图 2. Gluecode 导航列表 在 Database Connections 窗口中,单击列表框底部的 Add New Datasource 链接。 为新数据源填入信息,如图 3 所示。单击 Create。 图 3. Gluecode 数据源定义屏幕 这就够了。现在,部署在服务器上的应用程序便可以通过引用 JNDI 名称来访问这个 数据库,而不必管实际使用的是哪种 DBMS。 服务器中的 Resource Manager 当按照以上描述完成配置之后,Derby 数据库使应用程序服务器层与 EIS 层之间的差 别模糊化。与大多数其他 RDBMS 不同,它是在应用程序服务器 JVM 中运行的 Java 程序 (嵌入式的),而不是在它自己的地址空间内单独运行的进程。由于这个原因,它容易受 到应用程序服务器内部实现细节的影响,尤其容易受多个类装载器的实现的影响。为了同 时运行多个应用程序,并使这些应用程序不致于相互干扰,应用程序服务器使用多个类装 载器来提供必要的隔离。如果 Derby 系统的类是由用于支持单个应用程序实例,而不支 持所有应用程序实例的类装载器装载的,那么它就会碰到问题。数据库引擎类甚至可能跨 多个类装载器。这将导致数据库引擎中止。由于数据库是共享资源,因此应该在比类装载 器更高的层次上装载它。 类装载器和类装载器层次结构是一个复杂的话题,其中有更多的细节不是本文所能论 述的(要了解关于此话题的更多信息,请访问后面 参考资料 小节中的“J2EE Class Loading Demystified”链接)。然而,需要注意的是,对类装载器的使用会随着应用程 序服务器的不同而不同,因此,即使一个直接装载 Derby 驱动程序的应用程序在某个服 务器上可以运行得很好,但当部署到另一个应用程序服务器上时,可能无法运行。而通过 服务提供程序接口建立数据库连接,无论应用程序服务器如何管理类装载器层次结构,都 可以保证应用程序在不同应用程序服务器环境之间是可移植的。 如果应用程序架构使您不能使用服务提供程序接口,或者需要将数据库处理负载分布 到另一台机器上,那么可以结合 Network Server 来使用 Derby。Derby Network Server 在一个与 J2EE 服务器分离的进程中运行 Derby。Network Server 给系统引入了一些复 杂性,因为它需要单独启动,单独实现验证和一组安全策略(这些事情通常由 J2EE 服务 器来处理)。当使用 Der |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |