WAS6 Migration Guide
WAS6 Migration Guide
WebSphere
Application
cation Server V66
Migration Guide
de
Application developer migration tasks
Rudy Chukran
Tom Alcott
Wayne Beaton
David Dhuyvetter
Dana Duffield
Tushar Patel
Jack Snyder
ibm.com/redbooks
SG24-6369-00
Note: Before using this information and the product it supports, read the information in Notices on
page vii.
Contents
Chapter 1. Development tools overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Overview of WebSphere development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 IBM Rational Web Developer for WebSphere Software . . . . . . . . . . . . . . . . . . . . .
1.1.2 IBM Rational Application Developer for WebSphere Software . . . . . . . . . . . . . . . .
1.1.3 WebSphere Application Server Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.4 Supported operating systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.5 Embedded WebSphere Application Server test environment . . . . . . . . . . . . . . . . .
1.2 Important user interface changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 How to obtain more information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
4
4
5
5
5
5
9
13
14
14
14
17
18
18
19
19
20
30
31
31
36
37
39
71
72
72
73
73
74
74
74
75
76
77
79
80
81
82
40
40
63
iii
82
83
84
84
85
85
86
89
89
90
90
iv
135
136
136
138
140
143
143
143
143
144
144
144
145
146
149
150
150
150
151
151
151
152
153
154
154
154
155
155
156
Contents
vi
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that does
not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not give you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such provisions
are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and
distribute these sample programs in any form without payment to IBM for the purposes of developing, using,
marketing, or distributing application programs conforming to IBM's application programming interfaces.
vii
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
Eserver
Eserver
Redbooks (logo)
developerWorks
ibm.com
iSeries
pSeries
z/OS
zSeries
AIX 5L
AIX
ClearCase
Cloudscape
Domino
DB2 Connect
DB2 Universal Database
DB2
Informix
IBM
Lotus
MQSeries
Notes
OS/400
PowerPC
Rational Unified Process
Rational
Redbooks
SAA
Tivoli
TXSeries
VisualAge
WebSphere
viii
Preface
The creation of this Migration Guide is the result of tremendous input from customers
requesting guidance on migrating their WebSphere development environment, including
applications, integration, and test and production environments. This guide has been
compiled using the collective experience of many experts who have supported thousands of
installations and migrations.
Betsy Matthew
Vice President, AIM Technical Support and Customer Service
ix
Wayne Beaton is a Senior Software Consultant with Software Services for WebSphere, part
of the IBM Software Group. His main focus is helping customers to migrate from previous
versions and competitive products (including Visual Basic) to WebSphere Application Server
5.x. He has co-authored two other IBM Redbooks on the topic of migration. Waynes
diverse role involves him in many other interesting areas including the WebSphere Skills
Transfer programs and general consulting.
David Dhuyveter is a Senior Software Engineer with the WebSphere Enablement Team.
With IBM since 2000, he has over 10 years of experience in distributed transactional
systems. David has focused on application development and migration, and is co-author of
the redbook Migrating to WebSphere V5.0: An End-to-End Migration Guide. David received
his MS in Computer Science from California State Polytechnic University, Pomona in 1993.
Dana Duffield is a Senior Software Engineer and is the Migration and Interoperability
Architect for WebSphere Application Server in IBM Rochester. He is a software engineer who
has worked at the IBM Rochester Lab for over 22 years on various development projects. He
holds a Bachelor of Science degree in Computer Science from the University of Illinois,
Champagne-Urbana. He has significant experience in object-oriented and distributed system
development in architecture, development and leadership positions. Prior to working at IBM,
he worked at Bell Laboratories in Naperville, Illinois.
Tushar Patel is a WebSphere Lab Advocate in the United States, a software advisory role to
help support WebSphere customers in large complex deployments. He has over 12 years of
technical experience in Information Technology in various capacities. He holds a BS degree
in Software Engineering from University of Birmingham, England and an MBA from the
University of Cambridge, England.
Jack Snyder is a Senior I/T Architect in IBM Pittsburgh. He has over 30 years of experience
in computer systems and the engineering field of mining and computer systems. Jack holds
B.S., M.S., and Ph.D. degrees in engineering. His areas of expertise include WebSphere
Application Server, Java, and process control.
The following people assisted in providing information for the book.
Vijay Bhadriraju is an Advisory Software Engineer with over six years of experience in IBM.
He is currently a developer of J2EE tools and the team lead for migration topics for the
WebSphere Studio and Rational Developer line of products.
The following people assisted by providing review commentary for the book.
Vijay Bhadriraju also reviewed this book.
Diane Chalmers is a Staff Software Engineer located in Rochester, Minnesota. She is the
Migration focal point for WebSphere Application Server System Verification Test team. Diane
has over five years of test experience.
Preface
xi
Comments welcome
Your comments are important to us!
We want our Redbooks to be as helpful as possible. Send us your comments about this or
other Redbooks in one of the following ways:
Use the online Contact us review redbook form found at:
ibm.com/redbooks
xii
Part 1
Part
For application
developers
The chapters in this part are of interest to application developers who need to know about
development environment and application programming issues.
Chapter 1.
Version 5
Version 6
Targeted to
WebSphere Studio
Application Developer
WebSphere Studio
Application Developer
IBM Rational
Application Developer
for WebSphere
Software
WebSphere Studio
Site Developer
WebSphere Studio
Site Developer
The development tools have evolved from Version 4 to Version 6 with enhanced function so
that each product can do more than the previous version.
You can select any of the icons in the welcome page, and you can see other documentation
that gives you more information about the new features. If you are eager to get to work with
IBM Rational Application Developer for WebSphere Software, then simply select the x symbol
in the page tab next to the word Welcome in order to dismiss the page and see the product
workbench desktop.
If you prefer the perspective switcher location of the previous versions, you can change the
location with a preference as shown in the workbench appearance preference settings.
Figure 1-3 shows an example of how to change the preferences for the perspective switcher.
You launch the administrative console in exactly the same way as in previous versions. You
right-click the server and select Run Administrative Console as shown in Figure 1-6. This
operation launches a browser window in which the administrative console for WebSphere
Application Server is running.
In previous versions, you are required to install and configure a Remote Agent Controller
(RAC) in order to test on external application servers, even if the application server is
installed on the same system. V6 simplifies testing with locally installed servers by including
the RAC functionality such that you can test on a local server without installing a RAC.
Built-in help
Both IBM Rational Developer products have an built-in help facility. You access the help via
the Help menu as shown in Figure 1-7 on page 10.
The Help browser looks like that shown in Figure 1-8 on page 10. You can perform keyword
searches by typing in the search area. You can also browse articles in the navigation box on
the left.
Web Resources
You can access help on the World Wide Web by locating the Web Resources page and
selecting links that interest you. Figure 1-9 and Figure 1-10 on page 11 show the process of
accessing this page via the Help menu. Selecting the icons on this page opens a browser
window to the corresponding information page on the Web.
10
11
12
Chapter 2.
Application migration to
developer tools
This chapter discusses methods for developers to migrate their application source code into
the latest development tools.
13
Server targeting
Server targeting is a feature introduced in WebSphere Studio Application Developer V5.1.1.
Server targeting is an optional feature in the J2EE preferences in V5.1.1 and V5.1.2 and can
be enabled or disabled by the user. In IBM Rational Application Developer for WebSphere
Software, this feature is not optional and server targeting is therefore enabled by default.
For more details about the server targeting feature, refer to the online help.
14
However, V5.1.x projects that are imported from a source code repository or another
developer into V6.0 are compatible for sharing with V5.1.x so long as no new features in V6.0
are used in the project. Sharing projects between V5 and V6 requires that you export the
project with the Project Interchange option. The output of the export operation is a ZIP file that
contains the project and the project metadata. You then import the same ZIP file into
WebSphere Studio Application Developer using the Project Interchange option. For more
information, see the online help facility and look for the article Sharing Projects using Project
Interchange. For information about how to launch the online help facility, see 1.3, How to
obtain more information on page 9.
The error messages have no impact on the migration of the workspace. After closing the
errors dialogs, all the projects in the workspace are fully operational.
15
JavaServer Faces
Projects developed on WebSphere Studio Application Developer V5.1 which use JavaServer
Faces (JSF) either in Web projects or client applications should migrate the JSF components
to the most current levels found in IBM Rational Application Developer for WebSphere
Software. For more details, see the online help articles Migrating JavaServer Faces
resources in a Web project and Migrating JavaServer Faces resources with Faces Client
Components.
Debugger changes
The debugging facilities in IBM Rational Application Developer for WebSphere Software have
changed from V5. You may need to change settings manually. For more details, see the
online help article Debugger changes.
16
Chapter 3.
17
18
19
provided to package and redeploy the code to the WebSphere Application Server Version 6
runtime environment to ensure any packaging, deployment or compile issues are ruled out.
In the Java environment, incompatibilities could be at the binary level or the source level. It is
rare to see binary level incompatibility in applications that are being migrated and thus it is not
generally expected that they would require recompilation using the newer JDK that is
supplied with WebSphere Application Server Version 6 or with the IBM Rational Application
Developer for WebSphere Software. Source code level incompatibility is one area that one
would definitely need to remedy; however, deprecated functions would still run.
For a complete list of all the incompatibilities, including binary incompatibilities, please refer to
the Sun J2EE documentation:
http://java.sun.com/j2se/1.4/compatibility.html
J2EE differences
J2SE/JDK differences
Application Server runtime differences
Programming Model Extension differences
Third Party Library differences
Table 3-1 compares the J2EE application prerequisites for WebSphere Application Server
versions: V3.5, V4.0, V5.0 and V6.0 and their respective J2EE levels.
Table 3-1 J2EE specification levels supported by the WebSphere versions
WAS V3.5
(Pre-J2EE)
J2EE
WAS V5.0
J2EE 1.3
WAS V6.0
J2EE 1.4
1.2
1.3
1.4
EJB
1.0
1.1
1.1/2.0
2.1(2)
Servlet
2.1/2.2(1)
2.2
2.3(2)
2.4(2)
JSP
.91/1.0/1.1(1)
1.1
1.2(2)
2.0
1.0
1.02
1.1
JMS
20
WAS V4.0
J2EE 1.2
WAS V3.5
(Pre-J2EE)
WAS V4.0
J2EE 1.2
WAS V5.0
J2EE 1.3
WAS V6.0
J2EE 1.4
JTA
1.01
1.01
1.01
1.01
JDBC
1.1/2.0
2.0(4)
2.0(4)
3.0
1.0
1.0
1.0
1.0
1.0
1.0
1.1
1.2
1.3
1.2
1.2
1.2
1.1
1.2
1.0
1.5
1.0
1.0
JAF
RMI/IIOP
1.0
Java Mail
JNDI
1.2
JAXP
Connector
1.03
JAAS
Web Services
1.1
JAX-RPC
1.1
SAAJ
1.2
JAXR
1.0
J2EE
management
1.0
JMX
1.2
J2EE
Deployment
1.1
JACC
1.0
Notes:
1
2
3
4
Most of the changes from J2EE 1.3 to J2EE 1.4 are additive, and hence most code, including
deprecated code, continues to work properly. However, it is always a good programming
practice to deal with all the deprecations in the code at the particular specification level in
order to avoid possible future problems. Deprecated code is sometimes necessary in cases
where the same application needs to continue to run on the previous J2EE specification
levels as well as on the newer J2EE level.
We have intentionally narrowed the discussions here to J2EE 1.3 to limit scope. Migrations
from previous versions of WebSphere runtime have been discussed in a previously released
migration redbook, Migration to WebSphere V5.0 An End-to-End Migration Guide,
SG24-6910-01. This allows developers to migrate their applications to J2EE 1.3 as a stepping
stone to the J2EE 1.4 level discussed here.
21
important to check in each release to see what has actually been deprecated rather than
assume the default deprecation policy.
For full details of all the J2EE 1.4 deprecations can be found in the Sun Documentation
http://java.sun.com/j2ee/1.4/docs/api/deprecated-list.html
V4
Yes
No
V5
Yes
No
V5.0.2, V5.1
Yes
Yes
V6
Yes
Yes
Note that Apache SOAP API and its deployment model have been deprecated in WebSphere
Application Server Version 6. You should re-implement with J2EE 1.4 Web services which
was introduced in WebSphere Application Server V5.0.2. Applications developers can use
the migration wizard in IBM Rational Application Developer for WebSphere Software to
migrate these earlier Web services components to the new J2EE 1.4 specification.
pfx is used as the namespace prefix for all migrated qualified names.
23
pfx is used as the namespace prefix for all migrated qualified names.
24
In Servlet 2.4, SingleThreadModel Interface is deprecated due to its use in a way that is
potentially not thread safe. The best programming practice is to avoid the use of instance
variables, session attributes, and static variables. If it is still necessary, we recommend that
you use synchronized code blocks.
For further details about the J2EE Servlet specifications, download the specifications here:
http://java.sun.com/j2ee/1.4/download.html#platformspec
Authentication constraints
The Description object did not exist in J2EE 1.3; the description was an attribute on the
Authentication Constraint. J2EE 1.4 includes a Description object that has two attributes:
language and value. So, the description is set to value in the Description object.
Security constraints
As above, the description was an attribute of SecurityConstraint. In 1.4, there is a new
Description object with the attributes language and value. So, the description is set to value in
the Description object.
Web application
The ContextParam object in J2EE 1.3 does not exist in J2EE 1.4. In 1.4, there is a common
object called ParamValue. The Web root object in 1.4 contains a list of ParamValue objects
which are like the list of ContextParams on a Web 1.3 root object. So, to get to the
contectParams in 1.4, you need to go through the ParamValue object.
The description string attribute of the ContextParam object in the J2EE 1.3 specification level
has been moved to a Description object in ParamValue in J2EE 1.4.
The TagLib object in J2EE 1.3 has been moved to the JSPConfig object in J2EE 1.4. The
JSPConfig object belonged to the Web root object in 1.3.
The InitParam object in J2EE 1.3 also does not exist in 1.4. In 1.4, there is a common object
called ParamValue. The Servlet and Filter objects in 1.4 contain a list of ParamValue objects
like the list of InitParam on a Web 1.3 root object. To get to the InitParam in 1.4, you need to
go through the ParamValue objects associated with Servlet and Filter objects.
25
view might contain tag library declarations in elements other than jsp:root, and might
contain the same tag library declaration more than once, using different prefixes.
The uri parameter should always be used by tag library validators instead. Existing JSP
pages with existing tag libraries do not create any problems.
In JSP specification versions previous to JSP 2.0, JSP pages in XML syntax and those in
standard syntax determined their page encoding in the same fashion, by examining the
pageEncoding or contentType attributes of their page directive, defaulting to ISO-8859-1 if
neither is present. As of JSP Specification V2.0, the page encoding for JSP documents is
determined as described in section 4.3.3 and appendix F.1 of the J2EE 1.4 XML
specification, and the pageEncoding attribute of those pages is only checked to make sure
it is consistent with the page encoding determined as per the XML specification. As a
result of this change, JSP documents that rely on their page encoding to be determined
from their pageEncoding attribute can no longer be decoded correctly.
These JSP documents must be changed to include an appropriate XML encoding
declaration. Additionally, in the JSP 1.2 Specification, page encodings are determined on
a per translation unit basis, whereas in the JSP 2.0 Specification, page encodings are
determined on a per-file basis. For example, consider a JSP page A that specifies a page
encoding. It statically includes JSP page B which does not specify an encoding. Under
JSP 1.2, B inherits the encoding from A. Under JSP 2.0, B picks up the default encoding
and does not inherit the encoding from A.
The JSP container uses the version of web.xml to determine the default behavior of
various container features. The following is a list of items of which JSP developers should
be aware when upgrading their web.xml from Servlet Version 2.3 Specification to Servlet
Version 2.4 Specification.
EL expressions are ignored by default in applications created with JSP 1.2 technology.
When upgrading a Web application to the JSP 2.0 Specification, EL expressions are
interpreted by default. The escape sequence \$ can be used to escape EL expressions
that should not be interpreted by the container. Alternatively, the isELIgnored page
directive attribute or the el-ignored configuration element can deactivate EL for entire
translation units. Users of JSTL 1.0 need to either upgrade their taglib/ imports to the JSTL
1.1 URIs, or they need to use the _rt versions of the tags (for example, c_rt instead of c, or
fmt_rt instead of fmt).
Migrating EJBs
The J2EE Migration Wizard supports the migration of Enterprise Bean deployment
descriptors from J2EE 1.3 specification level EJB resource to J2EE 1.4 specification level.
Stateless Session Beans and Message Driven Beans are migrated to J2EE 1.4.
The J2EE Migration Wizard migrates Stateless Session Beans that are defined as Service
End Point interfaces (SEI) in an EJB project to the J2EE 1.4 specification level by creating
new Service End Point interfaces on the stateless session bean.
26
The J2EE 1.4 specification requires a SEI be defined on a Stateless Session Bean if the
session bean is to be used as a Web Services endpoint. During the migration of an EJB JAR,
all session beans in the EJB project get a new SEI that uses the name used in the
webservices.xml descriptor of the EJB project.
Example 3-1 shows how the metadata of an EJB project looks at the J2EE 1.3 specification
level. The <service-endpoint-interface> and <service-impl-bean> tags define Stateless
Session Bean "EchoEJB" as a Service Endpoint in the Web services descriptor at the J2EE
1.3 specification level prior to migration.
Example 3-1 J2EE 1.3 Web services project
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webservices PUBLIC "-//IBM Corporation, Inc.//DTD J2EE Web services 1.0//EN"
"http://www.ibm.com/webservices/dtd/j2ee_web_services_1_0.dtd">
<webservices id="WebServices_1084831328093">
<webservice-description id="WebServiceDescription_1084831328093">
<webservice-description-name>EchoEJBService</webservice-description-name>
<wsdl-file>META-INF/wsdl/EchoEJB.wsdl</wsdl-file>
<jaxrpc-mapping-file>META-INF/EchoEJB_mapping.xml</jaxrpc-mapping-file>
<port-component id="PortComponent_1084831328103">
<port-component-name>EchoEJB</port-component-name>
<wsdl-port id="WSDLPort_1084831328103">
<namespaceURI>http://test</namespaceURI>
<localpart>EchoEJB</localpart>
</wsdl-port>
<service-endpoint-interface>test.EchoEJB</service-endpoint-interface>
<service-impl-bean id="ServiceImplBean_1084831328103">
<ejb-link>EchoEJB</ejb-link>
</service-impl-bean>
</port-component>
</webservice-description>
</webservices>
Example 3-2 shows a J2EE 1.4 EJB Deployment Descriptor for the stateless session bean
"EchoEJB" with service endpoint interface created by the migration wizard. The
<service-endpoint> tag defines "EchoEJB" as a Service Endpoint in J2EE 1.4 specification
level.
Example 3-2 J2EE 1.4 Web services project
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar>
<ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<display-name>
EchoEJBProject</display-name>
<enterprise-beans>
<session id="EchoEJB">
<ejb-name>EchoEJB</ejb-name>
<home>test.EchoEJBHome</home>
<remote>test.EchoEJB</remote>
<service-endpoint>test.EchoEJB</service-endpoint>
<ejb-class>test.EchoEJBBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
Chapter 3. Changing application code
27
</ejb-jar>
acknowledgeMode
messageSelector
destinationType
subscriptionDurablity
Some of the EJB 2.0 Message Driven Bean elements are replaced with activation-config
properties. The property names and values used in the activation-config to describe the
messaging service vary depending on the type of message service used. However, EJB 2.1
defines a set of fixed properties for JMS-based message-driven beans.
Example 3-3 shows the elements of a sample bean in EJB 2.0. Contrast this with
Example 3-4 which shows how the elements appear in EJB 2.1.
Example 3-3 EJB 2.0 descriptor for Message Driven Bean
<message-driven id="Mdb20">
<ejb-name>Mdb</ejb-name>
<ejb-class>ejbs.MdbBean</ejb-class>
<transaction-type>Bean</transaction-type>
<message-selector>mdbMessage</message-selector>
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Topic</destination-type>
<subscription-durability>Durable</subscription-durability>
</message-driven-destination>
</message-driven>
Example 3-4 EJB 2.1 descriptor for Message Driven Bean
<message-driven id="Mdb21">
<ejb-name>Foo/ejb-name>
<ejb-class>ejbs.FooBean</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean/transaction-type>
<message-destination-type>javax.jms.Topic</message-destination-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Topic</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>subscriptionDurability</activation-config-property-name>
<activation-config-property-value>Durable</activation-config-property-value>
</activation-config-property>
<activation-config-property>
28
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
<activation-config-property-value>AutoAcknowledge</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>messageSelector</activation-config-property-name>
<activation-config-property-value>fooSelector</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
managedConnectionFactoryClass
connectionFactoryInterface
connectionFactoryImplClass
connectionInterface
connectionImplClass
29
3.2.2 J2SE
The J2EE runtime consists of the Web container, the EJB container, the applet container and
the application client container. The containers are J2EE runtime environments that provide
required services to the application components. For example, the application client container
provides application clients with direct access to the J2EE required database through the
Java API for connectivity with database systems, the JDBC API. Similar access to databases
is provided to JSP pages and servlets by the Web container, and to enterprise beans by the
EJB container.
WebSphere Application Server V5.1 is the first version to adopt J2SE 1.4. A number of
changes to the Java language have taken place in J2SE 1.4. These changes may impact
your application (For example, JDK 1.4 includes an XML implementation that may potentially
conflict with XML libraries your application uses.). In most cases, the changes have no
impact.
Compatibility
For full details about all the J2SE 1.4 incompatibilities, please refer to this Sun Java article:
http://java.sun.com/j2se/1.4/compatibility.html
Deprecation
For a full list of deprecated APIs for J2SE 1.4 platform, please refer to this Sun Java article:
http://java.sun.com/j2se/1.4.2/docs/api/deprecated-list.html
JDBC 3.0
The JDBC 3.0 API, included as part of the J2SE 1.4 platform, introduces two new interfaces
and adds several new methods to existing interfaces. Drivers and applications that use earlier
versions of the JDBC API are binary compatible with the J2SE 1.4 platform and run without
any problems. However, the changes made in the JDBC 3.0 API are not source-compatible.
Drivers and applications that implement the JDBC interfaces must be updated to reflect the
changes in order to build successfully. Chapter 6 of the JDBC 3.0 Specification gives a
complete list of what must be done to be compliant with the JDBC 3.0 API, and therefore
source-compatible with the J2SE 1.4 platform. You can find the JDBC 3.0 Specification at this
location:
http://java.sun.com/products/jdbc/download.html
For applications using JDBC APIs prior to JDBC 2.0, these are some significant deprecations
that should be noted:
30
java.sql.CallableStatement.getBigDecimal(int, int)
java.sql.Date(int, int, int)
java.sql.Date.getHours()
java.sql.Date.getMinutes()
java.sql.Date.getSeconds()
java.sql.Date.setHours(int)
java.sql.Date.setMinutes(int)
java.sql.Date.setSeconds(int)
java.sql.DriverManager.getLogStream()
java.sql.DriverManager.setLogStream(PrintStream)
java.sql.PreparedStatement.setUnicodeStream(int, InputStream,int)
java.sql.ResultSet.getBigDecimal(int, int)
java.sql.ResultSet.getBigDecimal(String, int)
java.sql.ResultSet.getUnicodeStream(int)
java.sql.ResultSet.getUnicodeStream(String)
This returns a URL to the resource that is mapped to a specified path. The path must begin
with a / and is interpreted as relative to the current context root.
getResourceAsStream(String)
public java.io.InputStream getResourceAsStream(java.lang.String path)
This returns the resource located at the named path as an InputStream object. The data in
the InputStream can be of any type or length. The path must be specified according to the
rules given in getResource.
WebSphere Application Server Version 5 does not enforce the specification requirement that
the path begin with slash. It accepts a path regardless of whether the path begins with slash.
However, WebSphere Application Server Version 6 is more stringent and requires that the
path begin with slash. Failure to do so results in a MalformedURLException exception.
Even if your code does not use getResource or getResourceAsStream, your application may
encounter this incompatibility because your application uses a third-party library which then
uses one of these methods. One third-party library that is known to have this problem is the
Apache Struts framework.
You can eliminate this problem without changing any code. WebSphere Application Server
Version 6 allows you to establish a compatibility mode such that the behavior is identical to
that of V5. You need to set the custom property prependSlashToResource for the Web
container of the application server running the application. This setting is global to the entire
server and affects every application on that server. See 7.5.3, getResource path syntax on
page 120 for information about how to set the prependSlashToResource property.
31
Release
when
deprecated
6.0
UDDI4J V2
6.0
6.0
6.0
6.0
Package com.ibm.websphere.servlet.filter
6.0
MIME filtering
6.0
6.0
Package com.ibm.websphere.product.product
6.0
6.0
PMI Client
6.0
6.0
6.0
getStackTrace
5.1
5.1
5.1
Security API
5.1
For more information about deprecations, see this InfoCenter article: Deprecated features in
Version 6.0, found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.expres
s.doc/info/exp/ae/rmig_deprecationlist.html
UDDI4J V2
A client library is provided to simplify constructing and sending UDDI V3 requests from Java.
This is the IBM UDDI V3 Client for Java, provided in uddiv3client.jar. The UDDI4J APIs
(uddi4jv2.jar) may still be used. Migrate to V3 UDDI APIs.
Package com.ibm.websphere.servlet.filter
These classes are included in this package:
ChainedRequest
ChainedResponse
ChainerServlet
ServletChain
Redesign your application to use javax.servlet.filter classes. Starting from the Servlet 2.3
specification, javax.servlet.filter classes give you the capability to intercept requests and
examine responses. They also allow you to achieve chaining functionality, as well as
embellishing or truncating responses.
MIME filtering
MIME filtering is deprecated. MIME filters were first introduced in WebSphere Application
Server V3.5 as a way for servlets to embellish, truncate, and/or modify the responses
generated by other servlets, based on the MIME types of the output content. Migrate to
javax.servlet.filter classes.
Package com.ibm.websphere.product.product
All the methods and fields in com.ibm.websphere.product.product and
com.ibm.websphere.product.buildInfo classes are deprecated. Hence, the following methods
from com.ibm.websphere.product.WASProduct class (which involves
com.ibm.websphere.product.product and com.ibm.websphere.product.buildInfo objects) are
deprecated:
public
public
public
public
public
public
public
public
public
public
33
Also, instead of getting product information (name, version, build level, build date) from the
old WASProduct API (com.ibm.websphere.product.WASProduct), you should now use the
following methods in the WASDirectory class to get that information:
com.ibm.webpshere.product.WASDirectory.getName(String)
com.ibm.webpshere.product.WASDirectory.getVersion(String)
com.ibm.webpshere.product.WASDirectory.getBuildLevel(String)
com.ibm.webpshere.product.WASDirectory.getBuildDate(String)
PMI Client
The PMI Client API, which was introduced in V4.0 to programmatically gather performance
data from WebSphere Application Server, is deprecated.
The Java Management Extension (JMX) interface, which is part of the J2EE specification, is
the recommended way to gather WebSphere Application Server performance data. PMI data
can be gathered from the J2EE-managed object MBeans, or from the WebSphere PMI Perf
MBean. While the J2EE MBeans provide performance data about a specific component, the
Perf MBean acts as a gateway to the WebSphere Application Server PMI service, and
provides access to the performance data for all the components.
com.ibm.websphere.servlet.error.ServletErrorReport.getStackTrace
This is not really a deprecation. It is really an incompatibility cause by a method signature
collision with a method defined in J2SE 1.4. The changed class is
com.ibm.websphere.servlet.error.ServletErrorReport. The return signature for getStackTrace
is changed because java.lang.Throwable now defines the same method with a different return
signature.
Old method signature:
public String getStackTrace();
// returns a String representation of the
exception stack
34
New method signature (JDK 1.4, WebSphere Application Server Version 5.1)
public StackTraceElement[] getStackTrace();
// returns an array of stack trace
elements
A replacement method that has the same signature as the old method is provided:
public String getStackTraceAsString();
// returns a String representation
of the Exception Stack
repeat
dbconnect
dbquery
getProperty
userid
passwd
dbmodify
Instead of using the tsx tags, you should use equivalent tags from the Java Server Pages
Standard Tag Library (JSTL). JSTL is supported in WebSphere Application Server Version 6,
and the tag library is shipped with the product. Use Table 3-4 as a guideline for converting tsx
tags to JSTL tags.
Table 3-4 JSP tsx tags:
tsx tag
JSTL tag
tsx:repeat
c:forEach
tsx:dbconnect
sql:setDataSource
tsx:dbquery
sql:query
tsx:getProperty
tsx:userid
tsx:passwd
tsx:dbmodify
sql:update
ccf.jar
ccf2.jar
recjava.jar
eablib.jar
The J2EE Connector Architecture APIs should be used instead of the Common Connector
Framework.
Security APIs
These APIs have been deprecated:
35
36
Extension
WebSphere
V4
WebSphere
V5
WebSphere
V5.1
WebSphere V6
Business Rule
Beans
Enterprise
Enterprise
WBISF
WBISF
Process
Choreography
Enterprise
Enterprise
WBISF
WBISF
Extended
Messaging
Enterprise
Enterprise
WBISF
WBISF
Enterprise
Enterprise
WBISF
Not Supported
Application Profiling
Enterprise
Enterprise
WBISF
Express / Base / ND
Work Area
Enterprise
Enterprise
WBISF
Express / Base / ND
Distributed Map
Enterprise
WBISF
Express / Base / ND
Startup Beans
Enterprise
WBISF
Express / Base / ND
Activity Session
Enterprise
WBISF
Express / Base / ND
Internationalization
Enterprise
WBISF
Express / Base / ND
Asynchronous
Beans
Enterprise
WBISF
Express / Base / ND
Object Pool
Enterprise
WBISF
Express / Base / ND
Dynamic Query
Enterprise
WBISF
Express / Base / ND
Last Participant
Enterprise
WBISF
Express / Base / ND
Extended JTA
Enterprise
WBISF
Express / Base / ND
Extension
WebSphere
V4
WebSphere
V5
WebSphere
V5.1
WebSphere V6
Backup Clusters
Enterprise
WBISF
ND
WSWG Filters
Enterprise
WBISF
ND
Parser compatibilities
Inclusion of the JAXP 1.2 specification means that J2EE 1.4 application servers now have
XSLT engines, SAX 2.0, and DOM level 2 parsers included. You can write your XML
processing code once and swap in third-party parsers or XSLT engines as necessary, without
changes to the source code. This is a step forward from J2EE 1.3, which included only JAXP
1.0, which did not support XSLT or the latest DOM/SAX technologies. If your code relies on
inclusion of your own parsers, you may need to change the application code as well as the
class loader settings to take advantage of system parsers in WebSphere Application Server
Version 6.
There are really two cases to consider when migrating from previous versions of WebSphere
Application Server. The first case is where an application has an intentional dependency on
the system XML parsing classes (org.apache.xerces and org.apache.xalan). You need to be
aware that Xerces classes and version levels that were included with previous WebSphere
Application Server versions cannot be relied upon. Previous versions of WebSphere
Application Server included these for convenience, since they were not specified in J2SE,
J2EE or IBM programming extensions API.
In WebSphere Application Server Version 5.1 and Version 6, all classes became part of J2SE
1.4 standard, therefore the lib/xerces.jar no longer exists. WebSphere Application Server
Version 5.1 and Version 6 components rely on the J2SE XML classes supplied with the
runtime. Make sure that your migrated applications code and classpath conform to these
newer version levels of the parser API.
The second case is where the application developer has packaged their own XML classes in
the EAR, and due to class loader settings, ends up picking up the system classes. In this
case, you may need to change the class loader settings to ensure you pick up the parser
classes in the EAR. The class loader settings and defaults are the same between V5.x and
V6.x, so if the settings were correctly set, they would remain correctly set, assuming that the
default setting was also moved across during migration of the runtime configuration.
See 7.5.1, Class loader on page 114 for more information about the class loader settings
changes.
37
38
Chapter 4.
Development migration
scenarios
This chapter provides real examples of migrating an application to IBM Rational Application
Developer for WebSphere Software with step-by-step instructions.
39
In addition to the import and configuration of the Plants By WebSphere application into the
WebSphere Studio Application Developer workspace, the required tables have been created
in a Cloudscape database called PLANTSDB. See the documentation that comes with the
sample for instructions on creating the database.
For all the examples in this section, IBM Rational Application Developer for WebSphere
Software Version 6 can be installed on the same system as WebSphere Studio Application
Developer, or on a different system.
40
5. Deselect Delete Bean Only, Delete Bean classes and Delete Access Bean. This should
leave just Delete Deployed code checked.
6. Click OK.
7. Expand the SupplierEJB project and expand Session Beans.
8. Highlight the one session bean and delete the deployed code as with the previous project.
9. Switch to the J2EE Navigator view and expand PlantsByWebSphereEJB -> ejbModule.
10.Delete all packages except com.ibm.websphere.samples.plantsbywebsphereejb.
11.Expand SupplierEJB -> ejbModule.
12.Delete all packages except com.ibm.websphere.samples.supplierejb.
41
Figure 4-2 Initial screen for IBM Rational Application Developer for WebSphere Software
42
11.Click Finish.
12.After the import completes, watch the lower right corner of IBM Rational Application
Developer for WebSphere Software. Wait for all background tasks to complete. At this
point, there are two errors (problems with dds.xml) and a significant number of warnings in
the Problems view.
The code validators in IBM Rational Application Developer for WebSphere Software have
been enhanced to provide warnings on many that were not in WebSphere Studio Application
Developer. A close examination of the warnings shows that they address code maintenance
issues, but do not represent problems with the code. They can safely be ignored.
The errors in dds.xml are due to name space issues in XML files. These errors can also be
ignored.
43
4. On the Enterprise Application page, click Finish to migrate the entire application.
5. When the Migration Complete dialog appears, click OK.
6. Use the same steps to migrate the PlantsSupplier application.
44
4. Click Add... next to Data source defined in the JDBC provider to define the data source.
45
5. Select Cloudscape JDBC Provider (XA) and Version 5.0 data source. Click Next>.
46
10.Click Next>.
11.Type the appropriate value for the databaseName. This should be the same value as was
used to run the application under WebSphere Studio Application Developer. For
Cloudscape, the databaseName is the name of a directory that contains the Cloudscape
database. If the PLANTSDB is not present on the IBM Rational Application Developer for
WebSphere Software system, it should be copied from the WebSphere Studio Application
Developer system at this time.
12.Click Finish.
13.Close the Application Deployment Descriptor editor and save the deployment descriptor.
47
2. Click the Beans tab of the EJB Deployment Descriptor editor and select the
PurchaseOrders MDB EJB.
3. If you click Run in Background, you can monitor the progress by watching the lower right
corner of the workbench.
48
Notice that the editor has been simplified. Most of the configuration that was managed by
the WebSphere Studio Application Developer 5 Server Editor is managed in the
administrative console.
3. Close the WebSphere Application Server editor.
4. In the Servers view, right-click WebSphere Application Server 6.0 and select Start.
5. When the server status changes to Started, right-click the server and select Run
administrative console. This launches the standard WebSphere 6.0 administrative
console.
6. Type migration for the User ID (the User ID is only used for tracking changes to the
configuration.) and click Log in.
49
1. Expand Service integration in the left panel of the administration console. Click Buses.
50
51
4. Under Additional Properties for the PlantsByWebSphere bus, click Bus members.
5. On the Bus Members page, click Add.
52
6. Leave the default values on the Select server or cluster pane and click Next.
53
10.There are some destinations already defined. Click New to create a new JMS destination.
54
13.Leave the Bus member set to the member you defined and click Next.
55
15.Click the Save link (found at the top of the administrative console). You will see a window
prompting you to save to the master configuration. Click the Save button on this page to
save the settings to disk.
16.Expand Resources in the left panel of the administration console. Expand JMS
Providers and select Default messaging.
17.Ensure that a scope of Node is selected.
56
57
26.Type PurchaseOrdersQueue for the Name and jms/PurchaseOrdersQueue for the JNDI
name.
27.Select PlantsByWebSphere for the Bus name and click the >> button.
28.Select PurchaseOrdersQueue for the Queue Name.
29.Click OK.
30.Click Default messaging provider to return to the provider page.
58
59
3. Click Add All to add both applications to the server and click Finish.
4. Watch the status in the lower right corner of IBM Rational Application Developer for
WebSphere Software. When all tasks complete, the applications are installed and running
in the test environment.
5. Launch a Web Browser and enter the URL: http://localhost:9080/PlantsByWebSphere.
6. Click Fruits & Vegetables. Click Ornamental Gourd. Enter 150 in the Quantity field and
click Add to cart.
7. Click the Checkout Now button at the bottom of the page.
60
8. At the Login page, click the register for your own account here link.
61
10.Select the checkbox next to Check here if the shipping address is the same as the
billing address. Enter a dummy value for the Credit Card Number (such as 123456). and
a Cardholder Name. Click the Continue button.
11.You are presented with a page where you can review your order. Click Submit Order at
the bottom of the page.
12.The order is submitted. In the Console view, you may see an error related to sending
e-mail. This occurs if you did not configure a mail provider. This error can be ignored.
13.A page is displayed confirming the order.
14.Visit the administration page to check for back orders:
http://localhost:9080/PlantsByWebSphere/admin.html
16.Under Back Order Items, you should see a shortage of ornamental gourds. To replenish
the supply, enter 100 for the quantity to order and click the checkbox next to the
ornamental gourds. Click the Order Stock button.
17.Scroll down to the Ordered Items. Observe that 100 gourds have been ordered. (If no
gourds have been ordered, make sure that you selected the checkbox in the previous
step.) Click the Refresh button on the top of the page (not the browser refresh button) to
ensure that the items have been ordered.
18.After clicking the Refresh button, the gourds should appear under Received Items. This
indicates that the items have been received from the supplier. To put the items back in
stock, click the checkbox next to the item and click Update Stock.
The ornamental gourds no longer appear in the received items, indicating that they have
been integrated into the stock that people order from.
19.Testing of the application is complete. In the Servers view, right-click WebSphere
Application Server V6.0 and select Stop.
63
64
65
66
67
68
Part 2
Part
For system
administrators
The chapters in this part are for system administrators who manage application server
systems on the Windows and UNIX architectures.
69
70
Chapter 5.
Product overview
This chapter provides a broad overview of WebSphere Application Server Version 6.
71
72
offering is an unlimited license of the Application Server Toolkit and a trial version of the IBM
Rational Application Developer for WebSphere Software.
See this article for diagrams of topologies that support the WebSphere Application Server
environment: Planning to install WebSphere Application Server, found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.base.d
oc/info/aes/ae/tins_scenario2.html
73
74
Application server
IBM HTTP Server Version 6
Web server plug-ins
Application client environment
Linux i p
Linux IA32
Solaris
Windows
application server
Linux z
HP-UX
AIX
75
Windows
Solaris
Linux z
Linux IA32
Linux i p
HP-UX
AIX
Application Server
IBM HTTP Server V6.0
Web Server Plug-ins
Application client environment
76
HP-UX
Linux i p
Linux Intel
Linux z
Solaris
Windows
AIX
application server
Application server
IBM HTTP Server V6.0
Web server plug-ins
Application client environment
77
Table 5-3 shows which subcomponents are available and which operating system platform is
supported for each. For more exact information about which operating system version and fix
level is needed, see this document:
http://www.ibm.com/software/webservers/appserv/doc/v60/prereqs/prereq60.html
Table 5-3 Supported Platforms for WebSphere Application Server Network Deployment
HP-UX
Linux i p
Linux Intel
Linux z
Solaris
Windows
AIX
application server
Edge Components
78
Chapter 6.
79
6.1 Environments
The ideal corporate WebSphere environment is shown in Figure 6-1. This environment, which
is described with greater detail in The Ideal WebSphere Development Environment1,
represents (as established in the first sentence) the ideal; it is very likely that your
environment contains many similar elements.
Development Environment
Development Integration
Runtime Environment
Development
Development
Development
(Rational Application (Rational Application (Rational Application
Developer)
Developer)
Developer)
HTTP/WAS
Performance Test
Environment
HTTP/WAS
HTTP
SCM
Integration Workstation
(Rational
Application Developer)
WAS
WAS
WAS
HTTP
WAS
Production Environment
Pre-Production Environment
Router
WAS
HTTP
HTTP
WAS
WAS
WAS
Router
WAS
WAS
HTTP
HTTP
WAS
WAS
WAS
This figure represents an ideal environment that includes all of the necessary stages for a
first-class rigorous environment. In this environment, each sub-environment is as complete as
it needs to be to serve the intended task. These environments all need to be migrated; it is
important that we understand why each of these sub-environments exists and the constraints
placed upon them so that we know what needs to be done during the migration.
Pragmatically speaking, very few organizations achieve the ideal described here. It is more
realistic to expect that parts of the ideal are represented in your corporate environment.
Figure 6-2 on page 81 shows a scale of the risk associated with each of the environments.
80
http://www-106.ibm.com/developerworks/websphere/techjournal/0312_beaton/beaton.html
Development
Integration
Runtime
Development
Environment
System Test
Performance Test
Pre-production
Production
Increased Risk
Ideally, additional hardware is available for operations staff to use to familiarize themselves
with the new version of WebSphere Application Server, but reality is that hardware is
expensive and it may well be the case that additional hardware is not available. In this case,
operations staff can gain familiarity with installation of WebSphere Application Server as they
move left to right through these environments starting, of course, with the development
integration runtime.
There are at least three different types of runtime migration, each with increasing adversity to
risk.
The development test and system test environments
Performance testing and pre-production environments
Production runtime environment.
Each of these environments is discussed below in detail.
81
82
For example, the administration staff may use this environment to test new patches and
configuration changes before they are rolled into the pre-production and production
environments.
Extended downtime in this environment can have an impact on delivery schedules. This
environment is a key piece of the testing infrastructure and downtime means that important
testing done in this environment cannot be undertaken. Still, risk is relatively low and with
planning it should be possible to schedule several days to migrate this environment.
This is probably the first environment that administrators can use to gain experience with the
migration tools and start to develop a plan for migrating the downstream environments. It may
make sense to use one of the options outlined in 6.3, Migration options on page 89 to
migrate this environment.
Your administrators should be prepared to start over if problems arise. It is important that
issues be exposed and remediated during this migration. At the end of the day, you need to
have a functioning system test environment and a good start on a formal migration plan. To
this end, it may be necessary to reinstall the old environment to run through the migration
scenario a second (or third) time to ensure that key concepts are understood and that
outstanding issues are resolved. This is particularly true if your overall environment does not
match the ideal and does not include a dedicated performance test environment.
83
84
6.2 Interoperability
Interoperability is part of almost every migration, at least for some short period of time as the
runtime environment is migrated. In some cases, there may be a need to retain some number
of servers running the older version. Use of features that are not supported by V6 might be
one possible reason (Continued use VisualAge for Javas Enterprise Access Builders or the
Common Connector Framework are examples). For organizations with large numbers of
applications, it may not be practical to prepare, test, and certify all of their applications for
V6.0 at the same time and so some extended period of interoperability may be required as
those applications are pushed through.
Even if all the applications can be moved forward to WebSphere Application Server V6.0 at
the same time, there is likely to be some short period of time when interoperability is required.
The bottom line is that some amount of interoperability is inevitable.
Migrating a V5.x deployment manager to V6.0 is quite easy to do and works well. The
interoperability works well with the restrictions noted above. Migrating the existing
deployment manager can save significant time and money. Since migration conserves the
current cell configuration, you do not need to spend time rebuilding it (though you may want
to spend some time reviewing the settings to confirm that everything migrated as expected).
You save money because you do not need to acquire additional hardware to make the
migration work (see 6.3, Migration options on page 89).
Whether or not a mixed version cell is appropriate for your organization depends on a number
of factors. Perhaps the most important factor is the amount of time that the complete
migration takes. In every migration, there is some period of interoperability as a new
production runtime is rolled out. If all the applications have been migrated, tested, and
declared ready for Version 6.0, then the period of interoperability is relatively short (hours or
days). If only some applications are declared ready for Version 6.0, then your complete
migration to Version 6.0 may take weeks or months.
Why does the period of time required to migrate matter? For some organizations, the ability to
reconstruct an environment from scratch (perhaps in the event of hardware or catastrophic
failure) is important. It is time consuming to reconstruct a mixed version configuration from
scratch. A mixed version cell can be reconstructed using a configuration backup. Without a
backup, a mixed version cell must be reconstructed by first rebuilding the V5.x nodes and
then repeating the migration. This can be very time consuming.
Furthermore, it is difficult, or sometimes impossible, to make significant modifications to V5.x
nodes in a V6.0 cell. Specifically, since new V5.x server instances cannot be added, it is very
difficult to reprovision V5.x assets. You could not, for example, add additional V5.x nodes to
Chapter 6. Runtime migration strategy
85
handle an increase in traffic should the need arise. If your V5.x applications cannot be
migrated immediately, it may be better to retain your V5.x cell until those applications can be
migrated.
It is important to note that J2EE 1.3 applications deployed on WebSphere Application Server
V5.x should require little or no modification to run on V6.0 and, in general, testing should
amount to little more than running existing test scripts with the application deployed on the
new environment. While this is generally true, some organizations may choose to do more
extensive testsincluding, for example, performance testingprior to production
deployment. Such testing can take a considerable amount of time, especially when multiple
applications are involved.
5.1.1
5.1
5.02
4.07AE
Apache 2.0.49
yes
no
no
no
no
Covalent 1.4
no
yes
yes
no
no
Covalent 2.3.2
no
yes
yes
yes
yes
Covalent 2.4
no
yes
yes
no
no
yes
yes
yes
no
no
yes
no
no
no
no
Internet Information
System 5.0
yes
yes
yes
yes
yes
Internet Information
System 6.0
yes
yes
yes
yes
no
yes
yes
no
no
no
yes
yes
no
no
no
During a rolling migration, there is some period of interoperability where you have both the
existing and new versions of WebSphere Application Server running concurrently. During that
period of interoperability (depending on what version of the HTTP server you are currently
using), you may have to take care that the tiers are configured correctly.
If your current topology organizes your HTTP and application servers into silos (that is, each
application server node has a dedicated HTTP server) as shown in Figure 6-3 on page 87,
then the HTTP server version differences are irrelevant. You can update the HTTP server as
the application server is upgraded.
2
For up to date information, please see
http://www-306.ibm.com/software/webservers/appserv/doc/latest/prereq.html
86
Load Balancer
HTTP Server X
HTTP Server X
HTTP Server X
V5.x plugin
V5.x plugin
V5.x plugin
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 5.x
Since the HTTP server is effectively dedicated to a single instance of WebSphere Application
Server, it can easily co-exist with mixed HTTP server versions as shown in Figure 6-4.
Load Balancer
HTTP Server X
HTTP Server X
HTTP Server Y
V5.x plugin
V5.x plugin
V6.0 plugin
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 6.0
Figure 6-4 With a silo topology, mixed HTTP server versions can easily work together
This form of interoperability is relatively easy to maintain through a rolling migration (or even
for extended periods if required).
For more complex topologies, compatibility can have a significant impact on the migration
path. Figure 6-5 on page 88 shows a more complex configuration that employs workload
management from the HTTP servers to a collection of application server nodes.
87
.
Load Balancer
HTTP Server X
HTTP Server X
HTTP Server X
V5.x plugin
V5.x plugin
V5.x plugin
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 5.x
Version differences between HTTP servers impact the strategy for moving forward. In this
event, different versions of the HTTP servers need to be fitted into silos temporarily during the
rolling migration. Figure 6-6 shows an example where the first application server node is
upgraded to V6.0 along with one of the HTTP servers.
Load Balancer
HTTP Server X
HTTP Server X
HTTP Server Y
V5.x plugin
V5.x plugin
V6.0 plugin
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 6.0
As the migration progresses, the new V6 silo is extended as shown in Figure 6-7.
Load Balancer
HTTP Server X
HTTP Server Y
HTTP Server Y
V5.x plugin
V6.0 plugin
V6.0 plugin
IBM WebSphere
Application
Server 5.x
IBM WebSphere
Application
Server 6.0
IBM WebSphere
Application
Server 6.0
88
By the end of the migration, all HTTP servers and application server nodes are migrated and
the original topology is again in place.
The previous two examples represent horizontal migrations. This means that the migration
must span tiers. If a common version of the HTTP server is in place at the start of the
migration, then the migration can be processed vertically. In this case, the entire HTTP server
tier might be completely migrated before a single application server node is migrated.
89
nodes continue to work even as the deployment manager is out of service for the upgrade.
Additionally, this method requires the least amount of time and manual intervention. The
WASPreUpgrade and WASPostUpgrade tools effectively move the existing configuration into
WebSphere Application Server Version 6.0.
90
for the new cell (this assumes that you have an homogeneous collection of machines running
your cell).
91
92
Chapter 7.
93
Installation
WebSphere Application Server Version 4 installs the application server, the Web server, and
the Web server plug-ins with a single installer that installs all three in sequence. WebSphere
Application Server Version 6 uses independent installers to install these three components.
See 7.2, Installation on page 96 for details about how to perform installations.
94
95
See the IBM Education assistant section on service integration technologies for this set of
tutorials for a more detailed discussion on the messaging design:
ftp://ftp.software.ibm.com/software/eod/WAS_6-0/WPM/index.html
Installation
WebSphere Application Server Version 5 installs the application server, the Web server, and
the Web server plug-ins with a single installer that installs all three in sequence. WebSphere
Application Server Version 6 uses independent installers to install these three components.
See 7.2, Installation on page 96 for details on how to perform installations.
Profiles
Profiles are a concept of packaging a WebSphere installation into a single set of read-only
binary executable files, and multiple sets of writable data files that represent application
server instances. See 7.2.3, Profiles on page 101 for details on the concepts of how profiles
work and how to administer them.
See 7.3, Administrative console on page 109 for more details on the changes to the
administrative console.
Cell administration
Network Deployment cells continue to be managed by a deployment manager as they had
been in V5. The deployment manager manages the configuration data for the nodes in the
cell and pushes that data to the node as required. The concept of a cell has been expanded
to include both V5 nodes and V6 nodes in order to allow a staged migration of large numbers
of nodes. See 8.4, V5 Network Deployment on page 140 for an overview of cell migrations.
Also see Starting servers on page 112 for details about starting and stopping cell members.
7.2 Installation
Installation of the WebSphere Application Server Version 6 has changed the basic structure
and sequence of the installers. Previous versions used a single integrated installer which
installed the application server, Web server, and Web server plug-ins all in one installation
step. Version 6 uses independent installer steps coordinated by a Web page containing links
to the individual installers.
Another major new aspect of the application server installer is that installation is now
segmented into independent installation wizards.
96
7.2.1 Launchpad
The installer launchpad page offers links which starts each of the individual installers.
The launchpad is started by running the launchpad script from the top directory of the
installation media. Figure 7-3 shows a Windows file view of the installation media. If your
operating system is not Windows, the filename would be launchpad.sh and it would be in the
same position on the media.
Running the launchpad script starts the default browser and the browser screen looks similar
to Figure 7-4. Each installer is started by selecting the appropriate link in the blue navigation
bar on the left side of the launchpad page. When you select the link at the left, the right side of
the page changes. You then select the link on the left that begins with the phrase Launch the
installation wizard.
Application Server
The Application Server installer is started from the launchpad page. It is a Java installer that
installs the binary portion of WebSphere Application Server. The Application Server is
installed in two major phases. The first phase consists of installation of the product binary
Chapter 7. Runtime administration overview
97
read-only files. The second phase of the installation is the creation of a profile, which is a
conceptual container for all the writable files that constitute the configuration description for
an application server. After the binary files are installed and a profile is created, the
installation is considered complete. If you need to run multiple servers on the same system,
you would optionally create additional profiles to correspond to those additional server
configurations.
WebSphere Application Server and WebSphere Application Server Express are both
products that use only application servers as the building blocks of systems. Figure 7-5
applies explicitly to these products in that the installation wizard creates a default profile that
describes an application server configuration. Contrast this notion of these two products to
the WebSphere Application Server Network Deployment product by examining Figure 7-6.
WebSphere Application Server Network Deployment uses three types of configuration
descriptions, namely application servers, deployment managers, and node agents.
Therefore, WebSphere Application Server Network Deployment needs to create three
different types of profile to represent those types of configuration entities. The installation
wizard for WebSphere Application Server Network Deployment gives you the option to start
the profile creator, which is a separate command which creates profiles.
Figure 7-6 Conceptual installation for WebSphere Application Server Network Deployment
After launching the installer, you accept the software license agreement and specify the
directory where you want to install the binary files. The installer also verifies that you have the
correct operating system prerequisites and prompts you if your system does not meet the
prerequisites.
Figure 7-7 on page 99 shows the feature selection choices you can make. Notice that the
Web server is no longer listed here as it was in previous versions. You can only choose
whether you want samples installed or the Javadoc documentation.
98
If you are installing WebSphere Application Server Network Deployment, the installer would
proceed to confirm your selections and install all the binary files. When the installer is done
installing the binary file portion, you are given the option to run the profile creation wizard.
See Creating profiles on page 102 for more information about the profile creation wizard.
If you are installing WebSphere Application Server or WebSphere Application Server
Express, the installer would present more screens to fill in. For these products the first default
profile configuration is integrated with installation of the binary portion.
Figure 7-8 shows the port number assignments. The default selections work fine if you are
only installing one application server on this system. As you create more profiles, the ports
increment to avoid port conflicts. If you have multiple installations on the same system, you
must be aware of all the port assignments and assign numbers such that there are no
conflicts.
Figure 7-9 on page 100 shows the screen which asks for the node name and host name. You
may specify any name for the node name. The host name typically matches the hostname
setting of the operating system, which is probably the correct value. You may need to specify
some other name if the system has multiple network interfaces.
99
Figure 7-10 shows the Windows Services definition which is displayed only for a Windows
operating system. If the top box is checked, a Windows service is created for this server. You
would then be able to start the server through the Windows Services control panel. By
default, this services runs as the System account. If you do not want the System account, you
can specify an arbitrary user and password if you check the last box.
The installer presents a final screen confirming your values, and the binary files are installed,
and a default profile, named default, is created.
Web server
The Web server that is bundled with WebSphere Application Server Version 6 is IBM HTTP
Server Version 6. In previous versions this Web server installation was integrated with the
application server installation. For V6, IBM HTTP Server Version 6 is installed independently
with a separate installer. The installer is launched via the launchpad. The installation is
straightforward and asks for information such as directory location, port numbers for the
HTTP port and administrative port, and configuration parameters for the Windows Service.
You may default all the screen fields except for the Windows Service settings which is
optional. If you select to have the startup managed by Windows Services, you must either
specify the system user, or specify a valid user and password.
100
If you specify local such that the application server is on the same system, the installer
creates a Web server instance under the administrative console Web servers section. If you
specify remote, the installer creates a script that you must transport to the system where the
application server is installed. You then run the script on that system to create the Web server
instance.
See 10.3.6, Migrating Web server and WebSphere plug-ins on page 185 for a complete
example of creating a local Web server.
7.2.3 Profiles
A new method of managing installation configurations is the concept of creating multiple
profiles under a single installation on a system. Understanding this concept is crucial in
learning how to create cells of multiple nodes.
Understanding profiles
Profiles allow multiple server configurations to share the same binary files. WebSphere
Application Server Version 4 allows multiple installations to achieve the creation of multiple
servers on the same system. This type of configuration is wasteful of disk space because it
creates multiple copies of the Java binary files. WebSphere Application Server Version 5
creates an improvement over this situation with the wsinstance command. wsinstance
creates multiple servers by creating sets of the writable configuration files for each server that
share the same Java binary files, thus saving disk space.
Since profiles are a more general solution, the V5 wsinstance command no longer exists.
wsinstance has been replaced by the profile creation wizard and the wasprofile command.
Profiles do not have any limitations in that each profile has the same flexibility and power as
any of the other profiles. There is no distinction of profiles with regard to the order of creation.
Table 7-1 on page 102 shows that there are three profile types. Table 7-2 on page 102 shows
that only WebSphere Application Server Network Deployment is capable of creating
Deployment Manager and Custom profiles because the function of those types of profile only
makes sense in a Network Deployment cell environment.
101
Creates
Application Server
Deployment manager
Custom
Application Server
Application Server
Application Server
Deployment manager
Custom
Creating profiles
Profiles are created by launching the profile creation wizard. Figure 7-11 shows the location
of the profile creation wizard for a Windows system. If you have a different operating system,
it will be in a same relative location within the installation directory, however the name of the
file will be slightly different depending on your type of operating system
Figure 7-12 on page 103 shows the initial screen of the profile creation wizard.
102
Figure 7-13 shows the choice of type of profile you wish to create. You are presented with this
screen only for WebSphere Application Server Network Deployment. If you are creating a
profile for WebSphere Application Server Express or WebSphere Application Server, this
selection screen is not shown because Application Server is the only available type.
Figure 7-14 and Figure 7-15 on page 104 show selection of the profile name and location.
The default location is located within the installation directory, but you may place the profile in
any directory.
103
Figure 7-16 shows specification of the node name, cell name, and host name for the
application server. If you are creating a profile for WebSphere Application Server Express or
WebSphere Application Server, this cell name is not shown because the cell name is not
pertinent to these products.
Figure 7-17 on page 105 shows the entire list of server ports that may be changed. This
screen shows all the default values. The profile creation wizard detects that there are multiple
profiles already in existence and increment some of the port numbers in an attempt at
maintaining port uniqueness. You should not rely on this feature. You should change port
assignments by strict analysis of which servers will be running on the system concurrently.
104
If you are installing on Windows, you are presented with the screen in Figure 7-18 which
allows you the choice to install the application server as a windows service. If you check that
option, you must supply a valid user and password that is used to run the service every time
your system reboots.
After entering all the required information, the profile creation wizard creates the profile and
then offers to allow you to run the First Steps page in your browser where you can start and
the application server.
Profiles can also be created from the command line using the wasprofile command. The
syntax of wasprofile for creation mode is:
wasprofile -create
-profileName profile_name
105
-profilePath fully_qualified_profile_path
-templatePath template_path
-nodeName node_name
[-cellName cell_name]
-hostName host_name
-server iSeries_server_name
[-startingPort starting_port | -portsFile filepath]
-winserviceCheck true | false
-winserviceAccountType specifieduser | localsystem
-winserviceUserName yourusername
-winservicePassword yourpassword
-winserviceStartupType manual | automatic | disabled
This is an example of using wasprofile to create a profile using a ports specification file.
Please note that this command would be entered on one line. The example is shown in
multiple lines only for readability.
wasprofile
-create
-profileName node1
-profilePath
C:\ExpressV6\IBM\WebSphere\AppServer\profiles\node1
-templatePath
C:\ExpressV6\IBM\WebSphere\AppServer\profileTemplates\default
-nodeName node1
-cellName cell1
-hostName production1
-startingPort 20002
For a more complete overview of profiles, see the IBM Education Assistant for tutorials on
using profiles at this address:
ftp://ftp.software.ibm.com/software/eod/WAS_6-0/Install_Migration/index.html
106
Figure 7-19 Silent installation response file for WebSphere Application Server
Figure 7-20 shows the location of the response template file for WebSphere Application
Server Network Deployment. In this case, the response template file is named
responsefile.nd.txt. Also note the files beginning with names responsefile.pct. If you want to
create a profile as part of the silent install, you need to edit these files to specify profile
settings.
Figure 7-20 Silent installation response file for WebSphere Application Server Network Deployment
107
Figure 7-21 Silent installation response file for IBM HTTP Server
Figure 7-22 Silent installation response file for Web server plug-ins
If you fail to change this setting from the default of false, the installer will not run, since the
interpretation of the false setting means that you do not agree to the license terms.
Each section of the response file has a description of the setting surrounded in comment
lines. You follow the instructions in the commentary and customize the setting that you need
to change. Below is an example section showing how the ports are specified with the default
settings.
#########################################################################
#
# Node name
#
# Please select the node name for the Application Server. Node name
108
In this example, you could not use the default. You must substitute the phrase
YOUR_NODE_NAME for the actual node name you wish to assign.
The default port has been changed to 9060 to avoid conflicting with the 9090 port on the AIX
operating system. Please note that 9060 is a default port assignment that can be changed
when you create a profile for the server which runs the administrative console application.
See Creating profiles on page 102 for more information about creating profiles.
109
migration utilities. For this second purpose, the administrative console shows you an interface
that looks similar to how V5 is configured, but the actual messaging implementation is that of
V6. For both of these cases, the application that uses these JMS resources needs no
changes.
See 10.3, Automatic migration: Application Server V5 to Express V6 on page 175 for an
example of migrating a V5 node with an application that uses JMS default resources.
110
Generating the plug-in configuration file from the Web server instance has different semantics
than that of previous versions. Previous versions select all applications mapped to any
application server. V6 has a different selection semantic in that only applications that are
mapped to that Web server are selected for mapping into that file. Figure 7-26 shows an
example of an application that is mapped to both webserver1 and server1. This application
must be mapped to webserver1 or it is not included in the plug-in configuration file when it is
generated by the Generate Plug-In button.
Application installation
The installation for WebSphere Application Server Version 6 is started by the launchpad
command located on the top level directory of the install media. Many operating systems
Chapter 7. Runtime administration overview
111
automatically start the launchpad when you insert the media into the external media drive. If
the launchpad is not started automatically, start it from the command line or a graphical files
system viewer. See 7.2.1, Launchpad on page 97 for more details on using launchpad.
Starting servers
A stand-alone node is started from the command line with the startServer command. The
most common syntax for startServer is:
startServer server_name [-profileName profile]
where the profile specification is optional. If profile is omitted, then the default profile is
assumed. The profile can be implicitly selected by running the command from the bin
directory of the profile to be selected.
Here are some examples.
Start the server named server1 in the default profile
cd /d c:\Websphere\bin
startServer server1
Start the server named server1 in the profile under the profiles directory
cd /d c:\Websphere\profiles\policies\bin
startServer server1
Stopping servers
Application servers are stopped with the stopServer command. The most common syntax for
stopServer is:
stopServer server_name [-profileName profile]
The profile specification is optional, and uses the same profile selection semantics as the
startServer command described above.
Some examples of stopServer are as follows:
Stop the server named server1 in the default profile
cd /d c:\Websphere\bin
stopServer server1
Stop the server named server1 in the policies profile under the profiles directory
cd /d c:\Websphere\profiles\policies\bin
stopServer server1
As with all commands that accept a profile name, the name is optional and defaults to the
default profile. The selected profile must be a deployment manager type. Some usage
examples are shown.
112
Start the deployment manager in the dmgr2 profile under the profiles directory
cd /d c:\Websphere\profiles\dmgr2\bin
startManager
Stop the deployment manager in the dmgr2 profile under the profiles directory
cd /d c:\Websphere\profiles\dmgr2\bin
stopManager
As with all commands that accept a profile name, the name is optional and defaults to the
default profile. The selected profile must be a deployment manager type. Some usage
examples are shown.
Start the node agent in profile named node1
startNode -profileName node1
Start the node agent in the node1 profile under the profiles directory
cd /d c:\Websphere\profiles\node1\bin
startNode
As with all commands that accept a profile name, the name is optional and defaults to the
default profile. The selected profile must be a federated node profile. Some usage examples
are shown.
Start the node agent in the profile named node1
stopNode -profileName node1
Start the node agent in the node1 profile under the profiles directory
cd /d c:\Websphere\profiles\node1\bin
stopNode
113
The deployment manager host name is the only required argument. The second optional
argument is the port that the deployment manager listens on. As with all commands that
select a profile, the profile name is optional and defaults to the default profile. Here are some
examples of usage of addNode.
Add the node defined by the default profile to the cell managed by dmanager1
addNode dmanager1
Add the node in the profile node1 to the cell managed by dmanager1 which is listening on
port 8885
addNode dmanager1 8885 -profileName node1
After addNode is complete, the node is part of the cell. Assuming the cell was empty at the
start, the cell now has a single node member. The node now consists of two entities, a node
agent and an application server. The node agent is created and started automatically by
addNode. The application server that is created at the time the profile is created still exists, but
it is not automatically started. See Starting servers on page 112 for examples of how to start
application servers.
An alternate way to join a cell is to create a custom profile. The profile creation wizard, upon
receiving your selection of a custom profile type, prompts you to specify a deployment
manager host name and port number. The deployment manager must be started before the
custom profile creation can complete. Upon completion, the cell has a single node member.
However, this node only has a node agent. There is no application servers defined for this
type of profile. Application servers would then be created through the administrative console
for the deployment manager.
114
Your application has utility classes that duplicate classes contained in the WebSphere
system classes directories. Your classes fail to override the system classes.
Your application contains classes such that each module may contain classes that conflict
with classes in another module.
Version 4 has three attributes of classloading that work differently from V6:
1. In V4, the application classloader for Web modules precedes the system class loaders
such that classes in the Web module are searched first. This default behavior can be
changed by setting the system property com.ibm.ws.classloader.warDelegationMode to
the value false.
In V6, and also V5, a Web module classloader is searched last with respect to the system
class loaders. This default behavior is changed by changing the setting class loader mode
to PARENT_LAST using the administrative console.
Note: Version 4 refers to the term classloader delegation mode, while V5 and V6 refer
to the same term as simply classloader mode.
EJB modules in V4, and also V5 and V6, have their classloader searched last as a default.
V4 uses the system property com.ibm.ws.classloader.ejbDelegationMode to change the
default behavior. V5 and V6 uses the classloader delegation mode setting PARENT_LAST
to change the behavior such that the EJB module classloader is searched first.
V6 classloader mode is changed in the administrative console. Classloader mode may be
changed at three levels:
Server
Enterprise application
Web module
We recommend that you do not change the classloader mode at the server level, since
this affects all the applications deployed on that server. Our recommendation is to change
classloader mode at the enterprise application level, which affects all the EJB modules. If
any of the Web modules need a different classloader mode, then you would change each
Web module individually.
Figure 7-27 on page 116 shows changing the classloader mode for the enterprise
application MyBankMDB.
Figure 7-28 on page 116 shows changing the classloader mode for a Web module.
You can read more about the topic of class loaders and how to change the behavior in the
WebSphere Application Server InfoCenter. Please refer to this article: Class Loaders,
found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.bas
e.doc/info/aes/ae/crun_classload.html
115
Figure 7-27 Changing class loader mode and policy for an application
2. As the default, the application classloader has a module visibility that allows modules to
have their own class loaders, thus eliminating class conflicts. V4 specifies module visibility
settings at the server level only. By contrast, V5 and V6 specify a similar settings at these
levels:
a. Server settings allow you to specify the class loader policy for applications, which can
be one of these values:
116
i. Single means that a single classloader is used for every application on that server.
This setting provides the most class sharing, but it also offers opportunity for class
conflicts.
ii. Multiple means that multiple class loaders are used. Each application has its own
classloader. This value is the default.
b. Each application can be configured to specify the WAR, or Web module, classloader
policy which can be one of these values:
i. Module means that each Web module has its own class loader. This value is the
default.
ii. Application means that every Web module uses the application class loader. Thus,
a single application class loader loads every module in the application, including
Web modules, EJB modules, and dependency JAR files.
Table 7-3 shows a summary of how to convert from V4 settings to V6 settings.
Table 7-3 MIgrating visibility settings from V4 to V6
Version 4 module visibility
Server
Single
Application
Compatibility
Single
Module
Application
Multiple
Application
Module
Multiple
Module
J2EE
Multiple
Module
Table 7-27 on page 116 shows an example of setting the WAR class loader policy for the
application MyBankMDB. Figure 7-29 shows an example of setting the classloader policy
for the server server1.
117
3. The application extensions classpath location from V4 has been dropped in favor of a
more flexible scheme called application shared libraries. V4 configures a special directory
under the installation root directory, lib/ext, as a directory where you can place class jar
files and have every application class loader search this classpath. The system
classloaders do not search this path.
The shared library method that is used in V5 and V6 works similarly in that a single
directory, or even a list of directories, can contain application classes that are not visible to
the system class loaders. The advantage over the applications extension classpath of V4
is that the configuration is more flexible.
a. Each shared library can be restricted to a subset of applications rather than the entire
set of applications deployed to a server.
b. Each shared library can be configured to point to an arbitrary list of directories on the
system.
Figure 7-30 shows that you navigate to the shared library definition screen under the
Environment category. Figure 7-31 on page 119 shows creating the shared library
definition. For the classpath field, specify a list of directories, all on a separate line. Do not
use any punctuation such as semicolons. Each directory will contain one or more JAR
files.
118
Once you create a shared library definition, you can associate the shared library with one
or more applications. Figure 7-32 shows specifying the shared library with the
MyBankMDB application.
119
databases except for Oracle. The default isolation level for Oracle is
TRANSACTION_READ_COMMITTED. The result is that the application may experience a
loss of performance due to database lock contention. In the worst case, the application may
experience database deadlocks. See this article for more information about isolation level
settings for both Web modules and EJB modules: Isolation level and resource reference,
found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.base.d
oc/info/aes/ae/cdat_isolevel.html
The solution requires that you set the isolation level to the value that your application expects
by specifying the isolation level in a data source resource reference for the data sources that
are used by the application. You can edit resource references by using the Application
Assembly Toolkit that is included with the V6 product, or you can use one of the Rational
Developer products. See this article for more information about how to edit resource
references: Creating or changing a resource reference, found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.base.d
oc/info/aes/ae/tatk_crtresref.html
120
121
WASPreUpgrade command
The WASPreUpgrade command is used to save the configuration from the previous version of
WebSphere Application Server into a backup directory. This backup directory is later used by
the WASPostUpgrade command to import this configuration into WebSphere Application Server
Version 6. The WASPreUpgrade command provides the status both to the screen and to log
files in the backup directory. ASCII log file names start with the text WASPreUpgrade and
include a date timestamp.
The following files are saved in the backup directory:
For V4.0.x
The WASPreUpgrade command exports the existing application server configuration from the
repository when migrating from V4.x Advanced Edition. If you are migrating V4.x Advanced
Edition, the administrative server of the existing environment must be running.
122
This command is also available in the migration directory on the Installation CD. This
directory can be used for scenarios where you need to run WASPreUpgrade without first
installing WebSphere Application Server Version 6.
How to run it
WASPreUpgrade backupDirectory currentWebSphereDirectory
[administrationNodeName]
[-import xmiDataFile]
[-nameServiceHost host_name [-nameServicePort port_number]]
[-traceString traceSpec [-traceFile fileName]]
The first two arguments are required and positional. The third argument is required and
positional only when upgrading from WebSphere Application Server Version 4 Advanced
Edition.
Supported parameters include:
backupDirectory
Required positional parameter. The name of the directory in which the WASPreUpgrade
command stores the saved configuration and files, and from which the WASPostUpgrade
command reads the configuration and files. The WASPreUpgrade command creates this
directory if it does not already exist.
currentWebSphereDirectory
Required positional parameter. The name of the installation root directory for the current
V4.0.x, V5.0.x or V5.1.x installation.
administrationNodeName
Optional positional parameter. The name of the node containing the administrative server
for the currently installed product. The value of this argument must match the node name
given in the topology tree on the Topology tab of the Administrative Console for the
currently installed product. The WASPreUpgrade command calls the XMLConfig command
using this parameter. This is a required parameter only when upgrading from WebSphere
Application Server Version 4 Advanced Edition.
-nameServiceHost -nameServicePort
When specified, the WASPreUpgrade command passes these optional parameters to the
XMLConfig command. Use them to override the default host name and port number used
by the XMLConfig command. This is only applicable when upgrading from WebSphere
Application Server Version 4 Advanced Edition.
-import
The name of the XML Metadata Interchange (XMI) configuration file to process. This is
optional when upgrading from WebSphere Application Server Version 4 Advanced Edition
Single Server or WebSphere Application Server Version 4 Advanced Edition because the
program uses the V4.0 config\server-cfg.xml file by default. When migrating from a
WebSphere Application Server Version 4 Advanced Edition configuration that uses
anything other than the default server-cfg.xml file, you must use the -import option along
with the path to the configuration file. You also must use the -import and path option when
running WASPostUpgrade, to point to the non-default xml configuration file in the directory
created by WASPreUpgrade.
-traceString traceSpec -traceFile fileName
Optional parameters to gather trace information for IBM service personnel. Specify a
traceSpec of "*=all=enabled" (with quotation marks) to gather all trace information.
123
WASPostUpgrade command
The WASPostUpgrade command imports the V4.0.x, V5.0.x or V5.1.x configuration data. This
command uses information created by the WASPreUpgrade command to restore the previous
configuration to a V6 installation.
This command can be run multiple times with different configuration files to incrementally
update the V6.0 configuration.
How to run it
WASPostUpgrade backupDirectory
[-oldProfile < oldProfileName >]
[-profileName < profileName >]
[-import < xmiDataFile >]
[-portBlock < portStartingBlock >]
[-backupConfig < true | false >]
[-replacePorts < true | false >]
[-includeApps < true | false >]
[-scriptCompatibility < true | false >]
[-connectionTimeout < timeoutInMinutes >]
[-substitute "key1=value1[;key2=value2;[...]]"]
[[-traceString traceSpec [-traceFile fileName]]
124
save a copy of the current configuration into the profile_name/temp directory. Use the
restoreConfig command to restore that configuration as required.
-replacePorts <false|true> - An optional parameter used to define how to migrate
virtual host and server transport ports. The default for migrations from V4.0.x is false (do
not replace default port definitions); the default for migrations from V5.x is true (do replace
default port definitions). Migrating adds configuration data from the previous version to the
existing data in the V6.0 configuration. In some cases, existing port definitions from the
earlier release are carefully set to avoid port conflicts with other products. In such cases, it
is likely that you would want to migrate the settings into V6.0. Use the -replacePorts
parameter to totally replace settings in the V6.0 environment with the settings from the
previous version. Select true to replace all virtual host alias port settings during migration.
If migrating from V5.0.x or later, transport settings in existing servers are replaced by the
settings from the previous version.
-includeApps <true|false> - This optional parameter is used to specify whether to only
migrate the configuration or to include the user enterprise applications as part of the
migration. The default setting is true. System applications are migrated irrespective of this
setting. Sample applications are typically not migrated. The only exception is during ND
Phase1 processing.
-scriptCompatibility <-true|false> - This optional parameter is used if migration
should create Transport and ProcessDef definitions in the configuration instead of
Channels and ProcessDefs. This would be used if customers have existing wsadmin
scripts or programs that used SM configuration APIs to create or modify Transport or
ProcessDef definitions. The default is true.
-connectionTimeout timeoutInMinutes This is an optional parameter to be used if a
SOAP/RMI time-out occurs when performing a migration of a managed node. This
parameter is specified in minutes (the default value is 10). It is possible to run into a
SOAP/RMI time-out issue when migrating a very large or very complex configuration; if
this happens, you should increase the amount of time before a SOAP/RMI connection
time-out occurs and run migration again.
-substitute "key1=value1[;key2=value2;[...]]"
An optional argument passed to the XMLConfig command. Specify values for security
variables to be substituted (for example, -substitute
"NODE_NAME=admin_node;APP_SERVER=default_server"). In the input XML data file, each
key should appear as $key$ for substitution. This argument substitutes any occurrence of
$NODE_NAME$ with admin_node and $APP_SERVER$ with default_server in the input
XML file.
If the substitution string contains semicolons, use $semiColon$ to separate it from the ";"
delimiter. On UNIX platforms, be sure to add an escape character to each dollar sign ($)
within the substitution string (for example, \$semiColon\$). This parameter is applicable
for configurations saved from Versions 4.0.x Advanced Edition.
-traceString -traceFile Optional parameters to gather trace information for IBM service
personnel. Specify a traceSpec of "*=all=enabled" (with quotation marks) to gather all
trace information.
After migration
It is always a good idea to review the results of migration by reviewing the migration logs in
the backup and V6.0 profile logs directory. Some of the configuration may need to be
modified based on the results of the migration.
125
Figure 7-36 on page 127 shows the initial screen of the migration wizard. The initial screen
lists an overview of the installation and migration steps for WebSphere Application Server
Version 6.
126
1. Install WebSphere Application Server Version 6 using the installation wizard. Note that for
Base and Express installations, a default profile is created during this step.
2. Use the profile creation wizard, which is also located in the First Steps window, to create
any profiles that are required. For WebSphere Application Server Network Deployment no
default profile is created during installation. For this environment, a deployment manager
profile must be created. For each managed node in the existing 5.0 or 5.1 cell either a
stand-alone profile or a custom profile (that is not federated during profile creation) must
be created using the profile creation wizard. See 10.5.3, V6 installation preparation on
page 201 for more details on specific node name or cell name requirements for specific
migration scenarios.
3. The third step is to run the Migration wizard using one of the profiles created in the
previous steps.
Figure 7-37 on page 128 shows a list of existing WebSphere Application Server Versions
4.0.x, 5.0.x and 5.1 installations that can be migrated. You can either select one from the list
or supply a directory name of a different one if, for some reason, it was not detected and
entered into the selection list. The last entry field is used only when migrating from
WebSphere Application Server V4.0. For WebSphere Application Server Version 4 Advanced
Edition, you can specify a file created by XMLConfig export instead of the one migration would
use by exporting XMLConfig directly. For WebSphere Application Server Version 4 Advanced
Edition Single Server, you can specify a configuration file other than the default one.
127
Figure 7-38 shows how to specify the location of the migration-specific backup directory that
is created by WASPreUpgrade. You can specify any valid directory name for this field. It is
advisable to specify a location that is not a subdirectory of an existing WebSphere Application
Server location. It is possible that, at some point, that version of WebSphere Application
Server may be uninstalled and you may unintentionally erase this migration-specific backup
directory.
Figure 7-39 on page 129 shows how to select the Version 6 profile that is used during
migration. It has a drop-down menu of all existing profiles that are compatible (to the basic
degree) with the type of migration that is being performed. For example, in this case we are
migrating from WebSphere Application Server Version 5. A compatible profile is either a
stand-alone or a custom profile. These types of profiles are listed in the drop-down box.
However, there are some scenarios where the values used when creating these profiles is
128
important. See 10.5.3, V6 installation preparation on page 201 for more details on specific
node name or cell name requirements for specific migration scenarios.
Figure 7-40 shows the choice for how to handle migration of port assignments. The default
value is to use the same port values in the WebSphere Application Server Version 6
configuration as the existing WebSphere Application Server configuration. This supposes a
replacement of the existing WebSphere Application Server installation with the latest
WebSphere Application Server Version 6 configuration. Choosing this option means you
cannot run WebSphere Application Server installations and the new WebSphere Application
Server Version 6 installations concurrently because there would be port conflicts.
You can also choose to not map the port values over during the migration process. You do
this by selecting to use port values already assigned to the target profile. This allows you to
129
run the previous WebSphere Application Server installations and the new WebSphere
Application Server Version 6 installations concurrently. This radio button maps to the
-replacePorts parameter on the WASPostUpgrade command.
Figure 7-41 shows the start of running the WASPreUpgrade command in the migration wizard.
The command takes some time to complete.
Figure 7-42 shows the completion of running the WASPreUpgrade command in the migration
wizard. Verify the last message is shown which indicates a successful first step of Migration
has completed. One failure that can occur for WebSphere Application Server Version 4
Advanced Edition scenarios is when the 4.0 administration server is not running. When
WASPreUpgrade runs for this scenario, it calls XMLConfig export to access the existing
configuration in the repository. The 4.0 administration server must be running for this to work.
Figure 7-43 on page 131 shows the results of running the WASPostUpgrade command in the
migration wizard. This is the final panel and shows a summary of the final messages from
WASPostUpgrade. This can be quite a bit of output and shows the information of migrating the
configuration, installing the applications and (in some scenarios) calling GenPlugInCfg to
130
generate the plug-in configuration. It is important to view the final message for an indication of
success, warning or failure. In most cases a warning message is displayed at the bottom of
the panel. You should review any messages that have a code ending in "W" so that you can
see warnings about deprecations or configuration updates that need to be done.
131
How to run it
convertScriptCompatibility [-help]
[-backupConfig true | false]
[-profileName <profile name>]
[-nodeName <node name>]
[-serverName < server name>]
[[-traceString <traceSpec> [-traceFile <fileName>]]
where:
[-help] - displays help for the command
[-backupConfig <true | false>] - This is used to back up the existing configuration
before changes are made to the configuration by migration. If not specified, the default is
true.
[-profileName <profile name>] - If provided, this value can be used to specify a specific
profile configuration in the WebSphere Application Server Version 6 environment. If not
specified, the default profile is used. If the default has not been set or cannot be found, an
error is returned.
[-nodeName <node name>]- If provided, this can be used to specify that a particular node
name should be processed instead of every node in the configuration. It is most useful
when processing a Deployment manager profile but is allowed on all profile types. If not
specified then all nodes in the configuration are converted.
[-serverName <server name>] - If provided, this can be used to specify that a particular
server name should be processed instead of every server in the configuration. It can be
used on all profile types and can be used in conjunction with the -nodeName parameter
when processing Deployment manager profiles. If not specified then all servers in the
configuration are converted. If used in conjunction with the -nodeName parameter then all
processing is limited to the specified node name.
[-traceString traceSpec [-traceFile fileName]] - These optional parameters are
used to gather trace information for use by IBM service personnel. The value of
traceString is "*=all=enabled" and must be specified with quotation marks to be
processed correctly.
132
How to run it
clientUpgrade EAR_file
[-clientJar client_jar ]
[-logFileLocation logFileLocation]
[-traceString traceSpec [-traceFile fileNSame ]]
where:
EAR_file is the fully qualified path to the EAR file that contains client JAR files to process.
-clientJar specifies a JAR file for processing. If not specified, the program transforms all
client JAR files in the EAR file.
-logFileLocation Use this optional parameter to specify an alternate location to store the
log output.
-traceString -traceFile gathers trace information for IBM service personnel. Specify a
traceSpec of "*=all=enabled" (with quotation marks) to gather all trace information.
133
134
Chapter 8.
Migration tasks
This chapter discusses major migration tasks for specific WebSphere components.
135
Version 5.0
Version 5.1
WebSphere Business
Integration Server Foundation
Each of these products may be migrated using automatic migration utilities. The migration
utilities WASPreUpgrade and WASPostUpgrade work as a pair of command line commands to
copy and transform the server configuration and applications and place that information into a
V6 profile. See 7.6, Automatic migration utilities on page 121 for an overview of the
automatic migration utilities. See 7.2.3, Profiles on page 101 for an overview of profiles.
136
1. Complete a V6 installation and create an application server type profile. When you create
the profile and specify the node name, be aware of your choice of node name. The node
name of the target V6 node must match the node name of the source application server
configuration for these configurations, where the source system is:
WebSphere Application Server Version 4 Advanced Edition.
WebSphere Application Server V5 node that is a member of a Network Deployment
cell
For other source configurations, the node name is not crucial.
See 7.2, Installation on page 96 for more information about installation and profile
creation.
2. Before WASPreUpgrade is run, you may want to stop the server, but stopping at this point
is optional. One exception is migrating WebSphere Application Server Version 4
Advanced Edition. The V4 administration server must be active so that WASPreUpgrade
can contact the administration server to extract the configuration information.
3. WASPreUpgrade is run on the source system to copy the server and application into a
backup directory. WASPreUpgrade may be run directly from the installation media, thus
eliminating the need to install Version 6 on the source system. Running directly from the
installation media allows you to migrate from one system to a different system. If you do
want to migrate to a different physical system, you need to transfer this directory in its
entirety to the target system in order to perform the next step.
Once WASPreUpgrade completes consult the output log which is placed in the backup
directory that it creates. You should evaluate any warnings or errors and take appropriate
action.
If you chose to use the migration wizard, you will skip the next step. Also note that since
the migration wizard calls WASPreUpgrade and WASPostUpgrade in a seamless step, you
cannot use migration wizard in the situation where you are migrating to a different physical
system. See 7.6.3, Graphical wizard for configuration migration on page 126 for more
information about running the migration wizard.
4. WASPostUpgrade is run on the backup directory. Examine the output log for any warnings
or errors.
5. Once the WASPostUpgrade completes, the new node can be tested while the old node
continues to run. If the old node and the new node reside on the same physical system,
137
you may have to stop the old node and all the servers if you did not take steps to insure
that there are no port conflicts. When the new node is finished testing, the old node can be
permanently taken down and the new node switched online.
6. If your application server works in conjunction with a Web server, you must upgrade your
Web server installation to a supported level. You must also upgrade the WebSphere
plug-in installation so that the Web server is able to route requests to the V6 application
server. This upgrade is a manual installation of these two components. See Web server
on page 100 for an overview of the installation steps for Web servers and plug-ins.
There are several situations that may require you to make manual modifications to the target
configuration once migration is complete. You may either edit files in the backup directory or
change the configuration items in the target profile with the administrative console. Editing the
files in the backup directory may be best for you if you are comfortable with editing XML files
or you have some sort of automation available to make changes. If you do make change to
the backup directory, make sure you make a backup copy of any file you change. If you are
not comfortable changing XML files, you should make your changes with the administrative
console.
If you are migrating from one system to a different physical system, the new system may
not be perfectly identical. Some items to examine and evaluate the need to change are
Users and passwords for security settings.
Fixed file system paths that may part of a classpath for resources such as JDBC
providers or shared libraries.
Database specifications such as database names, database hosts, or database users.
Port conflicts may arise after migration. The remedy is to respecify the port assignments in
a new profile and rerun the migration steps. The migration wizard may help you identify
port conflicts. See Infocenter external reference for more details on fixing port conflicts.
138
a. Migrate the node from the V4 installation to a V6 Application Server node according to
the detailed steps outlined for a single node in 8.2, Migrating single stand-alone
nodes on page 136. Ensure that the node name in the V6 profile matches the node
name of the V4 node that you are attempting to migrate. Figure 8-3 on page 140
represents this step.
b. Add the node to the cell using the addNode command. The action of adding a node to a
cell is also called federating a node. Determine whether you want the applications
installed on that node to remain on the node once it joins the cell. If you do want to
keep the applications, make sure you use the -includeapps option on the addNode
command.
5. After all the nodes are migrated, install any applications that are assigned to server groups
in the V4 installation. If there are such applications, they are placed in the installableApps
directory under the application server profile. Installation is accomplished by installing an
Enterprise Application via the administrative console on the deployment manager.
Note that the difference between migrating the deployment manager and migrating a node is
only the match on the node name. For the deployment manager, the V6 node name must not
match any of the V4 node names and thus only global information is copied to the
deployment manager profile. In other words, global information is intended to be applied to
every node of the cell. For an application server node migration, the V6 node name of the
profile must match the intended V4 node name; the node name is used as an implicit
selection for the intended node. If the node does not match, and the target is an application
server type profile, the migration utilities do not migrate the intended information, namely the
node configuration and applications.
The applications that are migrated for a node migration fall into two categories.
The applications that are assigned to specific servers in the V4 domain are migrated to the
V6 application server profile in an installed state. This means the application is installed,
configured, and ready to go. When you start the application server, those installed
applications are loaded and ready to execute.
When you add the node to the cell, you have to determine whether you want the
applications that are automatically installed by the automatic migration utilities to remain
installed after joining the cell. If you do want the applications to remain, remember to
specify -includeApps on the addNode command.
addNode dmgr_host -includeApps
Applications that are assigned to server groups, or clusters, are not automatically installed
in the node. These applications are stored, in EAR format, in the installableApps directory
in the V6 profile. It is your responsibility to install these manually. We recommend that you
wait until all the nodes are joined into the cell. At that time, you would install the clustered
applications into the cell via the deployment manager administrative console.
139
3. Start the deployment manager. See Starting a deployment manager on page 112 for
details about how to start the deployment manager.
When this step is complete, the cell is fully operational. The V6 deployment manager is
managing the cell consisting entirely of V5 nodes.
4. If your configuration is using an external Web server, upgrade the Web server and plug-ins
manually. Figure 8-5 on page 142 shows this step. At the conclusion of this step, the cell is
fully operational. The upgraded Web server routes HTTP requests to V5 application
servers through V6 plug-ins.
a. Manually upgrading a Web server is a matter of installing the proper version of Web
server that is approved for use with WebSphere Application Server Version 6. See
Appendix A, Prerequisite software on page 225 for a list of approved Web servers.
See 7.2, Installation on page 96 for an overview of installing IBM HTTP Server
Version 6.
b. Manually upgrading the Web server plug-ins is a matter of installing the WebSphere
Application Server Version 6 Web Server Plug-ins as a separate install procedure. See
7.2, Installation on page 96 for an overview of installing Web server plug-ins.
5. Migrate each node from the V5 installation to a V6 Application Server node according to
the detailed steps outlined for a Single Server Node in 8.2, Migrating single stand-alone
nodes on page 136.
Ensure that the node name in the V6 profile matches the node name of the V5 node that
you are attempting to migrate.
After migrating the node, start the node agent with the startNode command before
attempting to start any of the application servers.
Figure 8-6 on page 142 represents this step. The cell now consists of one or more V5
nodes, one or more V6 nodes, and a Web server routing HTTP requests to those nodes
via a V6 Web server plug-in.
141
The following are temporary restrictions on the capabilities of mixed version cells. These
restrictions are in effect at the time of this publication for the initial release of V6.0. These
restrictions will be lifted with a future fix delivery. Check the WebSphere support Web site for
recent fix information at this address:
http://www-1.ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid=swg27004980#1
142
so you can determine when you can apply code updates to address these restrictions.
Additional V5 nodes cannot be added to a mixed version cell with addNode. The only
means to create a mixed node cell that contains both V5 and V6 nodes is to migrate a V5
cell to V6 using the automatic migration utilities. However, you can always add a V6 node
to any cell with addNode.
Additional servers cannot be added to a V5 node participating in a mixed version cell.
However, you can always add servers to a V6 node in a mixed version cell.
The only means to expand the size of a server cluster defined in a mixed version cell is to
add a V6 server to the cluster.
These restrictions affect expansion capability of the cell with respect to adding servers or
nodes. There are no restrictions with nodes and servers in a cell with respect to modifying the
configuration of these nodes and servers, regardless of its version. In other words, you are
free to modify settings, install and uninstall applications, and make any other changes that
you may need to make to control the operation of the cell.
143
See the IBM Education assistant for more information about installing plug-ins at this
address:
ftp://ftp.software.ibm.com/software/eod/WAS_6-0/Install_Migration/index.html
If you use wsadmin administration scripts for V5 to control or create JMS resources, you may
have to modify your scripts to run on V6. See 9.4, Migrating from version 5 embedded
messaging on page 152 for more details about which scripting commands are affected.
JMS resources on V6 are configured differently from V5 in the administrative console. See
7.3.2, Messaging components on page 109 for an overview of these changes. See 10.6,
Manual migration: installation of J2EE 1.3 Enterprise Application on V6 Application Server
on page 210 for a detailed example of how to configure these resources.
Coexistence support
If you have Web Services Gateways running on WebSphere Application Server Version 5,
they can, subject to certain restrictions, co-exist with WebSphere Application Server Version
6 gateway instances.
144
Before you choose to use a mixture of V5 and V6 gateways, you should be aware of the
following restrictions to co-existence:
The V5 Web Services Gateway application is not supported on V6.0 or later application
servers.
The service integration technologies endpoint listener applications are not supported if
installed on V5 application servers.
The V6 administrative console and the service integration technologies administrative
commands can only be used to change the configuration of gateways running on V6
application servers. To change the configuration of a gateway running on a V5 application
server, you use a Web browser to access the V5 gateway user interface.
145
146
The different versions of application servers cannot communicate with each other. When
migrating your servers to the current version of WebSphere Application Server, keep at least
two application servers running on the previous version so that replication remains functional.
The considerations and number of steps to perform this migration are significant and it is best
to see the following WebSphere Application Server Version 6 InfoCenter article for more
information: Migrating V6.0 servers from multi-broker replication domains to data replication
domains, found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.nd.doc
/info/ae/ae/trun_drs_migrate.html
147
148
Chapter 9.
Script compatibility
This chapter discusses administrative scripting compatibility issues.
149
9.1 Introduction
Migration of wsadmin administration scripts that use JACL and Jpython from WebSphere
Application Server V5 to WebSphere Application Server V6.0 should be relatively
straightforward since there is a high degree of compatibility between versions. However,
there are a few noted exceptions that are discussed in detail in this chapter. Migration may
also be required as a result of changes to the scripting language itself since WebSphere
Application Server V6.0 uses a JACL 1.3.1 engine.
For administrative scripts using wscp and XMLConfig prior to WebSphere Application Server
5.0, it is recommended that all scripts be first migrated to wsadmin syntax. Please see 9.6,
Version 4 wscp migration on page 155 for information about wscp scripts.
Conceptually, the old scripts can operate under compatible support so that they continue to
function. Compatibility with the old scripts is achieved by automatic migration utilities in
WebSphere Application Server 6.0 that make the data locations and data objects that they
operate on WebSphere Application Server 5.0 compatible, so no changes would be required
to the scripts themselves. That is not to say that they are entirely forward compatible; there
might be cases which require direct modification to the scripts for things to continue working
smoothly. Scripts may also have to be modified at some later point in time to deal with
deprecated functionality and make use of the new way of performing that same function.
New location:
$AdminConfig list ServerEntry $node
set serverEntry <select one of the ServerEntry from output of above command>
set recoveryLog [$AdminConfig showAttribute $serverEntry recoveryLog]
$AdminConfig showAttribute $recoveryLog transactionLogDirectory
150
New example:
set processDefs [$AdminConfig list JavaProcessDef $server1]
set processDefs [$AdminConfig showAttribute $server1 processDefinitions]
151
New example:
processDefs = AdminConfig.list('JavaProcessDef', server1)
print processDefs
152
becomes
$AdminTask createSIBJMSQueue
In most cases, the changes to the script will be more than a minor syntactic update since
there is no direct mapping between the attributes of these objects. See this InfoCenter article
to figure out how to achieve equivalent function: AdminTask object for scripted administration,
found at:
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.nd.doc
/info/ae/ae/cxml_admintask.html
Version 5.0 JMS applications accessed JMS resources through a JMS Server, which acted as
one or more queue managers. The WebSphere Application Server Version 6 default
messaging provider uses fully integrated message bus and therefor needs no JMS server. In
this case, we configure the Service Integration Bus to replace the logical JMS server. Note
that not every bus emulates the V5 embedded messaging system but rather that it relies on
specific configuration of the MQClientLink and on a particular naming convention for bus
destinations.
In considering the changes that are required to migrate the scripts, the following two steps are
recommended.
1. All scripts need to be modified to test for the existence of the default SI Bus and create
one if necessary. One cannot assume there is always an SI Bus present, as you could
formerly assume that there was a JMS server present.
If you use the automatic migration utilities, then the SI Bus is created automatically. On a
stand-alone node, the JMS server runs as the jmsserver service of an application server. If
you migrate a WebSphere Application Server Version 5 stand-alone node to Version 6, the
Version 5 application server is migrated to a Version 6 application server with the same
name. The server is added as a member of a service integration bus that is named for the
node on which the server is located. A messaging engine is created automatically on that
bus for the application server. In a deployment manager cell, each managed node has at
most one JMS server. If you migrate a WebSphere Application Server Version 5 managed
node to Version 6, the JMS server is migrated to an application server, called jmsserver,
and added as a member of a service integration bus that has the same name as the node.
A messaging engine is created automatically on that bus for the application server. There
is only one such application server and bus for each Version 5 node. For each JMS queue
defined on the JMS server, the automatic migration utilities create a new bus queue with
the same name as the Version 5 JMS queue, and then create a message point assigned
to the messaging engine. Messages sent to the JMS queues are stored and processed at
the message point.
153
2. Scripts accessing the JMS server need to be changed. All scripts that modify the V5 JMS
Server queue lists need to be changed to transform queue lists to SI Bus destinations both
for a post-migration bus or any other bus that you create.
The automatic migration utilities do not migrate the data on WebSphere Application Server
Version 5 queues. Any messages and knowledge of durable subscriptions held by the JMS
server should be consumed before migrating the node to WebSphere Application Server
Version 6. If it is not possible to have the application consume the messages, the only
alternative is to write an application to run on a Version 6.0 server. This application needs to
access the Version 5 JMS server, get the Version 5 messages, and resend them to
applications on WebSphere Application Server V6.0.
154
not in Jacl 1.3.1, you may not get a match, or you may get a compile error for your regexp
command similar to the following:
com.ibm.bsf.BSFException: error while eval'ing Jacl expression:
couldn't compile regular expression pattern: ?+* follows nothing
while executing
"regexp {(?x)
..."
("if" test expression)
invoked from within
"if {[regexp {(?x)
..."
(file testregexp.jacl line 2)
(file line 2)
invoked from within
"source testregexp.jacl"
There is no workaround for this regression problem. The Jacl developers have indicated that
this is by design and there is no simple patch to fix this design decision.
155
ApplicationServer
Server
Context
Not applicable
DataSource
WAS40DataSource, DataSource
Domain
Not applicable
EnterpriseApp
GenericServer
Server
J2CConnectionFactory
J2CConectionFactory
J2CResourceAdapter
J2CResourceAdapter
JDBCDriver
JDBCProvider
JMSConnectionFactory
JMSConnectionFactory
JMSDestination
JMSDestination
JMSProvider
JMSProvider
MailSession
MailSession
Module
Node
Node
ServerGroup
ServerCluster
URL
URL
URLProvider
URLProvider
VirtualHost
VirtualHost
156
wscp
The wscp tool is invoked using the wscp.bat or wscp.sh program. You can specific the -f
option to run a script file, or the -c option to run a command. If you specify neither, an
interactive shell appears.
The operation of wscp is affected by a .wscprc properties file that is placed in the user's home
directory. There is no default properties file shipped with the product. An alternate properties
file may be specified on the command line by using the -p option.
wsadmin
The wsadmin tool is invoked using the wsadmin.bat or wsadmin.sh program. You can specific
the -f option to run a script file, or the -c option to run a command. If you specify neither, an
interactive shell appears. Multiple -c commands may be specified on the command line, and
there are additional options that may be specified. For more details, please refer to the
InfoCenter.
Table 9-2 Mapping of wscp 4.0 to wsadmin 6.0
wscp 4.0
wsadmin 6.0
action
Object and
command
Mbean, if any
Operation, if any
server start
AdminControl
startServer
server stop
AdminControl
stopServer
servergroup start
AdminControl
invoke
Cluster
start
servergroup stop
AdminControl
invoke
Cluster
stop
application start
AdminControl
invoke
ApplicationManager
startApplication
application stop
AdminControl
invoke
ApplicationManager
stopApplication
node stop
AdminControl
invoke
NodeAgent
stop
check runtime
attributes
<any mbean>
<attributeName>
regenPluginCfg
AdminControl
invoke
PluginCfgGenerator
generate
testConnection
AdminControl
testConnection
DataSource
157
wscp 4.0
wsadmin 6.0
enable security
security on
command in
securityProcs.jacl
disable security
securityoff
command in
securityProcs.jacl
Task-based scenarios
This section provides examples of wscp-to-wsadmin migration.
Server administration
Start an application server:
wscp 4.0
ApplicationServer start
/Node:mynode/ApplicationServer:myserv/
wsadmin V6
This command only makes sense in a Network Deployment installation. In a Base
installation, if you are connected to a server, you are connected to the only server and
you cannot request that another be started. But in a Network Deployment installation,
you can use:
$AdminControl startServer myserv mynode
If mynode is the node the client is connected to, the node name may be omitted:
$AdminControl startServer myserv
wsadmin V6
There is more than one way to stop a server using wsadmin. The simplest method is
by using the stopServer command on the AdminControl object:
$AdminControl stopServer server1 mynode
If mynode is the node the client is connected to, the node name may be omitted:
$AdminControl stopServer server1
158
information in V6, and you also need to understand that what you are creating is an object
called a Server, not an ApplicationServer.
wscp 4.0
ApplicationServer create
/Node:mynode/ApplicationServer:myserv/ -attribute
{{Stdout myfile.out}}
wsadmin V6
This can be done using a single command in wsadmin, but it is clearer to show it using
two. Server objects are contained within nodes. The 4.0 ApplicationServer attribute
called Stdout is replaced by the fileName attribute embedded within the
outputStreamRedirect attribute of the Server.
wsadmin>set node [$AdminConfig getid
/Node:mynode/]
wsadmin>$AdminConfig create Server $node {{name myserv} {outputStreamRedirect
{{fileName myfile.out}}}}]
wsadmin>$AdminConfig save
wsadmin V6
This can be done with a single command in wsadmin, but it is clearer to show it using
two.
wsadmin>set serv [$AdminConfig getid
/Node:mynode/Server:myserv/]
wsadmin>$AdminConfig remove $serv
wsadmin>$AdminConfig save
wsadmin V6
Launch the scripting program by passing in the host parameter:
wsadmin -host myhost.austin.ibm.com
Application management
Enterprise Application - install:
In 4.0, wscp scripts used the EnterpriseApp and Module commands to install and uninstall
applications. WebSphere V6 wsadmin scripts use the AdminApp command to perform
similar configuration actions.
wscp 4.0
The EnterpriseApp install command has a complex syntax, so we build up some
pieces of the command beforehand:
159
invoke install
wscp> EnterpriseApp install /Node:mynode/
c:/WebSphere/AppServer/installableApps/jmsample.ear -appname MailSampleApp
-defappserver /Node:$mynode/ApplicationServer:myserv/ -modvirtualhosts $modhosts
-resourcereferences $resrefs
wsadmin V6
As with 4.0, the application install commands can have a very involved syntax. The
command sequence given below accomplishes approximately the same thing as the
4.0 commands above, but there are simpler ways to do this.
The Help utility can be used to get more information for the above commands. In this case,
there are other commands that offer more information about the options. The AdminApp,
taskInfo and options commands are particular helpful in listing all the options and
information about them. You can also use the AdminApp installInteractive command (with the
same options as the install command) to be prompted for each option and step through the
160
install, setting your values. This command with all its options is logged in the
wsadmin.traceout file in the logs directory, under message WASX7278I.
Enterprise Application - uninstall:
wscp 4.0
wscp> EnterpriseApp remove {/EnterpriseApp:Sample Application/}
wsadmin V6
wsadmin> $AdminApp uninstall TechnologySamples
wsadmin V6
wsadmin> $AdminApp edit DefaultApplication {-BindJndiForEJBNonMessageBinding
{{"Increment Enterprise Java Bean" "Increment" "Increment.jar,META-INF/ejb-jar.xml"
"Increment1"}}}
While testing, it is easier to use editInteractive and get a list of the options and the
variables that can be changed. Then use those with the edit command in your scripts. In the
above command, -BindJndiForEJBNonMessageBinding is the option we are using to change
the JNDI name of the ejb Increment, with the URI Increment.jar,META-INF/ejb.jar.xml.
wsadmin V6
wsadmin> set trace [$AdminConfig getid /TraceServer:/
wsadmin> $AdminConfig modify trace
{{startupTraceSpecification=com.ibm.ws.*=all=enabled}}
wsadmin> $AdminConfig save
The change in the configuration is seen only when the server is restarted.
If you made changes and do not want to save them, then you can call the reset
command:
wsadmin> $AdminConfig reset
This can be invoked before a save to check for changes to the configuration.
161
You could put the result of this command into a Jacl list and invoke other operations
such as show or modify on the members of the list.
wsadmin V6
Again, in V6 there are server clusters instead of server groups.
$AdminConfig list ServerCluster
Again, you can put the result of this command into a Jacl list and invoke other config
commands such as show or modify on the members of the list. In order to invoke
operational commands such as stop, you need to do a little more work:
The name returned can be used to get the ObjectName of the running Cluster
MBean:
set runningCluster = [$AdminConfig getObjectName $myclust]
At this point, runningCluster has the object name for the running instance of the
ServerCluster (or it is empty if it is not running). This object name can be used for
control purposes:
$AdminControl invoke $runningCluster stop
Display help:
wscp 4.0
To obtain general help:
wscp> help
or:
wscp> ApplicationServer help
wsadmin V6
Displaying general help is done using the $Help object:
wsadmin>$Help help
This lists all the options available. In general, attributes and operations when passing
in an Mbean are the most useful. To get the Mbean associated, you have to use the
following command:
wsadmin>$AdminControl queryNames type=Server,*
162
help operations"
wsadmin V6
Since we are dealing with configured objects here, the wsadmin object to be used is
AdminConfig.
$AdminConfig attributes Server
Cluster administration
Create a server group:
WebSphere 4.0 server groups are no more; we now have server clusters in their place.
The members of a cluster are not clones so much as they are servers with identical
application configurations.
wscp 4.0
This example assumes that there already exists an application server named as1 that
is to be used as the first clone in a server group.
wscp>ServerGroup create /ServerGroup:sg1/ -baseInstance
/Node:mynode/ApplicationServer:as1/
-serverGroupAttrs {{EJBServerAttributes
{{SelectionPolicy roundrobin}}}}
wsadmin V6
wsadmin>set serverid [$AdminConfig getid /Node:mynode/Server:as1/]
wsadmin>$AdminConfig convertToCluster $serverid MyCluster
Clone a ServerGroup:
wscp 4.0
wscp>ServerGroup clone /ServerGroup:sg1/ -cloneAttrs
{{Name newServer}} -node /Node:mynode/
wsadmin V6
The following three commands could be combined into a single nested command, but
it is more clear to show them as three separate commands. The first gets the cluster
ID, the second gets the node ID, and the last command creates a new member of an
existing cluster.
wsadmin>set mycluster [$AdminConfig getid
/ServerCluster:mycluster/]
wsadmin>set mynode [$AdminConfig getid
/Node:mynode/]
wsadmin>$AdminConfig createClusterMember $mycluster
$mynode {{memberName newServer}}
Start a ServerGroup:
This is an operational command.
wscp 4.0
ServerGroup start /ServerGroup:cluster1/
163
wsadmin V6
Again, these two commands could be combined into one. We look up the Cluster
MBean, then invoke start on it:
wsadmin>set cl1 [$AdminControl completeObjectName type=Cluster,name=cluster1,*]
wsadmin>$AdminControl invoke $cl1 start
It is possible that there is no running MBean for cluster1 if the cluster has not been
loaded first. If this is the case, use the ClusterMgr MBean to retrieve the cluster:
wsadmin>set clustermgr [$AdminControl
completeObjectName type=ClusterMgr,*]
wsadmin>$AdminControl invoke $clustermgr
retrieveCluster cluster1
Stop a ServerGroup:
This is an operational command.
wscp 4.0
wscp>ServerGroup stop /ServerGroup:cluster1/
wsadmin V6
Again, these two commands could be combined into one. We look up the Cluster
MBean, then invoke start on it:
wsadmin>set cl1 [$AdminControl completeObjectName type=Cluster,name=cluster1,*]
wsadmin>$AdminControl invoke $cl1 stop
Remove a clone:
There is no command for removing a server from a cluster once it has been added. You
must delete the server.
Other tasks
Set the Trace specification:
wscp 4.0
wscp> DrAdmin remote <portno> -setTrace com.ibm.ejs.*=all=enabled
wsadmin V6
There are two ways to set tracing with wsadmin in WebSphere V6. One takes
immediate effect, but is temporary and is set on the runtime, using AdminControl.
wsadmin> set ts [$AdminControl queryNames
type=TraceService,node=<nodeName>,process=<serverName>,*]
wsadmin> $AdminControl setAttribute $ts traceSpecification com.ibm.*=all=enabled
However, if you want your change to persist, then you should change the configuration
by using AdminConfig.
wsadmin> set svr [$AdminConfig getid /Node:<nodeName>/Server:<serverName>/]
wsadmin> set ts [$AdminConfig list TraceService $svr]
wsadmin> $AdminConfig modify $ts {{startupTraceSpecification com.ibm.*=all=enabled}}
164
Enable security:
wscp 4.0
wscp>SecurityConfig setAuthenticationMechanism LOCALOS -userid {me secret}
wscp>SecurityConfig enableSecurity
wsadmin V6
V6 ships a profile that is referenced in the default wsadmin.properties file so that it runs
by default. This is securityProcs.jacl, and it implements various security configuration
functions. As of this writing, it only supports two functions: securityon and securityoff.
securityon [user [password]]
This turns on local security. If a user name is supplied, it is set in the security config. If
both a user name and password are supplied, the securityon function checks the
validity of the user/password combination, and fails the function if the combination is
not valid.
So the equivalent V6 command is:
securityon userName pwd
wsadmin V6
V6 ships a profile that is referenced in the default wsadmin.properties file so that it runs
by default. This is securityProcs.jacl, and it implements various security configuration
functions. It only supports two functions: securityon and securityoff.
securityoff
Install JDBCDrivers:
wscp 4.0
wscp>JDBCDriver create /JDBCDriver:mydriver/ -attribute {{ImplClass
COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource}}
wscp>JDBCDriver install /JDBCDriver:mydriver/ -node /Node:mynode/ -jarFile
c:/SQLLIB/java/db2java.zip
wsadmin V6
There is no separate install step in WebSphere V6. The JAR file name required in the
V4.0 install step is replaced by the classpath attribute on the V6 JDBCProvider object.
In WebSphere V6, resources can exist at the server, node, or cell level of the
configuration. The V6 equivalent of providing the node in the 4.0 JDBCDriver install
command is that we create our V6 JDBCProvider at the node level.
wsadmin>set node [$AdminConfig getid /Node:mynode/]
wsadmin>$AdminConfig create JDBCProvider $node {{classpath
c:/SQLLIB/java/db2java.zip} {implementationClassName
COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource} {name
mydriver}}
165
wsadmin V6
This task is a little more involved in WebSphere V6 because configuration and control
commands are separated. When we get a list of all the servers in the first statement of
the code shown below, we are getting a list of all the servers defined in the
configuration. This is just configuration data; we cannot interrogate the configuration
data to find out what servers are running, because the config data only contains
configuration information. The running state of a server is not configuration information.
So for each server defined, we ask for the ObjectName of any running instance of the
server. If the server is not running, nothing is returned from the getObjectName
command on the AdminConfig object. If the server is running, we ask for its state
attribute. This may appear superfluous; if the Mbean is there, the server is running
and the state should be STARTED. It is possible, however, for the state to be something
other than STARTED, for example, STOPPING.
set servers [$AdminConfig list Server]
foreach server $servers {
set objName [$AdminConfig getObjectName $server]
if {[llength $objName] == 0} {
puts "server $server is not running"
} else {
set result [$AdminControl getAttribute $objName state]
puts "state for server $server: $result"
}
}
wsadmin V6
In WebSphere V6, the testConnection command is part of the AdminControl object,
because it is an operational command. But this particular operational command takes
a configuration ID as an argument, so we invoke the getid command on the
AdminConfig object to get it:
wsadmin>set myds [$AdminConfig getid /JDBCProvider:mydriver/DataSource:myds/]
wsadmin>$AdminControl testConnection $myds
In many cases, a user ID and password (or other properties) are required to complete
the test connection. If this is the case, you get message WASX7216E describing the
missing properties:
WASX7216E: 2 attributes required for testConnection are missing: "[user, password]"
To complete this operation, please supply the missing attributes as an option,
following this example: {{user user_val} {password password_val}}
166
wsadmin V6
wsadmin>set cfg [$AdminControl queryNames type=PluginCfgGenerator,*]
wsadmin>$AdminControl invoke $cfg generate "C:/was50/WebSphere/AppServer
C:/was50/WebSphere/AppServer/config node1Network node1 server1 genPlugin.txt"
167
168
10
Chapter 10.
169
170
Figure 10-2 on page 172 shows the JDBC Provider that MyBank uses, and Figure 10-3 on
page 172 shows the data source.
Chapter 10. Runtime application migration examples
171
When you create the V6 profile, you have the flexibility to specify any node name or cell name
that you desire. Neither the cell name or the node name is crucial in making this exercise
work. The node name and cell names are important in the other exercises that we discuss in
this chapter. The important name to record is the profile name because this profile name will
be specified in the steps involving the auto-migration utilities.
172
set WAS_BIN=h:\migration\bin
%WAS_BIN%\WASPreUpgrade.bat G:\BACKUPS\brewski_AESV4 G:\WebSphereV4\AppServer
After running the WASPreUpgrade command, you should check its status by consulting the
output log which will be located in the backup directory. The example below shows the last
few lines of the log which indicates successful completion.
File - G:\BACKUPS\brewski_AESV4\ WASPreUpgrade.Mon-Oct-11-10.01.35-2004.log
deleted lines for brevity
MIGR0303I: The existing WebSphere Application Server environment is saved.
MIGR0420I: The first step of migration completed successfully.
After the WASPostUpgrade command completes, you should review the output log for errors or
warnings. The following examples shows an example warning message. Since this warning
pertains to the JDBC driver for the application data source we are migrating, we show later
that we do indeed heed the warning and change the classpath as suggested.
File E:\WASv6\profiles\olepaint_v4_mig\logs\WASPostUpgrade.Mon-Oct-11-10.39.42-2004.log
MIGR0260W: JDBCProvider MybankDB2 has been added to the configuration, but the class path
parameter might need to be updated if its prerequisite has changed.
Your directory would be different. Note that WebSphere Application server is installed at
E:\WASv6 and we are using the profile named olepaint_v4_mig.
Once the server has started, observe the application and resources in the administrative
console. Start the console according to the default URL
http://localhost:9060/ibm/console/. Your console URL may be different if you configured
a non-default port.
Figure 10-4 on page 174 shows the MyBankApp application has been migrated to the new
profile. Figure 10-5 on page 174 shows the JDBC driver resource. Note that the JDBC DB2
driver resided in a different directory, and we changed the classpath to update this new path.
Chapter 10. Runtime application migration examples
173
Figure 10-6 shows the V4 data source. Note that since the data source was migrated from
V4, its has V4 semantics and is found under the V4 data source link.
174
Confirm the application is functioning correctly with the appropriate application test scenarios.
Figure 10-8 on page 176 shows the JDBC resources that the application uses.
175
Figure 10-9 shows the WebSphere JMS Provider queue connection factory, which is QCF for
our application.
Figure 10-10 on page 177 shows the WebSphere JMS Provider queue destination, which is
Q1 for our application.
176
After running the WASPreUpgrade command, you should check its status by consulting the
output log which will be located in the backup directory. The example below shows the last
few lines of the log which indicates successful completion.
File - E:\BACKUPS\20041029\WASPreUpgrade.Fri-Oct-29-08.29.07-2004.log
First several lines deleted
MIGR0303I: The existing WebSphere Application Server environment is saved.
MIGR0420I: The first step of migration completed successfully.
177
call E:\WebSphere_V6\bin\setupCmdline.bat
set WAS_BIN=%WAS_HOME%\bin
set BACKUPDIR=E:\BACKUPS\20041029
%WAS_BIN%\WASPostUpgrade %BACKUPDIR%
Please note that the WASPostUpgrade command in this example only uses the single required
argument of the backup directory. The profile name is defaulted because we are operating on
the default profile.
After the WASPostUpgrade command completes, you should review the output log for errors or
warnings. The following example shows an example warning message. The warning
message below is quite common and can often be ignored. You should examine any
warnings about port assignments to determine whether the assignment will conflict with other
servers.
file E:\WebSphere_V6\profiles\default\logs\WASPostUpgrade.Fri-Oct-29-08.35.11-2004.log
MIGR0331W: Port 9080 in file
E:\WebSphere_V6\profiles\default\config\cells\OLEPAINTNode01Cell\nodes\olepaint\servers\ser
ver1\server.xml is migrated, but is already assigned in file
com.ibm.websphere.migration.postupgrade.ApplicationServerHelper$PortMapping@6ca5260a; this
situation might result in port conflicts.
178
The JDBC driver and JDBC data source are shown in Figure 10-12 and Figure 10-13 on
page 180. Note that the classpath for the JDBC provider was not changed for this example
because we are using the same system to do the migration. Also note that this is a default V5
type data source that is migrated. Contrast this normal data source with the V4 data source
that is migrated in the example in Figure 10-6 on page 174.
179
System Integration Bus (SIBus) is the first JMS resource to examine. A default SIBus is
created by the migration utilities in which the name matches the node name. Figure 10-14,
Figure 10-15 and Figure 10-16 on page 181 show the SIBus that is created.
180
JMS resources that are found in V5 that are required by the example applications are queue
connection factories and queue destinations. These resources are located under JMS
providers identified as V5 default messaging, as shown in Figure 10-17, Figure 10-18 on
page 182, and Figure 10-19 on page 182.
181
The applications in the example require queue connection factories and queue destinations.
Figure 10-20 on page 183 and Figure 10-21 on page 183 show these resources.
182
Queue destinations also have references under the SIBus destinations. Figure 10-22 shows
the queue destinations. Note that the SIBus destination prefixes the V5 default messaging
queue destination with the characters WQ_.
The MDB listener ports are defined under the application server. The migration utilities
migrate both the MDB listener port and the application listener port binding. Figure 10-23 on
page 184, Figure 10-24 on page 184, Figure 10-25 on page 184, Figure 10-26 on page 184,
and Figure 10-27 on page 184 illustrate navigating under the server definition to find the
listener port definition.
183
184
The application bindings are also bound to the same MDB listener port. Figure 10-28,
Figure 10-29, and Figure 10-30 show the listener port attributes.
185
Follow the prompts in the Web server installation wizard. Specify the Web server installation
directory, typical default installation, and decide if you want the Web server to be installed as
a Windows service.
At the conclusion of the installation of the Web server, you are given the option to run the
WebSphere plug-ins installation wizard. Figure 10-32 shows the introductory screen where
you may choose to see more detailed installation instructions.
After accepting the license agreement, Figure 10-33 on page 187 shows the type of Web
server, which is the IBM HTTP Server V6 for this example.
Figure 10-34 on page 187 shows the remote configuration selection screen where we select
Remote. A Remote selection seems to contradict the actual example configuration, so an
explanation is in order.
The meaning of Remote in the selection screen is that the Web server and the application
server are remote from each other on separate systems. The meaning of Local in the
selection screen is that the Web server is on the same system as the application server. If
Local is chosen, the WebSphere plug-in installer creates a managed Web server instance in
the application server to manage the plug-in configuration files, which only works with the IBM
HTTP Server V6 Web server. We select the Remote case so that this configuration does not
occur.
The plug-ins are installed on the same system as the Web server by necessity, because the
plug-in is executable code which must be loaded by the Web server.
.
186
Figure 10-35 specifies a directory location for the plug-in binary files.
Figure 10-36 shows the location of the Web server configuration file, which is edited by the
installer to point to the plug-in binary and the plug-in configuration file.
Figure 10-37 on page 188 shows the default name of the Web server instance under the
application server. Choose a name that represents something meaningful to you.
187
Figure 10-38 shows the default location of the plug-in configuration file which is contained in
the application server configuration. This file location is placed into a line in the Web server
configuration file.
Figure 10-39 shows the final screen of the plug-in installation wizard.
When the plug-in installation is complete, verify that the configurations in various files are
correct. The last few lines of the Web server configuration file look like this:
file E:\IBMHTTPServer_V6\conf\httpd.conf
lines deleted for brevity
LoadModule was_ap20_module "E:\WebSphere_Plugins_V6\bin\mod_was_ap20_http.dll"
WebSpherePluginConfig
"E:\WebSphere_V6\profiles\default\config\cells\OLEPAINTNode01Cell\nodes\webserver1_node\ser
vers\webserver1\plugin-cfg.xml"
This excerpt from the plugin-cfg.xml shows that the applications are mapped properly:
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/JMSSampleWeb/*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/JMSSampleWebservlet/*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/MyBankWeb/*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/MyBankWebservlet/*"/>
188
Note that the plug-in configuration file was automatically generated by the plug-in installer.
Also note that all the applications that are migrated by the migration utilities are mapped into
the plug-in configuration file because the plug-in installer runs after the migration utilities. The
order of these two steps is important. If the plug-ins are installed before running the migration
utilities, then be sure to map each application to webserver1 and then generate the plug-in
configuration file. See 7.3.4, Plugin-Cfg generation on page 111 for the steps to map
applications to Web servers.
Verify that the applications are accessible by accessing the proper URL via both ports 9080
and 80.
189
Version 4 Advanced Edition is stored in a relational database, you should also perform a
database backup using the tools provided by your database vendor.
190
Figure 10-43 shows the JDBC driver and associated data sources.
191
In this example, we have chosen to save the results in the directory C:\WAS40\backups and
the existing V4 install directory is C:\WAS40\AppServer.
Example 10-1 Executing WASPreUpgrade
C:\WAS60\AppServer\profiles\SonomaCustom01\bin>WASPreUpgrade c:\WAS40\backups
c:\WAS40\AppServer sonoma
IBM WebSphere Application Server, Release 6.0
Product Upgrade PreUpgrade tool, Version 1.0
Copyright IBM Corp., 1997-2004
MIGR0300I: The migration function is starting to save the existing WebSphere Application
Server environment.
MIGR0241I: Output of Get character encoding settings.
MIGR0301I: The existing configuration is being exported.
MIGR0241I: Output of XMLConfig Export.
[11/30/04 21:00:58:769 PST] 5c405690 VirtualHostCo A XMLC0052I: Exporting VirtualHost :
default_host
[11/30/04 21:00:58:849 PST] 5c405690 JMSProviderCo A XMLC0052I: Exporting JMSProvider : IBM
MQSeries
[11/30/04 21:00:59:000 PST] 5c405690 URLProviderCo A XMLC0052I: Exporting URLProvider :
Default URL Provider
[11/30/04 21:00:59:100 PST] 5c405690 JDBCDriverCon A XMLC0052I: Exporting JDBCDriver :
Sample DB Driver
[11/30/04 21:00:59:210 PST] 5c405690 DataSourceCon A XMLC0052I: Exporting DataSource :
SampleDataSource
[11/30/04 21:00:59:230 PST] 5c405690 DataSourceCon A XMLC0052I: Exporting DataSource :
sample
[11/30/04 21:00:59:280 PST] 5c405690 NodeConfig
A XMLC0052I: Exporting Node : sonoma
[11/30/04 21:00:59:661 PST] 5c405690 ApplicationSe A XMLC0052I: Exporting ApplicationServer
: Default Server
[11/30/04 21:01:00:262 PST] 5c405690 SecurityConfi A XMLC0052I: Exporting SecurityConfig :
{1}
[11/30/04 21:01:01:033 PST] 5c405690 ServerGroupCo A XMLC0052I: Exporting ServerGroup :
SonomaServerGroup
[11/30/04 21:01:01:984 PST] 5c405690 EnterpriseApp A XMLC0052I: Exporting EnterpriseApp :
Sample Application
MIGR0302I: The existing files are being saved.
MIGR0303I: The existing WebSphere Application Server environment is saved.
MIGR0420I: The first step of migration completed successfully.
C:\WAS60\AppServer\profiles\SonomaCustom01\bin>
The output runs for many pages, so the example in this book has been edited to exclude
many of the repetitive lines. As you can see, the migration has completed with warnings. It is
important that you examine the warnings to determine if you need to take any corrective
action before proceeding. In this example, we see the following warnings:
That the application server initial and maximum heap sizes were not imported and may
need to be adjusted
That port conflicts might occur if there are pre-existing servers on our V6 node. In this
case, there arent any we can safely ignore.
That it may be necessary to modify the classpath entries for the URL Provider, JMS
Provider and JDBC Driver if the locations differ for these entries between the V4.x node
and the V6.0 node.
That certain security settings and properties are not migrated. You should configure the
LDAP settings before enabling security. Also, various KeyRing files are not migrated. You
should either manually migrate the KeyRing settings, or configure SSL to use new
KeyRings. Since periodic KeyRing maintenance is a good idea, you might want to take
this opportunity to do so, but only if it does not impact your current production machines.
Chapter 10. Runtime application migration examples
193
In our example, we are going to wait before making any changes since we will need to run
WASPostUpgrade on the deployment manager profile. Some of the warnings refer to cell wide
configuration parameters, such as LDAP server settings for Global Security. It is best to note
the warnings here and make the changes all at once.
Once you have examined the output from the WASPostUpgrade command, you are ready to
run addNode. This is depicted in Example 10-3, where the deployment manager is running on
the same node, sonoma, that the Application Servers are on.
Note: Recall that you need to run WASPostUpgrade on each of the nodes that you are
migrating, and you should do so before running addNode.
Example 10-3 Executing addNode
C:\WAS60\AppServer\profiles\SonomaCustom01\bin>addnode sonoma
ADMU0116I: Tool information is being logged in file
C:\WAS60\AppServer\profiles\SonomaCustom01\logs\addNode.log
ADMU0128I: Starting tool with the SonomaCustom01 profile
ADMU0001I: Begin federation of node sonoma with Deployment Manager at
sonoma:8879.
ADMU0009I: Successfully connected to Deployment Manager Server: sonoma:8879
ADMU0505I: Servers found in configuration:
ADMU0506I: Server name: server1
ADMU0506I: Server name: SonomaServer1
ADMU0506I: Server name: SonomaServer2
ADMU2010I: Stopping all server processes for node sonoma
ADMU0512I: Server server1 cannot be reached. It appears to be stopped.
ADMU0512I: Server SonomaServer1 cannot be reached. It appears to be stopped.
ADMU0512I: Server SonomaServer2 cannot be reached. It appears to be stopped.
ADMU0024I: Deleting the old backup directory.
ADMU0015I: Backing up the original cell repository.
ADMU0012I: Creating Node Agent configuration for node: sonoma
ADMU0014I: Adding node sonoma configuration to cell: sonomaNetwork
ADMU0016I: Synchronizing configuration between node and cell.
oldVarTable: {}
newVarTable: {}
diffTable: {}
ADMU0018I: Launching Node Agent process for node: sonoma
ADMU0020I: Reading configuration for Node Agent process: nodeagent
ADMU0022I: Node Agent launched. Waiting for initialization status.
ADMU0030I: Node Agent initialization completed successfully. Process id is:
3004
ADMU0300I: Congratulations! Your node sonoma has been successfully incorporated
into the sonomaNetwork cell.
ADMU0306I: Be aware:
ADMU0302I: Any cell-level documents from the standalone localhostNode01Cell
configuration have not been migrated to the new cell.
ADMU0307I: You might want to:
ADMU0303I: Update the configuration on the sonomaNetwork Deployment Manager
with values from the old cell-level documents.
ADMU0306I: Be aware:
ADMU0304I: Because -includeapps was not specified, applications installed on
the standalone node were not installed on the new cell.
ADMU0307I: You might want to:
ADMU0305I: Install applications onto the sonomaNetwork cell using wsadmin
$AdminApp or the Administrative Console.
ADMU0003I: Node sonoma has been successfully federated.
194
After stopping the deployment manager with the stopManager command, we are ready to run
WASPostUpgrade on the deployment manager profile that we created. We execute this
command from the bin directory under the deployment manager profile as shown in
Example 10-4.
Example 10-4 Executing WASPostUpgrade on deployment manager
C:\WAS60\AppServer\profiles\SonomaDmgr01\bin>WASPostUpgrade C:\WAS40\backups
IBM WebSphere Application Server, Release 6.0
Product Upgrade PostUpgrade tool, Version 1.0
Copyright IBM Corp., 1997-2004
MIGR0304I:
MIGR0367I:
MIGR0241I:
ADMU0116I:
At this point, make a note of the various warnings so that you can make any changes or
updates required for the Application Server and deployment manager all at once, as
mentioned previously, after starting the deployment manager using the startManager
command.
195
After starting the deployment manager, you should navigate to various artifacts mentioned in
before to make sure that they are now present. These are depicted in Figure 10-46,
Figure 10-47 on page 197, and Figure 10-48 on page 198 for the ServerGroup that is now a
Server Cluster, the JDBC Driver and its associated V4 Data Sources. Be sure to ensure that
the classpath settings are correct for the JDBC Driver, and to update the LDAP server
settings for Global Security as well as the KeyRing settings.
196
Once you have made updates to the resources or application server definitions such as heap
size, you are ready to install the Enterprise Application to the Server Cluster. Please note that
migration from V4 to V6 does not migrate the application installation, but it does place the
EAR file for any applications in this directory:
profiles/nodeprofile/installableableApps
We then install any applications in this directory via the administrative console. This process
is very similar to installation on V4 or V5. Once you have finished installing the application, be
sure to save your changes and synchronize your changes with all the nodes in the cluster.
197
Assuming your application test is successful, you have completed your V4.x to V6.0
migration.
198
The node names are shown in Figure 10-50, where sonoma is the application server node
name and sonomaManager is the deployment manager node name. In cases where
multiple nodes exist, record the names for the V5 application server nodes and then create a
V6 custom or stand-alone application server profile for each of those nodes.
Note: You must use the same node and cell names when migrating from Version 5 to
Version 6.
The current V5.x cell has a server cluster named SonomaCluster as depicted in
Figure 10-51 on page 200.
Chapter 10. Runtime application migration examples
199
The Enterprise Applications installed are shown in Figure 10-53 on page 201. The application
running in the Server Cluster is the DefaultApplication. You will note that the Server Cluster
and application are running. You can migrate a V5.x node without stopping it. The migration
tools can collect all the configuration data while the node is either running or stopped, but you
must stop the V5.x node before you can start the V6.0 node that you are migrating to.
200
The specification of a custom profile is shown in Figure 10-54. Node and host name
properties are depicted in Figure 10-55 on page 202. Recall that the node name information
must match the current V5 node name information, as discussed previously.
201
The selection of a deployment manager profile in the profile creation wizard is shown in
Figure 10-56. Specification of the node, host and cell names are shown in Figure 10-57 on
page 203. Again as noted previously, the node and cell names in V6.0 must match the
information from the V5.x configuration.
202
Figure 10-57 Profile node and host names for deployment manager
Select the migration wizard which launches the migration wizard client as shown in
Figure 10-59 on page 204, then select Next to continue with the migration wizard dialog.
203
This then brings up the version selection dialog as shown in Figure 10-60. In this case, since
we are migrating the deployment manager, we select the Network Deployment installation
on the machine.
Note: Before proceeding any further, be sure to stop the Version 5 deployment manager
with the stopManager command if you have not already done so. Failure to do so results in
a migration failure.
Specify the directory where the backup of the current V5.x configuration is saved, as shown in
Figure 10-61 on page 205.
204
The last input before the migration occurs is the specification of the target profile, as shown in
Figure 10-62.
Note: Be sure to start the migration wizard from the startup directory under the profile you
are migrating to; this simplifies input of the information related to the to configuration you
are migrating to.
Then proceed to start the migration wizard, which invokes the WASPreUpgrade command as
shown in Figure 10-63.
205
As with the command line version of WASPostUpgrade, you should review all the messages
generated to make sure that your deployment manager migration has completed
successfully. In our example, the final message was:
MIGR0271W: The migration completed with warnings.
206
which is the new URL for Version 6. Note that even though the default Version 6
administration port is 9060, we choose to retain 9090 while selecting options in the migration
wizard).
In Figure 10-65, we navigate to the Application Servers dialog (Servers -> Application
Servers). We can see the two application servers in our cluster running and we can also see
that they are V5.1.1 application servers. It is worth noting that, during the conversion of the
deployment manager, we did not stop the node agent or the application servers running on
our node. As a result, application availability was not impacted during this portion of the
migration.
When we look at the nodes in our cell in Figure 10-66, we see that the managed node,
sonoma, is a V5.1.1 node. However, the deployment manager node, sonomaManager, is a
V6.0 node.
207
We start the migration wizard by navigating to the firststeps directory under the custom profile
for the managed node that we created earlier, and select the Migration wizard. See
Figure 10-67. Note that the First Steps Java client for a managed node profile differs from the
First Steps Java client for a deployment manager profile.
We proceed through the migration wizard as we did for the deployment manager migration.
First, select the V5.1 version that we are going to migrate, then specify a backup directory.
C:\WAS51\backups\migration\sonomanode
If we were migrating multiple nodes, we would specify a different backup directory for each of
our nodes in this fashion.
We then select the target profile for our migration, as shown in Figure 10-68. By starting First
Steps and the migration wizard from the profile, the profile name is populated automatically.
208
As you can see, the migration has completed with warnings. It is important that you examine
the warnings to determine if you need to take any corrective action before proceeding. In this
example, we see the following messages:
MIGR0404W: Do not use the node agent in the old configuration. It has been disabled.
PLGC0020E: No valid server definitions are found for the server cluster
dmgr_sonomaManager_Cluster. It is ignored.
None of these messages requires any corrective action.
At this point, we are ready to start the node agent with the startNode command:
cd /d c:\WAS60\AppServer\profiles\SonomaCustom01\bin
startNode
Once the node agent is started, you can return to the administrative console and start the
application servers on the node that are part of the server cluster. This is shown in
Figure 10-70.
At this point, you are ready to test the applications running on the application servers to make
sure that they are functioning correctly. We do so by invoking the Web application directly on
the Web container HTTP port and validating that the application is functioning correctly. Once
this is done, we are ready to place this node into service. Since the WasPostUpgrade script
209
already regenerated the plug-in for us, all we need to do is to distribute the plugin-cfg-xml file
to the HTTP servers in order to allow client requests to flow to our newly upgraded V6 node,
application servers and application.
Depending on whether or not you have chosen to create managed nodes for your HTTP
servers, the mechanism for distributing the updated plug-in configuration file varies. Your
three options are:
Install WebSphere Application Server Version 6 and create a custom profile so that you
have a node agent to manage your HTTP server, plug-in configuration file and plug-in file
distribution.
Install IIBM HTTP Server Version 6, which provides the noted HTTP server and plug-in
maintenance without a node agent.
Continue to manually manage your HTTP server and plug-in maintenance.
At this point, you have successfully completed migration of your deployment manager and
one of your managed nodes. In a multi-node environment you would repeat the managed
node migration steps for each node in your deployment.
Log in using any name you wish. Figure 10-71 on page 211 shows the login to the
administrative console. The name is an arbitrary string that tracks the changes you make
before you commit and save.
210
b. Create a new bus with the New button as shown in Figure 10-73.
c. Specify these fields in the new bus window, shown in Figure 10-74 on page 212, and
accept defaults for the remainder of the fields. Select OK when done.
Name: MDBbus
Secure: Deselect
211
f. Add a new member with the Add button. Specify Server as the member type and
select the server name, as shown in Figure 10-77 on page 213. Our example only has
212
server1 available to select. Accept defaults for the remaining fields on that screen.
Select Next when done.
213
k. Assign the queue to the existing bus members, as shown in Figure 10-81. This
example only has server1 available as a bus member.
c. In the next screen, select the New button. Specify the following fields and accept the
defaults for the remaining fields. Select OK when done.
214
Name
BankJMSQCF
JNDI Name
MyBank/QCF
Bus Name
MDBbus
Note that the JNDI name must match the name used by the application.
b. In the next screen, select the New button. Specify the following fields, as shown in
Figure 10-86 on page 216, and accept the defaults for the remaining fields. Select OK
when done.
Name
BankJMSQueue
JNDI Name
MyBank/Q1
Bus Name
MDBbus
Queue Name
BankJSQueue
Note that the JNDI Name must match the name in Figure 10-88 on page 217. Also, the
Queue Name must match the name in Figure 10-80 on page 214.
215
b. Create a new specification with the New button. In the new activation specification
screen, as shown in Figure 10-88 on page 217, specify these fields and default the
remaining fields. Select OK when done.
Name
MyBankAS
JNDI Name
MyBank/AS
Destination type
Queue
MyBank/Q1
Bus Name
MDBbus
Note that the Destination JNDI name must match the JNDI Name of the JMS queue
destination that you configured in Figure 10-86.
216
c. Save the configuration by selecting the Save link at the top of the screen. Then select
the Save button again to confirm the save, as shown in Figure 10-89.
b. Create a new alias with the New button and specify the following fields, as shown in
Figure 10-91 on page 218. Select OK when done.
217
Alias
db2user
User ID
Password
b. Create a new JDBC provider with the New button. Select these settings from the
selector fields, as shown in Figure 10-93. Select OK when done.
Database type
DB2
Provider type
Implementation type
XA data source
c. On the next screen, as shown in Figure 10-94 on page 219, specify a unique provider
name and the correct classpath for your DB2 JDBC drivers. Do not rely on the settings
you see defaulted in the classpath. The variables identifying the DB2 driver location
may or may not be correct, depending on what order you installed DB2 in relation to
the application server. You should specify a full path name for all the concerned files,
as shown below. You do not have to worry about which direction the slash file
delimiters are pointing. You can use either forward or reverse slashes, regardless of
the operating system you are using.
D:/Db2_8.1/SQLLIB/java/db2jcc.jar
D:/Db2_8.1/SQLLIB/java/db2jcc_license_cu.jar
D:/Db2_8.1/SQLLIB/java/db2jcc_license_cisuz.jar
218
For this example, we specify a provider name of Bank JDBC and the correct JDBC
driver path.
b. On the next screen, shown in Figure 10-96 on page 220, specify the following fields
and default the remaining fields.
Name
BankDS
JNDI Name
jdbc/MyBank
Checked
db2user
Database Name
BankData
219
For all these steps, you can navigate backward and forward by either selecting the Previous
or Next buttons, or selecting the explicit step number on the left side of the screen.
Figure 10-97 on page 221 shows a list of all the steps we encounter for this application. You
may encounter a different number of steps with a different application. By selecting the step
number, you can select steps in any order. The summary step is the last step where you finish
and commit all your answers.
220
1. Start the application installation wizard by selecting Install New Applications under the
Applications section of the left navigation bar, shown in Figure 10-98.
2. Specify the EAR file for the application, as shown in Figure 10-99.
221
4. On the Select Installation Options page, shown in Figure 10-101, accept the defaults,
which are usually correct.
5. On the Map Modules to Servers page, shown in Figure 10-102, accept the defaults. In the
topology we use, there is only one server and therefore only one choice can be made. If
you were installing on a deployment manager, you would have multiple servers from which
to choose.
6. On the EJBDeploy Options page, shown in Figure 10-103, specify the data base type,
which in this case is IBM DB2 8.1.
222
7. On the MDB Listener Bindings page, shown in Figure 10-104, specify either a Listener
port or an Activation Specification. This example specifies the activation specification with
a JNDI name MyBank/AS. Note that this name must match the name specified in
Figure 10-88 on page 217.
8. On the JNDI Names for Beans page, shown in Figure 10-105, accept the default
assignments.
9. On the Default Data Sources page, shown in Figure 10-106, select a data source to apply
to all the EJBs in the application. Scroll to the bottom of the page and select the EJB
modules you want to apply a data source for. This example only has one EJB to choose.
10.On the same page, scroll up to the top and select the data source which you want to apply
as the default data source. This is shown in Figure 10-107 on page 224. Then click the
Apply button. For this example, we had already configured jdbc/MyBank; therefore, it can
be selected in the pull-down menu. It is also possible to key the JNDI name value in case
the data source has not yet been defined. You can scroll back down to the EJB modules
and see that the JNDI name has been applied.
223
11.The remainder of the steps are omitted because the default values are acceptable for this
exercise.
12.Select the last summary step and click Finish. The installation begins. Observe the output
and confirm that the installation wizard was successful.
13.Save the configuration as shown in Figure 10-89 on page 217.
14.Log out from the administrative console.
15.Restart the application server:
cd /d e:\WebSphere_V6\profiles\olepaint\bin
stopServer server1
startServer server1
224
Appendix A.
Prerequisite software
Before you can upgrade IBM Rational Developer or WebSphere Application Server to V6, you
need to do additional planning regarding other software packages that may need to be
updated. This appendix is a summary of the various versions of software that are supported.
225
Operating systems
Table A-1 shows which operating systems are supported for the Rational Developer product
line. This table also applies for WebSphere Application Server Toolkit.
Table A-1 Supported operating system levels
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Standard Server
Microsoft Windows XP Professional
Microsoft Windows 2003 Standard Server
Microsoft Windows 2003 Enterprise Server
Red Hat Enterprise Linux WS 3.0 IA32 architecture
SUSE Linux Enterprise Server 9.0 IA32 architecture
Operating systems
Table A-2 shows which operating systems are supported. The operating systems which are
marked X in the column title Supported for development only are intended by the operating
system vendor to be a workstation operating system rather than a server operating system.
Operating systems intended for workstations may not have the capability to perform to the
same capacity and robustness as would an operating system for a server. Therefore,
operating systems intended for workstations are not supported for production server
environments. Such a configuration is supported for development use for development
testing and prototyping.
Table A-2 Supported operating system versions
Operating System
226
Supported
for
development
only
Supported
for
production
and
development
Operating System
Supported
for
development
only
Supported
for
production
and
development
HP-UX 11i
Database servers
Table A-3 shows the supported database servers necessary to perform Enterprise Java Bean
persistence.
Table A-3 Supported database servers
Cloudscape 5.1.60.17
IBM DB2 for z.OS v7 or v8
IBM DB2 for iSeries 5.2 or 5.3
IBM DB2 Connect 8.1 FP7a or 8.2
IBM DB2 Enterprise Server Edition 8.1 FP7a or 8.2
IBM DB2 Express 8.1 FP7a or 8.2
IBM DB2 Workgroup Server Edition 8.1 FP7a or 8.2
IBM DB2 Information Integrator 8.1 FP7a or 8.2
IBM Informix Dynamic Server 9.3 or 9.4
Oracle 8i Standard or Enterprise Release 3 8.1.7.4
Oracle 9i Standard or Enterprise Release 2 9.2.0.4
Oracle 10g Standard or Enterprise Release 1 10.1.0.3
227
IBM DB2
2 or 4
IBM DB2
IBM Informix
Oracle 8i and 9i
4
Oracle 9i and 10g
DB2 on iSeries
Web servers
Table A-5 shows the supported Web servers.
Table A-5 Supported Web servers
Apache Server 2.0.49
IBM HTTP Server 2.0.47.1
IBM HTTP Server 6.0
Internet Information Services 5.0 or 6.0
Lotus Domino Enterprise Server 6.0.3 or 6.5.1
Sun Java System Web Server 6.0 SP7 and 6.1 SP1
228
Appendix B.
Bibliography
The following references were used as sources for much of the work we have done here. You
should consider consulting these references to gather more detail on the subject matter you
need to explore.
IBM Redbooks
For information on ordering these publications, see How to get IBM Redbooks on page 231.
Note that some of the documents referenced here may be available in softcopy only.
Migrating to WebSphere V5.0 An End-to-End Migration Guide, SG24-6910
You should consult this redbook if you are considering a migration directly from V3.5 to V6.
Migrating Applications from WebSphere for z/OS V4 and V3.5 to V5, SG24-7044
You should consult this redbook if you use the WebSphere Application Server on the
z/OS operating system and intend to migrate.
WebSphere Application Server V6 Technical Overview, REDP-3918
WebSphere Application Server V6 System Management and Configuration Handbook,
SG24-6451
This redbook has considerably more detailed information about the system administration
of V6. It also covers new V6 functionality which takes you beyond the realm of migration of
existing applications.
WebSphere Application Server V6 Scalability and Performance Handbook, SG24-6392
WebSphere Application Server V6: Web Services Development and Deployment,
SG24-6461
WebSphere Application Server V6 Security Handbook, SG24-6316
WebSphere Application Server V6: High Availability Solutions, REDP-3971
229
We cite URLs in the book text that take you directly to the specific article. We hope that the
URL will remain accurate and not change. In the event that the URL changes, you can search
for the article by pasting the article title in the Search bar in the upper left part of the Web
browser window.
Online resources
These Web sites and URLs are also relevant as further information sources:
IBM developerWorks - Technical resources for the WebSphere software platform
The top level address for searching articles is:
http://www.ibm.com/developerworks/websphere
These are articles on the IBM developerWorks site that we cite in the text and we
otherwise recommend:
Meet the Experts: Wayne Beaton on WebSphere Application Server migration
http://www.ibm.com/developerworks/websphere/library/techarticles/0403_beaton/beaton.
html
230
http://java.sun.com/products/jdbc/download.html
Appendix B. Bibliography
231
232
Index
A
access intent
bean level 34
method level 34
activation specification 48, 58, 216, 223
addNode 114, 139, 143
Administration - other tasks
Disable local OS security 165
Enable security 165
Install JDBCDrivers 165
Ping node and AppServers for current status 166
Regenerate the plug-in configuration 167
Setting the Trace specification 164
Test connections to data sources 166
Administration of configured objects
Display help 162
List actions available on configured objects 163
List the configured server groups 162
Modifying attributes of application server 161
Modifying attributes of enterprise applications 161
Administration of runtime objects 161
administration server 137
administrative console 9, 4849, 94, 96, 101, 109110,
114, 138139, 210, 224
Apache SOAP 22, 32
Apache Struts 31
application extensions 118
Application management
Enterprise Application - edit 161
Enterprise Application - install 159
Enterprise Application - uninstall 161
application server 98
Application Server Toolkit 75
ASTK 7576
asynchronous messaging 9495, 109
automatic migration 109110, 121, 136, 143
B
backup 138
bus
member 52, 55
name 5758
C
C++ 37
capabilities
enabling 7
team 64
cell 96, 114, 139141
cell configuration 85
cell name 104
class
ChainedRequest 33
ChainedResponse 33
ChainerServlet 33
ServletChain 33
class loader 114
delegation 115
mode 115
settings 37
classpath 37, 65, 118, 138, 165, 193, 196, 218
ClearCase LT 14
client 7577
clientUpgrade 121, 132
Cloudscape 40, 44
Cluster administration
Clone a ServerGroup 163
Create a server group 163
Remove a clone 164
Start a ServerGroup 163
Stop a ServerGroup 164
Common Connector Framework 35, 85
compatibility 15, 66
backward 15, 67
removing 67
components 74
configuration editor 8
connection factory 56, 95
constraints
authentication 25
security 25
convertScriptCompatibility 121
CORBA 37
CVS 14, 63, 65
repository 63
support 64
D
Data Access Beans 34
Data Direct 7576
data location 150
Data Replication Services 146
data source 110, 171, 174, 179, 219, 223
definition 44
helper class 46
databaseName 47
DB2 7576
debugger 16
default bindings 221
default messaging 109
provider 57
deploy code
generating 48
deployment descriptor 4748
editor 48
ejb-jar.xml 23
web.xml 26
233
webservices.xml 2324, 27
webservicesclient.xml 23
deployment manager 73, 85, 94, 96, 98, 114, 138139,
141, 146
deprecated interface
ConnectionEventListener 34
LazyEnlistableConnectionManager 34
SingleThreadModel 25
deprecated method
addProduct 33
computeProductDirName 33
getAllPoolContents 34
getPoolContents 34
getProductByFilename 33
getProductById 33
getProductDirName 33
getProductNames 33
getProducts 33
loadVersionInfoAsXMLString 33
productPresent 33
removeProduct 33
deprecated package
com.ibm.websphere.j2c 34
com.ibm.websphere.j2c.ConnectionManager 34
com.ibm.websphere.product.buildInfo 33
com.ibm.websphere.product.product 33
com.ibm.websphere.product.WASProduct 34
com.ibm.websphere.security.auth.WSPrincipal 36
com.ibm.websphere.security.auth.WSSecurityContext 36
com.ibm.websphere.security.auth.WSSecurityContextException 36
com.ibm.websphere.security.auth.WSSecurityContextResult 36
com.ibm.websphere.servlet.error.ServletErrorReport 34
com.ibm.websphere.servlet.filter 33
com.ibm.ws.management.descriptor.xml.ConnectionFactory.xml 34
deprecated type
getCredential 36
deprecation 1819, 30
Destinations, 57
development environment 72, 81
development integration 82
development test 81
DOM level 2 37
downtime 81, 8384
Dynamic Web 65
E
EAR 19, 132
EJB 110, 115, 117
EJB 2.1 26
EJBDeploy 222
Enterprise Access Builders 85
exception
MalformedURLException 31
export 4041, 63
234
F
failover 73
G
getResource 120
getResourceAsStream 120
H
HDRDQX1TMGPROBLEMS 15
HDRDQX1TMGV6NOSHARE 14
HDRDQX1TMGV6REMBKCOMP 15
HDRDQX1TMGV6SERVTARG 14
HDRDQX1TMGV6TACITENG 15
help 9
horizontal migration 89
host name 99, 104
HTTP server 86
HTTP transport 151
I
IBM 4
IBM HTTP Server Version 6 185
IBM Rational Application Developer 4, 14
IBM Rational Web Developer 4
IDE 72
Import 6465
import 41
incompatibility 20, 30
inconsistency 18
incremental migration 18
InfoCenter example 5
installableApps 139
installation 9697, 106, 111, 220221
silent 106
interface
ServletRequest 24
interoperability 85, 87
ISO-8859-1 26
J
J2C Authentication Alias 217
J2EE 18, 86
J2EE Connector Architecture 34
J2EE Connector Architecture 1.5 34
J2EE Hierarchy 40
J2EE Migration Wizard 43
J2EE Perspective 42
JAAS 36
Java Management Extension 34
Java Message Service 28
Java Server Faces 16
JAXP 1.2 37
JAX-RPC 20, 22
JCA adapter 4748
JDBC 30, 7576, 173, 175, 179, 217
provider 45, 138, 218
JDBC 3.0 30
L
launchpad 97, 100, 111, 185
license 72, 98
Listener port 223
ListenerPort 47
local 186
M
mail
provider 49
session 49
maintenance windows 81
MalformedURLException 120
Mapping
wscp 4.0 to wsadmin 5.0 157
MDB
listener bindings 223
listener port 183, 185
Message Driven Beans 26, 28
messaging provider 58
method
getLocalAddr 24
getLocalName 24
getLocalPort 24
getRemotePort 24
getResource 31
getResourceAsStream 31
getStackTrace 34
sessionDestroyed 24
migratewsgw 145
migrating
workspaces 14
Migrating from Version 4.0 to 5.0
wscp 157
MIME filtering 33
mixed version 85
cell 140, 142143, 146
module visibility 116
multi-broker 146
multiple 117
MyBank 171
MyBankMDB 175, 178
N
nd_content 77
ndprod 73
newpme 74
node 139, 141
node agent 98, 114, 141
node name 99, 104, 137, 139, 141
node scope 56
O
OASIS 145
object
AuthenticationMechanism 29
ConfigurationProperties 29
ConnectionDefinition 29
ContextParam 25
customAuthMechType 29
OutboundResourceAdaptor 29
ParamValue 25
ResourceAdaptor 29
SecurityPermission 29
org.apache.xalan 37
org.apache.xerces 37
P
PARENT_LAST 115
perspective 6
switcher 6
pkover 74
Plants By WebSphere 40
plug-in 7577, 94, 96, 101, 141, 143, 185186
configuration file 101, 111, 187189
PMI Client 34
port 99100, 104, 109
preferences 6465
prependSlashToResource 120
pre-production 84
process definition 151
prodfeats 73
prodoffer 72
production 81
profile 73, 96, 98, 101, 103
creation wizard 99, 102, 210
custom 114
deployment manager 101
Programming Model Extensions 36, 74
project
interchange 15
navigator 63
Index
235
property 65
prependSlashToResource 31
Q
Queue 213, 215
queue connection factories 182
queue connection factory 176, 181
queue destination 176, 181, 183
queue destinations 182
Queue Name 215
R
Redbooks Web site 231
Contact us xii
Remote 186
Remote Agent Controller 9
response file 106, 108
risk 8081
S
SAAJ 20
SAX 2.0 37
SCM 81
SDO 16, 34
security 35, 217
SEI 27
server
group 139
targeting 14, 42
view 48
Server administration
Connect to remote server 159
Create a new application server 158
Remove an application server 159
Start an application server 158
Stop an application server 158
server configuration 8
editor 49
server overview 8
service 105
Service Data Objects 16, 34
service integration 50, 145, 211
bus 95
service-level agreements 84
Services 100
services 100
Servlet 2.3 24
Servlet 2.4 24
shared library 118119, 138
SI Bus 95, 180, 183, 211
destination 183
SIBJMS 152
silos 86, 88
single 117
SOAP 22, 145
SOAP Message Security 145
startManager 112
startNode 113
236
startServer 112
Stateless Session Beans 26
stopManager 113
stopNode 113
stopServer 112
superceding interface
LazyAssociatableConnectionManager 34
superceding method
getBuildDate 34
getBuildLevel 34
getName 34
getStackTraceAsString 35
getVersion 34
getWasLocation 33
getWASProductInfo 33
getWASProductInfoInstances 33
isThisProductInstalled 33
showPoolContents 34
whoAllPoolContents 34
superceding package
com.ibm.websphere.product.WASDirectory 33
com.ibm.websphere.security.auth.WSSubject 36
javax.servlet.filter 33
superceding type
getCallerSubject 36
getRunAsSubject 36
synchronize 63
System Integration Bus 95, 152
T
tag library 25
test environment 48, 60
testing
performance 81, 83
system 8283
Tivoli Access Manager 77
Tivoli Directory Server 77
transaction isolation level 119
transaction log 150
TRANSACTION_READ_COMMITTED 119
TRANSACTION_REPEATABLE_READ 119
U
UDDI 146
UDDI Registry 32
UDDI Utility 32
UDDI Version 2 146
UDDI Version 3 146
UDDI4J 32
unified connection factory 95
V
V5 default messaging 109
v6opmodel 73
validator 25
validators 43
visibility 116
Visual Java GUI 4
W
WAR 117
WASPostUpgrade 121, 124, 136137, 173, 178
compatibility 151
WASPreUpgrade 121122, 136137, 172173, 177
wasprofile 105
WDO 16
web container 120
web module 117
web server 94, 100101, 141, 143, 186
configuration 188
web services 22
secure 24
Security Draft 13 33
Web Services Gateway 144
WebSphere Bindings 48
WebSphere MQ 5.3 144
WebSphere Studio Application Developer Version 5 4
WebSphere Studio Site Developer 4
WebSphere test server 5
workload
balancing 73
management 87
workspace 15, 41, 64
wsadmin 144, 150
AdminConfig 150151
HTTPTransport 151
processDef 151
processDefs 151
recoveryLogs 150
securityoff 165
securityon 165
ServerEntry 150
TransactionService 150
wscp
ApplicationServer 158159
DrAdmin 164
EnterpriseApp 161
help 162
JDBCDriver 165
Node 167
SecurityConfig 165
ServerGroup 162
set 159
wscp.hostname 159
wsinstance 101
WS-Security 145
service-endpoint-interface 27
service-impl-bean 27
service-qname 23
service-ref 23
soap-header 23
subscriptionDurablity 28
web-app 23
webservice-description 24
wsdl-port 23
XSLT 37
X
Xerces 37
XML element
acknowledgeMode 28
activation-config 28
component-scoped-refs 23
destinationType 28
jaxrpc-mapping-file 24
localpart 23
messageSelector 28
namespaceURI 23
Index
237
238
(0.2spine)
0.17<->0.473
90<->249 pages
Back cover
WebSphere Application
Server V6 Migration Guide
Application developer
migration tasks
System administrator
migration tasks
Migration examples
This IBM Redbook has been written to assist you in the migration of
your WebSphere Application Server installation. The end-to-end
migration path includes the migration of the development environment,
the test/integration environment, and the production environment
using software engineering methodologies. This guide presents the
best practices in migration strategy and planning, migration tools, and
practical migration examples.
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed
by the IBM International
Technical Support
Organization. Experts from
IBM, Customers and Partners
from around the world create
timely technical information
based on realistic scenarios.
Specific recommendations
are provided to help you
implement IT solutions more
effectively in your
environment.
ISBN 0738492450