100% found this document useful (1 vote)
442 views222 pages

WebSphere Application Server Versions Whats Different

Uploaded by

Diego Ahumada
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
442 views222 pages

WebSphere Application Server Versions Whats Different

Uploaded by

Diego Ahumada
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 222

WebSphere Application Server Versions:

What’s Different?

For V9.0 and earlier

© 2015 IBM Corporation

Revision Date 06/2016


Agenda

 v7.0, v8.0, v8.5, and v9 Feature Highlights


 High level view of Migration changes
 Changes per version
– Changes in v9.0
– Changes in v8.5
– Changes in v8.0
– Changes in v7.0
– Changes in v6.1
– Changes in v6.0

Revision Date 06/2016


IBM WebSphere Application Server Version 7.0

Simplification for Developers Intelligent Management


 New and enhanced Standards:  New Flexible Management:
JDK 6.0, Java EE 5 certification, Job Manager, Administrative Agent
EJB3, Web Services, SIP, Portlet  New WebSphere Business Level
 Web 2.0 Feature Pack Applications (BLAs)
 New Rational Application Developer Support  New Centralized Installation Manager

High Performance Foundation for SOA Innovation that Matters


 Multi-Cell Support Feature Pack for Web 2.0
 Application investment protection Feature Pack for SCA
Feature Pack for Communications Enabled
 Performance leadership
Applications
 New Runtime Provisioning Feature Pack for XML
 New and Enhanced Security Features Feature Pack for OSGI and JPA
 New Consolidated WebSphere and Feature Pack for Dynamic Scripting
DataPower administration Feature pack for Modern Batch

3
3
Revision Date 06/2016
WebSphere Application Server v8.0

Speed Delivery of Operational Efficiency


Security & Control
Applications & Services & Reliability

 Open Source to Enterprise  High Performance  Administrative


 Free WAS for Developers Productivity
 Self Service Development  Transactional Strength
Environments  OSGi Application Agility
 Scalability & HA
 Faster Edit-Compile-Debug
 Security
 Programming Models  Install & Maintenance
– Java EE 6  Migration
– Web 2.0 & Mobile  Problem Determination
– OSGi Applications
– SCA  Platform & Environment
– Java Batch Flexibility
– XML
– SIP & CEA  Flexible Pricing Models
– Dynamic Scripting
 Integrated Tooling  Feature Packs
 Application Adapters 4

Revision Date 06/2016


WAS V8.5 Delivers
Unparalleled Application Development and Management Environment,
Rich User Experiences…Faster

Developer Experience Application Resiliency Operations and Control

Fast, flexible, Intelligent Improved


and simplified Management Operations,
application & Enhanced Security, Control
development Resiliency & Integration

 Liberty Profile  Application Edition  Selectable JDK


Management  WebSphere Batch
 Expanded Tooling and WAS
Tooling Bundles  Application Server Health enhancements
Management  Admin Security Audit
 OSGI programming model
enhancements  Dynamic Clustering  OSGi Blueprint security
 EJB support in OSGi apps  New Intelligent Routing improvements
capabilities  Cross Component Trace
 JDK7 Support
 Migration toolkit  Messaging infrastructure (XCT)
resiliency  Enhanced IBM Support
 Web 2.0 & Mobile Toolkit; IBM  Memory leak detection & Assistant
Worklight Integration
protection in WAS  Better log and trace filtering
 SCA OASIS programming
model

Revision Date 06/2016


WAS v8.5.5 Delivers
Fit for Purpose Servers enabling unmatched combination of Application Server runtime
and development experience, from the highly resilient to the lightweight and nimble

Developer Experience Application Resiliency Operational Excellence


Fast, flexible, and simplified Intelligent Management and Improved Operations,
application development Enhanced Resiliency Security, Control &
Integration
 New lightweight WebSphere  WAS ND and WAS z/OS full  Liberty profile
Application Server Liberty Core profile enhancements in v8.5 **  Security enhancements
edition  App Edition Mgmt  Problem determination
 Liberty Profile  App Server Health Mgmt  Monitoring
 Dynamic Clustering
 Java EE 6 Web Profile  Intelligent Routing  Service Mapping
 EJB Lite, CDI, Managed Beans  Messaging resiliency
 Web Services  Enterprise Java Batch  SIP improvements
 JMS, MDB  Memory leak protection
 NoSQL DB (MongoDB Client)  Improved Load Balancer for
 Support for WebSphere Web  Liberty Profile collective IPV4 and IPV6
Cache (DynaCache) administration
 Add custom and third party  Liberty profile packaging and
Liberty features  Liberty Profile clustering install enhancements
 Asynchronous work management
 Enhanced developer tools  Intelligent management in  WebSphere Extreme Scale
WebSphere web server integration
 Supported WAS and WDT on
developer desktops
 Performance enhancements
6

Revision Date 06/2016


**Available since WAS 8.5
New June
WebSphere Application Server 2016

The cornerstone of your cloud strategy


$325K
annual
30%+ 122% infrastructure Industry Leading 30% Intelligent
TCO ROI savings Security better performance Management
WAS on Cloud Liberty by year 3 - Open ID Connect with Java 8 45% less hardware 45% less software
Bluemix vs On- vs Open Source vs. Open Source - Secure Engineering 60% admin savings 90% fewer outages
premises Accreditation O-TTPS

CREATE CONNECT OPTIMIZE

Developer focused to Easy cloud connections for new & Smart management of
speed delivery pipeline existing apps the mission critical

• Lightweight composable runtime - • Create, expose and connect APIs • Leading edge cloud & mobile
perfect for microservices • Re-use existing apps and connect security
• Full integration with any DevOps to “on or off” premises • Enterprise Management of Java &
toolchain for continuous delivery • Deploy anywhere - on premises, Node.js
• Java EE7 market leadership and in cloud or hybrid • High availability: auto-scaling,
support for Open Source dynamic routing, health
management, diagnostics

Revision Date 06/2016


New June
WAS V9: 2Q16 Key Announcements 2016

Create WAS V9 delivers robust & modern developer environment for speed &
new cloud enterprise scalability
apps • Cloud-First Java app platform - Speed development with composable runtime
and microservices architecture;
• Full Java EE7 certification for both WAS Traditional and Liberty Profiles;
• Leverage Spring and Spring Boot frameworks within applications;
• Quick start cloud native Java apps with Liberty app accelerator and Game-On
exemplar – seamless deploy to IBM Bluemix
• Leverage end-to-end DevOps Toolchain and Garage Method (best practices)
• Portability of apps with Docker support; Deploy to IBM Container Service, Docker
Data Center, and other container services
• Seamlessly manage Java and Node.js apps and APIs through common
management interface

Revision Date 06/2016


New June
WAS V9: 2Q16 Key Announcements (cont.) 2016

Optimize Move apps anywhere, in any way, to increase speed and optimize costs
costs for • Create a borderless environment with easy app portability regardless of architectural
app infra environment (Cloud container services, Docker, VMWare)
• Exploit WAS ND intelligent management for workload optimization and placement
• Move apps to the IBM public cloud with choice of pre-configured environ, flexible PayGo
pricing models
• WAS Liberty app deployment to OpenShift and Pivotal Cloud Foundry running in IBM
SoftLayer, Amazon AWS, Microsoft Azure, and IBM Bluemix
• WAS on Bluemix- Single Tenant : New option to deploy on Cloud
• Ease of use enhancements for caching to optimize user experience

Revision Date 06/2016


New June
WAS V9: 2Q16 Key Announcements (cont.) 2016

Connect Connect to cloud services to integrate new capabilities, improve time to mkt
existing & lower costs
apps & • Seamlessly connect on-premises apps to cloud services like Watson, Cloudant, dashDB.
data API Connect , Log Analytics (beta) - take advantage of latest technologies and extend the
value of existing Java apps
• Optimize use of APIs for exposing and better monetizing traditional apps
• Leverage PayGo models and eliminate risk and complexity of managing these new services
• Leverage “API Connect Essentials” now included in WAS editions

10

Revision Date 06/2016


Agenda

 v7.0, v8.0, v8.5, and v9 Feature Highlights


 High level view of Migration changes
 Changes per version
– Changes in v9.0
– Changes in v8.5
– Changes in v8.0
– Changes in v7.0
– Changes in v6.1
– Changes in v6.0

Revision Date 06/2016


Updated
Migration impacts (worst case scenario) June
2016

Potential Impact areas v6.0 v6.1 v7.0 v8.0 v8.5 V9.0


Java Runtime n/a 6 2 n/a 0/20/19 19

JEE - JSP 8 n/a 1 1 0 0

JEE - Servlet 5 n/a 0 2 0 9

JEE - Other 3 n/a 5 7 1 50

WAS Specific 1 6 0 4 0 3

3rd party packages 2 0 1 0 0 3

Development total 19 12 9 13 0/20/19 64

Administrative script 4 3 2 0 0 1

WAS directory structure 1 1 0 0 0 1

Other administrative 5 2 6 7 0 1

Total administrative 10 6 8 7 0 3

Total potential impact areas 29 18 17 20 0/20/19 67


Note: V8.5 supports Java 6, 7 and 8. Java7 and Java 8 introduces a number of behavior changes. “0” represents Java612
and “20” is for Java7. Not all breaking changes will impact all applications
Revision Date 06/2016
JEE specification change analysis (1 of 3) Updated
June
traditional WebSphere
2016

v6.0 v6.1 v7.0 v8.0 v8.5 V9.0


Java Runtime 1.4.2 1.5 1.6 1.6 1.6 1.7 1.8 1.8
WebApps
Servlet 2.4 2.4 2.5 3.0 3.1
JSF 1.0 1.1 1.2 2.0 2.2
JSP 2.0 2.0 2.1 2.2 2.3
EL 3.0
Portlet 1.0 2.0 2.0 2.0
SIP 1.1(FeP) 1.1 1.1 1.1
Enterprise Apps
Bean validation 1.0 1.1
CDI 1.0 1.2
EJB 2.1 2.1/3.0(FeP) 3.0 3.1 3.2
JDBC 3.0 3.0 4.0 4.0 4.1
JMS 1.1 1.1 1.1 1.1 2.0
JPA 1.0(FeP) 2.0(FeP) 2.0 2.1
WebSocket 1.1
Java Web Start 1.4.2 1.4.2 1.4.2 1.4.2 1.6 13

Revision Date 06/2016 Red indicates significant, Yellow indicate some breakage, Gray indicates deprecation.
JEE specification change analysis (2 of 3) Updated
June
traditional WebSphere
2016
v6.0 v6.1 v7.0 v8.0/v8.5 V9.0
Web Services
JAXB 2.0 2.1 2.2 2.2
JAXP 1.2 1.3 1.4 1.4 1.4
JAXR 1.0 1.0 1.0 1.0 1.0
JAX-RPC 1.1 1.1 1.1 1.1 1.1
JAX-RS 1.1 2.0
JAX-WS 2.0 2.1 2.2 2.2
RAMP 1.0 1.0 1.0 1.0
SOAP 1.1 1.2 1.2 1.2 1.2
SAAJ 1.2 1.3 1.3 1.3 1.3
MTOM n/a 1.0 1.0 1.0 1.0
StAX n/a 1.0 1.0 1.0 1.0
UDDI 3.0 3.0 3.0 3.0 3.0
W3C XML 1.0 1.0 1.0 1.0 1.0
WS-Addressing n/a 1.0 1.0 1.0 1.0
WS-AT 1.0 1.0 1.2 1.2 1.2
WS-BA n/a 1.0 1.2 1.2 1.2
14

WSDL 1.1
Red indicates 1.1indicate some breakage,
significant, Yellow 1.1 1.1
Gray indicates 1.1
deprecation.
Revision Date 06/2016
JEE specification change analysis (3 of 3) Updated
June
traditional WebSphere 2016

v6.0 v6.1 v7.0 v8.0/v8.5 V9.0


Web Services…
WS-I Attachments 1.0 1.0 1.0 1.0 2.0
WS-Notification 1.3 1.3 1.3 1.3
WS-Policy 1.5 1.5 1.5
WS-ReliableMessaging 1.1 1.1 1.1 1.1
WSRF 1.2 1.2 1.2 1.2
XOP 1.0 1.0 1.0 1.0
ServiceComponentArch
SCA* 1.0 1.0 Removed
SDO 2.1.1 2.1.1 2.1.1
Data Access
JCA 1.5 1.5 1.5 1.6 1.7
JMS 1.1 1.1 1.1 1.1 2.0
Mail, URL and Other
JavaMail 1.3 1.3 1.4 1.4 1.5
URL 1.4.2 1.4.2 1.4.2 1.4.2 1.4.2
JAF 1.0.2 1.0.2 1.1 1.1 1.1 15

Revision Date 06/2016


Agenda

 v7.0, v8.0, v8.5, and v9 Feature Highlights


 High level view of Migration changes
 Changes per version
– Changes in v9.0
– Changes in v8.5
– Changes in v8.0
– Changes in v7.0
– Changes in v6.1
– Changes in v6.0

16

Revision Date 06/2016


New

Changes in v9.0 June


2016

 Administration changes
– Default Jython version
– New default coregroup wiring protocol
– New java extensions directory - $WAS_HOME/javaext
– Other miscellaneous changes

 Development changes
– Development tool changes
– Java SE 8 upgrade
– Java EE 7 upgrade
• CDI, JAX-RS, JPA implementation change
– API removals
– API deprecations
17

Revision Date 06/2016


Changes in v8.5

 Administration changes
– Some new required ports
– A number of minor default setting changes
• Information provided in the v8.5 InfoCenter
• http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.nd.do
c/ae/welc_transition.html

 Development changes
– Development tool changes
– Java7 upgrade – Java6 is the default
• Breaking changes: (AWT, Internationalization, IO, JAXP, Language,
Networking, Text and Utilities)

– JPA (2)
• Custom settings are provided to provide compatibility
 Conversion of existing applications to Liberty 18

Revision Date 06/2016


Changes in v8.0

 Administration changes
– Installation changes
– Centralized Install Manager
– Install Factory alternative
– WebServer Plug-in installation and configuration
– Java Garbage collection and dump format changes
– Security default changes
– Other miscellaneous changes

 Development changes
– Development tool changes
– JEE 1.6
– WebSphere API changes
19

Revision Date 06/2016


Changes in v7.0

 Administration changes
– SessionInitiationProtocol(SIP) Migration Considerations
– zOS Migration tool
– Administration script required changes
– Port usage
– Security Migration considerations
– Mixed version considerations

 Development changes
– Development tool change
– JRE 6 impacts
– JEE 5 impacts
– WebSphere removed features
– Increased usage of Open Source implementations included in WAS

20

Revision Date 06/2016


Changes in v6.1

 Administration changes
– Administration script required changes
– zOS Migration tool
– Install response file format changes
– Port usage
– Profile directory structure
– New administrative tool IDE
– Migration and Feature Packs

 Development changes
– Development tool change
– JRE 5 impacts
– WebSphere changes and removed features

21

Revision Date 06/2016


Changes in v6.0

 Administration changes
– Administration script required changes
– Port usage
– Profiles
– JMS engine redesign
– CoreGroup considerations

 Development changes
– Development tool change
– J2EE 1.4 impacts
– WebSphere API migration details

22

Revision Date 06/2016


Enablement: IBM Migration Knowledge collection
 This information and more is available online!

 General planning with detailed notes and


WebSphere AppServer version specific
information

 Updated with timely information

 Google:
“websphere application server migration”

http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg27008724

23

Revision Date 06/2016


Latest Redbook!

 Covers WAS version to


version
 Covers migration from other
