Optionally, customers who select to use a J9 VM (OpenJ9 or IBM J9) can use J9's tracing facility, XTrace, to profile the performance of key methods in the extraction batch jobs.

The IBM J9 VM component of the SDK was contributed to the Eclipse Foundation as the Eclipse OpenJ9 project in September 2017. For more information, see the IBM SDK, Java Technology Edition, Version 8 related link.

For more information about the IBM JDK documentation for XTrace, see the How to use IBM Java -Xtrace related link. For more information about the OpenJ9 documentation for XTrace, see the -Xtrace related link.

The .trc file can be formatted by using the trace formatter. For more information about the trace formatter, see the Trace formatter (traceformat) related link. Optionally, customers might use the IBM Health Center client to analyze the .trc files. For more information about the IBM Health Center client, see the Installing the Health Center client related link. The Health Center Client can be installed as an add-on for the IBM Support Assistant or as an Eclipse plug-in. For more information, see the IBM Support Assistant , login is required, and the IBM WebSphere tools related links.

To profile the execution time for specific methods, specify the method whose execution time you want to measure as an option to the J9 Java virtual machine (JVM), for example:
Xtrace:none,output={methods%p_#.trc,100m,5},maximal=mt,methods={org/springframework/batch/item/database/JdbcPagingItemReader.doReadPage}

The following list outlines each metric, its associated method, and the Xtrace string to use to measure the method's execution time:

Timing for the initial read of IDs

Method
org.springframework.batch.item.database.JdbcPagingItemReader.doReadPage()

Sample command with method profiling

Enter the following command, on one line, to start the tool in non-server mode, schedule an XML Flow job, and exit when the job completes. The .trc file represents a profile of the timings for the preceding methods.

java "-Xtrace:none,output={methods%p_#.trc,100m,5},maximal=mt,
 methods={org/springframework/batch/item/database/JdbcPagingItemReader.doReadPage,
 com/ibm/spm/extracttool/batch/processors/CREOLEDeterminationDataProcessor.process,
 com/ibm/spm/extracttool/batch/processors/XMLFlowProcessor.process,
 com/ibm/spm/extracttool/batch/writers/FilterJobWriter.write,
 com/ibm/spm/extracttool/batch/writers/XMLDeterminationWriter.write,
 com/ibm/spm/extracttool/batch/processors/FilterJobProcessor.process,
 org/springframework/batch/core/job/AbstractJob.execute}" -Dspring.config.location=./profiles/ 
 -Dspring.profiles.active=Db2 -Dloader.path=./db2_drivers/ 
 -Dloader.main=com.ibm.spm.extracttool.JobLauncherApplication
 -Dloader.args="XmlFlow name=XmlFlowJob_20190702_003 startDate=1970-01-01 endDate=2019-07-01"
 -jar DataExtractor-version_no.jar

Where version_no is the version number of the software, for example 1.0.2.