跳到导航
BEA Dev2Dev Oracle and BEA
首页 资源中心 dev2dev学堂 在线技术论坛 User Group CodeShare
dev2dev 首页 > 资源中心 > 技术文章
WebLogic Server8.1新功能介绍

时间:2003-04-10
作者:BEA System (China) Telecom徐春金
浏览次数:
本文关键字:WebLogic Server8.1特性releasenotes
文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章
BEA WebLogic Server8.1已经正式发布,与BEA WebLogic Server7.0相比,变化比较大,包括通过WORKSHOP8.1提供的集成开发环境;增强了应用的步骤,系统的管理和操作能力;支持最新的标准,提供更强大的基础服务整合能力.通过多项改进,使它的性能比WLS7.0更好.更容易使用.所有这些使BEA WebLogic Server8.1继续在市场占领导地位.下面对它的部分新功能做一个简单的介绍.

JRocket

JRocket是BEA公司去年收购的一个JVM产品.在WLS8.1中包括JRocket8.1,当然你仍然可以采用其他的JVM, JRocket是Intel构架的Windows和Linux服务器平台上性能最好的JVM. 他提高了企业在软件和硬件方面的投资回报率. JRocket8.1提供管理图形化工具进行管理,监控,如下图所示,它还提供Java API 和JMX编程接口,可在应用程序中对它进行管理,监控.



