用于访问一个以上数据库服务器的方法和装置制造方法及图纸

技术编号:2851911 阅读:210 留言:0更新日期:2012-04-11 18:40
一种容器管理持久性(CMP)企业Java  Bean(EJB)框架包括对在一个部署内访问多个数据源的支持。CMP  EJB包括若干不同的属性,所述不同的属性可以是各种值。充当所述CMP  EJB的前端的会话EJB包括用于所述实体CMP  EJB可以使用的每个不同的数据源的资源引用。该应用服务器环境包括定义所述CMP  EJB的属性和所述会话EJB的资源引用之间的映射信息的映射。在运行时期间使用该映射信息,该应用服务器连接到适合的数据源。

【技术实现步骤摘要】

本专利技术涉及应用,并且更具体地涉及容器管理持久性企业Java Bean(CMP EJB)。
技术介绍
Java 2平台企业版(J2EE)是一种用于开发、部署和管理多层(n-tier)的、允许使用Web的、以服务器为中心并且基于组件的企业应用的开放的和基于标准的平台。在这个环境内有三种类型的企业Java Bean(EJB)实体Bean、会话Bean、和消息驱动Bean。特别感兴趣的是用于实现复杂业务实体的实体Bean。实体Bean模拟业务实体或模拟业务处理中的多个活动。实体Bean经常用于使得涉及数据和所述数据的计算的业务服务易于进行。例如,应用开发者可以实现实体Bean以便检索购买订单内的项目并执行对所述项目的计算。实体Bean在执行其必要的任务时能管理多个相关的持久性对象。因此,实体Bean典型地被描述为远程对象,其管理持久性数据,执行复杂的业务逻辑,潜在地使用若干相关的Java对象,并可以由主键唯一地标识。实体Bean通常被认为是粗粒度的持久性对象,因为它们使用存储在多个细粒度的持久性Java对象中的持久性数据。实体Bean是持久性的,因为它们能够幸免于服务器崩溃或者网络故障。当实体Bean被重新实例化时,自动恢复先前实例的状态。每一个实体Bean都具有与其相关联的持久性标识。也就是说,实体Bean包含一个唯一标识,如果具有所述主键就可以对其进行检索--给定主键,客户可以检索该实体Bean。如果Bean不可用,容器实例化该Bean并重新填充持久性数据。为当Bean被钝化(passivate)时保存状态以及为当发生故障时恢复状态两者提供用于实体Bean数据的持久化。因为数据由容器以某种形式的数据存储系统例如数据库持久地存储,所以实体Bean能幸存下来。实体Bean使用下面两种方法之一持久存储业务数据a)使用容器管理持久性(CMP)实体Bean由容器自动地持久存储,或b)通过实现在Bean管理持久性(BMP)实体Bean中的方法可编程地持久存储。这些方法使用JDBC或者SQLJ来管理关系型数据库中的持久性;或者使用任何API来管理非关系型存储中的持久性数据。当确定如何管理EJB的持久性时有各种安排,这些安排中的一个涉及如何管理EJB对数据源的引用。例如,EJB可能从数据库的各种表中检索数据的不同字段。在EJB应用的编码中,所述代码指定该数据库或数据源的标识。BMP EJB可以通过在其内部定义多个数据源并且然后在运行时查询这些数据源连接多个数据源。然而与之相反,在部署期间CMP EJB仅能在为其管理的持久性数据中指定一个数据源。因此,为了使CMP EJB连接多个不同的数据库,必须为每个不同数据库部署CMP EJB并在给定的运行时将CMP EJB绑定到一个数据源。CMP EJB的多个部署增加了应用服务器环境的复杂性并不必要地使用了该环境中的资源。因此,在当前的J2EE应用中仍然需要一种使得一个CMP EJB部署可以访问多个数据源的方式。
技术实现思路
本专利技术的实施例涉及J2EE框架,该框架包括对在一个部署中以一个CMP EJB访问多个数据源的支持。尽管在J2EE平台内明确描述了此处提供的特定例子和实施例,本领域普通技术人员能将会认识到任何模拟或仿真J2EE平台的至少一些特征的平台都将支持本专利技术的实施例。本专利技术的一方面涉及一种用于在执行环境中访问一个以上的数据库的方法,其中,每个数据库与相应的数据源例如由J2EE应用使用的数据源相关联以便定义用于相关联的数据库的连接信息。根据本专利技术的这个方面,从执行中的容器管理持久性企业Java Bean(CMP EJB)接收请求以便访问所述一个以上的数据库中的一个数据库,并且选择所述各个数据源中的一个数据源。CMP EJB被动态地连接到所述各个数据源中所选择的一个数据源以便在运行时期间给该请求提供服务。本专利技术的另一方面涉及一种用于在J2EE应用服务器平台中访问一个以上数据库的方法。根据该方面,一个以上数据源的每一个与相应的资源引用相关联,并且识别容器管理持久性企业Java Bean(CMP EJB)的属性和各个资源引用之间的映射。然后例如基于该映射信息,确定使用所述一个以上数据源中的哪一个数据源来给调用提供服务以便访问所述数据库服务器中的一个数据库服务器。附图说明图1是与本专利技术一致的结合有J2EE平台的联网的计算机系统的框图;图2是示出了与本专利技术的原理一致的J2EE平台的主要组件的框图;图3示出了根据本专利技术的原理用于访问用于CMP EJB的数据源的示例方法的流程图。具体实施例方式本专利技术的实施例涉及J2EE框架,该框架包括对在一个部署中以一个CMP EJB访问多个数据源的支持。下面将更详细地描述能以与本专利技术一致的方式支持该功能的这样一种框架的特定实现。然而,在讨论这种特定的实现以前,将提供关于这种J2EE框架可以驻留在其中的示例硬件和软件环境的简要讨论。现在转到附图,其中相同数字表示几个附图的相同部分,图1示出根据本专利技术的原理适合于实现运行时平台诸如J2EE的装置10的示例的硬件和软件环境。出于本专利技术的目的,装置10实际上可代表任何类型计算机、计算机系统或其它可编程电子设备,包括客户计算机、服务器计算机、便携式计算机、手持式计算机、嵌入式控制器等等。此外,可以使用(例如)群集或其它分布式计算系统内的一个或多个联网的计算机实现装置10。虽然应该理解术语“装置”还可包括与本专利技术一致的其它适合的可编程电子设备,在下文中装置10还将称作为“计算机”。计算机10典型地包括连接到存储器14的至少一个处理器12。处理器12可以代表一个或多个处理器(例如微处理器),并且存储器14可以代表随机访问存储器(RAM)设备,包括计算机10的主存储器以及任何辅助级存储器,例如高速缓存存储器、非易失或备份存储器(例如可编程的或快闪存储器)、只读存储器等等。此外,存储器14可被认为包括物理上位于计算机10内的任何其它位置的存储器存储设备,例如处理器12中的任何高速缓存存储器,以及用作虚拟存储器的任何存储容量,例如存储在大容量存储设备16上或其它通过网络18连接到计算机10的任何计算机上(例如,客户计算机20)。计算机10还典型地接收若干用于向外部传递信息的输入和输出。作为与用户和操作者之间的接口,计算机10典型地包括一个或多个用户输入设备22(例如尤其是键盘、鼠标、轨迹球、游戏杆、触摸垫和/或麦克风)和显示器24(例如尤其是CRT监视器、LCD显示屏和/或扬声器)。另外,可以通过在网络18上与计算机10连接的其它计算机(例如计算机20)或通过专用的工作站接口等来接收用户输入。作为附加的存储设备,计算机10还可以包括尤其是一个或多个大容量存储设备16,例如软盘或其它可移动盘驱动器、硬盘驱动器、直接访问存储设备(DASD)、光盘驱动器(例如CD驱动器、DVD驱动器等等)和/或磁带驱动器。此外,计算机10可以包括与一个或多个网络18(例如尤其是LAN、WAN、无线网络和/或因特网)的之间的接口以便允许与其它连接到所述网络的计算机进行信息传递。应该理解如本
公知的,计算机10典型地包括处理器12和每一个组件14、16、18、22和24之间的适合的模拟和/或数字接口。计算机10在操作系统30的控制本文档来自技高网
...

