`
lifaming15
  • 浏览: 59081 次
  • 来自: ...
文章分类
社区版块
存档分类

WebLogic RMI 编程(六)

 
阅读更多

应用程序设计的最佳实践

以下部分讨论使用 RMI 和 IIOP 上的 RMI 编程时建议使用的设计模式。


使用 java.rmi

BEA 建议 RMI 用户使用 java.rmi。尽管 WebLogic API 包含 weblogic.rmi API,但是已不赞成使用,仅将其作为兼容性 API 提供。为实现兼容性而提供的其他 WebLogic API 还有:


使用 PortableRemoteObject

为保持代码的可移植性,在转换 Home 接口时应始终使用 PortableRemoteObject。例如:

Propshome home = (PropsHome)
PortableRemoteObject.narrow(
ctx.lookup( "Props" ),
PropsHome.class ); 

为了保证使用 WebLogic 类,请实现 weblogic.rmi.extensions.PortableRemoteObject


使用 WebLogic 工作区域

Work Context 允许 J2EE 开发人员将属性作为应用程序上下文定义,它隐式跟踪远程请求并使下游组件能够在发出调用的客户端的上下文中工作。Work Context 使开发人员无需将属性包含在远程调用中即可传递它们。Work Context 随每个远程调用而传播,以便所调用的组件能够添加或修改 Work Context 中定义的属性;类似地,发出调用的组件也可以访问 Work Context,以便获取新的或更新的属性。

Work Context 简化了要求将信息传递给远程组件的实现和维护功能的处理过程,例如,诊断监视、应用程序事务以及应用程序负载平衡。Work Context 还是为第三方组件提供信息的一种有用的机制。

Work Conext 可将用户定义的属性传播到 WebLogic Server 支持的所有请求范围,Work Context 可提供给请求范围中存在的所有对象,包括 RMI 调用。有关详细信息,请参阅使用 WebLogic Server 开发应用程序


使用 RMI 超时的准则

此功能为需要异步调用行为但尚未实现此行为的旧式系统提供了一个解决办法。BEA 建议旧式系统在可能的情况下实现更适合的技术,例如:

  • 异步 RMI 调用
  • JMS 和消息驱动 Bean (MDB)
  • HTTP Servlett 应用程序

如果需要为旧式系统使用 RMI 超时,请阅读以下准则:

  • 只有在同时满足下列三个条件的情况下,才应使用 RMI 超时:
    • 方法调用是幂等的,或者不带来任何状态更改
    • 方法调用为非事务型
    • 调用中未涉及任何 JMS 资源
  • 当请求出现超时时,没有到另一个群集节点的透明故障转移。RequestTimeOutException 始终传播至调用程序。
  • 服务器会持续处理已超时的请求。客户端需要在重试调用前检查服务器上请求的状态。
  • 如果服务器超时,客户端有能力在客户端群集引用中将服务器标记为无法访问。这可在指定的时间内避免将调用定向至加标记的服务器。
分享到:
评论

相关推荐

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    5.5 RMI编程 217 5.5.1 开发RMI服务器 217 5.5.2 开发RMI客户端 220 5.5.3 RMI的基本原理 220 5.6 同时作为客户端和服务器的 RMI程序 222 5.6.1 开发客户端程序 222 5.6.2 开发服务器端程序 223 5.7 本章小结 225 第...

    Java网络高级编程

    第1章介绍Java远程方法调用RMI;第3章介绍Java与CORBA不同体系的组件间的通信技术;第6章介绍JSP技术。第7-9间主要介绍Java有关的Web技术。其中,第4章介绍Javabean技术;第5章介绍Java XML技术;第8章介绍异步消息...

    [怪兽搜索]《Java网络高级编程》[Pdf][www.guai.so].zip

    第1章介绍Java远程方法调用RMI;第3章介绍Java与CORBA不同体系的组件间的通信技术;第6章介绍JSP技术。第7-9间主要介绍Java有关的Web技术。其中,第4章介绍Javabean技术;第5章介绍Java XML技术;第8章介绍异步消息...

    h_JAVA 2应用编程150例.rar

    实例117 C/S结构的RMI-IIOP应用 414 实例118 使用JTA与JTS 417 实例119 Request-Reply模式的JMS应用 421 实例120 使用Java IDL 426 实例121 EJB与CORBA的交互 430 实例122 基于EJB的真实世界模型 433 实例123 EJB的...

    JSP高级编程(全)

    4.2 远程方法调用RMI 技术 4.3 CORBA 技术 4.4 JNDI 技术 4.5 本章小结6 第二部分 JSP 技术和XML 技术 第5 章 XML 简介 5.1 XML 简介及其语法规则 5.2 DTD 的书写及实例 5.3 CSS 与XSL 及其实例 5.4 XHTML 简介 5.5 ...

    JSP高级编程          

    4.2 远程方法调用RMI 技术 4.3 CORBA 技术 4.4 JNDI 技术 4.5 本章小结6 第二部分 JSP 技术和XML 技术 第5 章 XML 简介 5.1 XML 简介及其语法规则 5.2 DTD 的书写及实例 目录 5.3 CSS 与XSL 及其实例 5.4 XHTML 简介...

    java应用软件程序设计

    525 实例143 安装配置Tomcat 526 实例144 安装配置Apache 528 实例145 安装配置WebLogic 529 实例146 整合Tomcat与IIS 531 实例147 整合Tomcat与Apache 532 实例148 整合JBuilder与WebLocig 533...

    java面试题

    59.7. RMI/IIOP 41 60. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 41 61. MVC的各个部分都有那些技术来实现?如何实现? 42 62. java中实现多态...

    超级有影响力霸气的Java面试题大全文档

    但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 24、...

    java 面试题 总结

    但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 21、...

    Spring 2.0 开发参考手册

    9.8.1. BEA WebLogic 9.8.2. IBM WebSphere 9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO...

    spring chm文档

    9.8.1. BEA WebLogic 9.8.2. IBM WebSphere 9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO...

    Spring中文帮助文档

    9.8.2. BEA WebLogic 9.8.3. Oracle OC4J 9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的...

    Spring API

    9.8.2. BEA WebLogic 9.8.3. Oracle OC4J 9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.8.1. BEA WebLogic 9.8.2. IBM WebSphere 9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持...

    二十三种设计模式【PDF版】

    因为很多人没有注意到这点,学完 Java 基础语言就直接去学 J2EE,有的甚至鸭子赶架,直接使用起 Weblogic 等具体 J2EE 软 件,一段时间下来,发现不过如此,挺简单好用,但是你真正理解 J2EE 了吗?你在具体案例中的...

Global site tag (gtag.js) - Google Analytics