Upload
vutram
View
229
Download
0
Embed Size (px)
Citation preview
June 2017
How to manage and control JVM on z/OS
Giancarlo RochesterExecutive IT Specialist
IBM Systems Middleware
© 2017 IBM Corporation 2
Agenda
§ Java and Application Modernization
– Between myth and reality
§ Hints and Tips for Java on z/OS
– What we should take care
§ Challenges to monitor Java on z/OS
© 2017 IBM Corporation 3
Java on z/OS
§ Java is Java everywhere • Java on z/OS has the same functionalities available on all other
platforms … moreover– Functions to interact with z/OS unique file systems (ie VSAM)– Java Native Interface ( JNITM ) for z/OS– Exploit z Series QoS and functionalities (WLM, RRS, Security, … ) – z Series Specialty Engines (zIIP) to reduce TCO
© 2017 IBM Corporation 4
Benefits of Java Batch on z/OS
§ Specific Java Batch APIs for z/OS• Dataset and VSAM access• Condition Code passing• DFSORT support• Writing Logstreams• Triggering of Jobs from Java• RACF APIs
§ Local DB2 Database driver for high throughput§ Access to many Java skills§ Effective and efficient development tools available
• Rational Tools available specific to Batch Container
§ Availability of many classes, libraries, frameworks and applications based on open source
§ Interoperability with other programming languages on z/OS
© 2017 IBM Corporation 5
Hybrid Java/Cobol Batch Applications
§ The term hybrid batch application is used for an application that combines programs written in a procedural language, such as COBOL, with programs written in Java.
§ The reasons for choosing this approach for application development depending on the starting point for the development of the application:• If the starting point is a traditional z/OS batch application that is written in COBOL, then
the reason to make some calls into Java might be to take advantage of the many available off the shelf software solutions, sharing or reuse the same logic on different platforms, reduce cost, …
• If the starting point is the development of a modern Java batch application, then there could be reasons to reuse certain existing COBOL routines. These reasons might be performance-related issues, or the need to access native resources on z/OS, such as accessing a VSAM data set.
© 2017 IBM Corporation 6
Java + Modernization on zSystemsA goal for each role
For CIO/IT Executive (Discover)
• Running modern programming languages/frameworks on z Systems must 1) improve their speed to deliver new capabilities to the business and 2) be cost effective
For application developers (Discover & then Get Started)
• Using modern programming languages/frameworks (e.g. Java, Node.js, Spark) on z Systems must be as easy as doing so on other platforms
For IT Operations (Productively use)
• Supporting modern programming languages/frameworks on z Systems must not introduce complexity or undue burden, ability to monitor
© 2017 IBM Corporation 7
Java + Modernization on zSystemsA goal for each role
For CIO/IT Executive ( Discover)
• Running modern programming languages/frameworks on z Systems must 1) improve their speed to deliver new capabilities to the business and 2) be cost effective
For application developers (Discover & then Get Started)
• Using modern programming languages/frameworks (e.g. Java, Node.js, Spark) on z Systems must be as easy as doing so on other platforms
For IT Operations (Productively use)
• Supporting modern programming languages/frameworks on z Systems must not introduce complexity or undue burden, ability to monitor
© 2017 IBM Corporation 8
Agenda
§ Java and Application Modernization
– Between myth and reality
§ Hints and Tips for Java on z/OS
– What we should take care
§ Challenges to monitor Java on z/OS
© 2017 IBM Corporation 10
Hints and Tips for Java on z/OS
§ Considerations when using the product
– Java and LE runtime options
– JCL REGION size parameter
– Java Start Up Time
– 64 Bit Java
– Shared Classes
– JVM runtime options
© 2017 IBM Corporation 11
JVM – Runtime Options
§ ASCII to EBCDIC • One important aspect of the z System environment, that can sometimes
raise portability issue with Java code, is that z/OS uses EBCDIC characters instead of the more common ASCII
• Within the scope of the JVM, all character and string is stored and manipulated in UNICODE, and I/O data outside of the virtual machine is converted to the native platform encoding
• There are a number of environmental “tricks” that are often useful to test whether implicit ASCII assumptions are in effect
• It is often best to deal codepage issues by running the JVM with default encoding of ASCII and then to specifically call out the codepage that you need when you are writing to MVS files or datasets that are in EBCDIC
– Option : -Dfile.encoding=ISO8859-1
© 2017 IBM Corporation 12
Agenda
§ Java and Application Modernization
– Between myth and reality
§ Hints and Tips for Java on z/OS
– What we should take care
§ Challenges to monitor Java on z/OS
© 2017 IBM Corporation 15
Runtime Monitoring and Management Tools
Tools and documentation for application monitoring and problem diagnosis
• Free unified suite of tools to understand different aspects of Java applications
• Lightweight, low performance overhead monitoring and diagnostics• Provide more than visualizations , also provide observations and
recommendations
http://www.ibm.com/developerworks/java/jdk/tools/index.html
© 2017 IBM Corporation 16
IBM Monitoring and Diagnosis Tools
§ Health Center– It is a lightweight tool that monitors active IBM Virtual Machines with
minimal performance overhead. The Health Center suggests live tuning recommendations for Garbage Collection, profiles methods including call stacks, and highlights contended locks
§ Interactive Diagnostic Data Explorer§ Memory Analyzer§ IBM Extensions for Memory Analyzer§ Garbage Collection and Memory Visualizer§ Dump Analyzer§ IBM Diagnostic Tool Framework for Java
© 2017 IBM Corporation 18
Introducing OMEGAMON Monitoring for JVM
§ Brand new OMEGAMON monitoring agent focused on assisting z/OS system administrators, operators and SMEs identify problems, resolve quicker and optimize performance
§ Lightweight overhead compared to other offerings– 90% of data collected is through Health Center API
§ Collects data on any online JVM on z/OS– Subsystems: CICS, IMS DB2, WAS on z/OS, z/OS Connect, ODM– Standalone Batch USS Java applications– Can identify and distinguish Liberty JVM servers
© 2017 IBM Corporation 19
Introducing OMEGAMON Monitoring for JVM
§ The monitoring data collected by OMEGAMON Monitoring for JVM enables to perform the following tasks: – Collect and analyze reliable, up-to-the-second data so that you can make
fast and well-informed operating decisions– Proactively manage the performance of all of your JVMs from a single,
integrated interface
– Balance JVM workloads
– Track JVM performance against goals– Exploit user-defined and predefined situations based on thresholds to raise
different types of alerts
© 2017 IBM Corporation 23
Scenario : Visibility of all JVMs§ To enable full monitoring of a JVM it must be instrumented to allow the
OMEGAMON agent to interact with the JVM and issue requests via the Health Center API
§ Typical configuration is a minor change to the JVM startup parameters:– Xhealthcenter:level=inprocess– Javaagent:/omegamon/uss/install/dir/kan/bin/IBM/kjj.jar
§ OMEGAMON code will collect JVM environment information, capture JVM events (is GCs) and push the details to the OMEGAMON JVM agent
z/OS Connect
JVM
Liberty
JVM
Batch / USS
JVM
CICS TS
JVM
WAS on z/OS
JVM
DB2 on z/OS
JVM
IMS
JVM
ODM on z/OS
JVM
OMEGAMON JVM
Agent
© 2017 IBM Corporation 24
OMEGAMON for JVM on z/OS V5.4.0IBM OMEGAMON for JVM on z/OS V5.4.0 provides resource level monitoring of all Java Virtual Machines (JVMs) on z/OS. § Auto-discover all online JVMs within seconds, including subsystem type§ Collects data on any online JVM on z/OS§ Identify problematic thread and locking issues, sub-optimal JVM garbage
collection performance, native memory analysis, looping thread and CPU performance issues plus drill-downs into detailed JVM environment information.
§ Enable users to be alerted to problems within JVM performance, isolate the issue, and identify the root cause quickly.
§ Lightweight overhead compared to other offering§ Ability to view all JVMs side-by-side. No disconnect when switching between
JVMs§ Resource level monitoring of z/OS Connect Enterprise Edition to
manage services and APIs allowing alerting to poor service response time faster
§ Data presented on both OMEGAMON enhanced 3270 UI and Tivoli Enterprise Portal
Batch /USS
JVM
DB2 on z/OS
JVM
IMS
JVM
ODMon z/OS
JVM
OMEGAMONforJVM
CICS TS
JVM
Liberty
JVM
WAS onz/OS
JVM
z/OS Connect
JVM
ProductInformationibm.com/omegamon
NEWRedpaperibm.biz/omegJVMRedpaper
“JVMonz/OSisablackbox.IfwediscoveraJVMhang,weterminatethewholeJVM.Thisgivesusabilitytopreventtheproblemoccurring
again” .
© 2017 IBM Corporation 25
OMEGAMONforJVM
DB2
IMS
CICS
WAS
z/OSConnectEnterpriseEdition
IdentifyService/APIperformanceissueswithinz/OSConnectEEinstancesfasterand
avoidbottlenecks
z/OS Connect EE Resource Monitoring with OMEGAMON for JVM V5.4.0
JVMHealthSummaryGarbageCollectionDetails
ThreadDetailsLockDetails
CPUUtilizationJVMEnvironment
© 2017 IBM Corporation 26
Summary
§ Java is just another language running on the mainframe§ The mainframe is the ultimate server for enterprise and mission
critical applications and … many customers worldwide are using Java on mainframe with great stories to tell !
§ Java Health checks consulting available locally by IBM z System Middleware Software Group
© 2017 IBM Corporation 27
Important References
§ IBM Web site– z/OS Java Web site
http://www-03.ibm.com/systems/z/os/zos/tools/java
– IBM developerWorks - New to Java programminghttps://www.ibm.com/developerworks/java/newto
– IBM SDK Java Technology Editionhttp://www.ibm.com/support/knowledgecenter/SSYKE2/welcome_javasdk_family.html
– JZOS Batch Launcher and Toolkit Installation and User’s Guide (SA38-0696-00)
http://publibz.boulder.ibm.com/epubs/pdf/ajvc0110.pdf
– Introducing OMEGAMON Monitoring for JVM on z/OShttp://www.ibm.com/support/knowledgecenter/SS2JNN_5.3.0/com.ibm.omegamon_xezos.doc_5.3.0/jvm/jvm_intro.htm
© 2017 IBM Corporation 28
Literature
§ IBM Redbooks– Java Stand-alone Applications on z/OS, Volume I
http://www.redbooks.ibm.com/abstracts/sg247177.html
– Java Stand-alone Applications on z/OS, Volume IIhttp://www.redbooks.ibm.com/abstracts/sg247291.html
– Writing Optimized Java Applications for z/OShttp://www.redbooks.ibm.com/abstracts/sg246541.html
– CICS and JVM Server – Developing and Deploying Java Applicationshttp://www.redbooks.ibm.com/abstracts/ sg248038.html
– Java Application Development for CICShttp://www.redbooks.ibm.com/abstracts/ sg245275.html
– Using Liberty for DevOps, Continuous Delivery and Deployment– http://www.redbooks.ibm.com/abstracts/sg248286.html?Open
– Development of advanced applications with IBM WebSphere Application Server Liberty profile
http://www.redbooks.ibm.com/abstracts/tips1314.html?Open