Skip navigation.

Release Notes

  Previous Next vertical dots separating previous/next from contents/index/pdf Contents View as PDF   Get Adobe Reader

WebLogic Server 8.1 Features and Changes

Welcome to BEA WebLogic Server 8.1! As the leading application server, BEA WebLogic ServerTM implements J2EE 1.3 technologies, Web services, and other leading Internet standards to provide a reliable framework for highly available, scalable, and secure applications. WebLogic Server's seamless integration of disparate, heterogeneous platforms and applications enables your network to leverage existing software investments and share the enterprise-class services and data that are crucial to building mission-critical e-business applications.

The following sections describe the new features and major improvements made in the WebLogic Server 8.1 general release and its associated service packs.

 


What's New in WebLogic Server 8.1 SP6

This section details major differences between WebLogic Server 8.1 SP6 and earlier versions. It includes information about the following:

New Command for Purging DeploymentTaskRuntimeMBeans

You can use the PURGETASKS command, which is available in the weblogic.Admin tool to purge DeploymentTaskRuntimeMBeans on the server-side. Purging these tasks avoids any Deployer related memory leaks on the server-side. For more information, see "Command for Purging Tasks" in weblogic.Admin Command-Line Reference in WebLogic Server Command Reference.

CMP20 EJBs in WebLogic Server Support Automatic Primary Key Generation using Identity Columns for DB2

WebLogic Server supports automatic primary key generation for DB2 and Informix databases. For DB2, primary keys can be automatically generated using sequences or using identity column. Now, support for using identity column is also available.

Use DB2_IDENTITY as <generator-type> in the CMP deployment descriptor to use this feature.

Optimized CLOB Column Insertion on Oracle 10g

The Oracle 9i and 10g drivers have different requirements for successful insertion of CLOB column values into database rows. The Oracle 9i driver requires that a database row is locked before a CLOB value can be inserted into it. As a result, on Oracle 9i, WebLogic Server does the following to insert a row that contains a CLOB column value into a table:

  1. Inserts a row with all values other than the CLOB column into the table.
  2. Issues a SELECT FOR UPDATE statement on the row created in step 1, above.
  3. Inserts the CLOB value into the row.

While these steps are necessary for successful insertion of a row that contains a CLOB column value on Oracle 9i, the steps cause an unnecessary performance hit on Oracle 10g. The Oracle 10g driver features improved handling of CLOBS and does not require a lock on a row before a CLOB column value can be inserted into it. On Oracle 10g, WebLogic Server uses a single INSERT statement to insert a row with a CLOB column value into a table, which results in increased performance of CMP EJBs.

Log file rotation has been enabled for Node Manager

Node Manager Log files can be rotated based on size or based on time. The type of rotation and other related properties need to be specified in NodeManager.properties using logFileRotationType. Valid values for the property are size and time.

For file size based rotation, specify SIZE as logFileRotationType and specify the size at which you want the file to be rotated using the logFileMinSize property. The default value is 5000 KB.

For time based rotation, specify TIME as logFileRotationType and specify the time interval at which you want the file to be rotated using the logFileTimeSpan property. The default value is 24 hours.

You can also limit the number of rotated files you want. That is, you can specify the number of old Log files that you want to retain using the isNumOfFilesLimited property. Set this property to true to delete some of the old rotated Log files.

WebLogic Server Type 4 JDBC Drivers

The following sections describe new features and changes for WebLogic Server Type 4 JDBC Drivers in this release:

For more information, see WebLogic Type 4 JDBC Drivers.

Changes for All Drivers

Changes for DB2

Changes for Informix

Changes for Oracle

Changes for SQL Server

Changes for Sybase

 


What's New in WebLogic Server 8.1 SP5

This section details major differences between WebLogic Server 8.1 SP5 and earlier versions. It includes information about the following:

Enhanced Support for Oracle RAC

XA Call Retry for Oracle RAC

Occasionally, when one RAC node fails, there may be a delay before the transaction branch on the failed node becomes available on other nodes in the RAC cluster. This prevents incomplete transactions from being properly completed, which could further result in unresolved database locks or data loss. To protect against the potential consequences of such a delay, WebLogic Server provides two configuration attributes that will enable XA call retry for Oracle RAC: XARetryDurationSeconds and XARetryIntervalSeconds. These attributes enable the WebLogic Server transaction manager to retry XA recover, commit, and rollback calls for the specified amount of time to compensate for potential RAC failover delays. For more information, see http://e-docs.bea.com/wls/docs81/jdbc/oracle_rac.html

Using MultiPools with Global Transactions

You can use MultiPools to connect WebLogic Server to multiple Oracle RAC nodes. First configure a JDBC connection pool for each RAC instance in your RAC cluster with the Oracle Thin driver. Then configure a MultiPool using either the algorithm for load balancing or the algorithm for high availability and add the connection pools to the MultiPool. For information, see "Configuration Options in WebLogic Server with Oracle RAC" in Programming WebLogic JDBC.

A MultiPool "pins" a transaction to one and only one Oracle RAC instance and failover is handled at the MultiPool level when a RAC instance becomes unavailable. If there is a failure on a RAC instance before PREPARE, the operation is retried until the retry duration has expired. If there is a failure after PREPARE the transaction is failed over to another instance.

Note: MultiPools with global (XA) connections are supported only when used with Oracle RAC.

For more information see: http://e-docs.bea.com/wls/docs81/jdbc/oracle_rac.html

Administration Console Changes

DISCOVERMANAGEDSERVER

The WebLogic Administration Console has a new option, DISCOVERMANAGEDSERVER. Selecting this option allows you to re-establish administrative control over Managed Servers after an Administration Server has already started. This option has been provided on the domain -> control page.

SocketBufferSizeAsChunkSize

The SocketBufferSizeAsChunkSize attribute has been added to the Server > Configuration > Tuning tab. Enabling this attribute sets the WebLogic Server buffer size, for sending or receiving data through a raw socket, to 4KB.

When this attribute is disabled, the Operating System determines the buffer size.

Note: While use of this option can help improve performance on some Operating Systems, it is not guaranteed and hence, not recommended. Performance improvements are dependent on the Operating System hosting the server.

Optimistic Concurrency for EJBs

The `select for updates' operation is no longer used for optimistic concurrency EJBs that use Oracle drivers that implement the proprietary sendBatch() API. As a result, for optimistic failures, it is no longer possible to report errors at the pk level.

HTTP GET Request Limit

Earlier, when the ISAPI plug-in for WebLogic Server encountered a HTTP GET request larger than 4096 bytes, the `request too long: XXXX, max is 4096' error was recorded in the wlproxy log files. This limitation no longer exists and the ISAPI plug-in for WebLogic Server now accommodates requests of all sizes.