Application Servers
– Apache Tomcat
– JBoss
– Oracle AS
– WebLogic

 SG24-8048
– www.redbooks.ibm.com/abstrac
ts/sg248048.html

24

Revision Date 06/2016


25

Revision Date 06/2016


References

26

Revision Date 06/2016


Updated

References - Planning June


2016

 Supported hardware and software information


– http://www-03.ibm.com/software/products/en/appserv-was
– http://publib.boulder.ibm.com/infocenter/prodguid/v1r0/clarity/index.html

 IBM Support Policies


– http://www-1.ibm.com/support/docview.wss?uid=swg21256700
– http://www-01.ibm.com/software/support/lifecycle/lc-policy.html
– http://www-01.ibm.com/common/ssi/cgi-
bin/ssialias?subtype=ca&infotype=an&appname=iSource&supplier=877&letternum=ENUSZP13-0568

 Installation Manager and Managing Repositories


– http://www.ibm.com/developerworks/websphere/library/techarticles/1201_seelemann/1201_seelemann.html
– http://www.ibm.com/support/docview.wss?uid=swg27023967&aid=1
– http://www.ibm.com/developerworks/websphere/techjournal/1301_seelemann/1301_seelemann.html?ca=drs-

 The Ideal WebSphere Development Environment


– http://www.ibm.com/developerworks/websphere/techjournal/0312_beaton/beaton.html

 Web Server plug-in technotes and Merge tool


– http://www-1.ibm.com/support/docview.wss?uid=swg21160581
– http://www-01.ibm.com/support/docview.wss?uid=swg21139573
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=twsv_configsimplelb

27

Revision Date 06/2016


Updated

References - Planning June


2016

 WebSphere supported Specification levels and pointers to JEE


specifications
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-nd-mp&topic=rovr_specs
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rovr_specs_javaee7
 WebSphere AppServer API Deprecations, removals and stabilizations
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rmig_deprecationlist

 Changes in Default behavior


– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rmig_defaultvalue

 WebSphere Application Server V8.5 Concepts, Planning, and Design


Guide
– http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg248022.html?Open

 Migrating WebSphere Compute Grid or Feature Pack for Modern Batch


– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-nd-
zos&topic=container_computegrid_migrating_cg

 Webcast replay: WebSphere Application Server V61 for z/OS Exit Plan
– http://www.ibm.com/support/docview.wss?uid=swg27035994&myns=swgws&mynp=OCSS7K4U&mync=E
28

Revision Date 06/2016


Updated

References - Training June


2016

 WebSphere Training and Technical Enablement


– http://www-01.ibm.com/software/websphere/education/

 IBM Education Assistant


– http://www.ibm.com/software/info/education/assistant/
– https://mediacenter.ibm.com/channel/t/33964822

 What's new in WebSphere Application Server v7.0


– http://www.ibm.com/developerworks/websphere/library/techarticles/0809_alcott/0809_alcott.html

 What’s new in WebSphere Application Server v8.0


– http://www.ibm.com/developerworks/websphere/techjournal/1106_alcott/1106_alcott.html

 What's new in WebSphere Application Server V8.5


– http://www.ibm.com/developerworks/websphere/techjournal/1206_alcott/1206_alcott.html

 WebSphere Application Server V8.5.5 Technical Overview


– http://www.redbooks.ibm.com/redpapers/pdfs/redp4855.pdf

 WebSphere Application Server: New Features in V8.5.5


– http://www.redbooks.ibm.com/redpapers/abstracts/redp4870.html?Open

 WebSphere Application Server V9 Update


– https://mediacenter.ibm.com/media/WebSphere+Application+Server+V9+technical+update/0_ttxciunh/33964822
29

Revision Date 06/2016


Updated

References - Training June


2016

 Properties based configuration


– http://www.ibm.com/developerworks/websphere/techjournal/0904_chang/0904_chang.html
– http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp?topic=/com.ibm.websphere.base.doc/ae/rxml_7propba
sedconfig.html
– http://www.ibm.com/support/docview.wss?uid=swg27039420

 System administration in WebSphere Application Server V8.5, Part 1:


An overview of new administrative features and enhancements
– http://www.ibm.com/developerworks/websphere/techjournal/1206_cheng/1206_cheng.html

 System administration in WebSphere Application Server V8.5, Part 2:


Using the Centralized Installation Manager
– http://www.ibm.com/developerworks/websphere/techjournal/1206_wong/1206_wong.html

 System administration in WebSphere Application Server V8.5, Part 3:


High Performance Extensible Logging (HPEL)
– http://www.ibm.com/developerworks/websphere/techjournal/1208_bourne/1208_bourne.html

 System administration in WebSphere Application Server V8.5, Part 4:


Using pluggable SDK 7
– http://www.ibm.com/developerworks/websphere/techjournal/1209_hall/1209_hall.html
30

Revision Date 06/2016


Updated

References - Configuration Migration June


2016

 IBM Techdocs Whitepapers on WAS Migration case studies, including


other IBM products
– http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101455

 Migrating to Version 7.0 - zOS


– http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101329

 WAS z/OS Migration Performance Study


– http://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101589

 Case study: Tuning WebSphere Application Server V7 for performance


– http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html

 WebSphere Application Server V7 Migration Guide


– http://www.redbooks.ibm.com/redpieces/abstracts/redp4635.html

 Changing host names and migrating profiles


– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=tagt_hostname
– http://www.ibm.com/developerworks/websphere/techjournal/0905_webcon/0905_webcon.html

31

Revision Date 06/2016


References - Configuration Migration
 IBM Techdocs Whitepapers on WAS Migration case studies, including other IBM products
– http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101455

 Migrating to Version 7.0 - zOS


– http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101329

 WAS z/OS Migration Performance Study


– http://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101589

 Case study: Tuning WebSphere Application Server V7 and V8 for performance


– http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html

 WebSphere Application Server V7 Migration Guide


– http://www.redbooks.ibm.com/redpieces/abstracts/redp4635.html

 WebSphere Application Server V8.5 Migration Guide


– http://www.redbooks.ibm.com/abstracts/sg248048.html

 Changing host names and moving profiles


– http://www.ibm.com/developerworks/websphere/techjournal/0905_webcon/0905_webcon.html

 Migrating cell configurations to new host machines


– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-nd-
dist&topic=tmig_migrate_remote_commandline

 Migration – Application Installation problems


– http://www-01.ibm.com/support/docview.wss?uid=swg27008724&aid=13

32

Revision Date 06/2016


Updated

References - Development June


2016

 Rational Application Developer Performance Tips


– http://www.redbooks.ibm.com/abstracts/sg246449.html

 WDT and WAS Application Server for Development


– http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/

 JDK Compatibility
– http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
– http://www.oracle.com/technetwork/java/javase/compatibility-417013.html
– http://www.oracle.com/technetwork/java/javase/compatibility-137541.html

 J2EE class loading


– http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer.html

 Migration from Apache SOAP to WebServices


– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-base-
dist&topic=rwbs_migrate
 JavaServer Pages specific Web container custom properties
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rweb_jsp_custom_props

 JMS Listener to Message Driven Bean migration


– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=tmj_adm32_

33

Revision Date 06/2016


Updated

References - Development June


2016

 JDK 5/6/7 Tuning


– http://www.ibm.com/support/docview.wss?uid=swg27013824
 Using Spring and Hibernate with WebSphere Application Server
– http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.html
 WebSphere Application Server Migration Toolkit
– http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/index.html
– https://developer.ibm.com/wasdev/docs/migration/
– https://developer.ibm.com/wasdev/docs/migration-toolkit-application-binaries/
– https://developer.ibm.com/wasdev/downloads/#asset/tools-
WebSphere_Application_Server_Migration_Toolkit
– https://developer.ibm.com/wasdev/downloads/#asset/tools-
Migration_Toolkit_for_Application_Binaries
 Using other WebService engines in WAS
– http://www.ibm.com/developerworks/websphere/library/techarticles/1001_thaker/1001_thaker.ht
ml
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=twbs_thirdparty

34

Revision Date 06/2016


Updated

References - Development June


2016

 JSF Migration
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=cweb_jsfmigrate

 WebSphere Application Server V8.5 Migration Guide


– http://www.redbooks.ibm.com/redpieces/abstracts/sg248048.html
 Resolving Open Source issues
– http://www-01.ibm.com/support/docview.wss?uid=swg21639407

35

Revision Date 06/2016


References - Operations
 UrbanCode Deploy
– https://developer.ibm.com/urbancode/products/urbancode-deploy/
– https://developer.ibm.com/urbancode/plugin/websphere-application-server-configure/
 Introducing the Visual Configuration Explorer
– http://www.ibm.com/developerworks/websphere/techjournal/0710_supauth/0710_supauth.html
– http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1139
 IBM Support Assistant
– https://www-01.ibm.com/software/support/isa/
 Best Practices for Configuring and Managing Large WebSphere Topologies
– http://www.ibm.com/developerworks/websphere/library/techarticles/0710_largetopologies/0710
_largetopologies.html
 wsadmin Primer
– http://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101014

 IBM SDK, Java Technology Edition


– http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/welcome/welcome_javasdk_versio
n.html
– http://www.ibm.com/support/knowledgecenter/SSYKE2_7.1.0/welcome/welcome_javasdk_versio
n.html
 JACL to Jython conversion assistant
– http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg24012144

36

Revision Date 06/2016


v9.0 Changes

37

Revision Date 06/2016


New

Default/Behavior changes June


2016

Default value and behavior changes from previous releases of


WebSphere Application Server traditional
 High availability and workload management
– IBM_CS_OOM_ACTION
– IBM_CLUSTER_REUSE_ORIGINAL_IOR
– Proxy server setting
– V9.0 coregroup member default protocol has changed
• coregroup property: IBM_CS_WIRE_FORMAT_VERSION = 6.1.0
• coregroup property: IBM_CS_HAM_PROTOCOL_VERSION = 6.0.2.31
• Older releases also support this newer protocol
• All servers in cell must be running the same protocol

 Resources
– JPA data source error handling

38

Revision Date 06/2016


New

Default/Behavior changes June


2016

Default value and behavior changes from previous releases of


WebSphere Application Server traditional
 Web server plugin
– esiEnable
– KillWebServerUponParseErr
– StrictSecurity

 Security
– sslProtocol
– com.ibm.websp

 Servlet custom properties


– com.ibm.ws.webcontainer.RedirectWithPathInfo is ignored by the Servlet 3.1. To use this
property and to revert to some changes to the Servlet 3.0 behavior, use the
com.ibm.ws.webcontainer.servlet30compatibility property.

39

Revision Date 06/2016


New

Java changes June


2016

 New java extension directory - $WAS_HOME/javaext


– Independent of java directory
– Contains iwsorbutil.jar

40

Revision Date 06/2016


New

Jython June
2016

 Wsadmin commands default to jython 2.7


– Enable old behavior with
• command line  -usejython21 true
• wsadmin.properties  com.ibm.ws.scripting.usejython21=true

– For details on syntax and behavioral changes see this link:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rxml_jython27

41

Revision Date 06/2016


New

Port usage June


2016

 v9 uses the same ports as V8.5.5


– For complete port information, see
• Network deployment:
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rmig_portnumber
• Base: http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-
base-dist&topic=rmig_portnumber

Server Type v5.x v6.0 v6.1 v7.0 v8.0 v8.5 V9.0


Application
21 21 21 21
(base)
Application
16 17 18 21 21 23 23
(ND standalone)
Application
16 16 18 18
(ND federated)
DMgr 11 17 17 11 11 16 16
Node Agent 11 17 17 11 11 14 14 42

Revision Date 06/2016


New

Port usage summary June


2016

 Endpoint changes since V7.0


(including default port assignments by server type):
– V7.0 to V8.0  No changes.

– V8 to V8.5.5  See table:


Server Type  Deployment Node Application Job
Manager Agent Server Manager


EndPoint Name
XDAGENT_PORT 7060 7061 -- --
STATUS_LISTENER
_ADDRESS 9420 -- -- 9425
OVERLAY_UDP
_LISTENER_ADDRESS 11005 11001 11003 --
OVERLAY_TCP
_LISTENER_ADDRESS 11006 11002 11004 --

– V8.5.5 to V9.0  No changes.

43

Revision Date 06/2016


Development considerations

44

Revision Date 06/2016


New
WAS Developer Tools for Eclipse (WDT) & RAD June
2016

The latest WDT available on Eclipse Marketplace supports


traditional WebSphere V9.
The following enhancements are in WDT:
 New support in WDT for Docker, API discovery, Java EE 7
 The new Batch programming model is supported in WDT. The
WebSphere Batch programming model has RAD-only support.
 SIP 1.1 is supported in WDT & Liberty. SIP 1.0 has RAD-only support.
 RAD added support for Mac.
 RAD no longer supports WebSphere V6.1

45

Revision Date 06/2016


Java SE 8

46

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 The Compatibility Guide for JDK 8 provides details of the changes in Java
– http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html

 Changes are organized in terms of


• Binary Compatibility
• Source Compatibility
• Behavioral Compatibility
• Java Class Files
• Incompatibilities between Java SE 8 and Java SE 7
• Incompatibilities between JDK 8 and JDK 7
• Features Removed from Java SE 8
• Features Removed from JDK 8
• Deprecated APIs

 Possible application impacts are listed on the following pages with meaning
that a corresponding rule has been added to the migration toolkit.
47

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 AWT
– Behavior change in exceptions when setting AWT focus traversal keys
• In Java 8, the java.awt.Component.setFocusTraversalKeys() and the
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys() methods throw ClassCastException
instead of IllegalArgumentException if any passed keystroke object is not an AWTKeyStroke object.

 Internationalization
– The mechanism to select a locale service provider changed
• Java 8, the mechanism to select a locale service provider changed. A new method in the
LocaleServiceProvider class allows implementations to determine whether the given locale is supported.

– Behavior change in month name formatting for some languages


• In Java 8, when formatting date-time values using the DateFormat or SimpleDateFormat classes, context-
sensitive month names are supported for languages that have different date formatting and standalone
forms of month names. You might see a difference in the month name returned in strings formatted by the
DateFormat or SimpleDateFormat classes or by methods on the DateFormatSymbols class.

 JAXP
– Differences in class loading for JAXP service providers
• Java 8 includes Java API for XML Processing (JAXP) 1.6, which handles class loading for service
providers differently than previous versions.
48

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 Language
– java.lang.Thread.stop(java.lang.Throwable) is disabled
• In Java 8, the java.lang.Thread.stop(java.lang.Throwable) method is disabled. It was previously
deprecated.

– The TypeVisitor interface has been updated


• Java 8 added a new method to the javax.lang.model.type.TypeVisitor interface which will affect classes
that implement TypeVisitor. A new IntersectionType is being introduced. A new TypeKind.Intersection
enum constant was also added.

– Behavior change in the construction of dynamic proxy classes


• In Java 8, calling java.lang.reflect.Proxy(InvocationHandler) with a null parameter throws a
NullPointerException. Prior to Java 8, the constructor returns a proxy, but then any method call to that
proxy would throw a NullPointerException.

– Behavior change in new instance creation for non-public interfaces


• In Java 8, a code change is required to create a proxy instance for non-public interfaces located in a
different package using the Proxy.getProxyClass and Constructor.newInstance methods.

49

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 Management
– MBean and MXBean interfaces must be public
• Java 8 enforces the requirement that MBean and MXBean management interfaces be public. The
specification states that management functionality cannot be exposed with non-public interfaces, but this
requirement was not enforced in Java 7 and prior versions.

 Math
