29
June 2017 How to manage and control JVM on z/OS Giancarlo Rochester Executive IT Specialist IBM Systems Middleware

zCircle - How to Manage and Control JVM on zOS - IBM€¦ · How to manage and control JVM on z/OS ... • DFSORT support ... • There are a number of environmental “tricks”

  • 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 9

Java Runtime Environments under z/OS

(TraditionalWASor

LibertyProfile)

© 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 13

Challenge to monitor Java on z/OS

© 2017 IBM Corporation 14

Challenge 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 17

© 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 20

Drilling down to Important Information

© 2017 IBM Corporation 21

Clear Summary of JVM Data - TEP

© 2017 IBM Corporation 22

Clear Summary of JVM Data – e3270UI

© 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

© 2017 IBM Corporation 29

Thank you