Bypassing Compilation Errors in JSP

A -k option has been introduced in appc to ensure JSP compiles even after a compilation error is encountered. For wlappc tasks, the continueCompilation attribute has been added.

J-Integra Version

WebLogic Server now includes JCOM with J-Integra 2.3.

RSA Libraries

WebLogic Server ships with the RSA Crypto-J 3.5 library. Check the validation lists at http://csrc.nist.gov/cryptval/ for FIPS140 compliance status.

Form-based Authentication over HTTPS

You can now enable form-based authentication over HTTPS even if cookies are disabled in the browser. However, enabling this feature forces the browser to display the Authorization Cookie as part of the URL. To enable this feature, add the:

-Dweblogic.http.AuthCookieURLRewritingEnabled=true

flag to the WebLogic start script.

Limiting Number of Concurrent Requests for a Session

The weblogic.http.session.maxConcurrentRequest property has been added to limit the number of concurrent requests for a session. If the number of concurrent requests for a given session exceeds the specified value, the servlet container will start rejecting requests. By default, this property is set to -1, which indicates the servlet container does not impose any restrictions.

Option for Warning Message BEA-012034

BEA-012034 can now be disabled using the <disable-element> in weblogic-ejb-jar.xml.

Accessing the Java weblogic.marathon.ddinit.EarInit Method in a Multi-User Environment

Prior to WebLogic Server 8.1 SP5, using the java weblogic.marathon.ddinit.EarInit method in a multi-user environment resulted in access issues for the temporary directory created by the method. And, only one user could write to the temporary directory at any given time.

You can now specify your own temporary directory using the -Dmarathon.tmpdir flag when you invoke the weblogic.marathon.ddinit.EarInit method.

Behavior of InitialContext

The behavior of InitialContext has changed, resulting in increased memory allocation. If you create an InitialContext in the threads created by your application, you must subsequently close that Context to release resources and avoid any potential memory leaks.

See Programming WebLogic JNDI for more information.

Custom Classloader Structure with Iterative Development

When a new classloader-structure element is added as a leaf node anywhere in the existing class-loader hierarchy, then the module added to the new classloader-structure can be deployed without redeploying the entire application. However, when deleting or rearranging the existing classloader-structure element within the hierarchy, the entire application should be redeployed.

When you add new module-uri(s) to an existing classloader-structure, ensure that it is added only after the existing module-uri(s). New module(s) can be deployed without redeploying the entire application. However, when moving or deleting module-uri(s) across classloader-structure elements, ensure that you redeploy the entire application.

 


What's New in WebLogic Server 8.1 SP4

This section details major differences between WebLogic Server 8.1 SP4 and earlier versions. This section includes information about the following:

Patch to Provide XA Support for Oracle RAC

If you are using WebLogic Server 8.1SP4 with Oracle 9i Real Application Clusters (RAC) or Oracle 10g RAC, you should download and install the patch at http://dev2dev.bea.com/wlserver/patch/wls81sp4_MP_OracleRAC_patch.html

This patch includes resolutions for issues described in Oracle's bug 3428146 and 395790. In some failure conditions, there is a window of time in which transaction branches and the data associated with them are not available across the RAC cluster, which prevents incomplete transactions from being properly completed, which may result in database deadlocks or data loss. To work around these issues, BEA added the XARetryDurationSeconds attribute to the JDBC connection pool configuration. This attribute enables the WebLogic Server transaction manager to retry XA recover, commit, and rollback calls for the specified amount of time to compensate for potential RAC failover delays.

In addition, this patch supports the use of WebLogic JDBC MultiPools for applications using global transactions (XA). MultiPools offer database connection failover without the limitations and known issues associated with a connection pool configuration using connect-time failover. MultiPools also offer load balancing for XA, and additional features such as callbacks and automatic failback.

Note: If you have already installed the Oracle 9i RAC patch (wlplat81sp4_Oracle9iRAC_patch.jsp) BEA recommends replacing that patch with this one regardless whether you plan to use MultiPools. This patch contains all the fixes included in the Oracle 9i RAC patch and will be the patch updated for WLS if future updates are needed.

Patch Configuration Requirements

After installing this patch, you must update your domain configuration. For more information about updating your domain configuration, see Enable XA Call Retry for Oracle RAC.

If you are using WebLogic Server 8.1SP3 with Oracle 9i RAC, BEA recommends that you upgrade to WebLogic Server 8.1SP4 and apply the wlplat81sp4_Oracle10gRAC_patch.

See "XA Considerations and Limitations with Oracle 9i RAC" in Programming WebLogic JDBC for configuration details and known limitations when using WebLogic Server with Oracle 9i RAC.

For more information about Oracle RAC limitations, contact Oracle.

For the latest information on the hardware and software platforms supported by WebLogic Server and BEA WebLogic PlatformTM, see Supported Configurations.

JDBC MultiPool Configuration for WebLogic Server with Oracle RAC

To use MultiPools to connect WebLogic Server to multiple Oracle RAC nodes, first configure a JDBC connection pool for each RAC instance in your RAC cluster with the Oracle Thin driver. Then configure a MultiPool using either the algorithm for load balancing or the algorithm for high availability and add the connection pools to the MultiPool.You can use the Administration Console or any other means that you prefer to configure your domain, such as the weblogic.Admin command line utility, the Weblogic Scripting Tool (WLST), or a JMX program. For information, see "Configuration Options in WebLogic Server with Oracle RAC" in Programming WebLogic JDBC.

Enable XA Call Retry for Oracle RAC

Occasionally, when one RAC node fails over to another, there may be a delay before the transaction branches on the now failed node, and the data associated with them, are available throughout the cluster. This prevents incomplete transactions from being properly completed, which could further result in unresolved database locks or data loss. To protect against the potential consequences of such a delay, WebLogic Server provides two configuration attributes that will enable XA call retry for Oracle RAC: XARetryDurationSeconds and XARetryIntervalSeconds.

To enable XA call retries, add a value for the XARetryDurationSeconds attribute to all JDBC connection pools in your WebLogic domain that connect to an Oracle RAC instance. For example:

<JDBCConnectionPool 
Name="oracleRACPool"
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
...
XARetryDurationSeconds=480
/>

Note: The XARetryDurationSeconds attribute is not available in the Administration Console. To enable this feature, you must manually edit your config.xml file or change the configuration using the weblogic.Admin command line utility or a JMX program.

Use the following formula to determine the value for XARetryDurationSeconds:

XARetryDurationSeconds = (longest transaction timeout for transactions that use connections from the connection pool) + (delay before XIDs are available on all RAC nodes, typically less than 5 minutes)

For example, if your application sets the longest transaction timeout as 180 seconds, you should set XARetryDurationSeconds to 180 seconds + 300 seconds, for a total of 480 seconds.

Note: It is generally better to set XARetryDurationSeconds higher than minimally necessary to make sure that all transactions are completed properly. Setting the value higher than minimally required should not affect application performance during normal operations. The additional processing only affects transactions that have been prepared but have failed to complete.

You can also optionally set a value for the XARetryIntervalSeconds attribute. This value determines the time between XA retry calls. By default, the value is 60 seconds. Decreasing the value will decrease the amount of time between XA retry attempts. The default value should suffice in most cases.

Patch to Support Use with Oracle 9i RAC

If you are using WebLogic Server 8.1SP4 with Oracle 9i Real Application Clusters (RAC), you should download and install the patch at http://commerce.bea.com/d2d/wlplat81sp4_Oracle9iRAC_patch.jsp

This patch includes resolutions for issues described in Oracle's bug 3428146 and 395790. In some failure conditions, there is a window of time in which transaction IDs are not available across the RAC cluster, which prevents incomplete transactions from being properly completed, which further results in deadlocks in the database. To work around these issues, BEA added the XARetryDurationSeconds attribute to the JDBC connection pool configuration. This attribute enables the WebLogic Server transaction manager to retry XA recover, commit, and rollback calls for the specified amount of time to compensate for potential RAC failover delays.

Configuration for the wlplat81sp4_Oracle9iRAC_patch described here is in addition to other configuration requirements in WebLogic Server and in the Oracle RAC cluster. For more details about configuring WebLogic Server to connect to an Oracle RAC database, see "Using WebLogic Server with Oracle RAC" in Programming WebLogic JDBC.

Patch Configuration Requirements

After installing this patch, you must update your domain configuration. See the following sections for more details:

If you are using WebLogic Server 8.1SP3 with Oracle 9i RAC, BEA recommends that you upgrade to WebLogic Server 8.1SP4 and apply the wlplat81sp4_Oracle9iRAC_patch.

See "XA Considerations and Limitations with Oracle RAC" in Programming WebLogic JDBC for configuration details and known limitations when using WebLogic Server with Oracle RAC.

For more information about Oracle RAC limitations, contact Oracle.

For the latest information on the hardware and software platforms supported by WebLogic Server and WebLogic Platform, see Supported Configurations.

Enable XA Call Retry

To enable XA call retries, add a value for the XARetryDurationSeconds attribute to all JDBC connection pools in your WebLogic domain that connect to an Oracle RAC instance. For example:

<JDBCConnectionPool 
Name="oracleRACPool"
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
...
XARetryDurationSeconds=480
/>

Note: The XARetryDurationSeconds attribute is not available in the Administration Console. To enable this feature, you must manually edit your config.xml file or change the configuration using the weblogic.Admin command line utility or a JMX program.

Use the following formula to determine the value for XARetryDurationSeconds:

XARetryDurationSeconds = (longest transaction timeout for transactions that use connections from the connection pool) + (delay before XIDs are available on all RAC nodes, typically less than 5 minutes)

For example, if your application sets the longest transaction timeout as 180 seconds, you should set XARetryDurationSeconds to 180 seconds + 300 seconds, for a total of 480 seconds.

Note: It is generally better to set XARetryDurationSeconds higher than minimally necessary to make sure that all transactions are completed properly. Setting the value higher than minimally required should not affect application performance during normal operations. The additional processing only affects transactions that have been prepared but have failed to complete.

You can also optionally set a value for the XARetryIntervalSeconds attribute. This value determines the time between XA retry calls. By default, the value is 60 seconds. Decreasing the value will decrease the amount of time between XA retry attempts. The default value should suffice in most cases.

Target Connection Pools to All Servers

With this patch, all JDBC connection pool/data source pairs that connect to an Oracle RAC instance must be targeted to all WebLogic Server instances that participate in global transactions for which RAC is a participant.

During server startup, if a resource checkpoint is read from the transaction log, and the resource is found to be available on another server, then it is possible that recovery for that resource can complete before the resource is registered locally. If the resource is configured without the XARetryDurationSeconds attribute, recovery for the resource will complete without XA call retries, which can result in deadlocked data. By targeting the connection pool to all relevant WebLogic Server instances, XA call retries will be initiated on any server that performs the recovery.

For instructions about targeting a data source and connection pool, see the following sections in the Administration Console Online Help:

WebLogic Type 4 JDBC Drivers

In WebLogic Server 8.1SP4, the WebLogic Type 4 JDBC drivers were updated. The drivers now include the following new enhancements and features. For more information, see WebLogic Type 4 JDBC Drivers.

All Drivers

The following enhancements were made to all WebLogic Type 4 JDBC drivers:

DB2 Driver

At the time of the WebLogic Server 8.1SP4 release, WebLogic Server was not certified for use with DB2. The DB2 driver was not included in the WebLogic Server 8.1SP4 distribution. A patch is now available for WebLogic Server Service Pack 4 at the following URL:

http://dev2dev.bea.com/products/wlplatform81/patch/wlplat81sp4_db2_patch.jsp

Informix Driver

- The Order in which the month, day, and year fields appear in a date string

- The Year field to contain two or four digits

- The Separator character used to separate the date fields

SQL Server Driver

Oracle Driver

Sybase Driver

EJB Features

Dynamic Finders

Dynamic Finders can now use the relationship-caching feature. The dynamic finders need to be constructed as follows:

Query query = qh.createQuery();

Properties props = new Properties();

props.setProperty("GROUP_NAME", "byNameGroup");

props.setProperty("SQL_SELECT_DISTINCT", "true");

props.setProperty("RELATIONSHIP_CACHING_NAME", "cacheMoreBeans");

Collection results = query.find(ejbql, props);

You can set both field-group as and relationship-caching on the dynamic query.

PreparedQuery Interface

The PreparedQuery public interface that extends the QueryProperties interface has been added to the weblogic.ejb package. For more information, see http://e-docs.bea.com/wls/docs81/javadocs/weblogic/ejb/PreparedQuery.html

Security Features

Trust Manager

WebLogic Server 8.1 now has a property that can override the default TrustManager implementation. When this property is set, the custom TrustManager is called instead of the default WebLogic Server TrustManager.

The custom TrustManager may behave differently and cause certificate validation to fail or succeed for different reasons. The custom TrustManager is used for incoming connections and not for outgoing connections. It should be tested with incoming connections.