【技术保护点】
一种用于在J2EE应用服务器平台中访问一个以上数据库的方法,包括如下步骤:将一个以上数据源中的每一个数据源与相应的资源引用关联;识别容器管理持久性企业JavaBean(CMPEJB)的属性和所述各个资源引用之间的映射;和确定使用所述一个以上数据源中的哪一个数据源给所述CMPEJB的调用提供服务以便访问所述数据库服务器中的一个数据库服务器。

【技术特征摘要】
US 2004-12-29 11/025,2281.一种用于在J2EE应用服务器平台中访问一个以上数据库的方法,包括如下步骤将一个以上数据源中的每一个数据源与相应的资源引用关联;识别容器管理持久性企业Java Bean(CMP EJB)的属性和所述各个资源引用之间的映射;和确定使用所述一个以上数据源中的哪一个数据源给所述CMP EJB的调用提供服务以便访问所述数据库服务器中的一个数据库服务器。2.如权利要求1所述的方法,还包括如下步骤在与所述CMP EJB具有接口的会话EJB中定义所述各个资源引用。3.如权利要求1所述的方法,还包括如下步骤在与所述CMP EJB具有接口的Java工件中定义所述各个资源引用。4.如权利要求1所述的方法,其中在所述应用服务器平台中存储映射,所述映射提供了所述CMP EJB的属性与所述各个资源引用之间的所述映射。5.如权利要求4所述的方法,其中所述映射根据所述属性的值定义使用所述各个资源引用中的哪一个。6.如权利要求1所述的方法,还包括如下步骤确定所述属性的值;基于所述值评估所述映射以识别使用所述一个或多个数据源中的哪一个数据源。7.一种用于在执行环境中访问一个以上数据库的方法,其中每一个数据库与相应的数据源相关联,所述方法包括如下步骤从执行中的容器管理持久性企业Java Bean(CMP EJB)接收请求以便访问所述一个以上数据库中的一个数据库;从所述各个数据源中选择一个数据源,并且将所述CMP EJB连接到所述各个数据源中所述被选择的一个数据源。8.如权利要求7所述的方法,其中选择步骤还包括步骤评估所述CMP EJB的属性以便识别所述一个数据源。9.如权利要求7所述的方法,还包括步骤将所述各个数据源中的每一个数据源与相应的资源引用相关联。10.如权利要求9所述的方法,还包括步骤在与所述CMP EJB具有接口的会话EJB中定义所述各个资源引用。11.如权利要求10所述的方法,其中在所述执行环境中存储映射,所述映射提供了所述CMP EJB的属性和所述各个资源引用之间的所述映射。12.如权利要求11所述的方法,其中所述映射根据所述属性的值定义使用所述各个资源引用的哪一个。13.如权利要求7所述的方法,其中所述执行环境是J2EE平台。14.一种装置,包括容器管理持久性企业Java Be...

【专利技术属性】
技术研发人员:PJ戴克斯TC甘WT纽波特汤剑
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1