JDBC

  • JDBC Assistants

    在WLS8.1中提供了很多配置助手,简化JDBC Pool, MultiPool,DataSource的配置

  • JDBC Connect Pool

    在WLS8.1中对JDBC Connect Pool增加了如下一些新属性

    1.ConnectionCreationRetryFrequencySeconds
    当创建数据库连接时,如果数据库不可用(如数据库没启动),隔多长时间试着重新创建该连接,WLS8.1会每隔ConnectionCreationRetryFrequencySeconds秒重试一次.直到JDBC POOL创建成功

    2.HighestNumWaiters
    -ConnectionReserveTimeoutSeconds
    在WLS8.1之前,当JDBC POOL中没有可用的连接时,这时如果应用要从JDBC POOL中获取一个连接,会得到Connection Unavailable SQL Exception,在WLS8.1中,你可以配置当JDBC Connect Pool中没有可用的连接时,应用等待ConnectionReserveTimeoutSeconds秒,再重试一次.最多可以有HighestNumWaiters个应用在等待.

    3.HighestNumUnavailable

    4.TestConnectionsOnCreate
    为了保证数据库连接的可用性,必须定时做连接的健康性检查,在WLS8.1中可以有两中检查方式:
    自动: 通过设置JDBCConnectionPoolMBean的属性来进行
    手工: 调用JDBCConnectionPoolRuntimeMBean的testPool()方法来进行
    在WLS8.1中的JDBCConnectionPoolMBean增加了
    HighestNumUnavailable和TestConnectionsOnCreate两个新属性.具体用法可参考联机文档.

    5.InactiveConnectionTimeoutSeconds具体用法可参考联机文档.

    6.InitSQL具体用法可参考联机文档.

    在WLS8.1中,大部分的JDBC Connect Pool的属性可以动态调整,而且不需要重新部署该JDBC Connect Pool.

  • 性能提高
    WLS8.1对部分内部实现进行重写,提高性能,修复以前的BUG,外部接口没改变,没有移植问题

  • 支持ROWSET
    WLS8.1支持ROWSET,采用ROWSET,应用从数据源取得数据后,可以断开与数据源的连接,对查询的结果集做更新,然后重新连接数据源以提交更新. RowSet采用优化的并发控制(optimistic concurrency)来保证数据的一致性,采用RowSets使应用不用长时间保持与数据库的连接.rowset对象还可以序列化.一个断开连接的rowset是传送数据给瘦客户机的理想工具.在WLS8.1中,可以把RowSet的schema保存成一个XML schema,然后根据XML schema把RowSet中的数据写到一个XML文件中.

  • 对Statement Cache做了增强
    当你在自己写的应用或EJB中采用prepared statement或callable statement时,WLS会把解析好的SQL语句放在statement cache中,以提高性能.WLS8.1对JDBC connection pools 中的statement cache做了增强,采用LRU(Least Recently Used)算法,Cache的大小可以动态调整, Cache的内容可以被动态清除.

    EJB

  • 编译部署更容易

    1. 在WLS8.1中,用APPC代替JSPC,EJBC. 用APPC可以编译WAR文件,EJB的JAR文件,EAR文件,使编译更方便,在编译时, APPC还可以对XML配置文件进行合法性检查
    2. 提供EJB 部署助手,简化EJB的部署,在CONSOLE中提供了更详细的性能监控信息
    3. 可以只对实现类进行更新
    WLS8.1之前的ClassLoader结构如下,只能对EJB整个进行更新,即使只更改了它的实现类




  • 自动检测数据库类型
    因为不同数据库厂家的SQL语法有些差别.在WLS8.1中,Entity EJB会自动检测数据库类型,并根据数据库的类型用于自动创建表结构,进行EJB QL编译.

  • 性能提高
    在WLS8.1中, 通过EJB bulk updates, optimistic concurrency, field groups, relationship caching, and EJB redeployment等技术来提高性能.使WLS8.1中EJB的性能比WLS7.0更好.

  • 对CMP Entity EJB提供批量操作功能
    在一个事务中, 经常需要更新、插入或删除一个表中的多条记录.采用CMP Entity EJB就要更新同一类型的多个Instance,EJB Container对每个EJB Instance都要做一个数据库更新操作,如果在一个事务中要更新一个表中的上千条记录.就要做上千次数据库来回操作.极大降低系统的性能.批量操作使EJB Container可以在一个SQL语句中同时对一个表的多条记录做操作, 避免多次存取数据库来提高性能. 批量操作采用PreparedStatement 中的批处理功能来实现.对CMP Entity EJB,在WLS7.0中只能进行批量的INSERT,在WLS8.1中支持批量的Update,Delete,与WLS7.0相比,性能提高 10%-20+%.
    批量操作,需要:EMP表的记录数*2 +2次数据库操作,如果EMP表有1000条记录,需要2002次数据库操作.而采用批操作,只需要4次数据库操作.foo() {
    Dept dept = DeptHome.create(deptNo, …);
    Iterator empNames = empNameList.iterator();
    while (empNames.hasNext()) {
    String empName = (String)iter.next();
    Emp emp = EmpHome.create(empName, …);
    dept.add(emp);
    emp.setSalary(emp.getSalary() + 100);
    }
    }
    要使用批量操作功能,只要把WebLogic-cmp-rdbms-jar.xml 中的enable-batch-operations设为True就可以了

    JMS

    在JMS方面,WLS8.1主要做了如下的增强和改进,使WLS JMS更方便使用

  • 主动过期(Active Expiration)
    WLS8.1之前的版本,当发现过期的消息(expired messages)时,把他们从系统中直接删除,WLS不会主动去查找过期的消息,这样会使过期的消息堆积,消耗系统的硬盘和内存空间.在WLS8.1可以设置定时主动去查找过期的消息.

  • 过期策略(Expiration Policies)
    WLS8.1之前当发现过期的消息( expired messages )时,直接把他们从系统中删除,WLS8.1中可以根据设置的过期的消息策略时,把他们从系统中删除,或记录LOG,或把它们转发到别的地方阻塞发送(Blocking Sends)
    WLS8.1之前,如果发送的消息超过JMS server 或JMS destination的接收空间,将抛出: ResourceAllocationException,WLS8.1采用阻塞发送方式,当出现上面的情况时,根据设置自动阻塞一段时间,然后再发送

  • 动态删除消息目的地(Dynamic Destination Deletion)
    WLS8.1之前允许删除JMS Destination但直到该JMS SERVER重新启动时,才真正删除
    在WLS8.1中,动态删除Destination可以使删除马上生效,不用重新启动JMS SERVER
  • 增强兼容性和易用性(J2EE Compatibility and Usability)
    WLS8.1中的JMS完全支持EJB2.0和J2EE1.3,在JSP,SERVLET,EJB中更容易使用.WLS8.1为JMS connection,session,producter实现了透明的池机制,性能更好.WLS8.1中的JMS和 foreign JMS providers可以自动参与分布式事务

  • 重发时仍然保持顺序(Ordered Redelivery)
    WLS8.1之前可以保证消息按顺序发送,但当事务回滚或调用Session.recover()需要重新发送消息时,不能保证也按顺序发送.在在WLS8.1中,在特定的条件下可以保证重发时仍然保持顺序.

  • 瘦客户端(Thin Client)
    把与JMS CLIENT 端无关的代码从JMS CLIENT端去掉,使JMS CLIENT端变小,变简 单.WLS8.1的JMS Client支持 RMI-IIOP.

  • 文件方式的存储性能更好(File Store Performance)
    在Solaris、Windows平台上当采用文件方式存储消息时,通过增加新的选项可以直接写硬盘.对某些应用,可以极大的提高性能

  • XA的使用更简单(XA Connection Factory Cleanup)
    XA Connection Factory 的使用更简单,以前Connection Factory有三个属性
    XAConnectionFactoryEnabled UserTransactionsEnabled XAServerEnabled控制XA的使用,现在只保留XAConnectionFactoryEnabled

  • 对 WLS JMS提供C API
    在WLS8.1中对JMS提供C接口,功能与JAVA接口一样,除了不支持WebLogic Server JMS extensions和JMS Object messages外.

    安全


    在安全性方面, ,WLS8.1主要做了如下增强:

  • 增强对Keystores和SSL的支持
    在WLS 6.x中,SSL私钥文件, Server的认证信息,CA证书只能保存在文件中.WLS7.0中,SSL私钥文件和CA证书可以保存在JDK Keystores 中,要通KeyStore providers来配置Keystores;Server认证信息仍然只能保存在文件中
    在WLS8.1中,提供SSL和Keystores配置助手,对SSL和Keystores 的配置更方便,SSL私钥文件和Server认证信息也保存在Keystores 中

  • 支持JCE
    Java平台为安全和加密服务提供了两组API:JCA和JCE。 JCA (Java Cryptography Architecture)提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器; JCE(Java Cryptography Extension) 在JCA的基础上作了扩展,包括加密算法、密钥交换、密钥产生和消息鉴别服务等接口。从WebLogic Server 7.0 SP2 开始支持JCE.通过支持JCE,使WLS可以支持SSL硬件加速器,支持硬件模式的KeyStore.LDAP Import/Export在WLS8.1中,可以在DOMAIN之间导入/导出安全域中的数据,安全域中的数据全部或部分导入/导出,这些操作都是在Console中进行

    Web Service

  • 支持WS-Security
    WLS8.1实现2002/08的WS-Security 标准,在WLS8.1中Web Service的安全包括以下三方面:
    消息安全:可以对发送的SOAP消息进行数字签名和数据加密
    传输安全:采用SSL保证Web Service的客户端与服务端之间的通讯安全
    存取安全:定义谁有权限访问某个Web Service

  • 支持异步调用方式
    WLS8.1支持异步调用方式,在执行ClientGen时加一个参数:
    generateAsyncMethods="True"
    ClientGen 自动生成下面的方法用于异步调用
    FutureResult startMethod (params, AsyncInfo asyncInfo);
    result endMethod (FutureResult futureResult);
    有3种使用方式: callback, blocking, non-blocking

  • 提供可靠消息传递
    可以在两个Server之间进行可靠消息传输,在发送端保存消息,接收方用异步调用方式来通知发送端,进行确认



  • 支持JMS
    默认情况下,WLS中WebService的客户端与服务端之间采用HTTP/S协议进行通讯,在WLS8.1中也可以采用JMS 方式进行通讯,只要在web-services.xml 中做如下更改就可以了.
    <web-service
    name="myJMSTransportWebService"
    jmsUri="JMSTransportFactory/JMSTransportQueue">
    />
    这样在生成的WSDL包括两部分:一部分为HTTP/S bingding,另一部分为JMS binding.
    Clientgent Ant 生成两个getPortXXX()方法,一个采用HTTP/S,另一个采用JMS.
    非WLS客户端,如.NET客户端,不能采用JMS方式.

  • 支持SOAP1.2
    在默认情况下,WLS8.1中的SOAP消息采用SOAP1.1格式,你也可以采用SOAP1.2消息格式.

  • 支持SAAJ1.1
    SAAJ1.1(SOAP With Attachments API For Java),使开发人员可以在符合SOAP1.1标准的消息中使用附件.

    开发

  • 在BEA Platfrom8.1中,提供了象VB一样容易使用的可视化开发工具WorkShop8.1.WorkShop为PlatForm提供一个集成的开发、调试、集成、预览环境. 采用基于控件(JAVA CONTROL)技术简化J2EE应用的开发难度,提高开发效率.



  • Borland公司为BEA WebLogic定制的Borland Jbuilder For BEA WebLogic Edition,使开发人员可以用他们熟悉的开发工具开发基于WebLogic Server的J2EE应用

  • 提供EJBGEN,APPC等工具简化应用的开发,编译.

    管理维护

    WLS8.1中对系统的管理维护更简单,效率更高,主要做了如下改进:

  • 在WLS8.1提供很多助手(Assistant)配置更简单,包括应用的部署, EJB部署,Jdbc Connect Pool配置,MultiPool配置,DataSource配置, SSL配置, KeyStores配置等
  • 对WebLogic.Admin 进行了扩展,提供更多的管理功能
  • 对config.xml文件做修改之前,自动做备份,对config.xml的管理更安全
  • 对CONSOLE的布局重新规划,更容易使用.在CONSOLE中能监控的内容更多,监控更容易
  • 对LOG的架构进行更新,可直接采用LOG API进行日志处理
  • 对系统的诊断和排错更方便

    WTC

    BEA WebLogic 可以通过WTC与BEA Tuxedo进行集成.在WLS8.1中,对WTC做了如下增强:

  • 提供更多的安全管理方式
    如果在TUXEDO中采用安全认证, 在WLS8.1中,WTC可以通过下面三种方式来提供用户信息:
    1.TPUSER plug-in-使用户可以用Tuexedo的tpuser 文件来提供用户信息
    2.LDAP plug-in-使用户可以用WLS8.1中的embedded LDAP Server上的提供的用户信息访问Tuxedo 8.1 .把Tuxedo 8.1 与WLS8.1的用户信息都放在一个地方- WLS8.1 embedded LDAP Server
    3.Custom-用户定制

  • 提供从WLEC 到 WTC 的移植指南,简化移植o支持异步调用 tpacall()oRuntime WTC ORB
  • 对FML Buffer增加了Fadd方法;提高了Fchg,Fdel的性能
  • 提供VIEW Buffer 的使用例子
     作者简介
    dev2dev ID: xcjing,BEA 资深技术顾问,加入BEA中国多年,在门户技术、RFID解决方案上有着丰富的经验。
    dot dot dot

    dot
      作者其它文章
    您对本文的评价
    您对这篇文章的看法如何?
    太棒了!5分 不错啊 4分 一般般 3分 有待提高 2分 不好 1分