Future releases of WebLogic Server may provide a different implementation for custom TrustManager functionality.

LDAP

WebLogic Server has a new property, (servername).membership.directmembershiponly, that can be specified when configuring the LDAPrealm v2. The (servername) can be the name of any server or can be left blank.

If this property is set to true, the LDAP search filter will only list the members of a group who are direct members to the group. For example, if User X belongs to Group G1 and Group G1 belongs to Group G2, only Group G1 will be listed if this property is set to true. By default, this property is set to false.

Encryption Utility

There is a new weblogic.security.Encrypt utility that encrypts cleartext strings for use with WebLogic Server. The utility uses the encryption service of the current directory, or the encryption service for a specified WebLogic Server domain root directory.

Single Pass Identity Assertion

Single Pass Identity Assertion provider allows single sign-on with desktop clients.

Servlet Features

WebAppServletContext.getResourcePaths() now returns both directories and files under the web-app root directory as well as any virtual directories configured in the weblogic.xml for the web-app.

 


What's New in WebLogic Server 8.1 SP3

This section details major differences between WebLogic Server 8.1 SP3 and earlier versions. This section includes information about the following:

New SDKs Bundled with WebLogic Platform 8.1

The WebLogic Platform 8.1 SP3 installation includes new versions of the Java 2 SDKs:

If you are upgrading a WebLogic domain from 8.1 SP2 to 8.1 SP3, You need to modify the domain startup script to point to the location in which the new SDK was installed. This script is located in the domain's root directory. Depending on the type of domain you are upgrading, this script by default is named either setDomainEnv or startWebLogic.

To modify this script, update the value of the JAVA_HOME variable. For example:

set JAVA_HOME=C:\bea\jrockit81sp3_142_04

It is also recommended that you update your BEA WebLogic Workshop® applications, application startup scripts, and silent configuration scripts to reference the new Sun or JRockit SDK directory. For information about updating your Weblogic Workshop applications to use the new SDK, see the WebLogic Platform Upgrade FAQ.

For more information about the changes between Sun JVM 1.4.1 and 1.4.2, see Enhancements and Changes in Java 2 SDK v1.4.2 at the Sun Microsystems Web site, at the following URL: http://java.sun.com/j2se/1.4.2/changes.html

WebLogic Server Process Edition

WebLogic Server Process Edition is a new product offering that provides a unified solution for developing process-based applications that run in the WebLogic Server environment. You can use WebLogic Server Process Edition to build and execute process-based applications without having to purchase a full BEA WebLogic IntegrationTM license.

WebLogic Server Process Edition includes the following components:

For more information, see the WebLogic Server Process Edition documentation.

Web Services Features

WebLogic Server 8.1 Service Pack 3 includes the following new and changed Web Service features.

Implementation of the Final 1.0 OASIS Web Services Security Specification

WebLogic Web Services now implement the following OASIS Standard 1.0 Web Services Security specifications, dated April 6, 2004:

WebLogic Server Service Pack 2 implemented a Working Draft Version 1.0 of the specification.

The final implementation of the Web Services Security specification is not compatible with the implementations in Service Pack 2 and previous versions. This means, for example, that a client application that uses the Service Pack 2 (or previous) WebLogic Web Services security APIs to digitally sign or encrypt a SOAP message cannot invoke a message-level secured Web Service deployed on a Service Pack 3 WebLogic Server instance. The reverse is also true: a client application using the Service Pack 3 WebLogic Web Services security APIs cannot invoke a secure Web Service deployed on a Service Pack 2 or previous WebLogic Server instance.

This lack of compatibility results from changes between the two versions of the Web Services Security specification that were implemented in Service Packs 2 and 3. In particular, the working draft specification of April 2002 specified that certain attributes of the security header in a SOAP message use Qname values. The final April 2004 version of the specification, however, specified that those attributes use URI values instead. This change makes SOAP security consistent with other security specifications, such as XML Digital Signatures, XML Encryption, and SAML.

See Configuring Message-Level Security (Digital Signatures and Encryption) at {DOCROOT}/webserv/security.html#message_level_security for details.

HTTPBindingInfo API For SSL Socket Sharing

You can now use the weblogic.webservice.binding.https.HttpsBindingInfo SSL binding API, in addition to system properties, to programmatically enable socket sharing from within your SSL Web Services client application.

See Using SSL Socket Sharing When Using the WebLogic SSL Implementation at {DOCROOT}/webserv/security.html#ssl_socket_sharing for details.

New wsdl2Service Attribute to Generate a Skeleton Implementation Class

The wsdl2Service Ant task has a new attribute (generateImpl) that specifies, when set to True, that the Ant task should generate an empty implementation class, in addition to a Java interface that represents the implementation of your Web Service based on the WSDL file.

See wsdl2Service at {DOCROOT}/webserv/anttasks.html#wsdl2Service for details.

New servicegen and source2wsdd Attribute to Ignore Authorization Header in SOAP Request

The servicegen and source2wsdd Ant tasks have a new attribute (ignoreAuthHeader) that specifies, when set to True, that the Web Service should ignore the Authorization HTTP header in the SOAP request.

See servicegen at {DOCROOT}/webserv/anttasks.html#servicegen and source2wsdd at {DOCROOT}/webserv/anttasks.html#source2wsdd for details.

WebLogic XML Digital Signatures API

The WebLogic XML Digital Signature API contains classes to digitally sign and validate SOAP messages.

See Using the WebLogic XML Digital Signatures API at {DOCROOT}/xml/xml_xpath.html#xml_dig_sig_api for more details.

WebLogic Web Service Security API to Add a Timestamp to a SOAP Message

The weblogic.xml.security.wsse.Security API has a new method, addTimestamp(), which you can use when invoking a secure non-WebLogic Web Service to add a timestamp, and optional expiration date, to the security element of the SOAP request.

For more information, see the updated example in Writing the Java Code to Invoke a Secure Non-WebLogic Web Service at {DOCROOT}/webserv/security.html#invoke_secure_non_wls_service.

Change in clientgen Behavior Due to Stricter Compliance With WS-I

The clientgen Ant task now strictly enforces the required sections of the Web Services Interoperability (WS-I) Basic Profile Version 1.0 specification, resulting in changed behavior from previous versions of WebLogic Web Services.

For example, section 5.6.16 of the WS-I specification states that the <fault> element in a WSDL file must include the name attribute. Previously, the clientgen Ant task would successfully complete when run against a WSDL file that did not comply with this section of the specification; in 8.1, however, the Ant task fails with the following error:

