Release Notes
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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.
This section details major differences between WebLogic Server 8.1 SP6 and earlier versions. It includes information about the following:
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.
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.
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:
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.
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.
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.
ResultSet
metadata support.JavaDoubleToString
connection option allows you to choose the optimal conversion algorithm when converting double or float values to string values.ResultSetMetaDataOptions
connection option allows the driver to return table name information in ResultSet
metadata for Select
statements.DBDate
connection option sets the Informix DBDate server environment variable.EnableCancelTimeout
connection option provides the ability to time out cancel requests.SendFloatParametersAsString
connection option allows the driver to send float and double parameters to the server as a string or floating point number.WireProtocolMode
connection option allows the driver to optimize network traffic to the Oracle server for result sets. Oracle 10g database users may need to set WireProtocolMode=2
to prevent performance degradation when using parameterized queries (prepared and callable statements) involving big tables.PacketSize
connection option allows you to fine-tune the size of the packet the driver uses to communicate with the database server.EnableCancelTimeout
connection option that provides the ability to time out cancel requests.EnableCancelTimeout
connection option that provides the ability to time out cancel requests.UseAlternateProductInfo
connection option allows you to specify whether the driver will perform additional processing to return more accurate information for the DatabaseMetaData.getDatabaseProductName()
and DatabaseMetaData.getDatabaseProductVersion()
methods. ErrorBehavior
connection option allows you to fine-tune how errors that are returned from Stored Procedures are handled.
This section details major differences between WebLogic Server 8.1 SP5 and earlier versions. It includes information about the following:
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://download.oracle.com/docs/cd/E13222_01/wls/docs81/jdbc/oracle_rac.html
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://download.oracle.com/docs/cd/E13222_01/wls/docs81/jdbc/oracle_rac.html
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.
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.
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.
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.
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.
WebLogic Server now includes JCOM with J-Integra 2.3.
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.
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.
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.
BEA-012034 can now be disabled using the <disable-element>
in weblogic-ejb-jar.xml
.
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.
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.
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.
This section details major differences between WebLogic Server 8.1 SP4 and earlier versions. This section includes information about the following:
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.
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.
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.
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.
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.
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.
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.
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:
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.
The following enhancements were made to all WebLogic Type 4 JDBC drivers:
ResultSetMetaData.getTableName()
method for columns in a result set that map to a column in a table in the database. The drivers return an empty string from the ResultSetMetaData.getTableName()
method for columns in a result set that do not map to a column in a table (for example, aggregates, literals, and so forth). To provide this enhanced functionality, the driver must perform additional processing. To ensure that applications that do not require table information do not have to pay a performance penalty for this additional processing, a new integer connection option, ResultsetMetaDataOptions
, has been added to control whether the driver returns valid table name information. Valid values are 1 and 0. The default is 0.
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
DBDate
, was added to set the value of the Informix DBDate server environment variable. This value controls how the driver interprets literal date values when inserting or updating data in DATE columns and how it formats date strings retrieved from DATE columns. Using this option, you can customize:- 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
ReceiveStringParameterType
, was added to allow you to specify how the driver describes String output parameters to the database. Valid values are NVARCHAR, VARCHAR, and DESCRIBE. The default is NVARCHAR.tnsnames.ora
fileCatalogOptions
, which determines the type of information included in result sets returned from catalog functions. Behavior has been changed as follows:getTables
. Result sets contain remarks and column default information returned from the DatabaseMetaData method getColumns
.getColumns
, getProcedures
, getProcedureColumns
, and getIndexInfo
.SendFloatParametersAsString
, to specify whether float and double parameters are sent to the server as a string or as a floating point number. Valid values are true and false. When SendFloatParametersAsString
is false, the driver sends float and double parameters as floating point numbers. When SendFloatParametersAsString
is set to true, the driver sends float and double parameters to the database server as string values. Setting SendFloatParametersAsString
to true provides backwards compatibility with previous driver versions. The default value is false.CodePageOverride
, to control the way the driver performs character conversions when communicating with an Oracle server. When set to a valid value, the specified code page overrides the code page used by the driver to convert character data to the database character set. This option has no effect on how the driver converts character data to the national character set. If CodePageOverride
is not specified, the driver automatically determines the code page used to convert character data based on the Oracle server's reported database character set.UseAlternateProductInfo
, was introduced to allow the user to specify that the driver return more accurate information for the DatabaseMetaData.getDatabaseProductName()
and DatabaseMetaData.getDatabaseProductVersion()
methods. When set to false, the driver returns the information it receives from the server during the login process. This is the version information that the driver has always returned. When set to true, the driver makes an additional query and returns the information it receives from selecting the value of @@version. The default value is false.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.
The PreparedQuery public interface that extends the QueryProperties interface has been added to the weblogic.ejb package. For more information, see http://download.oracle.com/docs/cd/E13222_01/wls/docs81/javadocs/weblogic/ejb/PreparedQuery.html
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.
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.
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 provider allows single sign-on with desktop clients.
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.
This section details major differences between WebLogic Server 8.1 SP3 and earlier versions. This section includes information about the following:
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 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.
WebLogic Server 8.1 Service Pack 3 includes the following new and changed Web Service features.
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.
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.
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.
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.
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.
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.
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.
WebLogic Server 8.1 Service Pack 3 includes the following new JDBC features and changes.
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.
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.
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.
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.
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.
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.
In WebLogic Server 8.1SP3, the following enhancements were made to JDBC MultiPools:
See "MultiPool Failover Enhancements" in Programming WebLogic JDBC for more details.
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:
CountOfTestFailuresTillFlush
—Closes all connections in the connection pool after the number of test failures that you specify to minimize the delay caused by further database testing.CountOfRefreshFailuresTillDisable
—Disables the connection pool after the number of test failures that you specify to minimize the delay in handling connection requests after a database failure. 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.
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.
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:
XASetTransactionTimeout
—A boolean property. When set to true, the WebLogic Server Transaction Manager calls XAResource.setTransactionTimeout()
before calling XAResource.start
, and passes either the XATransactionTimeout
or the global transaction timeout in seconds. When set to false, the Transaction Manager does not call setTransactionTimeout()
. The default value is false.XATransactionTimeout
—The number of seconds to pass as the transaction timeout value in the XAResource
.setTransactionTimeout()
method. When this property is set to 0
, the WebLogic Server Transaction Manager passes the global WebLogic Server transaction timeout in seconds in the method (see "JTA" in the Administration Console Online Help). The default value for this parameter is 0
. If set, this value should be greater than or equal to the global Weblogic Server transaction timeout.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"
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:
StatementTimeout
—The time in seconds after which a statement executing on a pooled JDBC connection times out. When set to -1, (the default) statements do not time out.TestStatementTimeout
—The time in seconds after which a statement executing on a pooled JDBC connection for connection initialization or testing times out. When set to -1, (the default) statements do not time out.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.
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:
In WebLogic Server 8.1 SP3, the following features were added to security:
tokenGroups
attribute. The tokenGroups
attribute holds the entire flattened group membership for a user as an array of SID values. The SID values are specially indexed in the Active Directory and yield fast lookup response.The WAPEnabled
attribute in the Administration Console (Servers
See URL Rewriting and Wireless Access Protocol (WAP) at {DOCROOT}/webapp/sessions.html#wap.
In BEA WebLogic Tuxedo ConnectorTM 8.1 SP3, the following features were added:
-xcommon
creates a class that extends TypedXCommon.-xctype
creates a class that extends TypedXCTypeFor more information, see "WebLogic Tuxedo Connector TypedBuffers" in WebLogic Tuxedo Connector Programmer's Guide.
The FLD_DECIMAL type in a VIEW buffer is supported in both WTC and the Tuxedo Control.
WebLogic Tuxedo Connector support for FLD_DECIMAL results in three enhancements:
You can configure a dedicated thread pool to process all EJB applications rather than using the default execute queue. See WebLogic Server Threads in the Weblogic Tuxedo Connector Administration Guide.
This section details major differences between WebLogic Server 8.1 SP2 and earlier versions. This section includes information about the following:
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
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.
WebLogic Server 8.1 Service Pack 2 includes the following new EJB features.
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.
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';
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';
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.
WebLogic Server 8.1 Service Pack 2 includes the following new JDBC features.
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.
In WebLogic Server 8.1 SP2, the following enhancements were made to the WebLogic Type 4 JDBC Driver for MS SQL Server:
In WebLogic Server 8.1SP2, the following important features were added that help support JDBC connection pools in a high-availability environment:
LoginTimeout
connection property supported by the WebLogic Type 4 JDBC drivers which limits the amount of time that a request to create a database connection in a JDBC connection pool will wait for the connection to be created. StatementTimeout
JDBC connection pool attribute which limits the amount of time that a JDBC statement can execute.TestStatementTimeout
JDBC connection pool attribute which limits the amount of time that the JDBC query used to test a database connection can execute. This limit applies to whenever a database connection is tested. 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.
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.
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.
In WebLogic Server 8.1SP2, by default autocommit
is set to false
for all XA JDBC drivers.
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.
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
):
See How to Use the viewj Compiler in the WebLogic Tuxedo Connector Programmer's Guide.
WebLogic Server 8.1 Service Pack 2 includes the following new Web Services features.
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.
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.
This section details major differences between WebLogic Server 8.1 SP1 and earlier versions. This section includes information about the following:
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.
WebLogic Server 8.1 Service Pack 1 includes the following new JDBC features.
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.
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.
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.
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.
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.
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.
WebLogic Server 8.1 Service Pack 1 includes the following new Web Services features.
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.
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.
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.
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.
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.
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.
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.
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:
WebLogic Server includes the following new and changed features related to J2EE modules and module deployment.
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.
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.
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.
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.
WebLogic Server supports updating deployment descriptor attributes in deployed module containers.
WebLogic Server supports updating application-scoped JDBC connection pool properties in the weblogic-application.xml
deployment descriptor for deployed applications.
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.
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 use one or both of the following options with the weblogic.Deployer
utility:
-altappdd
—specifies the name of an alternate J2EE deployment descriptor, such as application.xml
.-altwlsappdd
—specifies the name of an alternate WebLogic Server deployment descriptor, such as weblogic-application.xml
.See Deploying WebLogic Server Applications.
WebLogic Server no longer supports deploying multiple J2EE modules without an application.xml
file. If you select a directory for deployment, the directory must contain either a standalone J2EE module (an EJB, Web Application, or Resource Adapter), or multiple modules with an associated application.xml
file (an Enterprise Application).
The speed of J2EE module deployment has improved over previous server versions. You also get additional feedback on the deployment process for both weblogic.Deployer
and the Administration Console. Feedback is provided by a new JMX notification and filter (weblogic.management.DeploymentNotification
and weblogic.management.DeploymentNotificationFilter
), which you can use in your own applications.
See the Javadocs for WebLogic Classes.
The WebLogic Server Administration Console interface has been streamlined to make production-level deployment descriptors available for editing by the administrator. Although full deployment descriptor editing is no longer available in the Administration Console, many descriptor elements of interest to Administrators are directly editable via Administration Console fields. You can edit these descriptors without repackaging and redeploying the associated module.
Full J2EE module deployment descriptor editing remains available in the WebLogic Builder application for development use.
The Administration Console also provides new Deployment Assistants to help you deploy different types of J2EE modules. The assistants guide you through the process of selecting deployment files and target servers, and automates the selection of deployment staging modes.
See the Administration Console Online Help.
The weblogic.Deployer
utility now includes the -distribute
, -start
, and -stop
commands identified in JSR88. Command help has also been reorganized for easy access to basic and advanced commands.
See Deploying WebLogic Server Applications.
The following new and improved server administration features are included in WebLogic Server 8.1:
This version of WebLogic Server includes BEA WebLogic JRockit 8.1, the first commercial server-side Java Virtual Machine.
See the JRockit for Windows and Linux User Guide for information about the benefits and usage of JRockit.
The Administration Console provides additional runtime data for servers running with the JRockit Virtual Machine (VM).
See Monitoring the JRockit Virtual Machine in the Administration Console Help.
The Configuration Wizard is a Java application that creates WebLogic Server administration domain and server configurations. With WebLogic Server 8.1, you can now use the Configuration Wizard to configure such resources as database connectivity (JDBC), messaging services (JMS), and security groups, security roles, and user accounts.
In addition, prior to WebLogic Server 8.1 you could use the Configuration Wizard only to create new domains. Now, you can use the wizard to modify existing domains.
See Configuring WebLogic Platform.
When you create a domain, you can now indicate whether the domain is to be used in a development environment or a production environment. WebLogic Server uses different default values for various services depending on the type of environment you specify.
See Differences Between Configuration Startup Modes in Configuring WebLogic Platform.
Message catalogs are available in HTML format on e-docs as part of the documentation deliverable. You can search for messages by error number using the search engine.
See the Message Catalog Index.
This version of WebLogic Server includes support for the JDK 1.4 logging APIs. With these APIs, you can filter the messages that a server instance writes to its local log file, its standard out, and to the domain-wide message log. Prior to WebLogic Server 8.1, you could filter only the messages that a server instance wrote to the domain-wide log file. You could also establish a minimal level of filtering for a server's output to standard out.
In addition, if you want your applications to receive log messages from WebLogic Server logging services, you can use the JDK 1.4 logging APIs instead of Java Management Extensions (JMX). The JDK 1.4 logging APIs are easier to use than the JMX APIs.
See Filtering WebLogic Server Log Messages and Subscribing to Messages in Using WebLogic Logging Services.
A new server attribute, setLogRemoteExceptionsEnabled
, determines whether server message logs include exceptions that are raised in remote systems.
The default value for this attribute is false
. To change the value of this attribute, use JMX APIs or the following weblogic.Admin
command:
java weblogic.Admin -username
username
-password
password
set -mbean "
domain-name
:Name=
server-name
,Type=Server" -property LogRemoteExceptionsEnabled true
For example, on the sample MedRecServer:
java weblogic.Admin -username weblogic -password weblogic set -mbean "medrec:Name=MedRecServer,Type=Server" -property LogRemoteExceptionsEnabled true
See the Javadoc for weblogic.management.configuration.ServerMBean
and "weblogic.Admin Command-Line Reference" in WebLogic Server Command Reference.
You can configure the WebLogic Server 8.1 timer service to emit notifications at specific dates and times or at a constant interval. The timer service extends the standard JMX timer service, enabling it to run within a Weblogic Server execute thread and within the security context of a WebLogic Server user account.
See "Using the WebLogic Timer Service to Generate and Receive Notifications" in Programming WebLogic Management Services with JMX.
The Administration Server automatically archives old copies of the domain's config.xml
file when you make changes to the configuration. By default, the Administration Server saves the five most recent versions of config.xml
in the /configArchive
subdirectory of the domain. You use the Administration Console to configure the maximum number of archived files to be stored for the domain.
See WebLogic Server Archives Previous Versions of config.xml in Configuring and Managing WebLogic Server.
Three new load balancing algorithms minimize the number of IP sockets opened between external Java clients and server instances in a cluster. The new algorithms preserve server affinity by considering a client's existing server connections when accessing objects in a cluster.
The new policies can be applied to EJBs and other RMI objects, as well as to JMS client applications.
See Load Balancing in a Cluster in Using WebLogic Server Clusters.
The Node Manager is a Java application that starts and manages the life cycle of Managed Servers. The following features have been added or improved in WebLogic Server 8.1:
See Configuring, Starting, and Stopping Node Manager in Configuring and Managing WebLogic Server.
The functionality of Network Channels has been enhanced to simplify the configuration process. Network Channels now encompass the features that, in WebLogic Server 7.x, required both Network Channels and Network Access Points. In this version of WebLogic Server, Network Access Points are deprecated.
Network Channels allow you to manage quality of service, meet varying connection requirements, and improve utilization of your systems and network resources. For example, you can use Network Channels to:
WebLogic Server 8.1 also has new guidelines that apply to configuring Network Channels.
See Configuring Network Resources in Configuring and Managing WebLogic Server.
Managed Server Independence (MSI) enables Managed Servers to start even if the Administration Server is unavailable.
In previous releases, if a Managed Server could not access an Administration Server, it retrieved its configuration from a file named config.xml
in the Managed Server's root directory. In WebLogic Server 8.1, a Managed Server retrieves its configuration from a file named msi-config.xml
in its root directory.
If you enable MSI-replication for a Managed Server, the Administration Server creates the msi-config.xml
file. This file is a replica of the domain's config.xml
file.
You can now enable MSI-replication for a Managed Server that shares its root directory with the Administration Server. Before WebLogic Server 8.1, MSI-replication for a Managed Server that shared its root directory with the Administration Server would have overwritten the domain's config.xml
file with the replica.
If an Administration Server fails while Managed Servers continue to run, or if you shut down an Administration Server while Managed Servers continue to run, when you restart the Administration Server, it discovers which Managed Servers are running and re-establishes administrative control.
In WebLogic Server 8.1, Administration Servers no longer attempt to discover Managed Servers that have been gracefully or forcefully shut down. If you shut down a Managed Server by killing the JVM or killing the command prompt (shell) in which the server was running, an Administration Server still attempts to discover the Managed Server and throws an exception when it determines that the Managed Server is no longer running.
If the Administration Server is unable to discover all Managed Servers automatically, you can use a new weblogic.Admin command, DISCOVERMANAGEDSERVER
.
See weblogic.Admin Command-Line Reference in the WebLogic Server Command Reference.
WebLogic Server 8.1 deployment descriptors do not support the use of equals signs (=
) in JNDI names. For example, the following declaration is no longer supported:
<provider-url> ldap://snoopy</provider-url>
<connection-factory-jndi-name>cn=myTest</connection-factory-jndi-name>
Prior to this release, the WebLogic Server deployment subsystem would convert equals signs to underscores (_
). Now, the deployment subsystem throws an exception if it encounters a JNDI name with equals signs.
The WebLogic Server Administration Console is reorganized to provide better usability for both novice and advanced users. Some of the many Administration Console changes include:
For more information about the Administration Console changes, see the Administration Console Online Help.
The weblogic.Admin
utility provides new commands:
BATCHUPDATE
runs multiple weblogic.Admin
commands in an uninterrupted sequence. (You no longer have to invoke a separate JVM for each weblogic.Admin
command.)CLUSTERSTATE
returns the number and state of servers in a cluster.DISCOVERMANAGEDSERVER
causes the Administration Server to re-establish administrative control over Managed Servers.QUERY
searches for WebLogic Server MBeans whose WebLogicObjectName
matches a pattern that you specify.STARTCLUSTER
and STOPCLUSTER
start and stop all server instances in a cluster.TEST_POOL
tests a connection pool by reserving and releasing a connection from it.VALIDATECLUSTERCONFIG
verifies the formatting of cluster-related attributes in the domain's config.xml
file.-adminurl
argument to access runtime MBeans for all server instances through the Administration Server.weblogic.Admin
commands now return an exit code of 0 if the command succeeds and an exit code of 1 if the command fails.weblogic.Admin
command now supports the IIOP protocol in addition to T3, T3S, HTTP, and HTTPS.weblogic.Admin STARTINSTANDBY
command has been removed.See weblogic.Admin Command-Line Reference in the WebLogic Server Command Reference.
The following performance-related attributes are adjusted to improve the out-of-the-box performance of WebLogic Server. Optimal WebLogic Server production tuning values vary according to your environment and applications.
ThreadCount
) has been increased from 15 to 25. The development mode default size remains at 15.MaxCapacity
) now equals the default size of the execute queue thread pool: 25 for production mode; 15 for development mode.NativeIOEnabled=true
), socket reader multiplexor threads now have their own execute queue and do not borrow threads from the default execute queue, which frees up default execute threads to do application work. StatementCacheSize
parameter is now turned on by default and is set to 10. This setting reduces both network roundtrips and preparation work in the database. The default
execute queue has been renamed to weblogic.kernel.Default
in this release. The __weblogic_admin_html_queue
execute queue has been renamed to weblogic.admin.HTTP
. The __weblogic_admin_rmi_queue
has been renamed to weblogic.admin.RMI
.
Note: Do not reconfigure or modify the default execute queues.
The system administration documentation has been reorganized for this release. Some of the topics previously included in the Administration Guide are now located in the locations indicated in Table 1-1. For a complete index of system administration documentation, see System Administration.
Table 1-1 New Document Locations
Starting and Stopping Servers in the Administration Console Online Help |
|
Server Log in the Administration Console Online Help |
|
Deploying Applications and Modules in the Administration Console Online Help |
|
JTA in the Administration Console Online Help |
|
JDBC, JDBC Connection Pools, JDBC DataSources, JDBC MultiPools in the Administration Console Online Help |
|
Configuring JMS, Tuning JMS, and Monitoring JMS in the Administration Console Online Help |
|
Messaging Bridge in the Administration Console Online Help |
|
JNDI in the Administration Console Online Help |
|
Connectors in the Administration Console Online Help |
|
Installing and Updating WebLogic Platform License Files in Installing WebLogic Platform. |
|
Using the WebLogic Server Java Utilities in the WebLogic Server Command Reference |
|
weblogic.Admin Command-Line Reference in the WebLogic Server Command Reference. |
|
A new J2EE sample application, Avitek Medical Records (or MedRec), concisely demonstrates all aspects of the J2EE platform. Designed as an educational tool for all levels of J2EE developers, MedRec showcases the use of each J2EE component, and illustrates best practice design patterns for component interaction and client development. Medical Records is available from the Start menu on Windows machines. On Linux and other platforms it can be started from the WL_HOME\samples\server\config\medrec
directory.
WebLogic Server sample applications have also been updated to use the PointBase® version 4.3 server as the sample datastore.
The following new and improved security features are included in WebLogic Server 8.1.
New windows and improved options facilitate managing access to WebLogic resources such as the Administration Console, the weblogic.Admin
tool, MBeans, applications, COM, EIS, EJB, JDBC, JNDI, JMS, servers, and Web applications.
See Security in the Administration Console Online Help.
The SSL implementation of WebLogic Server supports the use of keystores for storing private keys and trusted CAs. Keystores add a level of protection to the flat files used in past release of WebLogic Server.
The default configuration of SSL and demonstration keystores provide users with secure communication out of the box. The configuration of keystores and SSL for a production environment has been simplified by the implementation of an assistant.
See Configuring Keystores and SSL in the Administration Console Online Help.
The Java Cryptography Extension (JCE) is a set of packages that provide a framework for encryption using strong ciphers, key generation and agreement, and Message Authentication Code algorithms.
See WebLogic Server Security Service in Introduction to WebLogic Server and WebLogic Express.
This release of WebLogic Server introduces the following EBJ features and changes.
appc
is a single tool for compiling and validating a J2EE ear file, an ejb-jar file or war file for deployment. Previously, a user wanting to compile all modules within an ear file had to extract the individual components of an ear and manually execute the appropriate compiler (jspc or ejbc) to prepare the module for deployment. appc
automates this process and performs additional pre-deployment validation checks not previously performed.
appc
is discussed in detail in "appc in Programming WebLogic Enterprise JavaBeans.
WebLogic Server now supports batch updates and deletes, in addition to the existing batch insert (previously known as "bulk insert") support. In addition, the EJB container now prevents exceptions by performing dependency checks between batch operations.
See Batch Operations in Programming WebLogic Enterprise JavaBeans.
Previously, WebLogic Server automatically created database tables if the create-default-dbms-tables
element in weblogic-cmp-rdbms-jar.xml
was set to True
. However, if the table already existed, the server did not recreate it. Beginning with this release, WebLogic Server recreates existing tables when underlying table schema change, that is, when any container-managed persistence fields are modified.
See Automatic Table Creation in Programming WebLogic Enterprise JavaBeans.
In situations of high throughput, applications that use an exclusive concurrency strategy can encounter deadlocks if a transaction that performs a cascade delete needs access to the same bean as a transaction that does not perform a cascade delete. This release includes a feature to prevent deadlocks in this scenario, via the lock-order
element in the weblogic-cmp-rdbms-jar.xml
deployment descriptor file.
See Preventing Deadlocks for Transactions that Use Exclusive Concurrency in Programming WebLogic Enterprise JavaBeans.
During iterative development of an EJB application, developers make many modifications to EJB implementation class files; they typically redeploy an EJB module multiple times during its development.
Previously, in order to redeploy an implementation class, developers had to reload the entire EJB module containing the implementation class, including all other implementation classes as well as utility classes. With this new feature, developers can specify reloading granularity to the level of an individual implementation class.
See WebLogic Application Classloading in Developing WebLogic Server Applications for a detailed explanation of this feature.
Compiler error messages in EJB QL now provide a visual aid to identify which part of the query is in error and allow the reporting of more than one error per compilation.
See EJB QL Error-Reporting Enhancements in Programming WebLogic Enterprise JavaBeans.
WebLogic Server provides improved performance for EJB bulk updates, optimistic concurrency, field groups, relationship caching, and EJB redeployment.
This release also introduces greatly improved monitoring of performance, via new tab pages in the WebLogic Server Administration Console.
See Tuning WebLogic Server EJBs in WebLogic Server Performance and Tuning.
With the Reloadable J2EE Modules feature, you can also redeploy EJB modules independently of other components in an Enterprise Application.
See Developing WebLogic Server Applications.
The Administration Console provides an EJB Module Deployment Assistant to help you deploy EJBs. See the EJB section of the Administration Console Online Help.
Several EJB-related deployment descriptor elements now have new default values, in compliance with the J2EE 1.3 specification.
For a complete discussion of weblogic-ejb-jar.xml
elements, see The weblogic-ejb-jar.xml Deployment Descriptor in Programming WebLogic Enterprise JavaBeans.
For a complete discussion of weblogic-cmp-rdbms-jar.xml
elements, see The weblogic-cmp-rdbms- jar.xml Deployment Descriptor in Programming WebLogic Enterprise JavaBeans.
WebLogic Server supports two additional values for the dbms-column-type
element in weblogic-cmp-rdbms.xml
: LongString
and SybaseBinary
.
See dbms-column-type in Programming WebLogic Enterprise JavaBeans.
The caching-element tag in weblogic-cmp-rdbms-jar.xml
is used in relationship-caching to specify the cmr-field
for the related bean, and the group-name
in the related bean.
The WebLogic Server EJB container now allows multiple caching-element sub-elements. The relevant DTD entry is:
<!ELEMENT caching-element (
cmr-field,
group-name?,
caching-element*
)>
Previously, the DTD entry read this way:
<!ELEMENT caching-element (
cmr-field,
group-name?,
caching-element?
)>
A new feature can disable certain warning messages during deployment, via the new disable-warning
element in weblogic-ejb-jar.xml
.
See Disabling Deployment Warning Messages in Programming WebLogic Enterprise JavaBeans.
Two new security-related deployment descriptor elements have been added to weblogic-ejb-jar.xml
:
externally-defined
element replaces global-role
, which has been deprecated in this release. See externally-defined in Programming WebLogic Enterprise JavaBeans.run-as-role-assignment
element is used to map a given security-identity/
/run-as/role-name
that is specified in the ejb-jar
deployment descriptor to a run-as-principal-name
. See run-as-role-assignment in Programming WebLogic Enterprise JavaBeans.For a comprehensive discussion of these elements and their relationship to securing of EJBs in general, see Securing Enterprise JavaBeans in Programming WebLogic Security.
To specify the rows in a table that the EJB container should check when optimistic concurrency is used, use the new verify-rows
element in weblogic-cmp-rdbms-jar.xml
. This element allows you to choose between performing optimistic checking on any row read by a transaction versus only rows updated or deleted by a transaction.
See verify-rows in Programming WebLogic Enterprise JavaBeans.
To specify the DDL
file name to which the EJB container writes table creation scripts, use the new default-dbms-tables-ddl
element in weblogic-cmp-rdbms-jar.xml
.
See default-dbms-tables-ddl in Programming WebLogic Enterprise JavaBeans.
As of this release, you can assign message-driven beans to a configured execute queue, via the dispatch-policy
element in weblogic-ejb-jar.xml
. Previously, dispatch-policy
applied only to session and entity beans.
While you can also set the dispatch policy via appc
's -dispatchPolicy
flag, BEA strongly recommends you use the deployment descriptor element instead. This way, if the EJB is recompiled—during deployment for example—the setting will not be lost.
See The weblogic-ejb-jar.xml Deployment Descriptor in Programming WebLogic Enterprise JavaBeans.
The following EJB features have been deprecated in this release.
This release of WebLogic Server deprecates the Administration Console Deployment Descriptor Editor.
The majority of deployment descriptor elements can now only be edited using a text or XML editor. A small subset of elements—those related to administering and tuning EJBs—can still be viewed, modified, and persisted to the descriptor file via the Administration Console using the Descriptors tab.
See Configuring Deployment Descriptor Values in the EJB section of the Administration Console Online Help.
The ejbc
compiler has been deprecated. Use appc
in its place. See appc in Programming WebLogic Enterprise JavaBeans.
This version of WebLogic Server deprecates the sql-select-distinct
element in weblogic-cmp-rdbms-jar.xml
. Use the DISTINCT
clause directly in finder queries instead of this deployment descriptor element. For finder queries that have a DISTINCT
clause, the container defers duplicate elimination to the database if FOR UPDATE
is not used and filters duplicates in memory if it is used.
This version of WebLogic Server deprecates the global-role
element in weblogic-ejb-jar.xml
. Use the externally-defined
element instead. For a comprehensive discussion of the externally-defined
element and its relationship to securing of EJBs in general, see Securing Enterprise JavaBeans in Programming WebLogic Security.
This version of WebLogic Server deprecates the run-as-identity-principal
element in weblogic-ejb-jar.xml
. Use the run-as-principal-name
element instead. For a comprehensive discussion of the run-as-principal-name
element and its relationship to securing of EJBs in general, see Securing Enterprise JavaBeans in Programming WebLogic Security.
This version of WebLogic Server deprecates the stateless-bean-methods-are-idempotent
element in weblogic-ejb-jar.xml
. Use the idempotent-methods
element instead. See idempotent-methods in Programming WebLogic Enterprise JavaBeans.
The DTD for the WebLogic Server Connector deployment descriptor, weblogic-ra.xml
, has changed in this version. See weblogic-ra.xml Deployment Descriptor Elements in Programming WebLogic Server J2EE Connectors.
The Connector implementation now makes connections shareable unless a suitable "hint" is specified at deployment time. EJB 2.0 uses the res-sharing-scope
deployment descriptor (with values Shareable
or Unshareable
) to specify this hint.
In this release. you configure COM packet timeout values and the maximum length of COM message packets via a different location in the Administration Console.
These changes are summarized in the following table.
Table 1-3 Changes to COM Packet Configuration Values
WebLogic Server provides the following new JDBC features, along with internal performance enhancements in the JDBC subsystem.
The Administration Console includes the JDBC Connection Pool Assistant and the JDBC Data Source Assistant. These assistants help ease database connectivity configuration by prompting you for database, JDBC driver, and connection pool information, and then constructing the connection attributes required by your JDBC driver. See the Administration Console Online Help.
JDBC connection pools include several new attributes and features that you can configure from the Administration Console or MBean attributes using the JMX API, including among others:
See the Administration Console Online Help.
Some database vendors provide additional proprietary methods for working with data from their DBMS. These methods extend the standard JDBC interfaces.WebLogic Server provides enhanced support for vendor extensions to JDBC by supporting most extension methods exposed in a public interface in the vendor's JDBC driver. See Using Vendor Extensions to JDBC Interfaces in Programming WebLogic JDBC.
When you get a connection from a connection pool, WebLogic Server provides a logical connection rather than a physical connection so that WebLogic Server can manage and maintain the connection. In some cases, you may want to use a physical connection, such as if you need to pass the connection to a method that checks the class name of the object for a particular class. WebLogic Server includes the getVendorConnection()
method in the weblogic.jdbc.extensions.WLConnection
interface that you can use to get the underlying physical connection from a logical connection. See Getting a Physical Connection from a Connection Pool in Programming WebLogic JDBC.
WebLogic Server includes support for RowSets, which are a JDBC 2.0 extension to ResultSets. RowSets allow a user to read and modify a cached query result and then commit the resulting changes back to a database. RowSets use a disconnected model which uses optimistic concurrency control to ensure database consistency. This allows work to be performed without holding open long transactions or database and application server resources. See Using RowSets with WebLogic Server in Programming WebLogic JDBC.
The statement cache for JDBC connection pools was enhanced to include a Least Recently Used caching algorithm and controls for clearing the statement cache.
When you use a prepared statement or callable statement in an application or EJB, there is considerable processing overhead. To minimize the processing costs, WebLogic Server can cache statements used in your applications in the statement cache. When an application or EJB calls any of the statements stored in the cache, WebLogic Server reuses the statement stored in the cache, which reduces CPU usage on the database server, and thus improves performance for the current statement and leaves CPU cycles on the database server for other tasks. See the Administration Console Online Help.
In WebLogic Server 8.1, the weblogic.jdbc.pool
classes were removed, except for the weblogic.jdbc.pool.Driver
class. These classes were removed because they were incompatible with an internal change that enables and enhances support for JDBC extensions provided in JDBC drivers. For more information, see "Removed Classes" in the Upgrade Guide.
WebLogic Server 8.1 provides the following new JTA features.
In some cases, a transaction may not complete normally due to system or network failures. In such situations there may be locks held on behalf of the pending transaction that are inhibiting the progress of other transactions. You can use the Administration Console or methods on the JTA runtime MBean to manually complete transactions that did not complete normally. See the Administration Console Online Help.
A single, non-XA-compliant resource adapter can participate in a global transaction with other XA-compliant resources. WebLogic Server uses a last agent commit optimization so that after all participating XA-compliant resources are prepared, the result of the local transaction for the non-XA resource is used to determine the outcome of the global transaction. The resource adapter must provide local transaction semantics. You can use this functionality with the WebLogic Server J2EE Connector architecture to enable non-XA legacy systems to participate in a global transaction.
WebLogic Server 8.1 provides the following new JMS features.
At approximately 400KB, the JMS thin application client (wljmsclient.jar
) file provides full WebLogic JMS functionality, yet greatly reduces the client-side WebLogic footprint by using a smaller library that contains only the set of supporting files required by client-side programs. The JMS thin client also requires using the standard WebLogic thin application client JAR (wlclient.jar
), around 300KB, which contains the base client support for clustering, security, and transactions, and failover. See WebLogic JMS Thin Client in Programming WebLogic JMS.
Using the Foreign JMS Server node on the Administration Console, you can quickly map a third-party JMS provider so that its connection factories and destinations appear in your WebLogic Server JNDI tree as a local JMS objects. A Foreign JMS Server configuration can also be used to reference remote instances of WebLogic Server in another cluster or domain in your local WebLogic JNDI tree. See Accessing Foreign JMS Providers in the Administration Console Online Help.
New "wrappers" for JMS connection factories make it easier to use JMS inside a J2EE container, such as an EJB or servlet. By using a resource-ref
element in the deployment descriptors to define your connection factories, the wrappers make it easy to access local or remote WebLogic JMS objects, and can even be used to access third-party JMS providers. This feature also provides automatic pooling of JMS connection and session objects (and some pooling of message producer objects as well); automatic transaction enlistment for JMS providers that support XA; monitoring of the JMS connection and re-establishment after a failure; and security credentials that are managed by the EJB or servlet. See Using JMS with EJBs and Servlets in Programming WebLogic JMS.
Active message expiration ensures that expired messages are cleaned up immediately. Moreover, expired message auditing gives you the option of tracking expired messages, either by logging when a message expires or by redirecting expired messages to a special destination. See Handling Expired Messages in the Administration Console Online Help.
The "Blocking Send" features help you avoid receiving message quota errors by temporarily blocking message producers from sending messages to a destination (queue or topic) when the destination has exceeded its specified maximum message quota. See Avoiding Quota Exceptions by Blocking Message Producers in the Administration Console Help.
As per the JMS Specification, all messages initially delivered to a consumer from a given producer are guaranteed to arrive at the consumer in the order in which they were produced. WebLogic JMS goes above and beyond this requirement by guaranteeing the correct ordering of redelivered messages as well. See Ordered Redelivery of Messages in Programming WebLogic JMS.
New JMS Helper extension methods enable you to delete JMS destinations dynamically. The JMS server removes the deleted destination in real time; therefore, it is not necessary to redeploy the JMS server for the deletion to take effect. See Deleting Destinations Dynamically in Programming WebLogic JMS.
The ServerSessionPoolFactory
class in the weblogic.jms
package has been deprecated in WebLogic Server 8.1. It has been replaced by the ServerSessionPoolFactory
class in the weblogic.jms.extensions
package. BEA recommends using the new version in the weblogic.jms.extensions
package when binding a ServerSessionPoolFactory
into JNDI. However, for this release you can still perform the JNDI lookup with either version. See Defining Server Session Pools in Programming WebLogic JMS or the weblogic.jms.extensions.ServerSessionPoolFactory Javadoc.
WebLogic Server 8.1 includes the following new Web Application features and changes.
Performance is improved for JSP string handling as well as JSP compilation time.
Use the new init-as-principal-name
element in weblogic.xml
to declare a principle name for running a servlet's init
method. See Developing Web Applications for WebLogic Server.
You can now call one servlet from inside another servlet. This is accomplished using either a forward or an include request from within the original servlet. Should you forward to a second servlet, all future action takes place according to the second servlet, as with any forward. Including a second servlet allows you to gather data from a source already accessed by another servlet without having to rewrite all the code. See Dispatching Requests to Another Resource in Programming WebLogic HTTP Servlets.
The appc
compiler now incorporates the functionality of jspc
. You can use appc
to compile and generate both EJBs and JSPs for deployment. See appc and jspc Compilers in Developing Web Applications for WebLogic Server.
When responding to a request for a servlet, WebLogic Server checks the time stamp of the servlet class file prior to applying any filters associated with the servlet, and compares it to the servlet instance in memory. If a newer version of the servlet class is found, WebLogic Server re-loads the servlet class before any filtering takes place. You can configure the interval at which WebLogic Server checks the timestamp using the Server Reload
attribute. See Servlet Development Tips in Programing WebLogic HTTP Servlets.
WebLogic Server introduces new weblogic.xml
deployment descriptors to provide sorting options for directory listings. The new element, index-directory-sort-by
has valid sorting styles of NAME
, LAST_MODIFIED
, and SIZE
. For example, to enable directory listing sorted by file size, the XML would look similar to:
<weblogic-web-app>
<index-directory-enabled>true</index-directory-enabled>
<index-directory-sort-by>SIZE</index-directory-sort-by>
</weblogic-web-app>
The following new Web Services features are available with WebLogic Server 8.1.
You can configure data security for Web Services and Web Service clients using new elements in the web-services.xml
deployment descriptor. See Configuring Security in Programming WebLogic Web Services.
Reliable SOAP messaging is a framework whereby an application running in one WebLogic Server instance can asynchronously and reliably invoke a Web service running on another WebLogic Server instance. See Using Reliable SOAP Messaging in Programming WebLogic Web Services.
WebLogic Server supports SOAP 1.2 as the message transport when a client invokes a Web Service operation. See Using SOAP 1.2 in Programming WebLogic Web Services.
You can optionally configure a Web Service to use JMS as the transport protocol (in addition to HTTP/S, the default protocol) when a client accesses the service. See Using JMS Transport to Invoke a WebLogic Web Service in Programming WebLogic Web Services.
The clientgen
Ant task can now generate stubs for invoking a Web service operation asynchronously. The stub contains two methods: the first invokes the operation with the required parameters but does not wait for the result; later, the second method returns the actual results. You use this asynchronous client when using reliable SOAP messaging. See Writing an Asynchronous Client in Programming WebLogic Web Services.
You can now use portable stubs (versioned client JAR files used to invoke WebLogic Web services) to avoid class clashes when invoking a Web service from within WebLogic Server. See Creating and Using Portable Stubs in Programming WebLogic Web Services.
SAAJ enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note. This specification is derived from the java.xml.soap
package originally defined in the JAXM 1.0 specification.
The wsdlgen
Ant task generates a WSDL file from the EAR and WAR files that implement your Web Service. The EAR file contains the EJBs that implement your Web Service and the WAR file contains the web-services.xml
deployment descriptor file. See Web Service Ant Tasks and Command-Line Utilities in Programming WebLogic Web Services.
The existing Web Service Ant tasks have the following new attributes and elements:
autotype
—The autotype
Ant task has the following new attributes: keepGenerated
and overwrite
. clientgen
—The clientgen
Ant task has the following new attributes: generateAsyncMethods
, generatePublicFields
, and keepGenerated
.servicegen
—The servicegen
Ant task has the following new child elements: <handlerChain>
, <reliability>
, and <security>
.The main servicegen
Ant task has the following new attributes: keepGenerated
and mergeWithExistingWS
.
The <service>
child element of the servicegen
Ant task has the following new attribute: useSoap12
.
source2wsdd
Ant task has the following new attributes: ejblink
, mergeWithExistingWS
, overwrite
, and wsdlFile
.wsdl2Service
Ant task has the following new attribute: overwrite
.wspackage
Ant task has the following new attribute: utilJars
.For detailed information, see Web Service Ant Tasks and Command-Line Utilities in Programming WebLogic Web Services.
The following Web Service features have changed in this release.
The wsdl2Service
Ant task now generates a Java interface that represents the implementation of your Web Service. In the previous release, this Ant task generated a Java source file that partially implemented the Web service.
BEA no longer supports using JMS Topics as the destination type for JMS-implemented WebLogic Web Services. This functionality was deprecated in release 7.0 of WebLogic Server.
BEA no longer supports the command-line version of the servicegen
Ant task.
WebLogic Server 8.1 provides the following new WebLogic Tuxedo Connector features.
WebLogic Tuxedo Connector provides to users the ability to select one of the following APPKEY generators to access Tuxedo services:
tpuser
file to provide user information to the Tuxedo authentication server.The guide outlines how to migrate applications using WLEC to the WebLogic Tuxedo Connector. WebLogic Tuxedo Connector provides support for FactoryFinder objects using the find_one_factory_by_id
method. WLEC to WebLogic Tuxedo Connector migration requires minor application modification:
See the WLEC to WebLogic Tuxedo Connector Migration Guide at http://download.oracle.com/docs/cd/E13222_01/wls/docs81/wlec_migration/index.html.
The asynchronous tpacall
method allows you to send a request to a Tuxedo service and release the thread resource that performed the call to the thread pool. This allows a very large number of outstanding requests to be serviced with a much smaller number of threads. See Request/Response Communication in the WebLogic Tuxedo Connector Programmer's Guide.
This release of WebLogic Tuxedo Connector implements a new WTC ORB which uses WebLogic Server RMI-IIOP runtime and CORBA support. Previous releases used a JDK based WTC ORB. A wrapper is provided to allow users with legacy applications to use the new WTC ORB without modifying their existing applications. See How to Develop WebLogic Tuxedo Connector Client Beans using the CORBA Java API in the WebLogic Tuxedo Connector Programmer's Guide.
Several performance enhancements are provided in the Java Application-to-Transaction Monitor Interface Field Markup Language (JATMI FML Interface). Enhancements include:
Fadd
method to add objects to a fielded bufferFchg
and Fdel
methodsThe simpview
example demonstrates the ability of WebLogic Tuxedo Connector to allow WebLogic Server to interoperate with Tuxedo using VIEWs. WebLogic Tuxedo Connector code examples, if installed, are located in the SAMPLES_HOME\server\examples\src\examples\wtc
directory of your WebLogic Server installation, where SAMPLES_HOME is the location of all examples for the WebLogic Platform.
The terminology used to reference the WebLogic Tuxedo Connector Service and nodes in Administration Console has changed:
You can now use the WebLogic XPath API to perform XPath matching against an XML document represented as a DOM, XMLNode, or XMLInputStream. See Using the WebLogic XPath API in Programming WebLogic XML.
The following new developer tool features are available in WebLogic Server 8.1.
The appc compiler compiles and generates EJBs and JSPs for deployment. It also validates the descriptors for compliance with the current specifications at both the individual module level and the application level. The application level checks include checks between the application-level deployment descriptors and the individual modules as well as validation checks across the modules.
Prior to version 8.1, client applications that incorporated WebLogic Server functionality required the entire WebLogic Server distribution (weblogic.jar
and weblogicaux.jar
) on the client machine. WebLogic Server now provides two new client .jar
files that include only the functionality needed for small-footprint J2EE client functionality. The new files are:
wlclient.jar
for basic WebLogic functionality such as clustering, security, and transactions.wljmsclient.jar
for basic WebLogic functionality plus JMS features.The new client .jar
files are located in the /server/lib
subdirectory of the WebLogic Server installation directory (for example, c:\bea\weblogic81b\server\lib
). The new client .jar
files are not supported with JDK 1.3.x or earlier.
See Developing WebLogic Server Applications.
The following features and changes apply to the WebLogic Builder tool.
Use the Builder tool to edit J2EE module deployment descriptors. Deployment Descriptor editing features are no longer available via the Administration Console. See the WebLogic Builder Online Help.
It is now possible to configure your CMP entity beans to use optimistic concurrency for parallel transactions using Builder. See Working with EJBs in the WebLogic Builder Online Help.
WebLogic Server introduces the following changes to internationalization utilities:
weblogic.i18ngen
has updated command line options.weblogic.i10ngen
has updated command line options.weblogic.gettxt
is a new command line utility.weblogic.i18ntools.GetText
is a new API.weblogic.MsgEditor
has an updated GUI. The main Message Editor window also provides the ability to retire and unretire messages. Retiring a message does not mean that the message is deleted from the master catalog. It simply means it is hidden from user view. This feature is useful for removing obsolete messages. If you need to bring a retired message back into view, you can unretire it.
For the latest information about supported WebLogic Server configurations, see Supported Configurations.
The following tables provide information about J2EE and other standards supported in WebLogic Server 8.1:
For a list of deprecated WebLogic Server classes, see http://download.oracle.com/docs/cd/E13222_01/wls/docs81/javadocs/deprecated-list.html.
Table 1-7 provides information about the JAR files from third parties that are part of WebLogic Server:
Table 1-7 Third-Party JAR Files
|
|
Here are some pointers to useful information related to this release. The hyperlinks require Internet access.
High-level procedures to help you quickly deploy an HTML file, JSPs, and servlets, are available at http://download.oracle.com/docs/cd/E13222_01/wls/docs70/quickstart/quick_start.html.
Code examples, if installed, are located in the SAMPLES_HOME\server\src\examples
directory of your WebLogic Server installation, where SAMPLES_HOME is the location of all examples for the WebLogic Platform. By default, this location is c:\bea\weblogic81b\samples
. Examples are also available from the Start menu for Windows users.
For an overview of WebLogic Server features and the J2EE application architecture, see Introduction to WebLogic Server.
The full documentation set for BEA WebLogic Server 8.1, including administration, programming, and reference guides, is provided on the BEA Web site at http://download.oracle.com/docs/cd/E13222_01/wls/docs81/index.html.
BEA WebLogic Server newsgroups provide community support for BEA products. Information about BEA-related newsgroups can be found at http://newsgroups.bea.com/ and news://newsgroups.bea.com.
The BEA site Dev2Dev Online provides resources to make your e-commerce development easier and faster. To reach Dev2Dev online, go to http://developer.bea.com/.
![]() ![]() |
![]() |
![]() |