This section describes important compatibility information that you should consider before upgrading to WebLogic Server 9.2.
|Note:||User applications developed in WebLogic Workshop, WebLogic Portal and WebLogic Integration 8.1 must be upgraded first before they can be run in WebLogic 9.2.|
Compatibility considerations are provided in the following categories:
As of WebLogic Server 9.0, WebLogic Server uses the Java Management Extensions (JMX) 1.2 implementation that is included in JDK 5.0. Prior to 9.0, WebLogic Server used its own JMX implementation based on the JMX 1.0 specification.
The JMX 1.2 reference implementation introduces serialization incompatibilities. Despite these incompatibilities in the reference implementation, JMX clients created for WebLogic Server 8.1 can be used with 9.2 as follows:
weblogic.management.MBeanHome, it can be run in a WebLogic Server 9.2 instance without being upgraded.
This startup option causes the JVM to use JMX 1.0 class descriptions when it is serializing objects. The option is required when JMX 1.0 clients communicate with JMX 1.2 agents using the standard JDK classes.
BEA recommends that you update your JMX clients to be compliant with WebLogic Server 9.2. Prior to 9.0, WebLogic Server supported a typed API layer over its JMX layer. It was possible for your JMX application classes to import type-safe interfaces for WebLogic Server MBeans, retrieve a reference to the MBeans through the
weblogic.management.MBeanHome interface, and invoke the MBean methods directly.
As of 9.0, the
MBeanHome interface is deprecated. Instead of using this API-like programming model, all JMX applications should use the standard JMX programming model, in which clients use the
javax.management.MBeanServerConnection interface to discover MBeans, attributes, and attribute types at runtime. In this JMX model, clients interact indirectly with MBeans through the
If any of your classes import the type-safe interfaces (available under
weblogic.management), BEA recommends that you update them to use the standard JMX programming model. For more information, see "Understanding WebLogic Server MBeans" in Developing Custom Management Utilities with JMX at
Configuration attributes are classified as dynamic or non-dynamic.
WebLogic Server 9.0 introduced a change management process to provide a secure, predictable means for applying configuration changes in a domain. A batch change mechanism changes the way dynamic changes are applied when they are mixed with non-dynamic changes. Specifically, when a configured server or system resource is affected by a change to a non-dynamic attribute, no other changes (even dynamic changes) will take effect, in current or future batches, until after the server or system resource is restarted. In this case, BEA recommends that you restart the entity as soon as possible after the batch change is completed to ensure the system is in a consistent state and to allow future changes to be accepted.
You should test your configuration scripts to determine whether a non-dynamic change has been applied, and if so, restart the server. To determine whether a change is non-dynamic and requires a server restart:
showChanges. For more information, see "WLST Command and Variable Reference" in WebLogic Scripting Tool at
To determine which security attributes are dynamic or non-dynamic, see "Security Configuration MBeans" in Securing WebLogic Server at
For more information, see "Managing Configuration Changes" in Understanding Domain Configuration at
As of WebLogic Server 9.0, the number of JDBC resource types was reduced to simplify JDBC configuration and to reduce the likelihood of configuration errors. Now, instead of configuring a JDBC connection pool and then configuring a data source or tx data source to point to the connection pool and bind to the JNDI tree, you can configure a data source that encompasses a connection pool. For more information about simplified JDBC resource configuration, see "Simplified JDBC Resource Configuration" in Configuring and Managing WebLogic JDBC at
The WebLogic Upgrade Wizard automatically converts JDBC data sources, connection pools, MultiPools, and data source factories to their new counterparts in WebLogic Server 9.2, as described in the following sections.
|Note:||Each upgraded JDBC module contains an internal properties section. WebLogic Server uses internal properties to manage the data sources for backward compatibility. Also, some legacy attributes are preserved as properties in the Properties attribute of the JDBC data source file. Do not manually edit any internal properties.|
For information about deprecated JDBC features, methods, interfaces, and MBeans, see "Deprecated JDBC Features, Methods, Interfaces, and MBeans" in WebLogic Server and WebLogic Express Release Notes at
The Upgrade Wizard converts legacy JDBC data source/connection pool pairs to two data source system resource modules, one for the data source and one for the connection pool:
|Note:||Only data sources that are converted as part of a domain upgrade can refer to another data source for its connection pool. In all other cases, each data source contains its own pool of database connections.|
During an upgrade, the Upgrade Wizard sets the
GlobalTransactionsProtocol parameter for a data source based on the type of data source being converted (tx or non-tx) and the type of driver used in the related connection pool, as noted in the following table.
1Depending on your environment, you may want to consider using the
The Upgrade Wizard converts a MultiPool to a multi-data source, which is another instance of a data source object that provides load balancing and/or failover between data sources.
Data source factories are deprecated in this release and are included for backward compatibility only. No conversion of data source factories is required.
The JDBC subsystem uses the new system-wide WebLogic Diagnostic Service for centralized debugging access and logging.
As of WebLogic Server 9.0, JMS configurations are stored as modules, defined by XML documents that conform to the new
weblogic-jmsmd.xsd schema. With modular deployment of JMS resources, you can promote your application and the JMS configuration from one environment to another. For example, you can promote your application and the required JMS configuration from a testing environment to a production environment, without opening an EAR file and without extensive manual JMS re-configuration.
For more information, see:
The WebLogic Upgrade Wizard automatically converts pre-9.2 JMS resources to a JMS Interop module file named
interop-jms.xml, which is copied to the domain's
config\jms directory. For more information, see "JMS Interop Modules" in Configuring and Managing WebLogic JMS at
Please note the following JMS configuration changes:
Allow Persistent Downgradeoption enables you to specify whether JMS clients receive an exception when they send persistent messages to a destination targeted to a JMS server that does not have a persistent store configured. This option is provided for backward compatibility with previous releases.
By default, the option is set to
false specifying that clients will receive an exception when they send persistent messages to a JMS server for which no store is configured. When the option is set to
true, persistent messages are downgraded to non-persistent, but, the send operations are allowed to continue. This parameter is effective only when the
Store Enabled parameter is disabled (that is, when it is set to
For more information, see "AllowsPersistentDowngrade" in "JMSServerBean" in WebLogic Server MBean Reference at
Temporary Templateis created, by default, for JMS Servers. In previous releases, no default template was provided. You can also configure a temporary template, using the JMS server's
You can control whether the JMS Server can host a temporary destination by setting the
Hosts Temporary Destinations attribute. In previous releases, a JMS Server was enabled to host temporary destinations if and only if the
TemporaryTemplate attribute was set.
AllowCloseInOnMessageattribute for JMS Connection Factories is enabled by default. For more information, see
ClientParamsBeanin WebLogic Server MBean Reference at
getExpirationLoggingPolicyattribute in the
DeliveryFailureParamsBeanhas been deprecated. BEA recommends that you update your applications to use the Message Life Cycle Logging feature described in "Message Life Cycle Logging" in Configuring and Managing WebLogic JMS at
http://download.oracle.com/docs/cd/E13222_01/wls/docs92/jms_admin/troubleshoot.html#message_life_cycle_logging. It should also be noted that the
getExpirationLoggingPolicyattribute now removes any leading and trailing white space that may have been embedded in an application.
As of WebLogic Server 9.0, the format of the JMS message ID has changed. BEA will continue to support the pre-9.0 format for existing consumers, producers, and servers. For example, existing JMS consumers may continue to view messages in the pre-9.0 format, even when received from a new JMS producer and JMS server.
The message paging feature for freeing up virtual memory during peak message load situations is always enabled on JMS servers. Additionally, administrators no longer need to create a dedicated message paging store since paged out messages can be stored in a directory on your file system. However, for the best performance you should specify that messages be paged to a directory other than the one used by the JMS server's persistent store.
See "" in Configuring and Managing WebLogic JMS.
BEA recommends using Work Manager concepts to manage threads, as execute queues are no longer the default method used as of WebLogic Server 9.0. You define the rules and constraints for your application by defining a Work Manager and applying it either globally to a WebLogic Server domain or specifically to an application component. For more information, see: "Using Work Managers to Optimize Scheduled Work" in Configuring WebLogic Server Environments at
In WebLogic Server 8.1, processing was performed in multiple execute queues. If you had been using execute queues to improve performance in 8.1, you may continue to use them after you upgrade your application domains. BEA provides a
Use81StyleExecuteQueues flag that enables you to disable the self-tuning execute pool and provide backward compatibility for upgraded applications to continue to use user-defined execute queues. For information about enabling the backward compatibility flag, and configuring and monitoring execute queues, see "Using the WebLogic 8.1 Thread Pool Model" in WebLogic Server Performance and Tuning at
All JTA domain configuration options are persisted from the legacy configuration file. The only changes are at the server level. As of WebLogic Server 9.0, the Transaction Manager uses the default WebLogic persistent store to store transaction log records. During the upgrade, the Upgrade Wizard copies transaction log records to the default store. The transaction log file prefix from the existing server configuration is used only to locate the transaction log (
.tlog) files during an upgrade; it is not preserved after the upgrade.
If the entire domain resides on a single machine, the Upgrade Wizard handles the upgrade (and copies transaction log records to the default store) for all Managed Servers during the initial domain upgrade. If Managed Servers reside on separate machines, you must upgrade each Managed Server individually, as described in Upgrade Your Application Environment.
Please note the following:
If you have put your transaction log files in network storage in preparation for Transaction Recovery Service migration, the log file location is not preserved after the upgrade. In this release, the WebLogic Server Transaction Manager uses the WebLogic default persistent store to store transaction log files. You can achieve the same result by moving the location of the WebLogic default persistent store to a network location. Note that you must manually copy the DAT file from the default location of the current default store to the new location of the default store.
If transactions will span multiple domains, you must configure your domain to enable inter-domain transactions. For more information, see "Configuring Domains for Inter-Domain Transactions" in Programming WebLogic JTA at
The following sections identify changes to security.
As of 9.2, WebLogic Server includes two new security providers, the XACML Authorization provider and the XACML Role Mapping provider. Previous releases of WebLogic Server used an authorization provider and a role mapping provider based on a proprietary security policy language. These new XACML security providers support the eXtensible Access Control Markup Language (XACML) 2.0 standard from OASIS. These providers can import, export, persist, and execute policy expressed using all standard XACML 2.0 functions, attributes, and schema elements.
WebLogic domains created using WebLogic Server 9.2 include the new XACML providers by default. The new XACML providers are fully compatible with policies and roles created using the WebLogic Authorization provider (DefaultAuthorizer) and WebLogic Role Mapping provider (DefaultRoleMapper). Existing WebLogic domains that you upgrade to 9.2 will continue to use the authorization and role mapping providers currently specified, such as third-party partner providers or the original WebLogic Authorization and Role Mapping providers. If you wish, you can migrate existing domains from using WebLogic Server proprietary providers to the XACML providers, including performing bulk imports of existing policies. For more information, see Security for BEA WebLogic Server 9.2 at
New versions of the SAML Credential Mapping provider and SAML Identity Assertion provider have been added in WebLogic Server 9.2. The SAML Credential Mapping V1 provider and SAML Identity Assertion V1 provider are deprecated; you should use the V2 versions of the SAML Credential Mapping and SAML Identity Assertion providers.
Although the version number of the providers has been incremented to V2, the new SAML security providers implement the SAML 1.1 standard, as did the V1 providers.
The following table lists the changes to security MBeans as of WebLogic Server 9.0.
In WebLogic Server 8.1, when you updated a security MBean attribute, the values were available to the security configuration and management hierarchy immediately, and to the security runtime hierarchy following a server reboot.
As of WebLogic Server 9.0, whether a security MBean attribute change is effective and available to the configuration, management, and runtime hierarchies immediately or upon server reboot is controlled by setting that attribute as dynamic or non-dynamic. For more information, see Dynamic Configuration Management.
To prevent unauthorized access to sensitive data such as passwords, some attributes in configuration MBeans are encrypted. The attributes persist their values in the domain configuration files as an encrypted string. For further security, the in-memory value is stored in the form of an encrypted byte array to help reduce the risk of the password being snooped from memory.
In pre-9.0 releases, you could edit the
config.xml file to specify an encrypted attribute, such as a password, in clear-text or encrypted format. In this case, when booted, the WebLogic Server will encrypt the information the next time it writes to the file.
As of WebLogic Server 9.0, when operating in production mode, the password of an encrypted attribute must be encrypted in the configuration files. In development mode, the password of an encrypted attribute can be either encrypted or clear-text.
You can use the
weblogic.security.Encrypt command-line utility to encrypt the passwords, as follows:
You are prompted to enter a password, and the command returns the encrypted version. Then, copy the encrypted password returned into the appropriate file.
This utility is not just used for passwords in the configuration files. It can also be used to encrypt passwords in descriptor files (for example, a JDBC or JMS descriptor) and in deployment plans. For more information, see "encrypt" in "Using the WebLogic Server Java Utilities" in WebLogic Server Command Reference at
By default, when an instance of WebLogic Server 9.2 responds to an HTTP request, its HTTP response header does not include the WebLogic Server name and version number. This behavior is different from releases prior to WebLogic Server 9.0.
To have the name and version number included in the HTTP response header when responding to an HTTP request, enable the Send Server Header attribute for the WebLogic Server instance in the Administration Console. The attribute is located on the Server ServerName Protocols HTTP tab under the Advanced Options section. Note that enabling this feature may creates a security risk if a possible attacker knows about a vulnerability in the specified version of WebLogic Server.
For more information about ensuring security, see "Securing the WebLogic Security Service" in "Ensuring the Security of Your Production Environment" in Securing a Production Environment at
In pre-9.0 releases of WebLogic Server, anonymous access to
MBeanHome was enabled by default. With the security enhancements delivered with WebLogic Server 9.0, anonymous access to
MBeanHome is no longer allowed.
Although doing so is not recommended, you can re-enable anonymous access by specifying the following flag when starting the server:
As of WebLogic Server 9.0, message-level security in Web Services has been enhanced to use the standards-based Web Services Policy Framework (WS-Policy). WS-Policy provides a flexible and extensible grammar for expressing the capabilities, requirements, and general characteristics of entities in an XML Web Services-based system. For more information about WS-Policy, see "Using WS-Policy Files for Message-Level Security Configuration" in Programming Web Services for WebLogic Server at
In 8.1, the implementation was based on an OASIS implementation of the Web Services Security (WSS) standard. This implementation is supported for backward compatibility, but is deprecated as of 9.0. For more information, see
WebLogic Server 8.1 Web Services can be run in 9.2, although the 8.1 Web Services run-time engine has been deprecated as of 9.0.
The WebLogic Server 6.1 or 7.0 Web Services need to be upgraded to 8.1 in order to run in 9.2. For more information, see "Upgrading WebLogic Web Services" in Programming WebLogic Web Services at
BEA strongly recommends that you upgrade, to 9.2, all of your 8.1 Web Services, including any 6.1 and 7.0 Web Services that have been upgraded to 8.1. For information about upgrading your existing 8.1 Web Services, see "Upgrading an 8.1 WebLogic Web Service to 9.2" in Programming Web Services for WebLogic Server at
|Note:||See also Message-Level Security in Web Services.|
The following sections provide important compatibility information for Web applications, JSPs, and Servlets in WebLogic Server 9.0:
For a list of Web application features that are deprecated or are not supported as of WebLogic Server 9.0, see "Deprecated and Obsolete Web Application Features" in WebLogic Server and WebLogic Express Release Notes at
JSP 2.0 is supported, as of WebLogic Server 9.0. For specific details, see Developing Web Applications, Servlets, and JSPs for WebLogic Server at
Please note the following changes to the JSP behavior:
IllegalStateExceptionis thrown when the following command is executed:
printlinefunction. This replacement causes problems with JSPs that:
<%@ page import="com.foo.bar.*" %>
<%@ page import="com.foo.xyz.*" %>
\r\nis output for each page directive.
When viewed in Internet Explorer, each page directive outputs an empty
\r\n and the XML declaration (
<?xml version="1.0" encoding="iso-8859-1"?>) appears after every new line. Internet Explorer displays an error message indicating that it cannot locate the declaration and that the page cannot be viewed, even though it can be compiled.
<%@ page import="com.foo.bar.*, com.foo.baz.*"
contentType="text/html" pageEncoding="UTF-8" errorPage="Error.jsp" %>
<param name>tag no longer allows run-time expression values. For example:
<%= AdminActions.RETURN_LINK %>" value="<%= returnlink %>" />
You can continue to support this feature by disabling the Do not set backwards compatibility flags upgrade option during the domain upgrade, as described in Select Upgrade Options, or enabling the
backwardCompatible flag in the
weblogic.xml file, as follows:
As of the Servlet 2.3 Specification from Sun Microsystems, which is downloadable at
http://java.sun.com/products/servlet/download.html#specs, the following syntax is used to define mappings:
/(forward slash) character indicates the default servlet of the application. The servlet path resolves to the request URI minus the context path; in this case, the path resolves to
*(asterisk) specifies an extension mapping.
These changes introduce a change in behavior with the following
To better illustrate the change in behavior, consider a request
/abc/def.html that resolves to ServletA:
To ensure that the path info returned is non-null, replace all occurrences of the
/ (forward slash) servlet mapping string with
Please note the following changes to XML support as of WebLogic Server 9.0:
weblogic.apache.xerces.*), is deprecated as of 9.0.
You can modify the XML parser that is used by default using the Administration Console. For information about configuring the XML parser, see "Difference In Default Parsers Between Versions 8.1 and 9.0 of WebLogic Server" in Programming WebLogic XML at
getAttributemethods without some preliminary setup. Specifically, as of 9.0, you must configure a WebLogic Server servlet filter called
weblogic.servlet.XMLParsingHelper(deployed, by default, on all WebLogic Server instances) as part of your Web application. For more information, see "Parsing XML Documents in a Servlet" in Programming WebLogic XML at
As of 9.0, the XMLBean implementation in WebLogic Server has been moved from an internal BEA library (
com.bea.xml) to the Apache open source project (
If you used XMLBeans in your WebLogic Server 8.1 applications, you must perform the following steps:
As of 9.0, the XMLQuery (XQuery) implementation conforms to the following specifications:
In WebLogic Server 8.1, the XQuery implementation conformed to XQuery 1.0 and XPath 2.0 Functions and Operators—W3C Working Draft 16 August 2002, available from the W3C Web site at
http://www.w3.org/TR/2002/WD-xquery-operators-20020816. The 2002 XQuery implementation is deprecated as of 9.0.
In most cases, simple XQuery and XPath operations in pre-9.0 code will behave the same in 9.2. To ensure that the XQuery and XPath operations produce the expected results, you can review and/or update the existing
XMLObject.execQuery() method calls using one of the following methods:
XmlObject xo = ?
|Note:||The 2002 XQuery engine is deprecated as of WebLogic Server 9.0, and is available for backward compatibility. It is only used if you specify this parameter. Otherwise, the 2004 XQuery engine is used, by default.|
As of 9.0, the behavior of
XMLCursor.moveXML() has changed. In 8.1, a cursor that was inside a moved fragment remained on the original document. As of 9.0, cursors move with fragments.
Due to changes with the MBean hierarchy, BEA does not guarantee that existing configuration and administration scripts (such as WLST,
weblogic.Admin, Ant, and so on) will run in 9.2. BEA recommends that you update your scripts to take advantage of the new features provided as of WebLogic Server 9.2. For more information about new features and changes in the MBean hierarchy, see "What's New in WebLogic Server 9.2" in the WebLogic Server and WebLogic Express Release Notes at
For additional information about upgrading your application infrastructure and the scripting tools that have been deprecated, see Step 1: Upgrade Your Application Infrastructure.
For a list of application deployment features that are deprecated or no longer supported as of WebLogic Server 9.0, see "Deprecated and Unsupported Deployment Features" in WebLogic Server and WebLogic Express Release Notes at
This section describes changes in the use of deployment descriptors in a WebLogic Server environment, as of release 9.0:
cmr-fieldis defined in
@ejbgen:relation, but there are no methods tagged with
@ejbgen:cmr-fieldin the Bean class.
|Note:||ejbc is deprecated as of WebLogic Server 9.0; you should use
META-INF\application.xmldeployment descriptor is defined as part of the application:
<Application Deployed="true" Name="SessionBeanLifeCycleBean"</Application>
<EJBComponent Name="CMFinderTestBean" Targets="myserver" URI="CMFinderTestBean.jar"/>
<EJBComponent Name="SessionBeanLifeCycleBean" Targets="myserver"
As of 9.0, the
META-INF\application.xml deployment descriptor is required if a deployed application defines multiple modules. If this type of deployment descriptor is not provided, the upgrade fails with an error similar to the following:
[J2EE Deployment SPI:260089]Unable to determine type of application at path 'C:\bea\weblogic70\tools\deployment\ejb' and upgrade will not succeed.
When upgrading a domain, make sure that the deployed applications adhere to the proper J2EE application format. For example, if required by the application, make sure that the applications define the
META-INF\weblogic-application.xml deployment descriptors.
For more information about the deployment descriptors, see "Enterprise Application Deployment Descriptor Elements" in Developing Applications with WebLogic Server at
As of 9.0, application-scoped startup and shutdown classes are deprecated in WebLogic Server, in favor of applications that respond to application lifecycle events. BEA recommends that you update your application environment to use the new 9.0 lifecycle events in place of application-scoped and domain-level startup and shutdown classes. For more information, see "Programming Application Lifecycle Events" in Developing Applications with WebLogic Server at
The WebLogic Server Administration Console has been completely re-designed in the current release. The Administration Console is now built on the WebLogic Portal Framework, which makes it more open and more readily extensible.
The new architecture necessitates new procedures for extending the Administration Console. WebLogic Administration Console extensions built for prior releases of WebLogic Server will not function with the new Console infrastructure.
For more information about extending the Administration Console, see Extending the Administration Console at
The following table lists the configuration settings for resource adapters that are deprecated or no longer supported. For more information about new features and changes, see "New and Changed Features in This Release" in Programming WebLogic Resource Adapters at
This element has been deprecated and replaced by the new J2EE libraries feature. For more information about J2EE libraries, see "Creating Shared J2EE Libraries and Optional Packages" in Developing Applications with WebLogic Server at
The Link-Ref mechanism is still supported in this release for resource adapters developed under the J2CA 1.0 Specification. For more information about using the Link-Ref mechanism with 1.0 resource adapters, see "(Deprecated) Configuring the Link-Ref Mechanism" in "Configuring the weblogic-ra.xml File" in Programming WebLogic Resource Adapters at
This element has been deprecated and replaced by
This element has been deprecated and is replaced by
This element is no longer supported; the security principal map is configured using the Administration Console.
WLEC was deprecated in WebLogic Server 8.1. WLEC users should move applications to the WebLogic Tuxedo Connector, as described in WLEC to WebLogic Tuxedo Connector Migration Guide at
The following configuration flags are available to support backward compatibility when you upgrade a domain. By default, these flags are set to support backward compatibility, unless you disable them by selecting the Do not set backwards compatibility flags option during an upgrade, as described in Upgrading a Domain in Graphical Mode.
This section summarizes APIs that have been deprecated or removed in WebLogic Server 9.0.
|Note:||If you want to rebuild the WebLogic Server 8.1 MedRec application in the 9.2 environment, you must replace references to the
|Note:||The 8.1, 9.0, and 9.2 packages,
|Note:||See also Web Services.|
For a list of deprecated APIs, see
This section describes the APIs that have been removed in WebLogic Server 9.0, including:
The following table provides a list of APIs that have been removed in WebLogic Server 9.0 and were deprecated in WebLogic Server 8.1.
The following table provides a list of APIs that have been removed in WebLogic Server 9.0 and were deprecated in WebLogic Server 7.0.
The following provides a list of APIs that have been removed in WebLogic Server 9.0, without being deprecated. Except where indicated, the APIs have been removed because the related functionality is no longer supported.
|Note:||In the following table, * (asterisk) represents a wildcard character.|
1API functionality is supported by the