If you missed InterConnect 2015 or just could not get to all sessions of interest, see presentation material for session ASZ-2026 that I co-presented with Marcel Mitran (IBM) called " Reasons to Love IBM Java and WebSphere Application Server on z Systems'.
Marcel outlined the latest in innovation and performance with IBM z13 and Java 8 and I presented HCSC WAS on z/OS V8.5.5 x performance data, using Java V6.0.1 & Java V7.1, showing how we achieved up 30% CPU reduction with WASz V8.5.5.1 and Java V6.0.1 and additional 10-12% with WASz V8.5.5.2 and Java V7.1. I also included lessons learned and best practices information.
Java V8 on z/OS goes GA on 3/6/15 and IBM intends to exploit 64-bit SDK for z/OS, Java V8 in IBM WebSphere Liberty Profile for z/OS, and full profile of WebSphere Application Server for z/OS. See Software Announcement 215-004 - http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&subtype=CA&htmlfid=897/ENUS215-004
Here are some performance highlights using Java V8 and z13 -
- Java SDK 8 applications running with z13 Simultaneous Multithreading (SMT) enabled zIIP specialty engines can achieve throughput improvements of up to 50% compared to Java 7 on zEC12
- Customers running Encryption Facility to share sensitive files with business partners may encrypt their data using clear key in half the time
and reduce the CPU time by one third when using IBM 64-bit SDK for z/OS, Java V8 8 on z13 compared to using Java 7.1 on
zEC12 (source - http://www.infinite-blue.com/blog/wp-content/uploads/2015/01/Vicom-012215.pdf )
Also read related article 'JAVA PERFORMANCE ON IBM Z SYSTEMS: IBM Z13 AND IBM JAVA SDK 8' http://mainframeinsights.com/java-performance-ibm-z-systems-ibm-z13-ibm-java-sdk-8/
2. 1
Java Road Map
Language Updates
Java 5.0
• New Language features:
• Autoboxing
• Enumerated types
• Generics
• Metadata
Java 6.0
• Performance Improvements
• Client WebServices Support
• Support for dynamic languages
• Improve ease of use for SWING
• New IO APIs (NIO2)
• Java persistence API
• JMX 2.x and WS connection for JMX
agents
• Language Changes
Java 7.0
IBM Java Runtimes
IBM Java 5.0 (J9 R23)
• Improved performance
• Generational Garbage Collector
• Shared classes support
• New J9 Virtual Machine
• New Testarossa JIT technology
• First Failure Data Capture
• Full Speed Debug
• Hot Code Replace
• Common runtime technology
• ME, SE, EE
IBM Java 6.0 (J9 R24)
• Improvements in
• Performance
• Serviceability tooling
• Class Sharing
• XML parser improvements
• z10™ Exploitation
• DFP exploitation for BigDecimal
• Large Pages
• New ISA features
5.0
6.0
2005 2009
SE5.0
18platforms
SE6.0
20platforms
EE 5
WAS
6.1
WAS
7.0
2006 2008
WAS
6.0
200704
EE 6.x
**Timelines and deliveries are subject to change.
2010 2011
IBM Java 6.0.1/Java 7
(J9 R26)
• Improvements in
• Performance
• GC Technology
• z196™ Exploitation
• OOO Pipeline
• 70+ New Instructions
• JZOS/Security Enhancements
WAS
8.5
2012 2013 2014
7.0
• Language improvements
• Closures for simplified fork/join
Java 8.0**
SE601/7.x
>=20platforms
IBM Java 7 (J9 R26 SR3)
• Improvements in
• Performance
• zEC12™ Exploitation
• Transactional Execution
• Flash 1Meg pageable LPs
• 2G large pages
• Hints/traps
IBM Java 7R1 (J9 R27)
• Improvements in
• Performance
• RAS
• Monitoring
• zEC12™ Exploitation
• zEDC for zip acceleration
• SMC-R integration
• Transactional Execution
• Runtime instrumentation
• Hints/traps
• Data Access Accelerator
SE601/7.x
>=20platforms
2015
IBM Java 8 (J9 R28)
• Improvements in
• Performance
• RAS
• Monitoring
• z13™ Exploitation
• SIMD
• SMT
• Crypto acceleration
SE8
>=20platforms
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
3. 2
IBM Java 8 – (available March 6th, 2015**)
IBM SDK for z/OS, Java Tech. Edition, Version 8
New Java8 Language Features
• Lambdas, virtual extension methods
IBM z13 exploitation
• Vector exploitation and other new instructions
• Instruction scheduling
General throughput improvements
• Up-to 17% better application throughput
• Significant improvements to ORB
Improved crypto performance for IBMJCE
• Block ciphering, secure hashing and public key
• Up-to 4x improvement to Public Key using ECC
• CPACF instructions: AES, 3DES, SHA1, SHA2, etc
Significantly improved application ramp-up
• Up-to 50% less CPU to ramp-up to steady-state
• Improved perf of ahead-of-time compiled code
Improved Monitoring
• JMX beans for precise CPU-time monitoring
Enhancements to JZOS Toolkit for Java batch
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
** www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&supplier=897&letternum=ENUS215-004#
4. 3
IBM z13 –
Taking Java Performance to the Next Level
Continued aggressive investment in Java on Z
Significant set of new hardware features tailored and
co-designed with Java
Simultaneous Multi-Threading (SMT)
2x hardware threads/core for improved throughput
Available on zIIPs and IFLs
Single Instruction Multiple Data (SIMD)
Vector processing unit
Accelerates loops and string operations
Cryptographic Function (CPACF)
Improved performance of crypto co-processors
New Instructions
Up to 2X improvement in
throughput per core for security
enabled applications
Up to 50%
improvement for generic
applications
New 5.0 GHz 8-Core Processor Chip
480Mb L4 cache to optimize for data serving
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
www-03.ibm.com/press/us/en/pressrelease/45808.wss
5. IBM z13: SMT – Simultaneous Multi-Threading
SMT permits multiple independent threads to execute on a single core concurrently
• Achieve more effectively utilization of processor resources
z13 SMT allows 2 threads-per-core to deliver better overall throughput for multiple
concurrent workloads
• Increases effective zIIP/IFL capacity
• Doubles number of eligible threads
Threads share resources – may impact single thread perf
• Pipeline (eg. physical registers, fxu, fpu, lsu etc)
• Cache
Throughput improvement is workload dependent
Two zIIP lanes handle more traffic overall
4ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
6. IBM z13: Vector Processing
SIMD – Single Instruction Multiple Data
Operate on multiple data-elements (vectors) simultaneously
• Can offer dramatic speed-up to data-parallel operations (matrix ops,
string processing, etc)
5ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
Vector registers are 128-bits wide and can be used
to operate concurrently on:
• Two 64-bit floating point values
• Four 32-bit floating point values
• Sixteen 8-bit characters
• Two 64-bit integer values
• etc
7. 6
Acceleration using SIMD with
IBM Java 8 and z13
IBM z13 running Java 8 on z/OS
Single Instruction Multiple Data (SIMD) vector engine exploitation
java.lang.String exploitation
- compareTo
- compareToIgnoreCase
- contains
- contentEquals
- equals
- indexOf
- lastIndexOf
- regionMatches
- toLowerCase
- toUpperCase
- getBytes
java.util.Arrays
- equals (primitive types)
String encoding converters
For ISO8859-1, ASCII, UTF8, and UTF16
- encode (char2byte)
- decode (byte2har)
Auto-SIMD
- Simple loops
(eg. Matrix multiplication)
Primitive operations are between 1.6x and 60x faster with IBM Java8
(Controlled measurement environment, results may vary)
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
8. 7
IBM Business Rules Processing with
IBM Java 8 and z13
Aggregate 2.1x improvement from IBM Java 8 and IBM z13
(Controlled measurement environment, results may vary)
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
9. Business Rules Processing – IBM z13 vs Intel Haswell
IBM z13 up-to 1.56x better throughput/core processing business rules
than Intel Haswell
8
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
Haswell - Linux - Java8 z13 - zOS - Java8
BusinessRules Processing with IBM z13
with Java8 -Small Ruleset
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Haswell - Linux - Java8 z13 - zOS - Java8
BusinessRules Processing with IBM z13
with Java8 -Large Ruleset
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
10. 9
Java Store, Inventory and Point-of-Sale App
with IBM Java 8 and z13
1.9x improvement in throughput with IBM Java 8 and IBM z13
(Controlled measurement environment, results may vary)
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
11. 10
z/OS WAS 8.5.5.5 – SSL-Enabled DayTrader 3.0
2.6x improvement in throughput with IBM Java 8 and IBM z13
(Controlled measurement environment, results may vary)
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
12. 1111
Mobile on z – z/OS Connect on IBM Java 8 and zEC12
(Controlled measurement environment, results may vary)
5 - 16.4% throughput improvement from IBM Java 8 and IBM zEC12
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
13. 1212
WebSphere – Linux on z Virtualized Cluster
(Controlled measurement environment, results may vary)
Between 1.36x and 1.66x improved throughput for a virtualized WAS cluster
running DayTrader on z13 when compared to zEC12
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1.60
1.80
zEC12 z13 SMT vs zEC12
Linux on z - SLES 11 SP3, WAS 8.5.5
Java 7.1, DayTrader3
8 CP - 16 guests
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1.60
1.80
zEC12 z13 SMT vs zEC12
Linux on z - SLES 11 SP3, WAS 8.5.5
Java 7.1, DayTrader3
32 CP - 64 guests
ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
14. HCSC Java on z/OS and
WebSphere Application
Server on z/OS V8.5.5
User Experience
15. About Health Care Service Corporation
Health Care Service Corporation (HCSC) is the fourth
largest health insurance company in the nation
Largest customer-owned health insurer in the U.S.,
founded in 1936, now with more than
14.5 million members, HCSC operates health
insurance Plans in Illinois, Montana,
New Mexico, Oklahoma, and Texas, as well
as Dearborn National
We're greater than 21,000 employees strong with 60
local offices and state-of-the-art technology, including
two Tier IV data centers – the industry's highest
reliability level – that provide the speed and data
security to meet our customers' current and future
business needs
14ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
16. Why WebSphere on z/OS (WASz)?
WebSphere on z/OS has been selected at HCSC as a preferred platform to support development and
deployment of the Core processing for new and existing (previously deployed on distributed platform)
Java mission-critical Applications for the following reasons:
Co-location performance benefits with tight integration with DB2, MQ and CICS –
3- 4X performance improvement for one of our largest WebSphere
on z/OS Applications
z/OS Hardware, Software, Storage and Network are all designed for maximum
application availability
WebSphere on z/OS is designed to support very high transactional volume
WebSphere on z/OS provides highest Quality of Service –
Performance, Scalability, Recovery/failover capability, High Availability, Stability,
Manageability, Maintainability and Security/Integrity
Use of specialty engines zAAPs or zAAP on zIIP reduces hardware and
associated software costs
By using WebSphere on z/OS you can minimize the number of physical tiers to
get to backend data
15ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
17. Features and Technology Unique to z/OS
Server Architecture
- Control/Servant Region Split
- Multiple Servant Region
Workload Management
- Leverages Workload Manager (WLM)
- WLM/RMF integration
- Work classified according to importance & performance goals
- Work is selected from WLM queue and managed to goal
- Provides Failover to available Servers
- Automatic servant restart after an outage
- Automatic startup of additional servants, as needed, based on Policies
WebSphere on z/OS Network Deployment Clustering across z/OS LPARs
- Horizontal scaling for increased throughput
- Continuous availability & fail-over
MQ Queue Sharing using Shared Queues across LPARs and XM memory
communication for optimum performance
DB2 Data Sharing across LPARs, with JDBC Type 4 driver with TCP/IP
OPTLOCAL or Type 2 driver using Fail-over Feature
16ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
18. Features and Technology Unique to z/OS
(continues)
SYSPlex Distributor - workload management and distribution across multiple
systems
Coupling Facility - high-speed inter-system communication, used with MQ Queue
Sharing & DB2 Data sharing
Resource Recovery Services - required for 2-phase commits
Low Latency - the time to move each message is less, which provides higher
throughput and faster completion of business processes
zSeries Application Assist Processor (zAAP) or zAAP on zIIP - specialty
assist processor dedicated exclusively to execution of Java workloads under z/OS;
priced much lower than general processors and not counted in processor-based
software licensing
Exploitation of Pageable Large Page support with Flash Express - Flash
Express adapter can help improve availability and performance during periods of paging
spikes
Mainframe security - cross-memory communications is completely secure
17ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
19. HCSC WebSphere on z/OS
Cell Architecture
18ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
20. Remote JDBC Type 4 driver using Sysplex Distributor for load balancing can utilize TCP/IP
OPTLOCAL option for Cross Memory communication (using local sockets) connecting to local DB2
on z/OS subsystem on the same LPAR and can provide fail-over across LPARs in the case of a DB2
outage
To reduce excess pathlength but still retain high availability, you can specify the OPTLOCAL keyword for DVIPA2 to optimize
processing. As long as local target resources are available and are not constrained, extra network flows and overhead through
the distributor are avoided, because the local system makes the decision to route the connection to the local instance.
When the decision is made to make the connection local, TCP/IP enables this connection for fast local sockets processing. This
provides a more efficient path through the TCP/IP stack for these communications. All traffic for this connection remains on
the local system and is not routed to the distributing stack.
For details see - http://www-01.ibm.com/support/knowledgecenter/#!/SSLTBW_2.1.0/com.ibm.zos.v2r1.halz002/sys_optlocal.htm
Local JDBC Type 2 Driver used with new Resource Adapter Fail-over feature allows to take full
advantage of the co-location between WAS and DB2 z/OS with JDBC Type 2 Driver without
being less available in the case of an DB2 z/OS outage
An alternative connection factory can be configured for each primary connection factory. This alternative connection
factory (data source) can point to another resource manager (DB2 z/OS) within the same Data Sharing Group, which is usually
located on another system.
During deployment the data source definition in the deployment descriptor of an application is assigned to the primary
data source. The alternative data source can be defined independently and can be referenced by the primary data source.
In the case of an DB2 outage WAS will notice that the DB2 connection is down and will fail-over to the alternative data
source. This happens completely seamless for the application. If the DB2 instance come back, WAS detects this and places new
connections using the primary data source (failback).
JDBC Type 4 vs Type 2 Driver In Fail-Over
19ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
21. HCSC WebSphere on z/OS
Java Exploitation
Currently running WAS on z/OS V8.5.5.2 which added IBM Java 7.1
support to WAS
We use Java V6.0.1 and Java V7.1.0.1, using 31 or 64 bit mode depending
on the Application
Java V6.0.1
R26_Java626_SR7_20131230_1725_B180580_CMPRSS
IBM J9 2.6 z/OS s390x-64 Compressed References 20131230_180580
J9VM - R26_Java626_SR7_20131230_1725_B180580
JIT - r11.b05_20131003_47443.02
GC - R26_Java626_SR7_20131230_1725_B180580_CMPRSS
java.runtime.version = pmz6460_26sr7fp1ifx-20140220_01 (SR7 FP1)
-Xgcpolicy:gencon (default)
-Xlp:codecache:pagesize=1m,pageable
-Xlp:objectheap:pagesize=1m,pageable
-Xcompressedrefs
Java V7.1.0.1
R27_Java727_SR1_20140410_1931_B195893_CMPRSS
IBM J9 2.7 z/OS s390x-64 Compressed References 20140410_195893
J9VM - R27_Java727_SR1_20140410_1931_B195893
JIT - tr.r13.java_20140410_61421
GC - R27_Java727_SR1_20140410_1931_B195893_CMPRSS
java.runtime.version = pmz6470_27sr1ifx-20140417_01 (SR1+IX90144 SR1+IX90144)
-Xgcpolicy:gencon (default)
-Xlp:codecache:pagesize=1m,pageable (default in Java V7.x)
-Xlp:objectheap:pagesize=1m,pageable (default in Java V7.x)
-Xcompressedrefs (default in Java V7.x)
-Xaggressive (default in Java V7.1.x)
Note: The –Xaggressive command-line option in IBM Java 7 SR3 enables a variety of new optimizations and zEC12 exploitations in
the IBM Testarossa Just-In-Time Compiler.
20ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
22. WAS on z/OS V7.0.27 vs V8.5.5.1
Our initial testing was with WAS on z/OS V8.5.5.1 and Java V6.0.1.
Application #1 – MDB Application in 64 bit mode. Compressed reference is set .
Max Heap size increased from 640M to 1792M, Min Heap size increased from 512M to 1344M
Encountered Java OOM after upgrade, had to increase max/min heap size
Memory Leak found in WASz JMS code, using ThreadLocals with AlarmManagerThread and not releasing storage.
Fixing APAR PI14746 – fix included in WAS V8.5.5.2. IBM Flash alert “Memory leak in WAS 8.5.x J2C
PoolManager” at http://www-01.ibm.com/support/docview.wss?uid=swg21670448
MDB response times went down 25-30% and throughput increased, using a little more CPU
Application #2 – Activation Specification Application in 31 bit mode. Writes a
message to MQ when DB2 on z/OS update triggers.
Max Heap size 512M, Min Heap 256M.
Performs better in 31 bit mode vs 64 bit mode, performance did not change after WASz V8.5.5.1
upgrade
Application #3 – MDB Application in 64 bit mode. Compressed reference is set.
Max Heap size is 2100M, Min Heap size is 1024M
15-20% CPU reduction
Being tuned to lower heap size under 2048M and exploit Pageable Large Pages, with Flash Express
Application #4 – Java Application that is being converted from COBOL, running in
CICS.
Compressed reference is set with 64 bit mode
Application uses Spring Framework and does not use currently JPA
Application has ASYNC batch process and Online HTTP work
28% CPU reduction – WASz V8.5.5.1 upgrade and JVM tuning
21ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
23. Application #1
WAS on z/OS V7.0.27 vs V8.5.5.1
22ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
24. Application #1 - WASz V8.5.5.1 64 bit mode
23ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
25. Application #2 - WASz V8.5.5.1
31 Bit vs 64 Bit Mode
24ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
26. Application #3 - WASz V7.0.27 vs
WASz V8.5.5.1 CPU Usage
25ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
27. Application #4
WASz V8.5.5.1 64 bit mode
26ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
28. Application #4 Production
WASz V8.5.5.1 64 bit mode
27ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
29. WASz V8.5.5.2
Java V7.1.0.1 performance
Testing WASz V8.5.5.2 Java V7.1.0.1 vs WASz V8.5.5.1 and Java V6.0.1 we observed -
20% improvement in the elapsed time
10-12% CPU reduction
28ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
Issues encountered testing with Java V7.1.0.1 –
java.lang.ClassCastException, when using a third-party JAX-WS CXF web services framework
Resolution: We added some of the CXF dependency jar files to the EAR, which resolved classloader issue.
The following jars are required for all CXF usage: cxf.jar, commons-logging.jar, geronimo-activation.jar, geronimo-annotation.jar,
geronimo-javamail.jar, geronimo-stax-api.jar, neethi.jar, jaxb-api.jar, jaxb-impl.jar, XmlSchema.jar, woodstox-core-asl.jar,
stax2-api-3.0.1.jar & wsdl4j.jar.
For more information please reference - http://cxf.apache.org/download.html
Degradation in performance with resumable traps enabled by default in Java V7.1
Resolution: Disable LE resumable traps - set -Xjit:noResumableTrapHandler JVM variable at
Application servers > server > Process definition > Servant > Java Virtual Machine
For more information please reference - IBM SDK, Java Technology Edition, Version 7: Current news
http://www-01.ibm.com/support/docview.wss?uid=swg21499721#java7sr7
30. Exploitation of Large Page Support
An example of setup needed to enable 1 Meg Pageable Large Page support –
-Xlp:codecache:pagesize=1m,pageable
-Xlp:objectheap:pagesize=1m,pageable
-Xlp:codecache - Requests the JVM to allocate the JIT code cache by using pageable 1M large page sizes.
-Xlp:codecache:pagesize=1m,pageable - default for Java V7, needs to be set for Java V6.0.1.
-Xlp:objectheap - Requests the JVM to allocate the Java object heap by using pageable 1M large page sizes
-Xlp:objectheap:pagesize=1m,pageable - default for Java V7, needs to be set for Java V6.0.1
Note that - Xlp will override the default - Xlp:objectheap:pagesize=1m,pageable.
If there are no 1M pageable frames available, RSM is acting outside of JAVA so it will do the
allocations without JAVA knowing there are no more 1mb Pageable frames since RSM will just
allocate more dynamically from either 1mb fixed frames or as a last resort 4k frames.
To check what page size you are using, look at WAS servant log
29ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
<attribute name="pageSize" value="0x1000" /> getting 4K
<attribute name="requestedPageSize" value=" 0x1000 " /> requested 4K page size
<attribute name="pageSize" value="0x100000" /> getting 1M page size
<attribute name="requestedPageSize" value="0x100000" /> requested 1M page size
Also can use - verbose:sizes set on IBM_JAVA_OPTIONS - displays default Java setting used for
that JVM.
Note: Java V7.1 added support of 2 GB Large Pages
31. Large Page Support and Flash Express
Need to size LFAREA area and PAGESCM with WASz V8.5.x exploitation of
Large Page support
When the JVM is allocating large pages, if a particular Large Page size cannot be
allocated, the following sizes are attempted, in order, where applicable:
2G nonpageable , 1M nonpageable, 1M pageable, 4K pageable
For example, if 1M nonpageable Large Pages are requested but cannot be allocated, pageable 1M large
pages are attempted, and then pageable 4K pages.
Flash Express is a PCIe IO adapter with NAND Flash SSDs that can help you
improve availability and performance especially during periods of paging
spikes. Flash can be allocated before the LPARs are activated and detected by z/OS during IPL, or
configured on dynamically after IPL.
Use TSO RMF to see Storage Memory Objects usage
30ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
32. Issue to Watch Out For - High CPU with
Intelligent Management Enabled
ISSUE
The Virtual Enterprise product was integrated in WAS V8.5.x and is now referred to as
Intelligent Management. It is enabled by default. This might increase idle server CPU time
considerably.
Major increase in the number of TCP/IP SMF 119 records. We have seen the creation of
millions of SMF type 119 TCP/IP sub type 1 and 2 SMF records (open and close connections),
instead of 1,000s prior to WASz V8.5.5 upgrade.
Related APAR - http://www-01.ibm.com/support/docview.wss?uid=swg1PM79754
Review IBM WASz doc "Idle WebSphere Tuning Considerations" -
http://www-01.ibm.com/support/docview.wss?uid=tss1wp101894&aid=1
SOLUTION
In WAS V8.5.5 a new custom property (LargeTopologyOptimization) was added to disable
Intelligent Management for those who do not to use the functionality .
To configure the Cell custom property via the administrative console go to System
Administration, Cell, Configuration, Additional Properties, Custom Properties, and create a
new entry with Name LargeTopologyOptimization, and Value false.
31ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
33. Issue to Watch Out - Memory Leak
Using ThreadLocals
ThreadLocal variables don't work well with thread pools in J2EE
environment
We observed memory leaks in Native Storage caused by using ThreadLocal variables.
ThreadLocals are only garbage collected if their owning thread is destroyed. Thread pooling
in WebSphere Application Server keeps threads alive indefinitely, and as such, ThreadLocal
variables remain alive even after the application is stopped. This problem is compounded
by ThreadLocal variables that consume native storage, such as classloaders.
Best coding practice recommendations
To avoid storage leaking (native or heap):
Use ThreadPool threads, which are managed by WebSphere on z/OS
Avoid the use of ThreadLocal variables
Clear all ThreadLocal variables before returning control from an EJB or Servlet
invocation
An example of the error to watch out for -
32ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
FFDC Exception:java.lang.Exception SourceId:com.ibm.ejs.j2c.PoolManager$2
ProbeId:50 Reporter:com.ibm.ejs.j2c.PoolManager$2@ae185c45
java.lang.Exception: WSThreadLocal: instance count = 200:
Potential memory leak; verify usage.
34. Analyzing GC Logs – Example of
Memory Leak in the J2C PoolManager
33ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
Analyze your GC logs with free IBM Pattern Modelling and Analysis Tool (PMAT) or IBM
Support Assistant Garbage Collection and Memory Visualizer (GCMV)
35. Java OOM - Gathering Documentation
1 11/25/14 6:10:24:880 CST 11/25/14 6:10:58:880 CST java.lang.OutOfMemoryError com.ibm.ejs.util.am._Alarm.execute
2 11/25/14 6:10:41:509 CST 11/25/14 6:11:01:510 CST java.lang.OutOfMemoryError com.ibm.ws.util.ThreadPool$Worker
/was855conf/prod/w1prd/w1ndg/AppServer/profiles/default/logs/ffdc/w1prd_w1ndg_w1prd4g_W1PRD4GS_STC54585_000003380000
5513_a62d461e_14.11.25_06.11.01.5102710740081766807643.txt
34ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
Count Time of first
Occurrence
Time of last
Occurrence
Exception
Alert can be set on the following message written to SYSLOG –
JVMDUMP039I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError"
at timestamp - please wait
Javacore, heapdump and trace files are created on zFS file system
set JAVA_DUMP_OPTS=ONOUTOFMEMORY(SYSDUMP,HEAPDUMP,JAVADUMP)
Can also use this option to limit the number of dumps to be taken.
Can trigger a JAVACORE, a HEAPDUMP, or a JAVA TDUMP from the MVS console -
F <server>,JAVACORE,ASID=xxxx, where xxxx is the hexadecimal ASID or the address space
Review your FFDC logs
36. Detecting Hung Threads
Set automatic ‘DISPLAY, WORK’ console command
TOTAL REQUESTS TO SERVER - number of WASz requests processed by server, since it has been up.
TOTAL CURRENT REQUESTS - the total number of requests currently being processed by this server.
TOTAL REQUESTS IN DISPATCH - number of requests currently running in a servant for this server.
TOTAL TIMED OUT REQUESTS - number of timeouts that occurred.
Check your FFDC logs
Thread hang recovery diagnostic – how to collect additional diagnostics
If you need to know what the request was originally stuck doing in addition to knowing what it was doing when WASz gave
up trying to get it to complete, you can enable the server to gather documentation prior to interrupting the request,
by setting the following custom property -
com.ibm.ws390.interrupt.applyDumpActionPreInterrupt to true (1)
can be set by clicking Application Servers -> <SERVER> -> Process Definition -> Servant -> Java Virtual Machine -> Custom Properties.
35ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
F server, DISPLAY,WORK
BBOO0261I TOTAL REQUESTS TO SERVER 1577098 (DELTA 25689)
BBOO0262I TOTAL CURRENT REQUESTS 2
BBOO0263I TOTAL REQUESTS IN DISPATCH 1
BBOO0268I TOTAL TIMED OUT REQUESTS 5 (DELTA 1)
[12/2/14 13:13:08:144 CST] FFDC Exception:com.ibm.ejs.ras.NativeMessageOverflowException
SourceId:com.ibm.ejs.ras.CB390TraceEventListener.processEvent ProbeId:NativeMessageOverflow_4
com.ibm.ejs.ras.NativeMessageOverflowException: Trace:
BBOO0221W: WSVR0605W: Thread "WebSphere WLM Dispatch Thread t=009b9140" (0000006e) has been active for 702903 milliseconds
and may be hung. There is/are 5 thread(s) in total in the server that may be hung.
37. Enhanced Monitoring and Diagnostics
with Java V7.1
Enhancements to the JVM dump API:
An improved API enables Java applications to control and capture dump diagnostics more easily
Can specify dump file names when triggering dumps at run time
Can set and query JVM dump options using the API
Additional information in javacore dumps:
Additional content of environment and thread sections in the javacore dump aids first failure diagnosis
New trace messages:
The diagnostics trace component is improved
A set of new messages is now available to support problem diagnosis
Improved performance of SDK method trace:
Increased application throughput when tracing enables a powerful SDK facility for investigating Java
application flow
Improved JIT diagnostics:
A new JIT dump allows more rapid investigation and first failure diagnosis of JIT problems
36ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
38. Specialty Engines on z Systems
Specialty engines available on z Systems
zAAP (Application Assist Processor) - specialized processing engine that provides a strategic z/OS Java
execution environment like WebSphere Application server on z/OS.
zIIP (Integrated Information Processors) - provides an execution environment that accepts eligible work
from z/OS. Workload Manager on z/OS (WLM) manages and directs the work between the General Purpose (CP)
processor and zIIP specialty engines. DB2 for z/OS exploits the zIIP capability for portions of eligible workloads.
IFL (Integrated Facility for Linux) - allows you to purchase additional processing capacity for Linux on z
Systems workloads, without increasing IBM software charges for the existing z Systems environment.
Benefits of using specialty engines
Much lower acquisition and maintenance costs, when compared with CP
zAAP/zIIP engines run at full rated CP speed
Offload work (CPU) from CP engines, provides more CP for other work
Offload of work to specialty engines is transparent to applications
No cost for Sub-Capacity eligible IBM software
Lowers the overall cost of computing for WebSphere Application Server and other Java
technology-based applications; through hardware, software and maintenance savings
Capacity Planning
IBM has modified the ratio of zIIP/zAAPs to CPs to be 2:1 for a zEC12 and/or zBC12. For z196
and z114 and older, a zIIP to CP ratio is still of no more than 1:1; the number of zIIPs cannot exceed
the number of CPs.
IBM zEC12 and zBC12 are planned to be the last z Systems servers to offer support for zAAP
specialty engine processors. IBM intends to continue support for running zAAP workloads on
zIIP processors (zAAP on zIIP) - should consider planning for further use of zIIPs or alternatively,
zAAPs on zIIPs.
37ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
39. zAAP on zIIP capability
Beginning with z/OS V1.11, z/OS added a capability that can enable zAAP
eligible workloads to run on zIIPs, so that you can run BOTH zIIP- and
zAAP-eligible workloads on the zIIP.
This capability can be beneficial when you have zAAP and zIIP-eligible
workloads and combined eligible workloads may make the acquisition of
a zIIP more cost effective
If you are using zAAP engines now and turn off crossover to CP, you will
loose the ability to disable crossover when using zAAP on zIIP
New ZZ system parameter : ZAAPZIIP=YES - this function allowed both zIIP
& zAAP-eligible workloads to process on zIIP
Setup –
SYS1.PARMLIB(IEAOPTxx) controls the zAAP behavior -
IFAHONORPRIORITY now based on IIPHONORPRIORITY (APAR OA20045 added IIPHONORPRIORITY to
IEAOPTxx)
No IFAACROSSOVER – can not disable crossover to CP, only applicable to zAAPs
IBM APAR OA38829 for z/OS V1.12 and z/OS V1.13 removes the restriction that prevents zAAP-eligible workloads
from running on zIIP processors when a zAAP is installed on the server. zAAP on zIIP is now allowed when there is at
least one zIIP.
May need to revisit zIIP and zAAP WLM weights
38ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
40. Summary
39ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
Migrating from WAS on z/OS V7.0 to V8.5.5.x using Java V6.0.1 can result in
up to 30% CPU saving, depending on what functionally your Application is using
Applications with the small Heap size may benefit running in 31 bit mode
Take advantage on Pageable Large Page Support and Flash Express – we
saw 4.4% CPU reduction
Tune your JVMs for optimum performance – we saw over 10% CPU reduction
with proper tuning
Upgrade to WAS on z/OS V8.5.5.2 or higher and take advantage of Java V7.1
– we observed 20% throughput improvement and 10-12% CPU reduction
Analyze your GC performance with PMAT or GCMV and watch out for Java
OOM conditions, that can increase CPU usage considerably, due to excessive GC
overhead
41. Mobile Enablement using WebSphere
Application Server on Linux on z Systems
In 2014 the number of worldwide mobile
users reached over 5.6 billion
Mobile devices in use, including both phones
and tablets, will grow from over 7.7 billion in
2014 to over 12.1 billion by 2018*
* - source http://www.radicati.com/wp/wp-content/uploads/2014/01/Mobile-Statistics-Report-2014-2018-Executive-Summary.pdf
42. Reasons to Love Linux on z Systems
z/VM has higher server consolidation ratio with support for more virtual servers
than any other platform in a single Footprint
z/VM 6.3 release supports 1TB real memory per LPAR and can put even more Linux
guests and WebSphere instances in a single LPAR making this one of the most cost effective
and efficient platforms for running WebSphere
Better performance for large virtual machines - 4x increase in memory scalability while continuing to maintain nearly 100%
resource utilization
Reduce LPAR sprawl for additional horizontal scalability - up to 4x more virtual machines in a single LPAR depending on
workload characteristics
Reduced administrative expense for management of a smaller number of large capacity z/VM host servers
Ability to share WAS product binaries across multiple Linux Instances hosted by
z/VM
Cloud in the box - the infrastructure can grow inside the existing z Systems server by adding
system resources on the fly, without affecting the running environment
Ability to access z/OS data across Hypersockets
The built in processor failover capabilities built into both memory and processor
capabilities
With new IBM z13 hardware z/VM V6.3 has been enhanced to exploit simultaneous
multithreading (SMT) offered on the new processor chip
z13 is designed for scaling with up to 30% throughput improvement for IFL and up to 40% capacity improvement
for specialty engines using simultaneous multithreading compared to the same processor types on zEC12
41ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
43. Worklight on Linux on z Systems
We are considering to exploit Worklight V6.2 (now renamed to IBM MobileFirst platform) on Linux
on z Systems utilizing z/VM V6.3 and WAS V8.5.5.2
Worklight is a comprehensive mobile enterprise application platform that specifically enables the
development of mobile applications
Includes mobile-optimized middleware that serves as a gateway between the mobile application and
back-end systems
Worklight adapter framework can automatically convert between the protocols that are
commonly used in mobile apps (for example, JSON over HTTP) and the protocols that are used by
the back-end services (for example, SOAP over HTTP, JMS, or SQL)
Why run Worklight on Linux on z Systems?
Co-location of the Worklight server application with data and transactions on z/OS, which reduces the latency of
access to z/OS data. Real data is accessed and NOT a copy of it.
Hipersockets provides the lowest latency - running at memory speed communication between Worklight
applications and z/OS backend systems, like CICS, DB2, MQ. Hipersockets also eliminate the need to encrypt traffic
between Worklight and z/OS.
Availability and scalability of z/Linux - rapid and automatic scalability for mobile workloads that benefit from the
virtualization capabilities of Linux on z Systems, that can add more IFL processors in-flight when needed in order to
deal with your workloads’ peaks.
Better performance of Worklight server on zLinux vs distributed platform. See IBM benchmark at https://ibm.biz/BdEV3n
42ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
+ = perfect marriage
44. Reference Material
Knowledge Collection: Migrating to WebSphere Application Server V8.5 -
http://www-01.ibm.com/support/docview.wss?uid=swg27008727
WP101474 - Threads and excessive CPU consumption in WebSphere Application Server for z/OS
https://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101474
My article in - August/September issue 2014 - Improve Your
Availability, Scalability and z/OS Mobile Access With WebSphere Application Server V8.5
http://enterprisesystemsmedia.com/article/improve-your-availability-scalability-and-z-os-mobile-access-with-websphere
IBM 64-bit SDK for z/OS, Java Technology Edition, V7.1 -
http://www-03.ibm.com/systems/z/os/zos/tools/java/products/sdk71_64.html
Hidden Gems 3: Even More Great But Little Known Features of WebSphere Application Server on
z/OS - http://www-01.ibm.com/support/docview.wss?uid=tss1wp101992&aid=1
The Flash Express Feature on IBM zEnterprise EC12 and z/OS exploitation of flash storage
http://www-03.ibm.com/systems/resources/flash.pdf
Join your local WUG - http://www.websphereusergroup.org/
Join Chicago North-West Integration and Cloud Computing WebSphere User Group, that Cindy
Schmoeller (CSC) and Elena Nanos (HCSC) are leading and attend our next on-site meeting on June
11, 2015 - http://www.websphereusergroup.org/chicagonw
43ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
45. Other Sessions to Check Out
4358Implementing IBM Operational Decision Manager Rules in WebSphere Liberty Profile on z/OS
5597How FINA Meets Demands for Continuously Available, Mission-Critical Java Applications on z Systems
4348Why Sparda Datenverarbeitung eG Loves the WebSphere Application Server Liberty Profile on z/OS
5492Predicting the Impact of Mobile Workloads Using Twitter at Westpac Bank
4723ABK-Systeme Brings Innovative Mobile Applications to Financial Services with IBM MobileFirst on z
4515Modernize Your CICS Applications for Mobile and Cloud
4032Meet the Winners of IBM's Mainframe Mobile App Throwdown 2014
3983CICS Java Real-Life Projects, Featuring Datev
3865Cashing in on IBM WebSphere z/OS Caching at PSA Peugeot Citron
28191 Billion Smartphones a year and counting - How is your CICS connected?
2592WebSphere Liberty on z/OS: What's New?
1841WebSphere Liberty Profile Support for Java Batch and the JSR-352 Specification, Featuring Sicoob
6481Java and CICS - A Perfect Match
5853Modernizing CICS - ”Are You Ready Get Your Hands Dirty?”
4577IBM WebSphere Application Server on z/OS Roundtable Discussion
3978Why Is Java So Different?: A Session for Cobol/PLI/Assembler Developers
3928Developing Java EE Applications for IBM WebSphere Liberty Profile on z/OS with WDT Remote Support
3818Meet the Experts - CICS and WebSphere on z Systems
2829Liberty, Agality, Fraternity Viva the CICS and WebSphere Mini Revolution
1670IBM WebSphere Liberty z/OS Connect: A Technical Introduction
1531The Economics of New Workloads on the Mainframe
44ASZ-2026 : Reasons to Love IBM Java and WebSphere Application Server on z Systems
46. Get a lightning start: Key InterConnect 2015 sessions
#2829 Mon 2:00-3:00 Liberté, Égalité, Fraternité—Viva the CICS and WebSphere Mini Revolution
#1670 Tue 3:30-4:30 IBM WebSphere Liberty z/OS Connect: A Technical Introduction
#4032 Wed 9:30-10:30 Meet the Winners of IBM’s Mainframe Mobile App Throwdown 2014
#6482 Thu 11:00-11:50 What is the Mainframe Mobile App Throwdown and How Do I Register?
Register now at
ibm.biz/mmathrowdown
and submit your app by April 12th
Mobilize your mainframe in our fun app-building contest for
z Systems clients & business partners!
The Mainframe Mobile App Throwdown
is back for 2015!
47. Thank You
Your Feedback is
Important!
Access the InterConnect 2015
Conference CONNECT Attendee Portal
to complete your session surveys from
your smartphone, laptop or conference
kiosk.