[clientgen] Generating client jar for myWSDL.wsdl ...
[clientgen] weblogic.webservice.tools.wsdlp.WSDLParseException: ERROR[WSDL Parser]:There is no name 
attribute found for soap:fault in binding operation <operation name="myOperation">

A consequence of this stricter compliance is that clientgen may now fail when run against the automatically-generated WSDL of a 7.0 WebLogic Web Service. This is because 7.0 WebLogic Web Services did not strictly comply with WS-I, and the generated WSDL did not include the name attribute in the <fault> element.

The workaround to this problem is to either manually update the WSDL to comply with WS-I, or to use portable stubs.

JDBC Features

WebLogic Server 8.1 Service Pack 3 includes the following new JDBC features and changes.

WebLogic Server 8.1SP3 Certified with Oracle 9i RAC on HP-UX

WebLogic Server 8.1SP3 is certified for use with Oracle 9i RAC on HP-UX 11 and 11i. See "Using WebLogic Server with Oracle RAC" in Programming WebLogic JDBC for configuration details and requirements. Also see Supported Configurations for details and updates about certified versions.

Deprecation of WebLogic jDriver for Oracle

With the WebLogic Server 8.1 SP3 release, the BEA WebLogic JDriverTM for Oracle is deprecated. The driver will be removed in a future release. BEA recommends that you use a different WebLogic JDBC driver to connect to your Oracle database. For information about supported database versions and drivers, see "Supported Database Configurations" in Supported Configurations for WebLogic Platform 8.1.

Oracle 10g JDBC Thin Driver

In WebLogic Server 8.1 SP3, the Oracle 10g (10.1.0.2.0) version of the Oracle Thin driver was added to the release and is now the default version of the Oracle Thin driver. For more details about using the Oracle Thin driver with WebLogic Server, "Using Third-Party Drivers with WebLogic Server" in Programming WebLogic JDBC.

For Globalization Support with this version of the driver, Oracle supplies the orai18n.jar file, which replaces nls_charset.zip. If you use character sets other than US7ASCII, WE8DEC, WE8ISO8859P1 and UTF8 with CHAR and NCHAR data in Oracle object types and collections, you must include orai18n.jar in your CLASSPATH. orai18n.jar is not installed with WebLogic Server. You can download it from the Oracle Web site.

Note: The Oracle 10g Thin driver has a batch size limit of 1682 operations. In previous versions of the Oracle Thin driver, there was no apparent size limit. If your application runs very large batch operations, you may see batch failures. To work around this issue, limit your batch size to 1682 or use the 9.2.0 version of the Oracle Thin driver. Oracle recommends batch sizes of between 5 and 30.

Updated WebLogic Type 4 JDBC Drivers

WebLogic Server 8.1 SP3 includes updates to the WebLogic Type 4 JDBC drivers. The updated drivers resolve some important issues.

Note: If you use the XA WebLogic Type 4 MS SQL Server JDBC Driver in global transactions (through JTA), you must reinstall the Microsoft SQL Server JDBC XA procedures after installing the Weblogic Server service pack. See "Installing Stored Procedures for JTA" in BEA WebLogic Type 4 JDBC Drivers.

Multiple JNDI Names for Data Sources

In WebLogic Server 8.1SP3 and later releases, you can configure a data source so that it binds to the JNDI tree with multiple names. You can use a multi-named data source in place of configuring multiple data sources that point to a single JDBC connection pool.

For more details, see "Binding a Data Source to the JNDI Tree with Multiple Names" in the Administration Console Online Help.

PinnedToThread Connection Pool Property to Increase Performance

To minimize the time it takes for an application to reserve a database connection from a connection pool and to eliminate contention between threads for a database connection, you can add the PinnedToThread property in the connection Properties list for the connection pool, and set its value to true.

When PinnedToThread is enabled, WebLogic Server pins a database connection from the connection pool to an execution thread the first time an application uses the thread to reserve a connection. When the application finishes using the connection and calls connection.close(), which otherwise returns the connection to the connection pool, WebLogic Server keeps the connection with the execute thread and does not return it to the connection pool. When an application subsequently requests a connection using the same execute thread, WebLogic Server provides the connection already reserved by the thread. There is no locking contention on the connection pool that occurs when multiple threads attempt to reserve a connection at the same time and there is no contention for threads that attempt to reserve the same connection from a limited number of database connections.

For more details, see "Increasing Performance with the PinnedToThread JDBC Connection Pool Property" in the Administration Console Online Help.

JDBC MultiPool Failover Enhancements

In WebLogic Server 8.1SP3, the following enhancements were made to JDBC MultiPools:

See "MultiPool Failover Enhancements" in Programming WebLogic JDBC for more details.

JDBC Connection Pool Testing Enhancements

In WebLogic Server 8.1SP3, the following features were added to JDBC connection pools to improve the functionality of database connection testing for pooled connections and to minimize delays in connection request handling:

To enable these features, you add the attributes to the JDBCConnectionPool object in the config.xml file. Both attributes also require that TestConnectionsOnReserve is set to true and that a value is provided for TestTableName. See "JDBC Connection Pool Testing Enhancements" in Programming WebLogic JDBC for more information.

Connection Profiling for Troubleshooting Transaction Remnants on a JDBC Connection

In WebLogic Server 8.1SP3, the ConnProfileEnabled attribute was added to the JDBC connection pool configuration. When set to true, WebLogic Server stores the stack trace whenever a connection is released back into the connection pool. If an exception is thrown during a subsequent operation on the connection related to global (XA) transactions, WebLogic Server reports this stack trace with the exception.

You can use this feature to detect local transaction work left incomplete by application code, which can interfere with subsequent global (XA) transaction operations on the JDBC connection.

This feature uses more resources than normal connection pool operations and will likely degrade connection pool performance, so it is not recommended for production use. Also, this feature does not apply to connections created with a non-XA JDBC driver.

You can configure this attribute with the Enable Connection Profiling attribute on the JDBC Connection Pool -> Configuration -> Connections tab in the Administration Console or directly in the config.xml file. For example:

<JDBCConnectionPool 
ConnProfilingEnabled="true"
DriverName="weblogic.jdbcx.oracle.OracleDataSource"
Name="MyJDBC Connection Pool"
Password="{3DES}GNkMrpAbFqBKQp7N8JXy+/NE0qhBW+SU"
Properties="user=scott;portNumber=1521;SID=demo;serverName=dbserver1"
URL="jdbc:bea:oracle://dbserver1:1521"
/>

Note: Line breaks added for readability.

Support for XAResource Transaction Timeout