– Behavior change in the BigDecimal stripTrailingZeros method for a zero value
• Java 8 introduces a behavior change on the java.math.BigDecimal stripTrailingZeros method when it
operates on a zero value with a nonzero scale. In prior versions, no zeros were stripped in this case.

50

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 Network
– DatagramPacket constructor with SocketAddress no longer throws SocketException
• In Java 8, java.net.DatagramPacket constructors that accept a java.net.SocketAddress argument were
changed to remove the SocketException declaration. This can cause a compilation error if the
constructors are within a try block that catches either a java.net.SocketException or its superclass
java.io.IOException.

– Changes in WWW-Authenticate Response Header


• In previous Java releases, the HttpURLConnection Digest Authentication implementation incorrectly
quoted some values in the WWW-Authenticate Response Header. Those values are no longer quoted in
Java 8.

– Default socket permissions have changed


• In previous Java releases, all code was able to bind any socket type to any port number greater than or
equal to 1024. It is still possible to bind sockets to the ephemeral port range which varies on each system.
The new behavior change is that binding sockets outside of the ephemeral range requires an explicit
security permission.

– Removal of ftp from the list of required protocol handlers


• The ftp protocol was deleted from the list of protocol handlers that are guaranteed to be present in Java
SE. The protocol handler was not actually removed, but it is not required to be provided.

51

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 Security
– Certificates are blocked if they contain RSA keys of less than 1024 bits in length.
• In Java 8 with this new key size restriction, programs using X.509 certificates based on RSA keys less than 1024 bits will
encounter compatibility issues with certification path building and validation. This key size restriction also impacts JDK
components that validate X.509 certificates such as signed JAR verification, SSL/TLS transportation, and HTTPS connections.

 Text
– Behavior change in rounding in the NumberFormat and DecimalFormat format methods
• In Java 8, the rounding behavior of the NumberFormat and DecimalFormat format methods changed to match the rounding of
the binary representation of the number.

 Utilities

– New methods in java.util.concurrent.ConcurrentHashMap


• In Java 8, the ConcurrentHashMap class introduced over 30 new methods. If you extend the
java.util.concurrent.ConcurrentHashMap class, your class might need changes.

– Behavior change in most Collection.removeAll and Collection.retainAll implementations


• Prior to Java 8, most implementations of Collection.removeAll(Collection) and retainAll(Collection) returned false and ignored a
null parameter if the collection itself was empty. In Java 8, collections throw a NullPointerException when a null parameter is
provided.

52

Revision Date 06/2016


New

Moving to Java SE 8 June


2016

 com.sun
– A number of com.sun packages were added to the list of restricted packages in JDK 8. com.sun
packages are not intended for application use.

• com.sun.media.sound
• com.sun.corba.se
• com.sun.mirror
• com.sun.security.auth.callback.DialogCallbackHandler

53

Revision Date 06/2016


Java EE 7 behavior changes

54

Revision Date 06/2016


New

CDI 1.2 behavior differences June


2016

 Java EE 6 CDI 1.0 was based on Web Beans 1.0 spec (JSR 299)
 Java EE 7 CDI 1.2 is based on the Weld implementation
 See Contexts and Dependency Injection 1.2 behavior changes
 Most of the differences are captured by the Migration Toolkit and the Binary
scanner.
 Using Liberty, you can continue to use CDI 1.0 with the Java EE 6 platform.
 Using traditional WebSphere V9, you must upgrade.

55

Revision Date 06/2016


New

CDI 1.2 behavior changes June


2016

 An interceptor for lifecycle callbacks may only declare interceptor binding types
that are defined as @Target(TYPE)
 CDI recognizes implicit bean archives
 CDI scans for implicit beans when there is no beans.xml file
 Check for a behavior change in the InjectionPoint getAnnotated method
 Check for a valid schema in beans.xml
 Check for the enablement of interceptors, decorators and alternatives in other
JAR files
 Classes that use both the Specializes and Alternative annotations are not
injected into other modules
 Do not use the OpenWebBeans schema for beans.xml
 Producer fields on session beans must be static
 The openwebbeans.properties file is not used
56

 Transient fields in session-scoped beans cannot fail over successfully


Revision Date 06/2016
New

EL 3.0 behavior differences June


2016

Expression Language 3.0 has one change that might cause applications to break
 Behavior change in coerceToType method with null parameter

57

Revision Date 06/2016


New

JAX-RS 2.0 behavior changes June


2016

 Java EE 6 JAX-RS 1.1 was based on Apache Wink (JSR 311)


 Java EE 7 JAX-RS 2.0 is based on the CXF implementation
 See JAX-RS 2.0 behavior changes
 Most of the differences are captured by the Migration Toolkit and the Binary
scanner.
 Using Liberty and traditional WebSphere V9, you can continue to use JAX-RS
1.1 with the rest of the Java EE 7 platform.

58

Revision Date 06/2016


New

JAX-RS 2.0 behavior changes June


2016

 @Local JAX-RS interfaces must be implemented


 Configuration is required to use SSL in JAX-RS 2.0
 org.codehaus.jackson packages are not available
 Packaging Apache Wink APIs with your application might require application
changes
 The Apache Wink APIs are not available
 The Apache Wink Client APIs are not available
 The com.ibm.websphere.jaxrs.server.IBMRestFilter class is no longer
supported
 The org.apache.wink.client.handlers.LtpaAuthSecurityHandler class is no
longer supported
 The org.apache.wink.common.model.atom package is not available
 The org.apache.wink.common.model.multipart package is not available
59

 Use the isReadable and isWriteable methods to check the media type
Revision Date 06/2016
New

JMS Client 2.0 behavior differences June


2016

 Check for a behavior change on message priority and the NoLocal attribute
 Check for a behavior change on setClientID and createDurableSubscriber
methods

60

Revision Date 06/2016


New

Servlet 3.1 behavior changes June


2016

 Check for a behavior change in the processing of the absolute-ordering


element
 Check for a behavior change on asynchronous servlets
 Check for a behavior change on the getServerInfo method
 Check for a behavior change on the sendRedirect method
 Check for a behavior change on the ServletContextListener interface
 Check for a behavior change on the setComment method
 Check for a behavior change regarding duplicate elements in web descriptors
 Check for a behavior change with resource reference injection target merging
 Check for a behavior change with URL pattern mapping

61

Revision Date 06/2016


New

JPA 2.1 behavior changes June


2016

 Java EE 6 JPA 2.0 is based on OpenJPA


 Java EE 7 JPA 2.1 is based on EclipseLink
 See Java Persistence API 2.1 behavior changes
 Many differences are captured by the Eclipse-based Migration Toolkit which
also provides some quick fixes. The focus of the migration toolkit is on JPA
annotation code style rather than the ORM files.
 The Binary scanner detects enhanced JPA classes and some of the
persistence.xml issues. Use the source scanner if you plan on moving to JPA
2.1.
 For Liberty and traditional WebSphere V9, you can continue to use JPA 2.0
with the rest of the Java EE 7 platform. This is recommended if you use
OpenJPA functionality.

62

Revision Date 06/2016


New

JPA 2.1 behavior differences June


2016

 All entities must have a primary key


 Annotated getter methods must have a setter method
 Attributes with automatically generated values require configuration
 Disable the persistence unit second-level cache
 Do not use OpenJPA providers in the persistence.xml file
 ElementCollection annotations must be accompanied by a defined Column
annotation
 Embeddable classes cannot have an Id annotation when referenced by an
EmbeddedId annotation
 Embedded classes must be annotated as embeddable
 Entity objects with constructors must also have a default constructor
 java.util.Locale attributes must be converted

63

Revision Date 06/2016


New

JPA 2.1 behavior differences June


2016

 JoinColumn annotations must be used with relationship mappings


 Mapping files are not processed during OpenJPA to EclipseLink migration
 OpenJPA and WebSphere JPA configuration properties must be migrated
 OrderColumn annotations are not supported on Set attributes
 org.apache.openjpa packages are not available
 Private accessor methods must have a Transient annotation
 Remove the Temporal annotation for some java.sql attributes
 Replace OpenJPA @PersistentCollection annotation with @ElementCollection
and @Column
 Replace the Temporal annotation with a Converter annotation for some
java.sql attributes
 The openjpa.jdbc.Schema configuration property must be migrated to the
mapping file
64

Revision Date 06/2016


New

JPA 2.1 behavior differences June


2016

 The openjpa.LockManager configuration property must be migrated


 Unannotated collection attributes require a Transient annotation
 Unannotated entity attributes require a Transient annotation
 Validate IN expression syntax with a collection-valued input parameter

65

Revision Date 06/2016


New

V9 API Removals June


2016

 Apache HTTP client API was removed


– Can no longer be access by application code
– Package it with your application if needed
 Service Component Architecture (SCA)
 Communications Enabled Applications (CEA) REST interface provided
by system application commsvc.ear was removed
 Common Event Infrastructure (CEI) API was removed
 The JSF SunRI engine was removed
– Package it with your application if needed

66

Revision Date 06/2016


New

V9 API Deprecations June


2016

 CommonJ Timer and Work Manager APIs


– Use Java EE 7 Concurrency Utilities instead
– See Examples to migrate to EE Concurrency from Asynchronous beans
and CommonJ
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=co
rd&product=was-nd-mp&topic=rasb_migrate_to_eeconcurrency
 Optional Java EE 7 technologies:
– Asynchronous Beans
– Enterprise JavaBeans (EJB) entity beans
– Java API for XML-based RPC (JAX-RPC)
– Java API for XML Registries (JAXR)
– Java EE Application Deployment

67

Revision Date 06/2016


Converting to Liberty

68

Revision Date 06/2016


New

Eliminate Future Migration Costs June


2016

New Liberty features, and config, augment rather than replace old ones
Zero migration for unchanged apps on WAS Liberty, regardless of Java EE version

unzip wlp-javaee7-8.5.5.9.zip
old
8.5.5.9 Your configuration,
app
servlet-3.0
WLP_USER_DIR applications, Server 1
resources
9.0.0.0
16.0.0.2 new
app
unzip wlp-javaee7-8.next.zip servlet-3.1

Server 2
WebSphere
Point to your existing JRE Liberty 16.0.0.2

Within supported software levels. Java 6 will soon be out of service.


Each features has a minimum level of Java

69

Revision Date 06/2016


What’s With the 16.0.0.2? New
June
2016
Liberty Continuous Delivery

WAS V9 introduces a new 9.0.0.0 service stream for traditional WAS fixpacks.
WAS Liberty follows a continuous delivery model with a single service stream – it makes no sense to
persist with a major version for Liberty fixpacks in a ‘versionless’ single delivery stream.
To properly reflect this we are changing Liberty fixpack numbering to:
Y.R.M.F: year.release.modlevel.fixpack
eg 16.0.0.4 would be the fourth fix pack in 2016

The next fixpack after 8.5.5.9 is the second fixpack of 2016 and is numbered 16.0.0.2.
Its just a number - there is no migration required at all to the first V9 release of Liberty: 16.0.0.2.

70

Revision Date 06/2016


Moving traditional WebSphere Configuration New
June

to Liberty 2016

 WebSphere Configuration Migration Tool (WCMT)


– Moves resource configuration from traditional WebSphere to Liberty
– Uses property file based configuration
– Migrates configuration from V7.0+

71

Revision Date 06/2016


v8.5 Changes

72

Revision Date 06/2016


Default/Behavior changes

 Java virtual machine custom property:


com.ibm.websphere.logging.useJULThreadID
– Now is “false”, prior it was “true”
 HTTP transport channel settings "Discrimination failed" exception in
the HTTP Channel
– Response code is “500”, prior it was “403”

 WebServer plugin-cfg.xml file


– IgnoreAffinityRequests parameter
• Now is “false”, prior it was “true”
– Maximum buffer size used when reading HTTP request content
PostBufferSize element
• Is now “0”, prior it was “64”
– In v8.5.5.x ONLY – Change when failure to create an HTTPS connection
• If the web server plug-in attempts create an HTTPS connection but fails, it does NOT
create a connection. Previous versions rolled over to HTTP connection silently.
• http://www.ibm.com/support/docview.wss?uid=swg1PM96173

73

Revision Date 06/2016


Updated
June
Port usage 2016

 v8.5 uses more ports than some previous versions


– Can be an impact to those that tightly control port access
– Can also cause more port conflicts
– See
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-
nd-mp&topic=rmig_portnumber

Server v5.x v6.0 v6.1 v7.0 v8.0 v8.5 v9.0


Type

Application 16 17 18 18 18 20 20
DMgr 11 17 17 12 12 16 16
Node 11 17 17 11 11 13 13
Agent
74

Revision Date 06/2016


Development considerations

75

Revision Date 06/2016


WAS Developer Tools for Eclipse (WDT) V8.5 & RAD V8.5

RAD Problem Determination


• Code visualization - class,
Team Productivity
• RTC integration
Extended Programming
Model Support
Install: IM sequence and topic diagrams • Collaborative • Advanced support for
WebSphere Integration • Static analysis (code review) debug J2EE 1.4 and earlier:
• Support for WAS v6.1 • Code coverage: optimize unit • Collaborative code • EJB & Web Services
• Test Environments for WAS testing analysis deploy
v7.0, v8.0, v8.5 • Profiling • DD editors
• Portal Tools / Portal Svr supt Programming • JAX-RPC
• Profile applications on WAS Enterprise Connectivity Model Support • Web:
• Deploy to WebSphere or • J2C (EIS) tools • SCA • Page designer
Portal instances in IBM • CICS, and IMS Adapters • Java (WAS) Batch • Struts, JSF support
SBDT cloud • Adapters for SAP, Siebel, JDE, • SIP/CEA • iWidget support
• IWD 3.1, 3.0 Oracle, PeopleSoft • XML (feature pack)

WDT WebSphere Integration


• Support for WAS v7.0, v8.0, v8.5
Liberty Integration
• Publish, start/stop the server
Install: Eclipse update site
• Publish, start/stop the server • Edit & manage server configuration
JEE Tools • Debug Jython/wsadmin scripts
• Advanced support for JEE 5+
• DD editors, enhanced project WAS Extensions Support Eclipse (WTP, DTP)
explorer, additional validation • Binding and extension editors
Programming Model Support
• Support for non-spec extensions
• Basic creation, editing, and
Web Tools validation support for JEE
• Advanced web development tools OSGi Tools applications:
• Rich page (WYSIWYG) editor for • Full creation and editing support • Web, XML, JPA, EJB, EAR
HTML, JSP • Blueprint editor and validation • Database tools
• Web 2.0 and Mobile support • Visual Bundle Explorer
76
WDT adds support for Mac, possibly with exception of WebSphere Integration
Revision Date 06/2016
Moving to Java 7 runtime

 AWT
– The MouseEvent.getButton() method may return values outside of the [0-3] range in the plan
• Previously, the MouseEvent.getButton method returned a value between 0 and 3 when the user clicked a
button or used the scroll wheel. To accommodate newer models of mice with two scroll wheels, or four
and five buttons, the method now returns a value from 0 to the number of buttons

– Invoking Windows.setBackground may result in an UnsupportedOperationException exception


• Legacy applications that apply a non-opaque background color to their frames may fail when the
application is run on a system that doesn't support translucency effects

– Toolkit.getPrintJob(Frame, String, Properties) now throws NullPointerException


• Prior to this release, when invoking Toolkit.getPrintJob(Frame, String, Properties) in a headless
environment, a HeadlessException is thrown instead of the specified NullPointerException

– Various Toolkit methods now throw HeadlessException


