`

Java实验: 基于CORBA的分布式议程服务 (2)

    博客分类:
  • cava
阅读更多

1.1  关键代码

绑定远程对象:

 

public static void main(String[] args) {

       try {

           // 8步  : 初始化---根---策略----子POA---伺服---激活---激活---监听

           //初始化

           org.omg.CORBA.ORB orb=org.omg.CORBA.ORB.init(args, null);

           

           //根

           org.omg.PortableServer.POA rootPOA=

POAHelper.narrow(orb.resolve_initial_references("RootPOA"));

           

           //策略

           org.omg.CORBA.Policy[] policies=

{rootPOA.create_lifespan_policy(

LifespanPolicyValue.PERSISTENT)};

           

           //有 根和策略 创建子POA

           org.omg.PortableServer.POA agendaPOA=

rootPOA.create_POA("AgendaPOA", 

rootPOA.the_POAManager(), policies);

           

           //伺服

           AgendaCORBAImpl agendaServant=new AgendaCORBAImpl();

           

           //激活 伺服

           agendaPOA.activate_object_with_id(

"AgendaManager".getBytes(), agendaServant);

           

           //激活 POA管理器

           rootPOA.the_POAManager().activate();

            

           System.out.println("Server has ready ...");

           //循环监听

           orb.run();

       } catch (Exception e) {

           e.printStackTrace();

       }

}

 

 

 

 

 

 

获取远程对象

private static IAgenda getAgenda(String[] args) {

       try {

           //初始化

           org.omg.CORBA.ORB orb=org.omg.CORBA.ORB.init(args,null);

           //查找

           IAgenda agenda=

IAgendaHelper.bind(

orb,"/AgendaPOA","AgendaManager".getBytes());

           return agenda;

       } catch (Exception e) {

           e.printStackTrace();

           return null;

       }

    }

  

 

获取数据库连接:

DBConnectionFacade.java

/**

* Gets the database connection from current active connection provider. 

* @return the connection

*/

public static Connection getConnection() throws DBConnectionException{

       if (connProvider==null) {

           synchronized (initLock) {

              if (connProvider==null) {                                                     resourceBundleUtil=

ResourceBundleUtil.getResourceBundleUtil(Lables);

                  String providerClassName=

resourceBundleUtil.getString("provider.calss");

                  if (providerClassName!=null

&&providerClassName.length()==0) {

                     try {

                         Class providerClass=

Class.forName(providerClassName);

                      connProvider=(DBConnectionProvider)

providerClass.newInstance();//动态装载

                     } catch (Exception e) {}//这里删去处理异常的代码

                  }

                  else {

connProvider = new DBConnectionDefaultPool(resourceBundleUtil);

                  }

                  connProvider.initProvider();

              }

           }

       }

return Connection conn=connProvider.getConnection();//这里删去处理异常的代码

}

 

 

 

 

接口DBConnectionProvider的默认实现类DBConnectionDefaultPool.java

/**
  * initial the connection pool.
  * 
  * @see Database.DBConnectionProvider#initProvider()
  */
 public void initProvider() throws DBConnectionException {
  // set Lock to prevent a connection be returned.
  synchronized (initLock) {
   // Get properties
   String driver = resourceBundleUtil.getString("driver");
   String server = resourceBundleUtil.getString("server");
   String username = resourceBundleUtil.getString("username");
   String password = resourceBundleUtil.getString("password");

   // System.out.println(driver+ server+ username+password);

   int minConnections = 0, maxConnections = 0;
   double connectionTimeOut = 0.0;
   try {
    minConnections = Integer.parseInt(resourceBundleUtil.getString("minConnections"));
    maxConnections = Integer.parseInt(resourceBundleUtil
      .getString("maxConnections"));
    connectionTimeOut = Double.parseDouble(resourceBundleUtil
      .getString("connectionTimeOut"));
   } catch (Exception e) {
    throw new ResourceBundleNotFoundException(
      "Could not parse default pool properties. "
        + "Make sure the values exist and are correct.",
      e);
   }
   String logPath = resourceBundleUtil.getString("logPath");

   try {
    connectionPool = new ConnectionPool(driver, server, username,
      password, minConnections, maxConnections, logPath,
      connectionTimeOut);
   } catch (IOException e) {
    // "Error starting DbConnectionDefaultPool: "
    // throw new ConnectionPoolInitPool("Cannt found properties");
    e.printStackTrace();
   }
  }
 }


 

    public Connection getConnection() throws DBConnectionException {

       if (connectionPool == null) {

           // Block until the init has been done.

           synchronized (initLock) {// waitting for init.

              if (connectionPool == null) {

                  // Something has gone wrong.

                  return null;

              
}

 

 

3
1
分享到:
评论

相关推荐

    corba实验:基于corba技术开发一个考试查询系统

    【Corba实验:基于Corba技术开发考试查询系统】 在本次实验中,主要目标是利用CORBA(Common Object Request Broker Architecture)技术构建一个考试查询系统。这个系统涉及到山东大学计算机科学与技术学院的学生,...

    基于CORBA的分布式程序设计(入门与提高)

    ### 基于CORBA的分布式程序设计(入门与提高) #### CORBA概述 CORBA(Common Object Request Broker Architecture)即公共对象请求代理体系结构,是面向对象领域中的一种通用框架,旨在支持分布式环境中不同软件...

    基于CORBA技术的分布式智能网

    总之,基于CORBA技术的分布式智能网是一种高效、灵活的通信网络解决方案,它通过中间件技术实现了网络服务的分布式部署和智能化处理,为现代通信网络的发展提供了强大的支持。通过深入研究和实践,我们可以预见这一...

    基于CORBA分布式对象技术的新一代电网调度自动化系统的应用研究.pdf

    CORBA,即公共对象请求代理体系结构,是一种基于分布式对象技术的体系结构,其核心在于对象请求代理(ORB)总线,它允许不同应用、服务或子系统中的组件通过ORB实现互操作。这种技术特别适合于复杂系统中的信息共享...

    CORBA客户服务器编程.rar_Java CORBA_corba_corba java_分布式

    CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)是一种标准的中间件技术,用于实现分布式计算。在Java中,CORBA允许不同系统间的对象相互通信,仿佛它们都在同一进程中运行。这个压缩包...

    Java_Corba.rar_CORBA分布式

    它是基于 OMG(Object Management Group,对象管理组织)制定的CORBA标准在Java中的实现,使得不同系统间的对象能够像在同一系统内一样进行通信和协作。 首先,我们需要理解CORBA的核心概念——ORB(Object Request...

    基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响.pdf

    《基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响》 本文探讨了在分布式应用软件中,尤其是针对导航系统,基于CORBA(Common Object Request Broker Architecture)的...

    论文研究-基于CORBA分布式对象监测系统的研究与实现.pdf

    标题《论文研究-基于CORBA分布式对象监测系统的研究与实现》揭示了论文的重点:研究和实现一种基于CORBA的分布式对象监测系统。CORBA全称为“通用对象请求代理体系结构”(Common Object Request Broker ...

    基于CORBA的分布式数据库系统开发技术

    综上所述,基于CORBA的分布式数据库系统开发技术不仅解决了传统数据库应用系统的局限性,还极大地促进了企业级应用系统在性能、安全性和可维护性方面的提升,为信息化社会的数据管理和服务提供了强大的支撑。

    CORBA分布式资源池

    本程序主要是讲CORBA分布式资源池实现(jdk1.3):资源池机制应用于一个CORBA 应用程序的服务端,通过使用一个CORBA 对象实例池(instance pool)提高CORBA 应用程序服务端的系统性能

    CORBA分布式应用程序

    【CORBA分布式应用程序】 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种标准的中间件技术,用于构建跨平台、跨语言的分布式应用程序。它允许不同计算机上的对象互相通信,...

    一个基于CORBA的分布式网管系统模型.pdf

    1. 跨平台的互操作性:CORBA 允许不同平台、不同语言编写的应用程序对象进行通信,这使得基于 CORBA 的分布式网管系统可以跨平台操作,不受限于特定的操作系统和硬件环境。 2. 高度的可扩展性:通过引入对象请求代理...

    分布式实验报告CORBA.docx

    3. **JAVA IDL**:JAVA IDL是JDK中的一个组件,它实现了CORBA规范,使得Java开发者可以使用CORBA。实验中,使用JAVA IDL工具(idlj)将IDL文件编译为Java源代码,生成服务器框架和客户端存根。 4. **服务器端实现**:...

    一种基于CORBA的分布式应用模型.pdf

    【标题】:“一种基于CORBA的分布式应用模型” 【描述】:“资源达人分享计划” 【标签】:“分布式,分布式系统,分布式开发,参考文献,专业指导” 【部分内容】:介绍了基于CORBA技术的分布式应用模型,该模型...

    基于CORBA的分布式对象技术及其在电网调度自动化系统的应用.pdf

    2. **封装现有应用**:将已有的应用程序或程序包装成符合CORBA接口规范的组件,使其能够融入到基于CORBA的分布式环境中。 设计整体的调度自动化系统架构时,需要考虑的关键点包括: - **系统分层**:通常会分为...

    java corba demo

    Java CORBA(Common Object Request Broker Architecture)是一种中间件技术,用于构建分布式应用程序。它允许不同计算机上的对象相互交互,仿佛它们都在同一台机器上运行。Java CORBA与RMI(Remote Method ...

    JAVA_CORBA.rar_corba_分布式对象

    **Java CORBA:构建分布式对象系统** Java CORBA是一种强大的技术,它允许不同的软件应用程序在不同的计算机上相互通信,仿佛它们都在同一台机器上运行。这个技术是基于Common Object Request Broker Architecture...

    基于CORBA_JAVA RMI的分布式系统应用研究.pdf

    基于CORBA和JAVA RMI的分布式系统应用研究 CORBA(Common Object Request Broker Architecture)是一种公共对象请求代理体系结构,主要分为三个部分:接口定义语言(IDL)、对象请求代理(ORB)和ORB之间的互操作...

    基于CORBA的分布式仿真系统的开发与实现.

    ### 基于CORBA的分布式仿真系统的开发与实现 #### CORBA简介 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种由OMG(对象管理组织,Object Management Group)制定的标准,...

Global site tag (gtag.js) - Google Analytics