The WebLogic Server Transaction Manager now supports setting a transaction branch timeout value on a participating XA resource if the resource manager supports the javax.transaction.xa.XAResource.setTransactionTimeout() method. You may want to set a transaction branch timeout if you have long-running transactions that exceed the default timeout value on the XA resource.

For the WebLogic Server Transaction Manager to set the transaction timeout on a JDBC XA resource, specify a value for the following properties in the JDBC connection pool tag in the config.xml file:

These properties apply to connection pools that use an XA JDBC driver to create database connections only. They are ignored if a non-XA JDBC driver is used.

When these values are set, the WebLogic Server Transaction Manager calls XAResource.setTransactionTimeout() as described above. The implementation of the method in the XA resource manager (for example, an XA JDBC driver) or the XA resource determines how the value is used. For example, for Oracle, the setTransactionTimeout() method sets the Session Timeout (SesTm), which acts as a maximum idle time for a transaction. The behavior may be different for other XA Resources.

The XASetTransactionTimeout and XATransactionTimeout properties are not available in the Administration Console. You must add them to the config.xml file while the domain is not active. For example:

<JDBCConnectionPool 
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
Name="oraclePool"
Password="{3DES}8YdvP4FQW3k="
Properties="user=SCOTT"
URL="jdbc:oracle:thin:@server:port:sid"
XASetTransactionTimeout="true"
XATransactionTimeout="120"
/>

SQL Statement Timeout Enhancements for Pooled JDBC Connections

In WebLogic Server 8.1SP3, the following attributes were added to JDBC connection pools to enable you to limit the amount of time that a statement can execute on a database connection from a JDBC connection pool:

For more information, see "SQL Statement Timeout Enhancements for Pooled JDBC Connections" in Programming WebLogic JDBC.

Note: These attributes are not available in the Administration Console. You must manually edit the config.xml file to enable these features.

WebDAV Support

WebLogic Server proxy plug-ins restrict the HTTP commands that can be submitted from the client to the server. The validation rules in the plug-in code now allow the following HTTP commands that are needed for WebDAV implementations:

DELETE

GET

HEAD

OPTIONS

POST

PUT

*COPY

LOCK

MKCOL

MOVE

PROPFIND

PROPPATCH

SEARCH

UNLOCK

Security Features

In WebLogic Server 8.1 SP3, the following features were added to security:

WAPEnabled Attribute for HTTP Sessions

The WAPEnabled attribute in the Administration Console (Servers—>servername—>Protocols—>HTTP—>Advanced Options—>WAP Enabled) restricts the size and format of a session ID so session tracking can be used with WAP devices. It now works correctly when defining the HTTP settings for the WebLogic Server instance; in previous versions, checking the box had no affect.

See URL Rewriting and Wireless Access Protocol (WAP) at {DOCROOT}/webapp/sessions.html#wap.

WebLogic Tuxedo Connector (WTC) Features

In BEA WebLogic Tuxedo ConnectorTM 8.1 SP3, the following features were added:

 


What's New in WebLogic Server 8.1 SP2

This section details major differences between WebLogic Server 8.1 SP2 and earlier versions. This section includes information about the following:

Patch Available for Sun Java 2 1.4.2 SDK, Oracle 10g Driver, and SQL Server, Sybase or DB2 Database Users

If you are using WebLogic Server or WebLogic Platform 8.1 SP2 with the Sun Java 2 1.4.2 SDK, or the Oracle 10g driver, or a SQL Server, Sybase or DB2 database, you may need to install the WebLogic Platform 8.1 SP2 SDK1.4.2/Oracle10gdriver/Database patch. This patch, and a description of the specific configurations that require it, are available at the following dev2dev Web site:

http://dev2dev.bea.com/products/wlplatform81/patch/wlplat81sp2_patch.jsp

Configurable Directory for Custom Security Provider MBean Types

WL_HOME\server\lib\mbeantypes is the default directory for installing MBean types. However, if you want WebLogic Server to look for MBean types in additional directories, you can now use the -Dweblogic.alternateTypesDirectory=<dir> command-line flag when starting your server.

See the "Install the MBean Type Into the WebLogic Server Environment" sections in Developing Security Providers for WebLogic Server.

EJB Features

WebLogic Server 8.1 Service Pack 2 includes the following new EJB features.

EJB 2.0 WebLogic QL Extension for EJB QL Provides upper and lower Functions

The WebLogic QL upper and lower extensions convert the case of arguments to allow finder methods to return results that match the characters in a search expression but not the case. The case change is transient, for the purpose of string matching, and is not persisted in database. The underlying database must also support upper and lower functions.

upper

The upper function converts characters in its arguments from any case to upper case before string matching is performed. Use the upper function with an upper-case expression in a query to return all items that match the expression, regardless of case. For example:

select name from products where upper(name)='DETERGENT';

lower

The lower function converts characters in its arguments from any case to lower case before string matching is performed. Use the lower function with an lower-case expression in a query to return all items that match the expression, regardless of case.

select type from products where lower(name)='domestic';

EJBGen Distribution and Examples

As of WebLogic Server 8.1 SP2, EJBGen and associated classes are not included in weblogic.jar; instead, they are provided as a separate archive--ejbgen.jar in the WL_HOME/server/lib of the WebLogic Server distribution. To use EJBGen, put ejbgen.jar in your CLASSPATH.

JDBC Features

WebLogic Server 8.1 Service Pack 2 includes the following new JDBC features.

BEA WebLogic Type 4 JDBC Drivers for DB2, Informix, Oracle, and Sybase

WebLogic Server 8.1 SP2 includes JDBC drivers from BEA for connecting to DB2, Informix, Oracle, and Sybase databases. The new driver offers JDBC 3.0 compliance and support for some JDBC 2.0 extensions.

See BEA WebLogic Type 4 JDBC Drivers.

BEA WebLogic Type 4 JDBC Driver for MS SQL Server Enhancements

In WebLogic Server 8.1 SP2, the following enhancements were made to the WebLogic Type 4 JDBC Driver for MS SQL Server:

Timeouts for JDBC Connection Creation and Statement Execution

In WebLogic Server 8.1SP2, the following important features were added that help support JDBC connection pools in a high-availability environment:

You set the LoginTimeout property in the Properties list for a connection pool. After the LoginTimeout has elapsed, if the database connection cannot be created, the JDBC driver throws an SQL exception. See "Limiting Connection Creation Time with LoginTimeout" and connection properties for individual drivers in WebLogic Type 4 JDBC Drivers.

You set the StatementTimeout and TestStatementTimeout attributes in the config.xml entry for the JDBC connection pool. The values are in seconds. A value of -1 (the default) indicates that the statements will not timeout. For example:

