|
|
dev2dev 首页 > 资源中心 > 技术文章
WebLogic Server8.1新功能介绍
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解决方案上有着丰富的经验。 |
作者其它文章
|
|
 |
|