Mainframe COBOL to Java, C# & Cloud


Performance Optimization of translated application


The most common performance problems are:

DB2 on Mainframe has commnunication lags

The communication between DB2 on mainframe and external Java / C# applications is usually slow. The application's performance may significantly improve by moving the database to another machine - perhaps as much as couple of orders of magnitude. An alternative approach would be to deploy the Java application on the mainframe.
The effects of this communication lag can be measured by switching SoftwareMining PROFILER on to generate timing logs, and checking the logs for Connection and SQL retrieval times.

Other database performance issues

Additionally, the following should help reducing impact of database communications :


Translation of VSAM KSDS files to Database table

On mainframe, VSAM is a file-access, it does not require a database connection to be setup and it does not require queries and results to be marshalled (usually via TCP/IP). As such accessing VSAM files is faster than Database. (Storing data in databases have other HUGE advantages). There are several approaches to overcome performance problems resulting from migration to VSAM to SQL databases:


In built PROFILER

SoftwareMining's framework libraries have a built-in Profiling system.
The focus of the profiler is to show which set of API's may be causing bottlenecks and performance issues. The profiler is most useful for detecting bottlenecks in batch programs.

Enabling the Profiler
Place the following line in corect.properties configuration file to enable the profiler.
PROFILE_RUNTIME=true
Also, make sure the Log4j/Log4net has been set to write out "INFO" level logs.

What to look for in the generated logs:
look out for lines relating to timings on the following


Timing Business Logic Performance

The translated application uses the following Log4j (C# log4net) log levels: With the right configuration of the logging system, the "Trace" or "DEBUG" log levels can be used to help identify where most of the time is being spent.

What to look for in the generated logs:
Switch log level to trace, and look in log file for the following type of entries
Created new database connection ... 



Increasing performance of Batch Programs: Parallelization

Whether the application is deployed on a Cloud or local servers, these days processing power is cheap. I.e. By slight manual adjustments, batch programs can benefit from multi-threaded / multi-processor approaches for significance performance gains. SoftwareMining has already built parallelization techniques into our framework libraries to provide a quick path to parallelization and multi-threading. Please see How-to parallelize translated Batch programs


  © 2024 SoftwareMining is a trademark of Software Modernization Technologies Ltd (UK). Registered in England company no: 07300248. Reg Offices: 79 Stevens House, Jerome Place, Kingston Upon Thames, KT1 1HX, United Kingdom.