• Toolkit.isFrameStateSupported(int), and Toolkit.loadSystemColors(int[]), now throw a HeadlessException
when used in a headless environment

– The sun.awt.exception.handler System Property has Been Replaced with Official API
• The sun.awt.exception.handler System Property is replaced with Thread.UncaughtExceptionHandler
class

77
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime

 Internationalization
– Separation of User Locale and User Interface Locale
• The default locale can be independently set for two types of uses: the format setting is used for formatting
resources, and the display setting is used in menus and dialogs. The new
Locale.getDefault(Locale.Category) method takes a Locale.Category parameter. Previous behavior can
be restored

– UTF-8 implementation is updated to conform to Corrigendum to Unicode 3.0.1

• Previously, there were 5- and 6-byte forms of utf-8 sequences that were allowed. These are now rejected

 IO
– java.io.File.setReadOnly and setWriteable Methods Have New Behavior
• No longer set the DOS readonly attribute on directories. This means that these methods will fail, by
returning false, if the file is a directory. To preserve the relationship with canWrite, the canWrite method
returns true if the file is a directory.

 JDBC
– New JDBC Methods, Including new Methods in Interfaces
• There are new methods to support JDBC 4.1. This includes methods added to the java.sql.Connection,
java.sql.Driver, javax.sql.CommonDatasource, and java.sql.Statement interfaces
78
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime

 JAXP
– The XSLTProcessorApplet Class is Removed
• The XSLTProcessorApplet class is an application-level convenience class that had various problems. It
has been removed.
– JAX-WS Server Throws a SOAP Fault when it Encounters a DTD
• SOAP Message Construct, the XML infoset of a SOAP message MUST NOT contain a document type
declaration (DTD) information item.

 Language
– The ThreadGroup.setMaxPriority Method Now Behaves as Specified
• Previousy, the ThreadGroup.setMaxPriority did not behave as specified if the passed-in value was less
than Thread.MIN_PRIORITY: it reset the input value to Thread.MIN_PRIORITY. The specification states
that a value less than Thread.MIN_PRIORITY will be ignored.
– java.lang.Character.isLowerCase/isUpperCase Methods Are Updated to Comply with the
Specified Unicode Definition
– The TypeVisitor interface has been updated
• To model the language changes in this release, several updates were made to javax.lang.model.*
including adding a method to the javax.lang.model.type.TypeVisitor interface
– Do not define methods as final on java.lang.Throwable
• Affects classes that extend Throwable. Methods addSuppressed and getSuppressed have been added.

79
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime

 Networking
– Server Connection Shuts Down when Attempting to Read Data When http Response Code is -1
• HTTP protocol handler will close the connection to a server that sends a response without a valid HTTP
status line. When this occurs, any attempt to read data on that connection results in an IOException

 Text
– The java.text.BreakIterator.isBoundary(int) Method Now Behaves as Specified
• The java.text.BreakIterator.isBoundary(int) method now returns false, as specified, when the given offset
is out of bounds, rather than throwing an IllegalArgumentException.

80
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime

 Utilities
– Updated sort behavior for Arrays and Collections may throw an IllegalArgumentException
• The new sort implementation may throw an IllegalArgumentException if it detects a Comparable that
violates the Comparable contract

– Inserting an Invalid Element via constructor or puts methods into a TreeMap or TreeSet Throws
an NPE
• Previously it was possible to insert invalid null elements and elements not implementing the Comparable
interface into an empty TreeMap or TreeSet. Additional elements would cause the expected
NullPointerException or ClassCastException. Most other operations upon the collection would also fail.

– Formatter.format() Now Throws FormatFlagsConversionMismatchException


• The Formatter.format(String,Object...) method now throws a FormatFlagsConversionMismatchException
exception when the "#" flag is specified for conversion "s" and the following argument is not a Formattable
instance (including the special case "null").

81
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
JPA differences

 Change in JPA cascade strategy


– Behavior change for entity relationships that use cascade types PERSIST, MERGE
and ALL.
– The previous release would check the database for the existence of the related
Entity before persisting the relationship to that Entity. This resulted in an extra
Select being sent to the database. Now code was added so that when cascading a
persist to a related Entity without persistence state, the persist (insert) will happen
without first checking the database. This may result in an EntityExistsException if
the related Entity already exists in the database.
– To revert this behavior to the previous release, set the value of the
openjpa.Compatibility property
CheckDatabaseForCascadePersistToDetachedEntity to true

 Change in JPA MetaModel code generation concerning ListAttribute


– In previous releases the MetaModel implementation generated a ListAttribute for
every array. This behavior is correct if the array is annotated as a
PersistentCollection, but not correct for un-annotated arrays (e.g. byte[], char[]).
Now this behavior was corrected so that arrays which are not stored as
PersistentCollections will use a SingularAttribute instead of a ListAttribute.
– Behavior can be reverted by setting the Compatibility property
<UseListAttributeForArrays to true in persistence.xml property
name="openjpa.Compatibility" value="UseListAttributeForArrays=true" 82

Revision Date 06/2016


Converting to Liberty

83

Revision Date 06/2016


Liberty and traditional profile capabilities
There are functional differences between traditional WAS and the
Liberty server – Liberty provides a useful subset of traditional WAS

Liberty Profile Traditional WAS Profile


Bean validation
Blueprint Everything Liberty has…
Java API for RESTful Web Services
Java Database Connectivity (JDBC)
Java Naming and Directory Interface (JNDI)
Java Persistence API (JPA)
Java Server Faces (JSF)
Java Server Pages (JSP)
Enterprise Java Beans (EJBs)
JMX
Monitoring
Messaging (JMS)
OSGi JPA Web Services
Remote connector Service Component Architecture (SCA)
Secure Sockets Layer (SSL) Java Connector Architecture (JCA)
Security Clustering
Servlet WebSphere Optimized Local Adapters
Session Persistence
Transaction
Administrative Console
Web application bundle (WAB) WSADMIN scripting
z/OS Security (SAF) Multi-JVM Server Model
z/OS Transactions (RRS)
z/OS Workload Management And much more …
84

Revision Date 06/2016


Simplified Liberty Server Configuration

 Simplest case: One


XML file for all server
config
 Editable within the
workspace
 Exportable,
shareable,
versionable

No need for Admin Console, wsadmin,


or extended EARs
server.xml
X
resources.xml
etc.

ws-security.xml

85

85
Revision Date 06/2016
Moving to Liberty - Configuration

 Configuration conversion
– The InfoCenter contains examples of converting the following:
• connectionManager
• dataSource
• jdbcDriver
– See the subtopics under the Migrating applications to Liberty topic for information
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=twlp_mig

86

Revision Date 06/2016


Converting to Liberty

 Application conversion
– Liberty is assumed to be used for developing new applications
– Applications that run on Liberty will run on Full Profile unchanged
– Some changes may need to be made if porting existing full profile
applications to Liberty. E.g.:
• Location of persistence.xml files can be anywhere in the war in Full profile, for
Liberty must be one of the following
– <war>/WEB-INF/classes/META-INF/
– <war>/lib/<jar>/META-INF/
– <ear>/<library directory/<jar>/META-INF/
• 3rd party APIs in Liberty require additional configuration (e.g.)
– <application id="ERWW_Lite" location="ERWW_Lite_EBA_PT.eba"
name="ERWW_Lite" type="ear">
<classloader allowedApiTypes="spec,ibm-api,third-party"/>
</application>

87

Revision Date 06/2016


Converting to Liberty…

 Application conversion…
