This chapter provides information used for planning the upgrade of Sun Java Enterprise System (Java ES) software to Java ES 5 (Release 5) in a Windows operating system. This chapter contains the following sections:
As an introduction to planning the upgrade of Java ES software, this section reviews the components included in Release 5. Depending on your upgrade scenario, you might need to upgrade one or more of these components to their Release 5.
Java ES components are grouped into different types, as described in the Java Enterprise System Technical Overview:
Product Components. Java ES product components consist of:
System service components, which provide the main Java ES infrastructure services
Service quality components, which enhance system services
Product components are selectable with in the Java ES installer.
Shared Components. Java ES shared components are locally shared libraries upon which Java ES product components depend. Shared components are installed automatically by the Java ES installer. Installation of shared components depends upon product components.
Release 5 product components are shown in the following table, listed alphabetically. For the service quality components among them, the table includes the type of service enhancement they provide.
Table 1–1 Java ES 5 Product Components
Product Component |
Abbreviation |
Version |
Type |
---|---|---|---|
Access Manager |
AM |
7.1 |
System service component |
Application Server |
AS |
8.2 |
System service component |
Directory Proxy Server |
DPS |
6.0 |
Service quality: access component |
Directory Server |
DS |
6.0 |
System service component |
High Availability Session Store |
HADB |
4.4.3 |
Service quality: availability component |
Java DB |
JavaDB |
10.1 |
System Service Component |
Message Queue |
MQ |
3.7 UR1 |
System service component |
Portal Server |
PS |
7.1 |
System service component |
Portal Server Secure Remote Access |
PSRA |
7.1 |
Service quality: access component |
Service Registry |
SR |
3.1 |
System service component |
Web Proxy Server |
WPS |
4.0.4 |
Service quality: access component |
Web Server |
WS |
7.0 |
System service component |
Java ES shared components, upon which the product components installed on a single computer depend, cannot be selected or deselected within the Java ES installer. When installing Java ES product components, the Java ES installer automatically installs the shared components needed by the installed product components.
Release 5 shared components are listed in the following table:
Table 1–2 Java ES 5 Shared Components
Shared Component |
Version |
Abbreviation |
---|---|---|
Apache Common Logging |
1.0.3 |
ACL |
Jakarta ANT Java/XML-based build tool |
1.6.5 |
ANT |
Common Agent Container |
1.1 and 2.0 |
CACAO |
FastInfoSet |
1.0.2 |
FIS |
International Components for Unicode |
3.2 |
ICU |
Java 2 Platform, Standard Edition |
5.0 Update 7 |
J2SE™ |
JavaBeans™ Activation Framework |
1.0.3 |
JAF |
Java Studio Web Application Framework |
2.1.5 |
JATO |
JavaHelp™ Runtime |
2.0 |
JHELP |
JavaMail ™ Runtime |
1.3.2 |
JMAIL |
Java Architecture for XML Binding Runtime |
2.0.3 |
JAXB |
Java API for XML Processing |
1.3.1 |
JAXP |
Java API for XML Registries Runtime |
1.0.8 |
JAXR |
Java APIs for XML-based Remote Procedure Call Runtime |
1.1.3_01 |
JAX-RPC |
Java API for Web Services Runtime |
2.0 |
JAXWS |
Java Dynamic Management™ Kit Runtime |
5.1.2 |
JDMK |
Java Security Services |
4.2.4 and 3.1.11 |
JSS and JSS3 |
JSP Standard Library Template |
1.0.6 |
JSTL |
KT Search Engine |
1.3.4 |
KTSE |
LDAP C SDK |
6.0 |
LDAP C SDK |
LDAP Java SDK |
4.19 |
LDAP J SDK |
Mobile Access Core |
6.2 |
MA Core |
Netscape Portable Runtime |
4.6.4 |
NSPR |
Network Security Services |
3.11.4 |
NSS |
SOAP Runtime with Attachments API for Java |
1.3 |
SAAJ |
Simple Authentication and Security Layer |
2.19 |
SASL |
Sun Java Monitoring Framework |
2.0 |
MFWK |
Sun Java Web Console |
3.0.2 |
SJWC |
Web services Common Library |
2.0 |
WSCL |
XML Web Services Security |
2.0 |
XWSS |
No single system utility upgrades all Java ES components. Instead, the upgrade of Java ES product components to Release 5 is performed component-by-component, computer-by-computer, using component-specific upgrade procedures documented in this guide.
The upgrade of a component can range from a major upgrade, which might not be compatible with the previous version of the component, to a fully compatible upgrade that simply provides bug fixes. Because of dependencies between Java ES components, the nature of the upgrade can affect whether other components need to be upgraded as well.
Java ES product component upgrades involve two basic operations that mirror the initial installation and configuration of Java ES product components:
Installation of software upgrades. Upgrade software enhances or fixes existing software or replaces existing software. Software installation can be achieved through the application of patches to existing software packages, the selective replacement of existing packages, the installation of new packages, or a full reinstallation of component software.
Reconfiguration. Reconfiguration encompasses any change in configuration data, user data, or dynamic application data needed to support the upgraded software. A change in data can mean additional data, a change in data format, whether in property files or database schema, or a change in data location. Sometimes reconfiguration requires that you perform an explicit procedure and sometimes it takes place automatically without your involvement. In some cases, reconfiguration also requires redeployment of component software to a web container.
In addition, Java ES product component upgrades normally involve pre-upgrade tasks and, in some cases, post-upgrade procedures before the upgrade is operational.
The upgrade of each product component involves one of the upgrade approaches described in the following sections:
Java ES 5 product components are upgraded by performing a fresh install of the components using the Java ES installer. You should install Release 5 in a parallel path and leave the previous version intact. You can reconfigure the product component by migrating the previous version's configuration data to the new installation, or by performing a new configuration, or by doing a combination of both. For some product components a utility is provided for reconfiguring or migrating configuration data for the component.
Web Proxy Server upgrade is performed by manually patching the existing software packages. For more information, see To Upgrade Web Proxy Server.
The upgrade approach used to upgrade each product component to Release 5 is shown in the following table:
Table 1–3 Java ES Product Component Upgrade Approaches
Component |
Upgrade Approach |
Reconfiguration |
---|---|---|
Access Manager |
Perform fresh install in a parallel path using Java ES installer |
Use amconfig.bat and amupgrade.bat files to reconfigure and redeploy to web container |
Application Server |
Perform fresh install in a parallel path using Java ES installer |
None |
Directory Proxy Server |
Perform fresh install in a parallel path using Java ES installer |
Manual reconfiguration |
Directory Server |
Perform fresh install in a parallel path using Java ES installer |
Use dsmig command to migrate Directory Server data |
Message Queue |
Perform fresh install in a parallel path using Java ES installer |
None |
Service Registry |
Perform fresh install in a parallel path using Java ES installer |
Manual reconfiguration |
Web Proxy Server |
Patch binaries |
None |
Web Server |
Perform fresh install in a parallel path using Java ES installer |
Use wadm migrate-server command to migrate server instance configuration |
Java ES shared component upgrades are a necessary part of upgrading the product component that depend on them. Shared components for Release 5 need to be installed using the Release 5 installer in a parallel path. Release 5 installer does not upgrade Release 4 shared components.
The Java ES upgrade process involves a number of phases, which are normally carried out first in a staging environment, before being executed in a production environment. The use of a staging environment allows you to test each phase as well as write scripts to be used by IT personnel for upgrading complex Java ES deployments.
When you have tested the upgrade process in a staging environment, and have confidence that the upgrade is working properly, you can reproduce the process in your production environment. The process involves the phases shown in the following table and documented in this Upgrade Guide. The phases apply to individual component upgrades as well as to your Java ES deployment as a whole.
Table 1–4 Phases in the Upgrade Process
Upgrade Phase |
Description |
---|---|
Plan |
You develop an upgrade plan. In the development plan, you specify the Java ES components to be upgraded and the sequence by which you need to upgrade those components on the different computers or operating system instances in your deployment. |
Pre-upgrade preparation |
You back up configuration and application data, perform any patching of the operating system, upgrade any required dependencies, and perform other tasks in preparation for upgrading any individual component. |
Upgrade |
You obtain all the necessary packages, patches, and tools needed for the upgrade. You install upgraded software and reconfigure each component as prescribed, including the migration of data to the upgraded system. |
Verification |
You verify that the upgrade has been successful using prescribed verification tests, including starting the upgraded software components and testing various usage scenarios. |
Rollback and restoration |
Roll back the upgrade and verify that the rollback is successful. Testing the rollback of the upgrade is important in case you have to restore the production environment to its previous state for some reason. |
In an upgrade plan you specify the Java ES components you will upgrade to Release 5 and the sequence by which you will upgrade those components on the different computers or operating system instances in your Java ES deployment.
Your plan will depend on your upgrade objectives and priorities, as well as the scope and complexity of your deployment architecture.
For example, your Java ES deployment architecture might consist of a single Java ES component running on a single computer, and your upgrade objective is to fix some bug in the previous software release. On the other hand, your Java ES deployment architecture might consist of a number of interdependent Java ES components deployed across a number of different computers, and your upgrade objective is to achieve some new functionality by upgrading the minimum number of components required to achieve that end with minimal downtime.
In general, the greater the number of Java ES components and the greater the number of computers in your deployment architecture, the more complex your upgrade plan will be.
However, your upgrade plan will depend on a number of considerations other than the scope and complexity of your deployment architecture. These considerations include the following factors:
Upgrade Dependencies
Upgrade All
Supported Upgrade Paths and Strategies
One of the main issues in planning the upgrade of any given Java ES component is that component’s dependencies on other Java ES components. You should evaluate whether such other components also need to be upgraded to support the upgrade of the dependent component.
The two types of upgrade dependencies are:
Hard upgrade dependency. Upgrade of a product component requires you to upgrade a component upon which it depends. This requirement can be due to new functionality, new interfaces, or bug fixes needed by the dependent component. With a hard upgrade dependency, you cannot successfully upgrade and use the dependent component without first upgrading the component upon which it depends.
Soft upgrade dependency. Upgrade of a product component does not require you to upgrade the component upon which it depends. With a soft upgrade dependency, you can successfully upgrade and use the dependent component without upgrading the component upon which it depends.
Upgrading a Java ES product component requires you to upgrade all the components upon which it has hard upgrade dependencies, but, with some exceptions noted in this book, allows you to not upgrade components upon which it has soft upgrade dependencies. When multiple interdependent components are involved in an upgrade, you have to upgrade a component if only one of the Java ES components being upgraded has a hard upgrade dependency on that particular component.
In a few special cases, due to incompatibilities that are introduced, upgrade of a component requires you to also upgrade a component that it supports. These special cases are noted in this book.
Upgrade All. In this approach you upgrade all deployed Java ES product components to Release 5. In some cases, due to the complexity of a deployment, upgrading an entire system at one time is not feasible for business reasons.
The two approaches to performing upgrades are compared in the following table:
Upgrade Approach |
Advantages |
Disadvantages |
---|---|---|
Upgrade All |
Maintains a consistent version for all components in your deployed system |
Maximizes the number of components to upgrade |
The choice between Selective Upgrade and Upgrade All is not rigid. For example, you might choose to selectively upgrade the product components on a particular computer, but wish to upgrade all shared components needed to support the selected product components.In fact, for upgrades from Release 4 to Release 5, selectively upgrading product components, while upgrading all of the corresponding shared components, is often the preferred approach.
Your upgrade plan depends on the Java ES release you wish to upgrade to Release 5. Java ES installer only support upgrade from Java ES 2005Q4 (Release 4). The following table describes the different upgrade paths to Release 5, their characteristics, and the upgrade strategies to be used in performing the upgrade.
Table 1–6 Upgrade Paths and Strategies
Release |
Java ES Release |
System Characteristics |
Upgrade Strategies |
---|---|---|---|
2005Q4 |
Release 4 |
Java ES 5 supports a mixture of Release 4 and Release 5 product components on a single computer.
Interoperability between Release 4 and Release 5 product components has been tested, and known interface incompatibilities are noted in the Sun Java Enterprise System 5 Release Notes for Microsoft Windows. |
The coexistence of Release 4 and Release 5 product components provides for the possibility of selectively upgrading Release 4 product components to Release 5 on a single computer or within a deployment architecture consisting of multiple computers. Release 5 installer automatically installs all required shared components. |
One of the most important considerations in an upgrade plan is the dependencies between the various Java ES components in your deployed system. The sequence in which you perform the component upgrades is affected by the nature of the dependencies between them.
Each of these factors is discussed briefly in the following sections.
Table 1–7 shows the dependencies of Release 5 product components on Java ES shared components. The abbreviations for product components in the table are taken from Table 1–1. The abbreviations for shared components are spelled out in Table 1–2.
Within the matrix of the following table hard upgrade dependencies for Release 4 to Release 5 upgrades are marked “H,” and soft upgrade dependencies are marked “S.”
Table 1–7 Shared Component Dependencies of Java ES 5 Product Components
Shared Component |
AM |
AS |
DPS |
DS |
MQ |
SR |
WS |
WPS |
---|---|---|---|---|---|---|---|---|
ANT |
S |
H | ||||||
ACL |
S |
H | ||||||
BDB |
S | |||||||
Common Agent Container |
H |
H |
H |
H | ||||
ICU |
S |
H |
H |
S |
S |
|||
J2SE |
S |
S |
H |
H |
S |
H |
S |
S |
JAF |
S |
S |
H | |||||
JATO |
S |
S | ||||||
JavaHelp |
S |
S |
S |
S | ||||
JavaMail |
S |
S |
H |
S | ||||
JAXB |
S |
S |
S | |||||
JAXP |
S |
S |
H |
S | ||||
JAXR |
S |
S |
H |
S | ||||
JAX-RPC |
S |
S |
H |
S | ||||
JAXWS |
S | |||||||
JCAPI | ||||||||
JDMK |
H |
S |
H |
H |
S | |||
JSS |
S |
S |
S |
|||||
KTSE |
S |
S |
||||||
LDAP C SDK |
H |
H |
S |
S |
||||
LDAP J SDK |
S | |||||||
MA Core |
S | |||||||
MFWK |
H | |||||||
NSPR |
S |
S |
H |
H |
H |
H |
S |
|
NSS |
S |
S |
H |
H |
H |
S |
||
SAAJ |
S |
S |
H | |||||
SASL |
H |
S |
S |
|||||
SJWC |
S |
S |
H |
H | ||||
WSCL |
S |
S |
H |
S | ||||
XWSS |
H |
Dependencies on product components fall into two general categories: runtime dependencies and configuration dependencies.
Runtime Dependencies. The functioning of a software system is based on the interactions between its deployed components. The infrastructure dependencies between Java ES components are discussed in the Java Enterprise System 5 Technical Overview. If a Release 5 product component has a hard upgrade dependency on another product component, the dependent component con only be successfully upgraded and used if the component upon which it depends is also upgraded.
Configuration Dependencies. In some cases a Java ES component must be installed, configured, and running in order for another component to be configured. For example, a Directory Server user directory must be running for an Access Manager service to be registered. Component upgrade procedures often involve reconfiguration of upgraded components or migration of configuration data. Configuration dependencies can impact the sequence of upgrade procedures.
For runtime dependencies, the relationship between product components can be of the following three types:
Mandatory. The component cannot operate without the supporting component.
Optional. The component can operate without the supporting component, but a subset of its functionality requires the supporting component.
Co-dependency. Both components can operate without the support of the other, but the components together can provide certain enhanced functionality or performance.
The following table shows the dependencies between the Java ES product components listed in Table 1–1. The information can be used to determine the hard upgrade dependencies that impact your upgrade plan.
The first column alphabetically lists Release 5 product components, the second column shows other Java ES components upon which a Release 5 component has a dependency relationship, the third column provides the Java ES release versions that support the Release 5 dependency, the fourth column characterizes the dependency relationship, and the last column indicates special characteristics of the dependency, such as whether the supporting component must be local as opposed to remote or whether other third-party products can support the dependency.
If a product component you are upgrading to Release 5 has a dependency on Release 5 of a supporting component then the supporting component represents a hard upgrade dependency: the supporting component must also be upgraded to Release 5.
Table 1–8 Java ES Product Component Dependencies
The following listing provides the order in which Java ES components can be successfully upgraded on a single computer or in a deployed system. When you plan your upgrade, you can omit those components that are not part of your deployment architecture.
The chapters in this guide are arranged according to the order in which components appear in the following listing.
Directory Server (Chapter 2, Directory Server)
Many components store user data or configuration data in Directory Server, so upgrades to Directory Server should generally be performed before upgrading the components that have runtime or configuration dependencies on Directory Server.
Directory Proxy Server (Chapter 3, Directory Proxy Server)
Directory Proxy Server has a hard upgrade dependency on Directory Server and is therefore upgraded after Directory Server. Other components might access Directory Server through Directory Proxy Server.
Web Server (Chapter 4, Web Server)
A number of Java ES components require the support of a web container, which, if upgraded, should be upgraded before the components requiring web container services. Normally web container services are provided by Web Server, but if your architecture contains both, upgrade Web Server first.
Message Queue (Chapter 5, Message Queue)
Message Queue, if upgraded, is best upgraded before Application Server, which requires Message Queue to be Java 2 Enterprise Edition (J2EE) compliant.
Application Server (Chapter 6, Application Server)
Application Server depends on Web Server for its load balancing plug in, so if you are using that capability, Application Server should be upgraded after Web Server.
Service Registry (Chapter 7, Service Registry)
Service Registry can be upgraded anytime after Application Server is upgraded because it depends upon Application Server for runtime container services.
Web Proxy Server (Chapter 8, Web Proxy Server)
Web Proxy Server can be upgraded anytime, though generally it would be upgraded after the Web Server or Application Server component for which it provides a proxy service. Web Proxy Server is a new Java ES Release 5 component that can be upgraded from its previous non-Java ES release.
Access Manager (Chapter 9, Access Manager)
Access Manager plays a central role in authentication and authorization, including single sign-on. If upgraded, Access Manager should be upgraded before the components that depend on it for those services. In addition, Access Manager requires specific Directory Server schema (Schema 2), which affects how other components use Directory Server.