<JDBCConnectionPool Name="testpool"
Password="{3DES}0zvizFP1" Targets="myserver"
InitialCapacity="10" MaxCapacity="10"
DriverName="weblogic.jdbc.oracle.OracleDriver"
Properties="user=john;SID=wls;PortNumber=1433;
serverName=oraclehost;LoginTimeout=60";
URL="jdbc:bea:oracle://oraclehost:1433"
StatementTimeout="60" TestStatementTimeout="30"
/>

Note: The StatementTimeout and TestStatementTimeout attributes rely on the JDBC driver implementation of the JDBC specification for Statement.setQueryTimeout(int seconds). Currently, only the WebLogic Type 4 JDBC drivers implement this method.

Also note that there is a known issue regarding this feature with the WebLogic Type 4 JDBC drivers. The drivers currently wait twice as long as specified before timing out the statement. For example, if the StatementTimeout is set to 30 seconds, the driver will not time out the statement until 60 seconds has elapsed. This issue is being tracked in CR124744.

Enhancements to the dbping Java Utility

In WebLogic Server 8.1SP2, the dbping Java utility was enhanced to support the new WebLogic Type 4 JDBC drivers included in this release. See "dbping" in the WebLogic Server Command Reference for more information.

Support for oracleConnection Methods

In WebLogic Server 8.1SP2, the following methods were added to support using Oracle Virtual Private Databases:

weblogic.jdbc.vendor.oracle.OracleConnection.setClientIdentifier(String)
weblogic.jdbc.vendor.oracle.OracleConnection.clearClientIdentifier(String)

These methods enable you to use Oracle Virtual Private Databases with a connection from a WebLogic JDBC connection pool and without requiring the underlying vendor connection. For more information, see "Programming with Oracle Virtual Private Databases" and "Tables of Oracle Extension Interfaces and Supported Methods" in Programming WebLogic JDBC.

Autocommit for XA JDBC Drivers

In WebLogic Server 8.1SP2, by default autocommit is set to false for all XA JDBC drivers.

User Configuration and User Key Files for weblogic.Admin and Ant Tasks

For any weblogic.Admin command that connects to a WebLogic Server instance, you must provide user credentials. You can now use the new STOREUSERCONFIG command to encrypt the user credentials instead of passing credentials directly on the command line or storing unencrypted credentials in scripts. See STOREUSERCONFIG in the WebLogic Server Command Reference for more information.

The weblogic.Deployer command, as well as the wldeploy and wlserver ant tasks, can also use credentials that were encrypted using the weblogic.Admin STOREUSERCONFIG command. See the Deployment Tools Reference and Using Ant Tasks to Configure a WebLogic Server Domain for more information.

viewj and viewj32 Enhancements

Customers expressed interest in using the Tuxedo control to connect a WebLogic application to an existing Tuxedo application that uses VIEWs. To enable this, three new options have been added to the viewj and viewj32 compilers (weblogic.wtc.jatmi.viewj and weblogic.wtc.jatmi.view32):

-bean_names

-compat_names

-modify_strings

See How to Use the viewj Compiler in the WebLogic Tuxedo Connector Programmer's Guide.

WebLogic Web Services Features

WebLogic Server 8.1 Service Pack 2 includes the following new Web Services features.

source2wsdd Meta-Data Tags

When you write the Java class or stateless session EJB that implements a WebLogic Web Service, you can now add optional meta-data tags (identified with the @wlws Javadoc tag) that describe what the Web Service looks like. You can then use the source2wsdd Ant task to generate the web-services.xml file automatically, which will reflect the value of any @wlws tags in the Java source file.

See source2wsdd Tag Reference at {DOCROOT}/webserv/wlws_tags.html.

Examples of Using WebLogic Workshop with WebLogic Web Services

The Programming WebLogic Web Services guide has a new section that describes examples and scenarios of using various technologies of WebLogic Platform (the Workshop IDE) to create WebLogic Web Services.

See Using WebLogic Workshop With WebLogic Web Services at {DOCROOT}/webserv/wlw.html.

 


What's New in WebLogic Server 8.1 SP1

This section details major differences between WebLogic Server 8.1 SP1 and earlier versions. This section includes information about the following:

Capacity Planning Documentation

BEA WebLogic Server runs on hardware ranging from low-end PCs to high-end mainframes. The process of determining what type of hardware and software configuration is required to meet application needs adequately is called capacity planning. This release of WebLogic Server includes the BEA WebLogic Server Capacity Planning Guide, which provides capacity planning requirements and uses the 8.1 MedRec application for benchmarking purposes.

JDBC Features

WebLogic Server 8.1 Service Pack 1 includes the following new JDBC features.

BEA WebLogic Type 4 JDBC Driver for Microsoft SQL Server

WebLogic Server 8.1 SP1 includes a new JDBC driver from BEA for connecting to a Microsoft SQL Server database. The BEA WebLogic Type 4 JDBC MS SQL Server driver replaces the WebLogic jDriver for Microsoft SQL Server, which is deprecated. The new driver offers JDBC 3.0 compliance, support for some JDBC 2.0 extensions, and better performance. BEA recommends that you use the new BEA WebLogic Type 4 JDBC MS SQL Server driver in place of the WebLogic jDriver for Microsoft SQL Server.

See BEA WebLogic Type 4 JDBC Drivers.

JDBC Connection Pool Property to Handle Erroneous Local Transactions

According to the SQL specification, any DDL or DML operation can potentially start a local transaction. It is the application's responsibility to commit or rollback these transactions. Previously, this was not a problem because JDBC drivers did not check for active local transactions before starting a global transaction, or for active global transactions before starting a local transaction. However, the Oracle Thin driver version 920 does check for local and global transactions before starting a new transaction of the other type (global or local), and throws an XAER_PROTO exception if an application (or WebLogic Server) tries to start a global transaction (XAResource.start()) on a connection when a local transaction is already active on the connection.

To work around this problem, you can set the rollbackLocalTxUponConnClose attribute on the JDBC connection pool to true. The Weblogic Server will call rollback() on the connection to clean up the connection before returning it to the connection pool. Enabling this attribute will have a performance impact because the rollback call requires communication with the database server.

To set the rollbackLocalTxUponConnClose attribute, you can use the setRollbackLocalTxUponConnClose() method on the JDBCConnectionPoolMBean or you can manually add it to the JDBCConnectionPool tag in the config.xml file. For example:

<JDBCConnectionPool 
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
Name="oraclePool"
Password="{3DES}8YdvP4FQW3k="
Properties="user=SCOTT"
URL="jdbc:oracle:thin:@server:port:sid"
RollbackLocalTxUponConnClose="true"/>