– Some JPA query validation may differ (e.g.)
• @NamedQuery(name="commentCount", query="SELECT count(*) FROM CommentTab
comment WHERE comment.user.userid =:userid") should be:
• @NamedQuery(name="commentCount", query="SELECT count(comment) FROM
CommentTab comment WHERE comment.user.userid =:userid")
– Incorrect Servlet 3.0 namespace value is allowed on Full Profile, not Liberty
• “http://java.sun.com/xml/ns/j2ee” should be:
• “http://java.sun.com/xml/ns/javaee”
– Some open source frameworks, such as the Apache Object Relational Bridge,
make use of the internal undocumented and unsupported API. This is not
supported on Liberty
– OSGI application's WAB manifest file may require update(s)
• OSGI applications running on Liberty may require additional package imports to be
specified in the WAB MANIFEST.MF file which are not required for the same
application running on tWAS
• E.g. javax.naming, javax.sql and javax.xml.bind
88

Revision Date 06/2016


v8.0 Changes

89

Revision Date 06/2016


Administrative considerations

90

Revision Date 06/2016


Install, Update, Uninstall via IBM Installation
Manager

 Using IBM Install Manager as the install


technology for the
WebSphere Application Server
and associated products

– Faster installation
– More customer control
– Including z/OS
– Use remote or local repositories

 A side effect is that Install response files


from previous versions will need to be
redone

 Another is uninstall cannot be done via


script

91

91
Revision Date 06/2016
More optionally installable features

 More optionally installable features


– Allows to drive down the footprint of the installed product

92

Revision Date 06/2016


Centralized Install Manager

 CIM is available from the Job Manager and DManager


– Job Manager based solution spans the boundaries of the cell
– Install targets are specified in agentless fashion
– Install and config job scheduling is supported
 CIM is able to remotely install WebSphere Application Server,
IBM HTTP Server, Application Clients, DMZ Security Proxy
Server, and Web Server Plug-ins
 Better scalability due to more distributed architecture
 “CIM v7” function is still available in Deployment Manager along
side with new function
 z/OS scenarios are supported

93

Revision Date 06/2016


Install Factory replacement

 Install Factory is based on ISMP install technology and is not


present in WAS v8
 Equivalent function is provided by combination of IBM
Installation Manager and Centralized Install manager
(depending on customer scenario)
– IBM Installation Manager
• Ability to install to specific level of service (GA + fixpacks + iFixes) in
one step for multiple products
– Centralized Install Manager
• Ability to centrally manage enterprise wide installations, creation of
profiles and execution of wsadmin scripts and other commands
 IBM provides a Packaging Utility tool to simplify the
management of the content for IBM Installation Manager
repositories
– For more details:
– http://www.ibm.com/support/knowledgecenter/SSDV2W_1.7.0/com.ibm.cic.auth.ui.doc/helpindex_pu.h
tml 94

Revision Date 06/2016


WebServer Plug-in installation and configuration

 Prior to v8.0, the Plug-ins installation wizard runs as part of


product Install
– Installs the plug-in module,
– Configures the Web server and a Web server configuration
definition in the application server, if possible.
 Change in v8.0
– User must install both the plugin and the WebSphere
Customization Toolbox
– Then run Web Server Plug-ins Configuration Tool to configure the
Web server and a Web server configuration definition in the
application server, if possible

95

Revision Date 06/2016


Java Garbage collection and dump format

 Java default GC policy changed from “optthroughput” to


“generational”
– May require higher memory allocation
– Recommended starting point:
• Set the tenured heap to the previous maximum heap size
– ie. -Xmos = -Xms and -Xmox = -Xmx
• Allocate the nursery with additional heap space
 Java verboseGC and Heapdump output formats have changed
– Will require upgrades to associated ISA based tools

96

Revision Date 06/2016


Security default changes

97

Revision Date 06/2016


Other default setting changes

 Oracle10gDataStoreHelper not supported on JRE 1.6, which is what is


used by v8.0
– Use Oracle11gDataStoreHelper instead

 ORB's socket connect time-out changed from zero to 10 seconds.


– A value of zero means use the time-out set by the native operating system TCP/IP
layer, usually set to 75 seconds in most operating systems, which has caused
problems

 Asynchronous beans work manager “work request queue size" default


calculation change
– For v8.0 is the larger of maxThreads or 20, previously average of minThreads and
maxThreads.

 Support for IBM Java Developer Kit for IBM i, which is also referred to
as Classic JVM has been removed
– Use IBM Technology for Java on IBM i, which includes IBM Java Standard Edition
(SE) 32-bit and IBM Java SE 64-bit.

98

Revision Date 06/2016


New

Other default setting changes… August


2013

 ClusterConfigCommands command group for the AdminTask object


Parameter: -resourcesScope
– Now is “cluster”, prior it was “both”
 Web container custom properties
com.ibm.ws.webcontainer.throwpostconstructexception
– Now is “true”, prior it was “false”
 Thread pool, Thread inactivity timeout
– “60000” milliseconds, prior it was “35000”
 Webserver plugin changes
– ServerIOTimeout setting changed to 900s
• Was “60” in v7.0 and “0” in previous versions
– Accept content for all requests setting
• Now is “true”, prior it was “false”

99

Revision Date 06/2016


Port usage
 v8.0 uses more ports than some previous versions
– Can be an impact to those that tightly control port access
– Can also cause more port conflicts
– See
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&product=was-
base-dist&topic=rmig_portnumber

Server v4.0 v5.x v6.0 v6.1 v7.0 v8.0


Type
Application 16 17 18 18 18
DMgr n/a 11 8 17 12 12
Node Agent n/a 9 11 10 11 11

100

Revision Date 06/2016


Development considerations

101

Revision Date 06/2016


Integrated Tooling Support Through Rational Application
Developer (RAD) & Rational Application Developer
Standard Edition (RAD SE)

OSGi
Web 2.0 & Mobile SOA
Extend SOA and Java EE Build dynamic, modular, and easily Assemble Web services and
assets to the glass & mobile manageable applications SCA components into
devices via dynamic, rich
heterogeneous business
JSF, DOJO & mobile web
applications
applications RAD /
Refactor Code
RAD
SE

Refine Deploy

Debug Test
WAS

Java EE 6 Modern Batch


Develop and test Java EE 6 WAS Integration Integrated programming
applications with annotation model support for batch
Hot deploy incremental changes to applications
based programming
WAS
102

Revision Date 06/2016


RAD & RAD Standard Edition

RAD
Team Productivity Problem Determination Enterprise Connectivity
• Integration with RTC • Code visualization - class, sequence • J2C (EIS) tools
• Collaborative debug and topic diagrams • CICS, and IMS Adapters
• Collaborative code • Static analysis (code review) • WebSphere Adapters for SAP,
analysis • Code coverage: optimize unit testing Siebel, JDE, Oracle, PeopleSoft

RAD SE
Programming Model Support WebSphere Integration
• Create, edit, validate applications: • WAS test servers: v6.1, v7.0, v8.0,
- Specs / Standards: remote support for WAS 6.0
• Java EE (Web, EJB, Web Services, JAX- - Publish, start/stop the server
RS…) • WAS Feature pack support
• SCA, OSGi, SIP, XML • Create and debug Jython and wsadmin
- Web (JSF, Dojo, JavaScript, Web 2.0) scripts
• Debug applications on WAS • Portal Tools & Portal Server support
• Database tools • Profile applications on WAS
• Integration with ClearCase SCM Adapter, ReqPro, • Find and deploy to WebSphere or Portal
instances in the IBM SBDT cloud
RUP

103

Revision Date 06/2016


IBM Assembly and Deploy Tools for
WebSphere Administration (IADT)

Rapidly assemble & deploy applications to WebSphere Application Server environments

Key Capabilities:
 IADT tools replace the
• Import and validate applications previously available IBM
• Edit deployment descriptors and Rational Application Developer
binding files Assembly and Deploy function
• Edit EAR-level configuration
(Enhanced EAR)  Restricted to assembly and
• Create and debug Jython and deployment usage only
wsadmin scripts
• Deploy EJB and web services
• Deploy applications to local or
remote WAS v8 servers
• Debug applications on WAS v8
104

Revision Date 06/2016


Moving to JEE 6

105

Revision Date 06/2016


Bean Validation impacts versus Struts New July
2013

 The Bean Validation component assumes file web-


inf\validation.xml is it’s control file
– If this file was previously used in the application a delay will now
occur in Bean Validation initialization code
• Used by validator plug-ins of Struts
– A warning is placed in the application server log
• CWNBV0005W
– The application will delay start between a number of millisecond to
a number of SECONDS

106

Revision Date 06/2016


EJB Changes
Interface Detail Old Behavior New Behavior
EJB EJBs in web modules Ignored Now processed, this may result in
latent errors reported
@ApplicationException in EJB 3.1 inherit is a inherit=false inherit=true, can impact subclassing
new keyword and exceptions behavior
defaults to true

107

Revision Date 06/2016


JAX-WS Changes
Interface Detail Old Behavior New Behavior
JAX-WS client Some calls which result in WebServiceException The Handlers handleFault
local exceptions caused by an is thrown on the message will be called with
something invalid host or port invoked method with a SOAPFaultException
an empty message
JAX-WS client Handling of Policy:Addressing ignored processed
in WSDL

SOAPMessage getSOAPHeader and No error Will now throw a


getSOAPBody behavior if SOAPException
there are no headers present

Note: JAX_RPC has been deprecated in JEE6, stabilized by WAS

108

Revision Date 06/2016


JCA Enhancement
Interface Detail Old Behavior New Behavior
SQL exception Paused datasources had no unique Always returned 0 2147117569
error code return code

109

Revision Date 06/2016


JPA Changes
Interface Detail Old Behavior New Behavior
EntityManager refresh(…) method is passed No Error IllegalArgument exception is
a null thrown

detach(Object New method on numerous <T> T change from <T> T detach(<T>


entity) APIs, JPA 1.x already has detach(<T> pc) pc) to the new <T> T
similar method, <T> T detachCopy(<T> pc)
detach(<T> pc)

• zOS DB2 different in JPA when using time related query


• Your database is running DB2 for z/OS.
• You are using a named query and access the database with native SQL.
• The native query uses the time related field as an SQL parameter, but the query is not
compatible with the column definition for the database table.
• Exception: org.apache.openjpa.lib.jdbc.ReportingSQLException: THE DATE, TIME, OR
TIMESTAMP VALUE 1 IS INVALID. SQLCODE=-18x, SQLSTATE=22007
• See the Supported data conversions [link] topic in the DB2 9.7 Information Center for
more information on compatibility.
• In some other cases v8.0 behavior may differ from earlier versions
• Can revert to older (e.g. WAS 6.0) JPA provider as an alternate JPA provider in WAS 8.0
• http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.express.iseries.
doc/ae/tejb_jpa3rdparty.html
110

Revision Date 06/2016


JSF Changes

 The default JSF implementation was changed from SUN RI to


MyFaces.
– MyFaces will be at JSF version 2.0. SUN RI will be left at JSF
version 1.2 and will be used only for backward compatibility.
– Customers who want to take advantage of JSF 2.0 features will
already have to rewrite their JSPs to use Facelets.
 More exceptions are passed on in JSF 2.0 that would not have
surfaced in JSF 1.2
 JSF library override support:
– http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplat
form.doc/info/ae/ae/tweb_jsf.html
– http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.multiplatform.doc/in
fo/ae/ae/tweb_jsf.html
– http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.nd.doc/ae/tweb_jsf.ht
ml

111

Revision Date 06/2016


JSP Changes
Interface Detail Old Behavior New Behavior
JSP-Property- is-xml and page-encoding configuration Matching JSPs AND Matching JSPs
Groups options should only apply to those JSPs their included JSPs only
which match the url pattern

112

Revision Date 06/2016


Added
Dec 2013
JSTL Changes
Interface Detail Old Behavior New Behavior
Java and EL Variable names using these keywords Supported Parse exceptions
reserved keywords are no longer allowed (See Note below)

 The code responsible for checking for the use of reserved keywords as EL variable identifiers was
enhanced, making the checking more strict. The variable checking code not only checks for reserved EL
keywords, but also Java reserved keywords

 The preferred method of resolution is to modify the JSTL/EL code to eliminate the usage of the reserved
keywords as variable names. However, if this is not possible or practical, a custom JVM property
org.apache.el.parser.SKIP_IDENTIFIER_CHECK can be set to true on the WebSphere Application
Server JVM that will relax the variable identifier checks. The relaxed checking behavior is equivalent to
the behavior observed in WebSphere Application Server versions prior to version 8.0.

 See http://www.ibm.com/support/docview.wss?uid=swg21642419
113

Revision Date 06/2016


OSGi Changes
Interface Detail Old Behavior New Behavior
Composite Scope of bundles packaged within Public visibility outside Private visibility
bundles composites of the Composite within the Composite
(.cba)

114

Revision Date 06/2016


SIP Changes

Interface Detail Old Behavior New Behavior


SIPFactory createRequest and createAddress(String Brackets ignored Brackets handled
sipAddress) with URI as input or return parameters correctly
should be enclosed within brackets (“<>”)

115

Revision Date 06/2016


Servlet Changes
Interface Detail Old Behavior New Behavior
StoredResponse return type of getHeaderNames (Note, Enumeration Collection<String>
not a required change)

HttpSession Use the HttpServletRequest logout Programmatic Programmatic logout


invalidate method which was introduced in Java logout not part of is provided as part of
EE 6 as part of the Servlet 3.0 specification. specification.
specification rather than the
HttpSession invalidate method.

116

Revision Date 06/2016


WebSphere removals

 Apache SOAP implementation


– Use standard WebServices support instead
– See references for pointer to migration information
 com.ibm.websphere.ant.tasks.StopServer. setHost ( java.lang.String
host )
 com.ibm.websphere.rsadapter.WSConnectJDBCDataStoreHelper
– See OracleDataStoreHelper rule. It combines the helper static and the
helper class in one rule.

 com.ibm.websphere.servlet.error.ServletErrorReport.getCause ( )

117

Revision Date 06/2016


Added
Using Spring with WAS Dec
2013

 In general the Spring Framework can be made to work with WAS fairly easily,
see below reference for more details
 There is a known conflict starting in WAS v8.0 when using Spring due to a
conflict with the JEE6 @Asynchronous annotation
– Customer code using the annotation-driven search method in the Spring configuration for
@Async annotation. @Async is the like functionality to @Asynchronous and the Spring code
searches for both annotations against the classpath. The solution is to remove annotation-
driven @Async searches by Spring.
– Customer code using Spring prototype beans. A prototype bean is like a template and every
time you want to use the template you have to create a hard copy that you actually use. When
you create that hard copy, Spring pours over the class to resolve all of the container
dependencies and resolve any annotations it’s responsible for. Spring uses a bean post-
processor for @Async and for every prototype that was hard-copied, Spring would run the
post-processor even if the class did not have the @Async (or @Asynchronous) annotation in
it. The @Async bean post-processor will increase method calls length. The solution is to stop
creating Spring prototype beans.

 See http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.html

118

Revision Date 06/2016


v7.0 Changes

119

Revision Date 06/2016


Administrative considerations

120

Revision Date 06/2016


WSAdmin jython support New June
2009

 Change to the string returned for “__name__” system variable


– This system variable is set based on whether a file has been
passed directly on the jython command line
• Allows you to create a “main” program
– Change was made to be compatible with standard Jython behavior
• Prior to v7.0 the returned string was “main”
• In v7.0 it is now “__main__”
– Can check both for mitigation:
• if __name__ == ‘__main__’ or ‘main’:

121

Revision Date 06/2016


WSAdmin differences New April
2010

 Checking for existence of resources


– In some cases when checking for existence of a resource an
exception would be thrown if the object did not exist
– Now a return code will be returned and not an exception
– E.g. if {[catch {set jp_name [$AdminConfig showAttribute $jp_tpl_id
name]}]}

 Some Datasource definitions now require


relationalResourceAdapter field
– Either correct the connection factory defintion, or delete the data
source with a wsadmin command and recreate it with the
relationalResourceAdapter properly set
– See http://www-01.ibm.com/support/docview.wss?uid=swg21317655

122

Revision Date 06/2016


New
launchClient differences August
2013

 Running multiple instances of launchClient in the same address


space is not supported
– Lock required for OSGi implementation
– Resolve by adding the following to the invocation of launchClient
• -Dosgi.configuration.area.readOnly

123

Revision Date 06/2016


New

JAX-WS difference August


2013

 Using JAX-WS dynamic ports via the service method Service.addPort


method
– Default changed to visible to the instance of the service that did the
addPort
– Can cause OutOfMemory when migrating from older versions
– Can revert behavior
• jaxws.share.dynamic.ports.enable=true
– Further information
• http://www-01.ibm.com/support/docview.wss?uid=swg1PM63537
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&produ
ct=was-nd-dist&topic=twbs_jaxwsdynclient

124

Revision Date 06/2016


Updated
Security default changes January
2009

 Old style LTPA version1 is disabled by default


– In Prior versions both LTPA version 1 and 2 were sent for full interoperability

– Can turn back on for interoperability needs is required

• Set “com.ibm.ws.security.ssoInteropModeEnabled” = true instead of false

 WebSeal TAI interceptor is deprecated and discouraged


– Available if the Migration tools are used to build the new cell

• Migration ensures the old environment is carried forward

– Not available by default as an option in the console otherwise

• Can be added through the console only if necessary

– Global security > Trust association > Interceptors

– Add the interceptor using the “Add” capability and


“com.ibm.ws.security.web.WebSealTrustAssociationInterceptor”

– You should move to using com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus125


Revision Date 06/2016
New
Security logout servlet February
2009

 The ibm_security_logout servlet allows the specification of a


web page to be displayed after the logout processing
completes.
– This web page was unrestricted so the user can be redirected anywhere.
This was a security exposure and the behavior has changed

 The behavior now defaults to within the same host that the
request is currently executing on
– Properties are provided to revert behavior

 See APAR 71126


– Also included in fixpacks 6.0.2.33 and 6.1.0.23.

126

Revision Date 06/2016


Security Cipher changes New June
2009

 Cipher strength changes in v7.0


– Could affect interoperability between v6.1 and v7.0 systems
• Appears as a security handshake error
– Some have been removed and some have been changed
• See the Speaker notes for detailed changes
– Can mitigate by using one of the supported ciphers
• Configured via the ssl.client.props file
– See for more information:
• http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere
.base.doc/info/aes/ae/rsec_sslclientpropsfile.html

• See table in Speaker notes

127

Revision Date 06/2016


WebSphere MQ maintenance concern Updated
Nov 2009

 For zOS make sure the key APARs are installed


– Information APAR II14484
• http://www-
01.ibm.com/support/docview.wss?rs=1083&context=SSGMGV&dc=DB550&uid=isg1II1
4484&loc=en_US&cs=UTF-8&lang=en&rss=ct1083other
 Be careful to use the correct MQ queue manager level in the correct mode
(bindings or client)
– See for more information:
• http://www-
01.ibm.com/support/docview.wss?rs=171&context=SSFKSJ&dc=DB540&uid=swg2131
6899&loc=en_US&cs=UTF-8&lang=en&rss=ct171websphere
WMQ Version BINDINGS mode CLIENT Mode

IBM WebSphere MQ v6.0.0.0 – v6.0.2.4 Not supported Supported

IBM WebSphere MQ V6.0.2.5 or later Supported WebSphere MQ v6.0.2.5 or Supported

later must be installed on the same

machine as the application server

IBM WebSphere MQ V7.0.0.1 or later Supported WebSphere MQ v7.0.0.1 or Supported

later must be installed on the same


128
machine as the application server
Revision Date 06/2016
New
WebSphere MQ usage and v7.0.0.0 June
2009

 Adjusting the WebSphere MQ resource adapter configuration for


profiles between maintenance level 7.0.0.0 and later levels
– Profiles created at WebSphere Application Server maintenance level 7.0.0.0,
the WebSphere MQ resource adapter binary files are located in each profile.
– In profiles created at WebSphere Application Server maintenance level
7.0.0.0 Fix Pack 1 or later, these binary files are located in the
app_server_root directory

 For profiles created at v7.0.0.0 level you must manually adjust


the resource adapter configuration so that the profiles use the
set of WebSphere MQ resource adapter binary files from the
app_server_root directory

– See for more information


• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=compass&product=was-nd-dist&topic=tmm_mig

• http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg21266535

129

Revision Date 06/2016


New
MQ Topics and Queues default to read ahead August
2012

 The MQ topics and queues now default to read ahead under the
following conditions:
– When using the configuration migration tools to migrate from older WAS
versions
– When creating via wsadmin AdminConfig object
 The expected default of "As for queue definition" or "As for topic
definition" is applied when:
– The administrative console is used to create a WebSphere MQ JMS
Queue or Topic object.
– When using the createWMQQueue and createWMQTopic commands,
with AdminTask
 See
– http://www-01.ibm.com/support/docview.wss?uid=swg21448387

130

Revision Date 06/2016


JSP class reloading New
February
2009

 "JSP enable class reloading" was added in v6.1 and was


defaulted to “on”
– This was different than v6.0 and earlier and sometimes caused
performance problems due to the JSP reload rate
– In v7.0 this value is reverted to “false”
– Can be controlled via a custom property
– See APAR PK71698

131

Revision Date 06/2016


New
Plugin Server Timeout Default Value November
2009

 The HTTP Server default value of serverIOTimeout changed


from “0” to “60” in v7.0
– Affects behavior of GET requests
– Can cause unexpected behavior because the old default reverted to
the setting dictated by the OS
• Varies between 5 and 30 minutes

– Can simply change setting back to “0” if required


 See for more information
– http://www.ibm.com/developerworks/websphere/techjournal/0802_webcon/0802_webcon.html

132

Revision Date 06/2016


z/OS Migration Management Tool

 Only alternative for


generating zOS Migration
JCL jobs
 Available via WebSphere
Configuration Tool (WCT)
 Launch from Main menu

133

Revision Date 06/2016


SIP Migration steps
1. Target node A for migration. Quiesce A1, A2 and
their replication partners B1 and D1.
• This leaves node A ready for migration because
it has no replication partners active (so we
won't hit our replication bytes versioning issue)
SIP will require
• Stop those 4 servers once quiesce is complete
• Migrate node A to 7.0 and get it up and running.
additional steps for live
2. Target node B for migration. Quiesce B2 and its migration
replication partner C1. Note B1 was stopped
already. A 1 2 C 1 2
• Stop B2 and C1 once quiesce is complete
• Migrate node B to 7.0 and get it up and running
3. Target node C for migration. Quiesce C2 and its
replication partner D2. Note C1 was stopped 1 2 D 1 2
already B
• Stop C2 and D2 once quiesce is complete
• Migrate node C to 7.0 and get it up and running
4. Target node D for migration
• Note that D1 and D2 were already stopped
• Migrate node D to 7.0 and get it up and running
134

Revision Date 06/2016


Port usage
 v7.0 uses more ports than some previous versions
– Can be an impact to those that tightly control port access
– Can also cause more port conflicts
– See
• http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.migrati
on.nd.doc/info/ae/ae/rmig_portnumber.html

Server v4.0 v5.x v6.0 v6.1 v7.0


Type
Application 8 16 17 18 18
DMgr n/a 11 17 17 12
Node Agent n/a 9 11 10 11

135

Revision Date 06/2016


Development considerations

136

Revision Date 06/2016


WAS v7 Tools Packaging

RAD for WebSphere


Programming Model Tools RAD for WebSphere
• EJB3 productivity features
• Domain Modeling (visual edit)
• Java, EJB, XSD, WSDL, Data, • Comprehensive tools to improve
• Web Development (visual edit)
• Web 2.0
developer productivity…targeting IBM
• REST Style Services, Javascript, Dojo
• Web Services productivity features
Middleware
• Basic Code Review, Java & EJB
• Portlet and Portal Tools • Full-featured Integrated Dev Environment
Miscellaneous
• Extra Debuggers (XSLT, stored proc…) (IDE)
• XML productivity features
• Code Coverage
• Relational Data
• Tutorials, demos, wizards and sample
• Crystal Reports (tools only) code
• WAS n-2 support
• WAS test servers v6.0, v6.1, v7.0
• JCA
• CICS and IMS Adapters
• WAS Adapters
RAD Assembly and Deploy
• SAP, Siebel, JDE, Oracle, PeopleSoft
• RTC Client
• CC SCM Adapter • Perpetual license as part of WAS
• ReqPro
• RUP • Support for creating, building, testing
RAD Assembly and Deploy and deploying J2EE 1.4 applications
• Jython tools
• J2EE 1.4 (same level as AST 6.1)
• JEE5 XML-form based DD editors
• Basic support for Java EE 5 applications
• JEE5 application support
• WAS 7.0 support only • Support for building, testing and
• WAS debug extensinos
• Application Deployment Support (WAS7.0) deploying Java EE 5 applications
• RAC
137

Revision Date 06/2016


Development tool overview
 IBM Rational development tools
– RAD v7.5 is the new development toolset
– RAD v7.5 has similar requirements as RAD v7.0
• Footprint and performance improvements in key scenarios
– Based on Eclipse v3.4
– Support for SOA, Web Services and Portal development
– Support for Java6
– Previous WebSphere Application Server supported runtimes
• WebSphere Application Server v6.0
– Includes support for Web 2.0 Feature Pack
• WebSphere Application Server v6.1
– Includes support for EJB 3.0, Web Services and Web 2.0 Feature Packs
– Other supported runtimes
• WebSphere Application Server v7.0
• DB2 Universal Database™ (UDB) V9
• Portal v6.0 and v6.1
138

Revision Date 06/2016


Moving to JRE 6

139

Revision Date 06/2016


JRE 6 impacts

 For an introduction, see the “Java SE 6“


– http://java.sun.com/javase/6/
 Applications using the new language features and JRE 6 can be
deployed only to v7.0 nodes.
– When compiling applications can specify '-source' and '-target' modes for
earlier JRE targets
– E.g. '-source 1.4', and 'target 1.4'
 Java Serialization
– Serialization is not compatible across JRE 1.4 and earlier releases – force
UUIDs as a general practice
 Any new features in Java that result in new classes can cause
ambiguous references
– If these new classes match ones already defined in your program

140

Revision Date 06/2016


Updated
JRE 6 source compatibility August
2012

JRE 6 is generally upwards source-compatible with JRE 5 except for


some minimal factors:
 Some APIs in the sun.* packages have changed. These APIs are not intended for use by
developers. Developers importing from sun.* packages do so at their own risk
 Java SE 6 In some cases, javac can now reject previously accepted, yet incorrect programs.
– Properly Rejects Illegal Casts
– EJB business methods which were not declared as public
– FilterMapping that was mapped to a non-existing servlet
 Debug and Profiler interfaces have changed
– Java Virtual Machine Debug Interface (JVMDI) have been removed, Java Virtual Machine Profiler
Interface (JVMPI) has been disabled
 Non class files have been moved from rt.jar in Java SE 6
– Java applications that specify -Xbootclasspath:<path to rt.jar> and request any resource files will fail
since these resources now reside in a different jar file called resources.jar.
 Miscellaneous API changes
– The Duration and XMLGregorianCalendar equals() methods now return false for null parameter
– java.beans.EventHandler Enforces Valid Arguments

– java.util.List - Correct behavior when access a larger index than possible. Now throws an
IndexOutOfBoundsException instead of ArrayIndexOutOfBounds.
 Relatively minor impacts – see the sun site for a complete list. 141 141

Revision Date 06/2016


Added
Change in IBM Java 6 XSLT implementation August
2012

 Can result in high CPU utilization on existing apps that used


XSLT
 The default XSLT processor is changed to the XL TXE-J
compiler. The compiling XSLT processor has different performance
characteristics.
 It is best suited to situations where the same stylesheets are used
many times and cached
 If the application was not designed with these differences in mind, it is
best to continue using the old interpretive processor, which is still
included in IBM Java 6
– Revert to old XSLT compiler by setting
javax.xml.transform.TransformerFactory=org.apache.xalan.processor.Tra
nsformerFactoryImpl system property

142

Revision Date 06/2016


Moving to JEE 5

143

Revision Date 06/2016


Some JEE minor specification changes

 This page focuses on those interfaces in v7.0 that have been upgraded
to JEE5 with no alternative to using the older support in J2E 1.4. For
example:
– JSP has been upgraded to 2.1 from 2.0 – there is no way to run at JSP 2.0
level
– EJB has been upgraded to 3.0, however EJB 2.1 applications are still run at
2.1
– See this link for complete details of specification level options:
• http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websp
here.base.doc/info/aes/ae/rovr_specs.html
 Portlet 2.0
– getProtocol for included servlets / JSPs no longer returns null, but ‘HTTP/1.1’

144

Revision Date 06/2016


New
Use of .xmi versus .xml files August
2012

 For pre-JEE5 support you must continue to use .xmi bindings


and extensions files
 For JEE 5 and later you must use .xml bindings and extensions
files
 Approaches for migrating from .xmi to .xml files
– Done automatically by RAD/RSA when you migrate an app from
pre-JEE5 to or later.
– Use the Bindings and Extensions Conversion Tool
• http://www.ibm.com/developerworks/websphere/downloads/bindings_and_extensions.html

145

Revision Date 06/2016


New
Some JSP 2.1 changes March
2010

 New reserved character


– The character sequence '#{' is now reserved by JSP. So If you are using
'#{' in template text or as a literal in an attribute value for a 1.2-based
taglib, the sequence will have to be escaped.

 Resource injection can cause some JSPs to no longer compile


– Large JSPs may now be over the 64K limit due to new Resource injection
support
– Can turn this off via setting in ibm-ext-web.xmi in 7.0.0.11 and later
• JSP attribute "disableResourceInjection" to true

146

Revision Date 06/2016


Some JSP 2.1 changes… New July
2010

 Redefining taglibs in a current scope no longer supported


– Set the following JSP attribute: .
• <jsp-attribute name="allowTaglibPrefixRedefinition" value="true"/> .
– Or set a webcontainer custom property for the server (note this will affect
all apps on the server):
• com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true
 A tag library directive that defines a prefix must occur before that prefix
is used in a custom tag
– Set a webcontainer custom property for the server (note this will affect all
apps on the server):
• com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition=true
 Multiple occurrences of properties in the jsp:output element no longer
supported
– Set a webcontainer custom property for the server (note this will affect all
apps on the server):
• com.ibm.wsspi.jsp.allowjspoutputelementmismatch=true

147

Revision Date 06/2016


Updated
Differences from v6.1 Feature Packs February
2009

 EJB 3.0 Feature Pack for v6.1


– EJB 3.0 binding file errors - some applications may fail to start on
WebSphere Application Server V7.0 because uniqueness checks are now
performed on names used in the EJB 3.0 bindings file
– Using runtime jars implicitly - When you deploy your Enterprise
JavaBeans™ (EJB) applications, you might receive a runtime
ClassNotFoundException exception because the class path entry Java™
archive (JAR) file is not exported or published and uses one or more
runtime jars. This is a warning only.
– V7.0 Does not support the use of bean managed persistence (BMP) and
container managed persistence (CMP) entity beans in EJB 3.0-level
modules. BMP entity beans are supported in the Feature Pack for EJB
3.0

148

Revision Date 06/2016


Differences from v6.1 Feature Packs…

 WebServices Feature Pack for v6.1


– In v7.0, JAX-WS annotations are supported only in modules whose
version is Java™ EE 5 or later.
– In v7.0 JAXB is provided as part of JRE6. The factory implementation is
different in v7.0 than v6.1
 Both WebServices and EJB Feature packs
– To preserve compatibility with v6.1 Feature Packs you must enable one of
the following properties to request scanning during application installation
and server startup:
• UseWSFEP61ScanPolicy property for Feature Pack for Web Services
• UseEJB61FEPScanPolicy property for Feature Pack for EJB 3.0

149

Revision Date 06/2016


Updated
Differences from v6.1 Feature Packs… March
2012

 Both WebServices and EJB Feature packs


– Servlet 2.5 modules in JEE 1.4 applications were allowed in
v6.1and .xmi files were used to define bindings
– Starting with WAS v7.0 Servlet 2.5 modules are not allowed to be
deploy to WAS v6.1 in specification level JEE 1.4 or earlier
applications and .xmi files cannot be used for Servlet 2.5 modules,
must use .xml instead
– Resolve be either:
• Setting the Servlet level to 2.4 or earlier if still need to deploy to WAS
v6.1
• If Servlet 2.5 or later is required convert .xmi files to .xml. RAD has
some migration tools to assist
– See page on converting .xmi files

150

Revision Date 06/2016


Using private/Open Source interfaces Updated
July 2013

 Problems can occur for applications older than v7.0 embed their own
Open Source implementations
– WebServices (AXIS based) and JAX-B (in Java6) is provided in WAS v7.0
– Other Open Source implementations are used with WAS as well
– Class conflicts can exist if those implementations are provided within the applications

 There are three practical solutions


1. Use WAS Isolated Shared Library support to continue to use private version
– Remove the jars from the application, create and deploy a shared library with the isolated
class loader option
– Use Shared Library class loader support to reference the shared library
2. Turn off WAS WebServices or other support (not as fool proof)
– May still have problems because of other support like JAX-B or others
– See references section for information on how to turn off WAS WebServices
3. Traditional Class loader options (not as fool proof)
– Use PARENT_LAST
– May still have a conflict between the two implementations
See http://www-01.ibm.com/support/docview.wss?uid=swg21639407 151

Revision Date 06/2016


Updated
JSF 1.2 impacts January
2014

 Rendering differences
– Some fixes to resolve some previous problems with content-interweaving
between JSF and non-JSF tags
– Affects ViewHandler extenders, some custom scripting and some 3rd party
packages that now need to support JSF 1.2
• E.g. Tiles
– And maybe others like
• Tomahawk, Trinidad, IceFaces, Facelets, etc
 JSTL Tag Evaluation
– In WAS6 and earlier, JSF evaluates JSTL tags after ScriptCollector
preRender method was executed. Whereas in WAS7, JSF evaluates
JSTL tags before ScriptCollector preRender method is invoked and fails
as backing bean property used in the JSTL tag is not populated by the
ScriptCollector preRender method.
• This change will require a redesign of your JSP pages to avoid the dependency on
execution order.
• See https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-
000014552754#77777777-0000-0000-0000-000014565034
152

Revision Date 06/2016


JSF 1.2 impacts… New
March
2010

 JSF Portlets
– Higher memory consumption is reported, may result in larger sessions

 JSF 1.0 application impacts


– Will either need to change to JSF 1.2 or restructure the application
– If restructuring the application will need to pull the JSF 1.0 modules out of
the application and into a shared library
– See Speaker notes for more details

153

Revision Date 06/2016


New
Scanning for annotations… June
2009

 JEE5 introduces support for annotations


– Requires a new step to scan Java annotations during application installation which can take
significant amount of time
– For a Web module, that includes both the classes packaged directly within the WAR file (under
the WEB-INF/classes directory), and classes that are packaged in JAR files within the WAR file
 Ways to optimize applications directly
1. Only mark modules as JEE5 level when they contain JEE 5 content
2. If the module is known to have no annotations, use the "metadata-complete" flag
• See speaker notes for more details
3. Restructure the application to place utility JAR files, which are known to contain no annotations
information, into shared libraries and/or root of the EAR
• These are not scanned for annotations
– See for more information:
• http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/u
run_rapp_metadata_lockdd.html

 Ways to use configurable filtering (7.0.0.5 and later)


– Can identify which modules and/or Java packages to ignore for annotations processing
– Ignore-Scanning-Archives and Ignore-Scanning-Packages. A default set of values are provided in
the amm.filter.properties file that resides in <WAS_HOME>/properties.
– See for more information:
• http://www.ibm.com/support/docview.wss?uid=swg1PK87053
154

Revision Date 06/2016


Scanning for annotations… New
November
2009

 More files are now processed (e.g. .zip files)


– There have been some problems now that additional file types are
processed as part of the scanning
– One example is encrypted zip files that used to be ignored prior to v7.0
– Some problems can be avoided starting in v7.0.0.7 by the following:
1. Go to the AdminConsole of the Deployment Server, navigate to:
– Application servers --> <deployment server name> --> Java and Process Management --> process
Definition --> control --> Java Virtual Machine --> Custom Properties
– Add com.ibm.websphere.application.migration.disabled, to list with its value set to true and save
the configuration

2. Go to <profile_home>/properties/wsadmin.properties
– Edit and add com.ibm.websphere.application.migration.disabled=true

 See for more information:


– http://www-01.ibm.com/support/docview.wss?uid=swg1PK92880

155

Revision Date 06/2016


WebSphere API migration details

156

Revision Date 06/2016


Updated

WebSphere removed support September


2009

 Derby Network Server Provider using the Universal JDBC driver


– Use the Derby Network Server using Derby Client instead.
• Support for the DB2 legacy CLI-based Type 2 JDBC Driver and the DB2
legacy CLI-based Type 2 JDBC Driver (XA) has been removed
– Instead, use the DB2 Universal JDBC Driver
 The following Java Database Connectivity (JDBC) drivers
– WebSphere Connect JDBC driver, Microsoft® SQL Server 2000 Driver for JDBC , WebSphere
SequeLink JDBC driver for Microsoft SQL Server
– Alternatively use the DataDirect Connect JDBC driver or Microsoft SQL Server 2005 JDBC
driver
– Also see the WebSphereConnectJDBCDriverConversion command to convert data sources
from the WebSphere Connect JDBC driver
 Integrated Cryptographic Services Facility (ICSF) authentication mechanism
– Alternatively use the Lightweight Third-Party Authentication (LTPA) mechanism
 Support for the following Security custom properties

Old Property New Property


com.ibm.security.SAF.unauthenticatedId com.ibm.security.SAF.unauthenticated

com.ibm.security.SAF.useEJBROLEAuthz com.ibm.security.SAF.authorization

com.ibm.security.SAF.useEJBROLEDelegation com.ibm.security.SAF.delegation 157

Revision Date 06/2016


WebSphere removed interfaces
 All classes in the com.ibm.websphere.servlet.filter package
– ChainedRequest , ChainedResponse , ChainerServlet and ServletChain

– Alternatively use javax.servlet.filter classes

 Web services gateway customization API


– Alternatively replace your existing filters with a combination of JAX-RPC handlers and
service integration bus mediations

 The following miscellaneous classes

Old Class New class

com.ibm.websphere.servlet.session.UserTransactionWrapper Store a UserTransaction directly into the HTTP session

com.ibm.websphere.rsadapter.DataDirectDataStoreHelper com.ibm.websphere.rsadapter.ConnectJDBCDataStoreHelper

com.ibm.websphere.rsadapter.MSSQLDataStoreHelper com.ibm.websphere.rsadapter.MicrosoftSQLDataStoreHelper

158

Revision Date 06/2016


DistributedMap updated support Updated
February
2013

 DistributedMap entrySet() method was not available on V7.0 or higher


– Caused ClassCast exception
– Returned a set of keys instead of a set of key/value pairs
– Reverted to old behavior key/value pairs in fixstream
– Fixed in 7.0.0.27, 8.0.0.6 and 8.5.0.2
– www-01.ibm.com/support/docview.wss?uid=swg1PM71965

159

Revision Date 06/2016


v6.1 Changes

160

Revision Date 06/2016


Administration Changes

161

Revision Date 06/2016


Administration script required changes
 Administration scripting changes SIB Bus creation
– Securing requires a new parameter (busSecurity) instead of the previous
parameter (secure)
 Changes for removed features
– Support for the Secure Authentication Service (SAS) IIOP security
protocol.
– Support for the Common Connector Framework (CCF).
– Support for the IBM Cloudscape Version 5.1.x database.
 Simplified Certificate/Key Management
– Movement away from dummy key files to new certificate model
– Property file changes
• New file: ssl.client.props
• Reorganized files: soap.client.props, soap.server.props
– SSL configuration changes
• SSL repertoire changed, but old model still supported as well

162

Revision Date 06/2016


Administration script required changes

 Foreign cell names bootstrapAddress change


– Foreign cell name bindings enables your applications to access other
applications in other cells
– “bootstrapAddress” has changed to “bootstrapAddresses”
– Existing bootstrapAddress attribute is still supported and is deprecated

163

Revision Date 06/2016


New
Security script changes March
2007

 Security model has been enhanced


– Existing scripts will still work with existing model
• But you are not able to take advantage of new model
– At some point you will want to rework these scripts to use the
newly provided AdminTasks
– Additional documentation has been provided on the new model
• Commands for the security enablement group of the AdminTask
object
– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.d
oc/info/aes/ae/rxml_atsecurityenable.html

• Automating SSL configurations using scripting


– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/i
nfo/ae/ae/txml_automatessl.html

• Creating self-signed certificates using scripting


– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/i
nfo/ae/ae/txml_managecert.html

• See Others in Speaker notes


164

Revision Date 06/2016


New
Administrative script tools December
2006

 WebSphere admin automation tools for the creation and


maintenance of wsadmin Jython files
– Includes an editor with an outline view, color syntax highlighting
and context sensitive code completion
– Integration with the new
"command assist" function
available in the admin console
• Intercepts generated commands for
easy insertion into Jython Script

 Jython debug support provides


an integrated debugger for stepping
through the execution of a wsadmin
Jython script
 Jacl2Jython conversion assistant 165

Revision Date 06/2016


WebSphere configuration removals
 SAS and zSAS are no longer supported
– Deprecated since v5.1
– It was used for Interoperability with older versions
– Use CSIv2 instead
 zOS specific configuration changes
– DB2 for zOS Local JDBC Provider (RRS) is removed
• Use DB2 Universal driver instead
• Migration tooling for JDBC Provider conversion
– See Resources under “zOS Specific”
– System SSL supported for Daemon only
• Use JSSE/JSSE2 support instead

 Log Analyzer is removed


– Use the Log and Trace Analyzer tool for Eclipse in the Application Server
Toolkit (AST)

166

Revision Date 06/2016


z/OS Migration Management Tool New
February
2008

 New alternative for


generating zOS Migration
JCL jobs
 Available with Application
Server Toolkit (AST) 6.1.1 or
later
 Launch from Preferences
window

167

Revision Date 06/2016


New
Profile management tools replaced March
2007

 zOS support is unchanged from v6.0 to v6.1


 Profile creation is supported by two types of commands
– Scripts
• v6.0 is wasprofile.sh(bat)
• v6.1 is manageprofiles.sh(bat)
– Note that wasprofile.sh(bat) is deprecated but still supported
• Same command line parameters
– Graphical User Interface (GUI)
• v6.0 is bin\ProfileCreator\pctXXX.exe
– “xxx” varies based on the Operating System
• v6.1 is bin\ProfileManagement\pmt.sh(bat)

168

Revision Date 06/2016


Profiles
 Increased flexibility and other benefits
 Beware that some scripts may break
– Use USER_INSTALL_ROOT\logs
– Not WAS_HOME\logs

 config, bin, log… directories now exist under


each profile

 /lib and jar locations have


changed
– Avoid building your own install
images – use the supported ones
 Classes directory is removed
–Use Shared libraries

169

Revision Date 06/2016


New
Directory structure changes March
2007

 Direct references to WebSphere jar files


– The structure of WebSphere jar files changes in v6.1
– Some of the jars have moved from
• /lib to /plugins
– If you referenced these jars directly in scripts you will have to
make changes
– However, it is not always as easy as finding the classes in the
new location
• OSGI needs to be initialized
– The safest approach is to call the appserver/bin/setupCmdLine
shell in your scripts
– This will setup the correct classpaths for you

170

Revision Date 06/2016


Install response file changes New
March
2007

 For all but zOS, the response files have changed


– The ISMP format (-W option=value and –P option=value) replaced with an -OPT option, takes “sub-options”
V6.0 option V6.1 option

-W silentInstallLicenseAcceptance.value=”true” -OPT silentInstallLicenseAcceptance.value=”true”

-W detectedexistingcopypanelInstallWizardBean.choice=”installnew” -OPT installType="installNew"

-P samplesProductFeatureBean.active=”true” (only used if -OPT feature="samplesSelected" for samples when –OPT

detectedexistingcopypanelInstallWizardBean.choice="addFeaturesAndFixes installType=”installNew” or –OPT installType=”addFeature”

") (used for incremental installs)


-OPT feature="noFeature"for no samples, when -OPT

installType="installNew"(installType cannot equal addFeature if

you don’t select to install any features)

-P javadocsProductFeatureBean.active=”true” No equivalent

-P wasProductBean.installLocation= -OPT installLocation=Note this format will vary based on OS

-W ndsummarypanelInstallWizardBean.launchPCT=”false” -OPT createProfile="false"

-W ndsummarypanelInstallWizardBean.launchPCT=”true” -OPT createProfile="true"And see the next entry in this table


171

-W pctresponsefilelocationqueryactionInstallWizardBean.fileLocation See Speaker notes for this entry


Revision Date 06/2016
Port usage
 v6.1 uses more ports than previous versions
– Can be an impact to those that tightly control port access
– Can also cause more port conflicts
– See
• http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.i
bm.websphere.base.doc/info/aes/ae/rmig_portnumber.html

Server Type v4.0 v5.x v6.0 v6.1

Application 8 16 17 18

DMgr n/a 11 17 17

Node Agent n/a 9 11 10

172

Revision Date 06/2016


New
Migration and Feature Packs February
2008

 Some restrictions exist with Feature Pack usage


– Cannot migrate to any v6.1.x profile that has been augmented for any v6.1
feature pack
– Can only augment a new v6.1.x standalone server or custom profile
 Deployment Manager profiles
1. Migrate a v5.x or v6.0.x deployment manager to a v6.1.x deployment
manager profile
2. Migrate all the federated nodes to v6.1
3. Augment the v6.1.x deployment manager profile with the Feature Pack that
you want to use
 Standalone server or custom profiles
– Can either Migrate or augment for Feature Pack usage but cannot do both
– Alternatives if you want both:
• Migrate as you normally would
• Add a new cell specifically for Feature Packs
• Add a new node in an existing cell for Feature Packs

173

Revision Date 06/2016


Development Changes

174

Revision Date 06/2016


New
Development tool overview January
2007

 IBM Rational development tools


– RAD v7.0 is the new development toolset
– RAD v7.0 has similar requirements as RAD v6.0
• Performance improvements in key scenarios
– Based on Eclipse v3.2
– Support for SOA, Web Services and Portal development
– Support for Java5
– Previous supported runtimes
• WebSphere Application Server v5.1 and v6.0
– New supported runtimes
• WebSphere Application Server v6.1
• DB2 Universal Database™ (UDB) V9
• Portal V6

175

Revision Date 06/2016


New

Positioning of the Tool Offerings December


2006

RSA, WID, WebSphere Developer for Z, …


• RAD, RWD, RSA provide the first
class IBM design/construction tools
Rational: RAD, RSA
for the WebSphere Application Server
UML modeling & visualization,
• Focus is on the graphical construction
Graphical application construction of applications and code generation
for maximum developer productivity
Component test automation & mgmnt

Code analysis, complexity & correctness • AST ships with WAS, and provides
WebSphere: AST complete WebSphere support
Application trace &assembly,
WAS app creation, profiling • It is focused at a more basic (textual)
level than RAD, but provides support
deployment & unit test support to create & deploy WAS apps
Eclipse: Base & WTP
• Eclipse WTP (Web Tools Platform) is
Basic framework, Web a new open source project

Tools, Models & Wizards


176

Revision Date 06/2016


Development tool overview New
October
2006

 AST is a proper subset of RAD


– No Embedded WebSphere Test Environments
• Must use an installed WebSphere Application Server v6.1
environment to test
– No support for previous versions of WebSphere Application Server
– No Page designer and site designer (web site tools)
– No JSF tools
– No Code review tools
– No Component testing tools

177

Revision Date 06/2016


Moving to JRE 5

178

Revision Date 06/2016


JRE 5 impacts

 For an introduction, see the "J2SE 5 in a Nutshell“


– http://java.sun.com/developer/technicalArticles/releases/j2se15/

 Applications using the new language features and JRE 5 can be


deployed only to v6.1 nodes.
– When compiling applications can specify '-source' and '-target' modes for
earlier JDK targets
– E.g. '-source 1.4', and 'target 1.4'

 Java Serialization
– Serialization is not compatible across JRE 1.4 and earlier releases – force
UUIDs as a general practice

 Any new features in Java that result in new classes can cause
ambiguous references
– If these new classes match ones already defined in your program
179

Revision Date 06/2016


JRE 5 source compatibility
 JRE 5 is generally upwards source-compatible with JRE
1.4.2 except for:
– Some APIs in the sun.* packages have changed. These APIs are not intended for use
by developers. Developers importing from sun.* packages do so at their own risk
– Variables named 'enum.‘ - The word 'enum' has become a language keyword
• NOTE – Some IBM WebServices generated code may include “enum” as package
names – should regen (change com.ibm.ws.webservices.engine.enum… to
com.ibm.ws.webservices.engine.enumtype…)
– Generification – Most source code that uses generified classes, constructors, methods,
and fields will continue to compile in 5.0, though some will not.
– Ambiguous references to classes with base names of 'Proxy,' 'Queue,' or 'Formatter.‘ –
these are new classes in some JDK 5 packages
– JAXP – a variety of changes, some Binary incompatibility
• See http://java.sun.com/j2se/1.5.0/docs/guide/xml/jaxp/JAXP-Compatibility_150.html
– JDBC 5.0 - comparing a java.sql.Timestamp to a java.util.Date by invoking compareTo
on the Timestamp results in a ClassCastException. Binary incompatibility
– BigDecimal's toString() method behaves differently than in earlier versions. J2SE 5.0
added toPlainString() to BigDecimal, which behaves exactly like the toString() method
in earlier versions. Binary incompatibility
– Direct use of private implementations of XML and XSL parsers is strongly discouraged
• Can use existing classloader support to use an application class path, not the Java
virtual machine bootstrap class path 180

Revision Date 06/2016


JRE 5 verboseGC output New July
2010

 The GC output format varies depending on the garbage


collection policy that you use
Title Description URL

MustGather: Analysing Format of verbose GC http://www-


Verbose GC Output for output from the gencon 01.ibm.com/support/docview.wss?
-Xgcpolicy:gencon GC policy uid=swg21222486

MustGather: Analysing Format of verbose GC http://www-


Verbose GC Output for output from 01.ibm.com/support/docview.wss?r
- optavgpause GC policy s=727&uid=swg21222459
Xgcpolicy:optavgpause

MustGather: Analysing Format of verbose GC http://www-


Verbose GC Output for output from optthruput 01.ibm.com/support/docview.wss?r
-Xgcpolicy:optthruput GC policy s=727&uid=swg21222443

181

Revision Date 06/2016


JRE 5 and JSSE2
 Package com.ibm.net.ssl (JSSE)
– Affects classes related to creating and configuring secure socket factories
• E.g KeyManager, TrustManager, X509KeyManager, X509TrustManager
– Deprecated since JRE 1.4 and replaced with javax.net.ssl package
– Removed as from JRE 5
 See these references
– http://www.ibm.com/developerworks/java/jdk/security/50/ (See “IBMJSSE2 Guide”
and samples)
• http://www.ibm.com/developerworks/java/jdk/security/50/secguides/jsse2Docs/JSS
E2RefGuide.html#knowndiff (known differences between JSSE and JSSE2)
– http://www.ibm.com/developerworks/java/jdk/security/142/secguides/jssedocs/api/com
/ibm/net/ssl/package-summary.html
– ftp://ftp.software.ibm.com/s390/java/zOSSecurityRefGuide.html (zOS unique aspects)

182

Revision Date 06/2016


New
JDK 5 feature usage and JSPs November
2007

 If JSP's use any JDK 1.5 specific code, will get an error during
compile
– The default runtime compiler setting for JSPs is JDK 1.3
 There are two solutions
1. (Ok) Application installation
 The option to specify the JDK Source level when installing
2. (Better) Inside RAD
 The Web Extension tab
 In JSP Attributes table add “jdkSourceLevel jdkSourceLevel” as
name and 15 as value.
 Adds an entry to Web Project/WEB-INF/ibm-web-ext.xmi
• E.g. <jspAttributes xmi:id="JSPAttribute_1" name="jdkSourceLevel"
value="15"/>

183

Revision Date 06/2016


WebSphere API details

184

Revision Date 06/2016


WebSphere removed APIs
 Common Connector Framework (CCF) is removed
– Deprecated since v5.1
– Use J2C instead (see Resources for more information)
 Support for Cloudscape v10.1 instead of v5.1
– Cloudscape is not supported for direct customer production use
– Is Derby v10.1 plus NLS and QA
– Affects JDBC driver configuration
– Changes in some DB types; some conversions required

 Mozilla Rhino Javascript is removed


– Required licensing agreement
– Download from the Web instead

 Java Document Object Model (JDOM) is removed


– Download from the Web instead
185

Revision Date 06/2016


WebSphere removed APIs…

 Security
– Removed com.ibm.websphere.security.CustomRegistry,
• Use: com.ibm.websphere.security.UserRegistry
– See InfoCenter for full details
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rmig_deprecationlist

186

Revision Date 06/2016


New
Change in EJB setRollbackOnly() February
2009

 EJB setRollbackOnly() change description:


– EJB1:method1 and EJB2:method2 have Container Managed Transactions and are defined with
a transaction attribute of 'TX_REQUIRED'.

– EJB1 and EJB2 are hosted in the same WebSphere Application Server

– HTTP request invokes EJB1:method1 outside of any transaction. (The Enterprise JavaBeans
Container for EJB1 creates a new transaction) EJB1:method1 invokes EJB2:method2.
(EJB2:method2 runs under the same transaction)

– EJB2:method2 invokes setRollbackOnly(). EJB2:method2 returns normally. The HTTP request


receives a RemoteException org.omg.CORBA.TRANSACTION_ROLLEDBACK.

– In WebSphere Application Server V6.0 and earlier, the HTTP request receives the business
result of EJB1:method1, not a RemoteException.

• In each case the transaction is rolled back, but in V6.1 the HTTP request does not receive
the business results returned by EJB1:method1.

187

Revision Date 06/2016


New
JNI on Solaris 10 x86_64 December
2006

 Changes between v6.0.x versus v6.1.x on 64 bit


– In v6.0.x WebSphere Application Server is a 32bit application
• The JVM is a 32 bit application
• JNI calls performed by customer applications are also 32 bit
– In v6.1.x WebSphere Application Server is a 64bit application
• JNI calls performed by customer applications are also 64 bit

• Reference:
– http://www-1.ibm.com/support/docview.wss?uid=swg27007527

188

Revision Date 06/2016


v6.0 Changes

189

Revision Date 06/2016


Administration changes

190

Revision Date 06/2016


Administration script required changes

 Parsing the string output of the ObjectName class:


– configID used in v6 contains a vertical bar character ('|") instead of a
colon character (':')
– In general try and use a different technique such as queryNames
 regexp Jacl command
– Version of Jacl is different in v6.
• 1.3.1 versus 1.2.6
– regexp command supports only tcl 8.0 command syntax. Some of your
existing scripts may fail, e.g.
• “error while eval'ing Jacl expression: couldn't compile regular expression
pattern: ?+* follows nothing”

191

Revision Date 06/2016


Administration script evolutionary

 Transaction log directory change:


– Old: ApplicationServer:TransactionService
– New: ServerEntry:RecoveryLogs
– Uses old location until new location is set
 HttpTransports (n/a to zOS v6.0)
– HTTP Transports replaced by ChannelFramework
– Affects all scripts accessing HTTP Transports
– Conversion example in InfoCenter
 ProcessDefinition (n/a to zOS)
– “processDef” changed to “processDefs”

 Migration runtime tools can be used to maintain script


compatibility with:
– HttpTransports and processDef
192

Revision Date 06/2016


Administration script zOS only changes

 Several bugs in zOS scripting were fixed when moving to v6.0 –


causes some breakage
 New exceptions are thrown for some conditions
– E.g. stopping server and starting applications when conditions are already met
– Fix by catching the exceptions:
if { [catch {“yourCommandHere”}] }
{ puts "it failed" }
else
{ puts "it was ok" }

 taskInfo command keywords changed


– Old: "module", "EJB", "uri", …
– New: "Module", "EJB", "URI", …

193

Revision Date 06/2016


Administration console port

 The administrative console port number changed from 9090 to


9060
– Changed in order to minimize port conflicts on some operating systems
– Runtime Migration tooling will add v5.x value to the configuration

194

Revision Date 06/2016


Port usage

 V6.0 uses more ports than previous versions


– Can be an impact to those that tightly control port access
– Can also cause more port conflicts
– See
• http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websph
ere.base.doc/info/aes/ae/rmig_portnumber.html

Server Type v4.0 v5.x v6.0

Application 8 16 19

DMgr n/a 11 17

Node Agent n/a 9 11


195

Revision Date 06/2016


Profiles

 Increased flexibility and other benefits


 Beware that some scripts may break
– Use USER_INSTALL_ROOT\logs
– Not WAS_HOME\logs

 config, bin log… directories now exist under


each profile

 /lib and jar locations may also


change
–Avoid building your own install
images – use the supported ones

196

Revision Date 06/2016


JMS Support

 Embedded messaging implementation changed


– Existing JMS resources are still supported unchanged but not optimal
– Should upgrade to v6 JMS Resources when feasible
– JMS Server configuration changed
• JMSServer object no longer exists
– Data on v5.x queues are not migrated automatically
• See SibMsgMigrationUtility.ear
– DIRECT no longer supported on ConnectionFactories instead it should be
changed to QUEUED
– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.pmc.doc/tasks/tjn0040_.html

197

Revision Date 06/2016


CoreGroup considerations

 Each Application Server, NodeAgent and DMgr are added to the default
CoreGroup by Migration tools
 Performance concerns for larger cells
– v6.0 - recommend maximum around 50 objects per CoreGroup
– v6.1 and later - recommend maximum around 100 objects per CoreGroup
 Mitigate by managing CoreGroups manually
– Each CoreGroup must contain at least one NodeAgent or DMgr process
• Requirement removed in v7.0 and later
– Put all members in the same cluster in the same CoreGroup
2 Processes 3 Processes 4 Processes 5 Processes
1 Connections 3 Connections 6 Connections 10 Connections

CoreGroup CoreGroup CoreGroup CoreGroup

198

Revision Date 06/2016


Updated
HA Manager disablement March
2006

 If necessary and meets your environment, HA Managers can be disabled by


using a wsadmin script
 For v6.0 This also disables:
– Memory-to-memory replication (any of the following)
• Http Session memory-memory replication
• Dynacache cache replication
• EJB statefull session bean failover
– Singleton failover when WebSphere JMS provider is configured in a cluster
– Workload management routing for EJB IIOP and JMS components
– On-demand configuration routing for Proxy server and Web services
 For v7.0 This also disables:
– Workload management routing for Proxy Server (HTTP and WS-Addressing) and SIP
requests
– Resource adapters configured for high availability
 Be sure to disable all HA Managers within a CoreGroup
 For more information see
– http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/tr
un_ha_ham_enable.html

199

Revision Date 06/2016


Development Changes

200

Revision Date 06/2016


Development tool overview
 IBM Rational development tools
– RAD v6.0 is the development tool for WAS v6.0
– Very compatible with WSAD
– Based on Eclipse 3.0
– “Similar” hardware requirements to WSAD
• Available RAM (768Min, 1G recommended)
– Supports J2EE 1.2, 1.3 and 1.4 applications
– Test support for WebSphere v5.0, v5.1 and v6.0
– Migration of WSAD v5.1 workspace to RAD v6.0
– Projects import directly from WSAD v5.1
• Project import from WSAD v5.0 may work
– Alternatively create a new project and import the source

201

Revision Date 06/2016


J2EE 1.4 impacts

 Some changes may be required due to tightening of J2EE levels


– More deployment descriptor errors are found during application
installation
• Typically the problems are hand-edited changes and used to work or
were ignored in prior versions
– Some JSP behavior and interface changes
– Some Servlet behavior and interface changes
– Some Web Services behavior changes

202

Revision Date 06/2016


JSPs useBean tag

 JSP useBean tag


– Tightened conformance to JSP 1.2
– Behavior change starting in v5.1
– Old: <jsp:useBean id="pg" class="exp.ObjExp.exampleTbl"
scope="request" />
– New: <jsp:useBean id="pg" type="exp.ObjExp.exampleTbl"
scope="request" />
– http://www-
1.ibm.com/support/docview.wss?rs=180&context=SSEQTP&q1=jsp%3ausebean&uid=swg2116
3939&loc=en_US&cs=utf-8&lang=en

203

Revision Date 06/2016


JSPs and unnamed packages

 In JDK 1.4, importing classes from the unnamed package is not


valid
– See http://java.sun.com/j2se/1.4/compatibility.html#source

 As of JSP 2.0, it is illegal to refer to any classes from the


unnamed (a.k.a. default) package
– Surfaces as a translation error
– This also affects older applications that run on v6.0
 For example, if myBeanClass is in the unnamed package, and
you reference it in a jsp:useBean tag
– <%@page import="myBeanClass" %> . . .
– <jsp:useBean id="myBean" class="myBeanClass" scope="session"/>

204

Revision Date 06/2016


JSP page encoding Update
d May
2008

 Prior to JSP 2.0, JSP pages in XML syntax determined their


encoding by
– Examining the pageEncoding or contentType attributes of their page
directive,
– Defaulting to ISO-8859-1

 JSP 2.0 encoding is controlled by the XML specification.


– These JSP documents must be changed to include an appropriate XML
encoding declaration prolog.
– <?xml version="1.0" encoding=“UTF-8"?>

205

Revision Date 06/2016


JSP page encoding scope

 Page encodings are determined differently


– In JSP 1.2, on a per translation unit basis
– In JSP 2.0, on a per-file basis.

 Example: if a.jsp statically includes b.jsp, and a page encoding is


specified in a.jsp but not in b.jsp,
– In JSP 1.2 a.jsp’s encoding is used for b.jsp,
– In JSP 2.0, the default encoding is used for b.jsp.

206

Revision Date 06/2016


JSP request.getAttribute() behavior
 JSP Engine in v5.1 and earlier
– Casts the returned value to “String”

 JSP Engine in v6.0


– No longer does the cast, returns “Object”

 Impacts those applications dependant on the old behavior


– Fix available in 6.0.2.11 and later (PK20187)
– Configurable settings
• Webcontainer CustomProperty “com.ibm.wsspi.jsp.useStringCast ”
• JSPAttribute in the extensions file (useStringCast)

207

Revision Date 06/2016


JSP Tag Library change

 Change in how stringently tags are validated


 “teiclass” is now checked for valid class defintion
<tag> <name>StateFinder</name>
<tagclass>com.company.sample.tags.SomeFinder</tagclass>
<teiclass>empty</teiclass>
<bodycontent>Jsp</bodycontent>
<info>

 “empty” is now checked for existence, produces a warning


message

208

Revision Date 06/2016


JSP fragments and tags Update
d May
2008

 JSP fragments within an If-Else condition no longer compile


– Used to assume that the same tag variables to be declared twice in
an If-Else condition
– Configurable setting
• com.ibm.wsspi.jsp.usescriptvardupinit
• PK29373 - v6.0.2.17, v6.1.0.5 and later
 Tag <tsx:repeat> using “index” attribute now produces
“java.lang.Integer” instead of “int”
– Configurable setting
• com.ibm.wsspi.jsp.userepeatint
• PK26741- v6.0.2.15, v6.1.0.9 and later

209

Revision Date 06/2016


WebContainer changed settings Updated
May
2008

 The “+” sign is treated incorrectly in a URI


– The plus sign character is incorrectly treated as a special character
that needs to be decoded when it appears in the request URI.
– Configurable setting
• com.ibm.ws.webcontainer.decodeURLPlusSign
• PK23481 – v5.1.1.11, v6.0.2.11 and later

 PathInfo omitted while redirecting by response.sendRedirect()


– With this fix the extra path information until the last trailing slash will
be appended to the uri and then redirected to the resource.
– Configurable setting
• com.ibm.ws.webcontainer.RedirectWithPathInfo
• PK23779 – v6.0.2.13 and later

210

Revision Date 06/2016


WebContainer configurable settings Updated
May
2008

 Different behavior for trailing "/" in uri.


– In 5.x, if the default URI mapping for "/" is not overridden by an
application, a request for a URI matching the context root of a web
application that does NOT end with "/" will, as a convenience, redirect
to "/"
– Configurable setting
• com.ibm.ws.webcontainer.redirectcontextroot
• PK27974 – v6.0.2.15, v6.1.0.3 and later

 Default content-type setting on v6 is "text/plain“; in v5 is


"text/html."
– Configurable setting
• com.ibm.ws.webcontainer.contenttypecompatibility
• PK27527 – v6.0.2.13, v6.1.0.2 and later
211

Revision Date 06/2016


Servlet URL requirement

 Slash prepend required for getResourcePath(…) or and


getResourceAsStream(…) to avoid MalformedURLException
– Support of Servlet 2.3 requirement
– Even if your own in-house code makes correct usage of this
method other 3rd party packages may not(ex: Apache Struts
Framework)
– Custom property in WebContainer avoids this
• Property=“prependSlashToResource”
• Setting is global to all Applications running on a server

212

Revision Date 06/2016


New
Java Server Faces (JSF) February
2008

 Java Server Faces is included in v6.0 and later


– For v6.0 the level is JSF 1.0
– For v6.1 the level is JSF 1.1
 This may conflict with other JSF enablers you have used in prior
versions of WebSphere Application Server
– One example is MyFaces
– Either convert to use the shipped level of JSF
– Or you can continue to use your JSF support in most cases by using
classloader support
• Set Classloader to PARENT_LAST
 See the following for more information
– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.doc/info/ae/ae/cweb_javaser
ver_faces.html

213

Revision Date 06/2016


JSP reserved character sequence

 JSP reserved character sequence due to JSF inclusion


– “The character sequence '#{' is now reserved by JSP. So If you are using
'#{' in template text or as a literal in an attribute value for a taglib, the
sequence will have to be escaped.”

214

Revision Date 06/2016


New
Client datasource access May
2008

 The client container support was added in v6.0


– Prior to this you could look up a datasource from a non-server
process
• Required override a security setting in j2c.properties tag
– In v6.0 and later, the expectation is to configure the datasource,
and it's security data, in the client configuration tool.
• The setting in the j2c.properties file is no longer used and there is no
equivalent.

 See the following for more information


– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.webs
phere.nd.doc/info/ae/ae/tcli_launchclient.html
– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.webs
phere.nd.doc/info/ae/ae/ucli_tconfigclient.html

215

Revision Date 06/2016


Restriction creating threads New
May
2008

 Applies to programs running in the Application server process


– The Client container has no restrictions

 In v5.0 and v5.1 (J2EE 1.3) there was a restriction that you could
not create threads in EJBs
– Alternative is to use MessageDrivenBeans (MDBs)

 In v6.0 and later (J2EE 1.4) the restriction was clarified to


include not being able to create threads in either the Web or EJB
containers
– Alternative is to use the WorkManager

216

Revision Date 06/2016


New
Web Services SOAP change August
2008

 Additional SOAP message validation has been added in v6.0


and later
 May result in some messages that were originally invalid to no
longer work
– For example:
• Bad XML: https://216.94.21.10/demo-api/services/TransactionInitiator
• Should have been: <hdr1>https://216.94.21.10/demo-
api/services/TransactionInitiator</hdr1>
– Now results in: org.xml.sax.SAXException: WSWS3700E: Error: Non-
whitespace character content

 The only alternative is to correct the invalid messages

217

Revision Date 06/2016


JMS Support
 J2EE 1.3 applications run unchanged
– Benefits can be found by upgrading
• http://www.ibm.com/developerworks/java/library/j-jms11/.

 J2EE 1.4 upgrade


– Biggest change in in MDB descriptors
• http://www.ibm.com/developerworks/java/library/j-getmess/.

– Activation Specifications instead of Listener Port


• However some behavior may not be available via Activation
Specifications. One popular one is the ability to start and stop
Listener Ports
• http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.do
c/ref/rjn0040_.html

 Scripts that make use of MDB’s listener port retry count must be
changed to use maximum failed deliveries
218

Revision Date 06/2016


WebSphere API migration changes

219

Revision Date 06/2016


New
JNDI direct references November
2007

 JNDI direct references were deprecated in v6.0


 However, this has been reversed and the pattern is no
longer deprecated
– Starting with v6.0.2.19 and v6.1.0.5

 JNDI indirect references are the recommended pattern


– Settings are created in application resource references
– Another level of indirection that can be set instead of changing code
– Some Security credential settings are defaulted using the JNDI
direct pattern
 For more information see
– http://www-1.ibm.com/support/docview.wss?uid=swg21220886
– http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.bas
e.doc/info/aes/ae/rdat_jnditips.html

220

Revision Date 06/2016


WebSphere removed APIs

 Usually few or no impacts to applications


– Admin (EARUtils only)
– Als
– Anttasks
– Ras
– Security
 PME components
– Activity Session
– AsyncBeans
– Dynacache
– ObjectPool
– Scheduler
– Userprofile
 See InfoCenter for full details
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rmig_deprecationlist
221

Revision Date 06/2016


Copyright and Trademarks

© IBM Corporation 2011, 2016.


All Rights Reserved.

IBM, the IBM logo, and ibm.com are trademarks or


registered trademarks of International Business Machines
Corp., registered in many jurisdictions worldwide. Other
product and service names might be trademarks of IBM or
other companies. A current list of IBM trademarks is
available on the Web at “Copyright and trademark
information” at www.ibm.com/legal/copytrade.shtml.

222

Revision Date 06/2016

You might also like