The RollbackLocalTxUponConnClose attribute is not available in the Administration Console.

Support for Oracle Virtual Private Databases

Starting with WebLogic Server 8.1 SP1, WebLogic Server provides support for Oracle Virtual Private Databases (VPDs). A VPD is an aggregation of server-enforced, application-defined fine-grained access control, combined with a secure application context in the Oracle 9i database server.

See "Programming with Oracle Virtual Private Databases" in Programming WebLogic JDBC.

New JSP Tag Added to the Console Extension Tag Library

A new JSP tag has been added to the Console Extension Tag Library that displays a standard BEA banner in your Administration Console extensions.

See <wl:standard-banner> Tag in Extending the Administration Console.

Optimized JMS Topic Subscriber Message Selectors

For a certain class of applications, WebLogic JMS can optimize topic subscriber message selectors significantly by indexing them. These applications have messages that contain one or more unique identifiers and thousands of subscribers that filter based on these identifiers.

A typical example is an instant messaging application where each subscriber corresponds to a different user, and each message contains a list of one or more target users.

See Indexing Topic Subscriber Message Selectors To Optimize Performance in Programming WebLogic JMS.

Specify Non-Anonymous Principals when EJB Container Passivates and Removes Beans

This release introduces two new security-related elements to the weblogic-ejb-jar.xml deployment descriptor. These new elements, passivate-as-principal-name and remove-as-principal-name, address ejbPassivate and ejbRemove failures due to security violations.

See passivate-as-principal-name and remove-as-principal-name in Programming WebLogic Enterprise JavaBeans.

Web Services Features

WebLogic Server 8.1 Service Pack 1 includes the following new Web Services features.

Per Operation Message Security

You can now specify more than one security specification in the web-services.xml deployment descriptor file, and associate different security specifications with the operations of a Web Service. Security specifications describe how SOAP messages, generated when a client application invokes a Web Service operation, should be encrypted and digitally signed.

You can also specify that the SOAP request of an invoke of a particular operation use a different security specification than the SOAP response.

See Associating an Operation With a Particular Security Specification.

Timestamps In SOAP Messages

When a client application invokes a WebLogic Web Service configured for message security (encryption or digital signatures), WebLogic Server automatically adds a timestamp to the SOAP response. Additionally, you can configure the Web Service to require a timestamp in the SOAP request, set expiration periods, and so on.

See Using Timestamps.

Implementing and Assembling a WebLogic Web Service From a Schema File

You can now implement and assemble a WebLogic Web Service starting from an XML Schema file, and preserve the XML Schema throughout the development process so that the WSDL of the deployed Web Service contains the original XML Schema.

See Assembling a Web Service Starting With an XML Schema.

New Ant Task Features to Support XML Schemas

The autotype Ant task now includes the XML Schema in the generated file that contains the data type mapping information. This file is called types.xml by default. In previous releases, this generated file contained only the <type-mapping> and <type-mapping-entry> deployment descriptor elements; now it also includes the <types> element.

Similarly, when using the autotype or servicegen Ant tasks to generate data type components, you can now include a <types> element (containing an XML Schema) in the data type mapping file pointed to by the typeMappingFile attribute. The Ant tasks merge any generated XML Schemas or data type mapping information with the existing information.

See autotype or servicegen.

Mapping Complex Data Types in SOAP Faults to Java Exceptions

WebLogic Server now correctly handles complex data types in service-specific exceptions in accordance with the Java API for XML-Based RPC (JAX-RPC) 1.0 specification.

This is not a new feature per se, but rather a fix in this service pack to the known GA issue CR101160.

Restricting Access to the WebLogic Web Service Home Page

You can now restrict access to the WebLogic Web Service Home Page by specifying the exposeHomepage="False" attribute of the relevant <web-service> element in the web-services.xml deployment descriptor file.

See Securing the WSDL and Home Page of the Web Service.

Detailed Overview of Message Security

The Configuring Security section of the Programming WebLogic Web Services guide contains a new section that describes in detail how message security (encryption and digital signatures) works in WebLogic Server.

 


What's New in WebLogic Server 8.1

This section details major differences between WebLogic Server 8.1 and earlier versions. Previous sections describe additional changes in Service Pack releases. This section includes information about the following:

Packaging and Deployment Features

WebLogic Server includes the following new and changed features related to J2EE modules and module deployment.

Split Development Directory Structure

In a development environment, you can use the new WebLogic split development directory structure to build WebLogic Server enterprise applications. Rather than having a single archived EAR file or an exploded enterprise application directory structure, the split development directory structure provides two parallel directories. The split development directory structure provides several important benefits over the traditional structure, and is accompanied in WebLogic Server by a set of Ant tasks for building, packaging, and deploying applications as traditional EAR files for production use.

See Introducing the Split Development Directory Structure in Developing WebLogic Server Applications.

Custom Classloading for J2EE Modules

You can now create custom classloader hierarchies for an Enterprise Application, allowing for better control over class visibility and reloadability of modules within an .EAR. You achieve this by defining a classloader-structure element in the weblogic-application.xml deployment descriptor file.

See Custom Module Classloader Hierarchies in Developing WebLogic Server Applications.

New Application Lifecycle Events

You can extend the abstract class weblogic.application.ApplicationLifeCycleListener to perform application-specific actions when various application lifecycle events occur. WebLogic Server defines the following lifecycle events:

You can perform actions for each of the above lifecycle events by supplying the associated method.

See Application Lifecycle Events in Developing WebLogic Server Applications.

Application-Level Class Library

The APP-INF/lib directory helps you organize shared class files in an application. WebLogic Server automatically appends classes included in APP-INF/lib to the end of the application's CLASSPATH; this ensures that all application modules can access the shared classes.

See Developing WebLogic Server Applications.

Dynamic Descriptor Changes

WebLogic Server supports updating deployment descriptor attributes in deployed module containers.

Dynamic Changes to Application-Scoped Pools

WebLogic Server supports updating application-scoped JDBC connection pool properties in the weblogic-application.xml deployment descriptor for deployed applications.

enforceClusterConstraints Option Changed

The enforceClusterConstraints option to weblogic.Deployer has changed. You now enable or disable cluster constraints for an entire domain either by providing a startup option to the Administration Server or by using an Administration Console control.

See Enforcing Cluster Constraints with Two-Phase Deployment in Deploying WebLogic Server Applications.

Alternate Deployment Descriptors

You can specify an alternate deployment descriptor file to use when deploying an archive file or exploded archive directory. This ability enables you to change the run-time deployment configuration of an application without having to modify and repackage the contents of the archive itself. To use an alternate deployment descriptor, you