Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Lessons Learned: Moving from
Net Express to Visual COBOLMay 28, 2020
Brought to You By
Vivit’s COBOL Special Interest Group (SIG)
Jerome Rose
Business Systems Analyst
Infosys
Vivit COBOL SIG Leader
Moderated By
Graham Bartholomae
Senior Software Developer
PolySystems, Inc.
Today’s Speakers
Jerome RoseBusiness Systems Analyst
Infosys
Blair McDonaldPrincipal Support Engineer
Micro Focus
House Keeping
• This “LIVE” session is being recorded
Recordings are available to all Vivit members
• Session Q&A:
Please type questions in the Questions Pane
Webinar Control Panel
Toggle View Window
between Full
screen/window mode.
Questions
Introduction
• Hello, I’m Jerome Rose, the Special Interest Group Leader from the
Chicago area for COBOL
• I am with Infosys. I recently I completed a large Infrastructure
Upgrade Project where I supported the MF COBOL part of it, I will
be talking about some of the challenges we encountered and the
solutions that we came up with
• Today we will be joined by Blair McDonald, a Micro Focus COBOL
Technical Expert
The Upgrade
• Unix Linux, Red Hat Distro
• MF Net Express Visual COBOL
• Java Java 1.8
• Appworx Scheduling Manager Newest version
• Fileshares (Storage) NAS (Net Attached Storage)
Why Upgrade from Unix to Linux?
• Open Sourced – more community support, faster updates
• Designed as a general-purpose scalable platform for a broad set
of applications
• Your choice of Distributions
• Supports almost all file systems used across operating systems
• Preferred OS for cloud deployment and data centers primarily for
economic reasons
Advantages of LINUX
Why Upgrade from Net Express to
Visual COBOL?
• Object Orientation
• Use of API’s
• Access to the .NET and JAVA Frameworks
Advantages of Visual COBOL
The PLAN - Linux is Unix & Unix is Linux
• Unix is Linux – What could possibly go wrong?
• The Upgrade was strictly Lift and Shift – carrying over all MF COBOL source
code modules intact, without any new functionality, no data/database
changes, and with DBA assurances that all database connections are as
they should be
• Regression testing the COBOL programs in each region (Unix), and then
testing the same applications in each stage in Linux
The Result - SUCCESS!!
• The obstacles encountered in the conversion from Unix to Linux and Net
Express to Visual COBOL were solved by either changing a script, an
environment variable, the scheduler or the COBOL program
• Applications are now executing 834 Visual COBOL source code modules
in Linux, thru the new version of the Appworx Scheduling Manager,
writing to the NAS
• Of the 834 programs, 15 of them suffered from performance degradation,
i.e. running 50% slower in Linux than in Unix
I. Challenge
Resolution– Terminate the string with low-values prior to issuing the “Call
System” command in the code, which invokes the Linux
Script
– Move low-values to ws-string-var String ‘xxxxxxxxx’ Call
System
COBOL program executes but does not produce output
(not executing the Linux Script)
II. Challenge
Resolution– Issue the ‘e’ ECHO command in the code to enable the
print line break
– Do not update the bash_profile, it will have negative
implications for other processes
Files sent to the printer are not being printed
III. Challenge
Resolution
– Missing Data: Data entered on a screen in Appworx
(Application Manager), was not being recognized, i.e.
truncated, the timestamp portion of the date/timestamp
was being cut off
– Resolution: Modify the script (SOCOBOLMFDYNAM), to
change the file processing from AWK (used in Unix) to SED –Stream Editor, which worked in Linux
Issue Online data not being recognized
IV. Challenge
Resolution
– This was not related to Linux or MF COBOL, the file was
corrupted
– Deleting and recreating the file provided the solution
COBOL Program cannot write to a file; it was issuing a
write and aborting immediately
COBOL Performance Management – Best
Practices
• Create a Backup Plan for when your results are not as intended
• Notify your infrastructure personnel and DBA that they will need to get involved
• Do not attempt to modify the Linux kernel
• Do not Nice or Renice the Linux values to try to change the priority of the job’s execution
COBOL Performance Management -
CPU, Memory, Disk I-O, Network
• CPU - no changes, (higher or lower) caused any improvement in
execution time
• Memory - a slight increase caused a slight improvement, however
additional increases in Memory did not result in any
improvements
• Disk I-O - Top and Stat commands showed excellent performance
• Network - TCPDUMP showed that the packets transmission was
operating without fault
• Anti-Virus – Unix had none, Linux had Sophos – removing it
caused a reduction in Exec time of 10%
COBOL Performance Management-
Employing Linux Diagnostic Tools
• STRACE – the summary showed WAIT4 errors
• Using the –p option to trace Child processes was
inconclusive- Many false errors were reported
• TCPDUMP was executed to create .PCAP files which were
then viewed in Wireshark
Micro Focus COBOL Performance
Management Tool - ‘Profiler’
Profiler – A Micro Focus compiler directive that will create a report showing how much percentage of time that a program spends in each COBOL routine.
•
• Profile MF directive as the first line in the source code ($SET PROFILE as the
first line of code in your program), creates an .IPF file that you convert by
executing PROFILER
• Profiler revealed that each individual routine in the program was taking longer
in Linux – again inconclusive
COBOL Performance Management -
CTF Trace - Consolidated Trace Facility from Micro Focus
Create the ctf directory
• To activate: SET the following variables
• Create the ctf.cfg file based on a template (see Micro Focus documentation)
• export MFTRACE_CONFIG=$PWD/ctf.cfg
• export MFTRACE_LOGS=$PWD/ctftrace,where MFTRACE_CONFIG references the ctf.cfg file and MFTRACE_LOGS is the destination folder for the trace files
• And then run the application
• It doesn’t matter where the ctf.cfg file resides as long as the variable MFTRACE_CONFIG references the correct location
• Alternatively you could SET the variables in the bash_profile, (less preferred due to excess tracing)
Set the export values, and run the application
Micro Focus CTF – Consolidated Trace
FacilityRecent Micro Focus Enhancements: Visual COBOL 5.0 for Eclipse Distributed Edition
Release Notes
• Availability of CTF from the Eclipse interface - a new property tab, CTF, in the Eclipse launch
configuration dialog box helps to enable CTF tracing and specify a CTF configuration file. By
default, the trace files are then saved in a Logs subfolder within the project's folder.
• Dynamic CTF - it is now possible to configure the CTF dynamically from outside the process
being traced. This feature is only currently available on Windows platforms.
• Using a new command line utility - cblctd - you can alter the tracing events of running
applications that already have CTF tracing enabled. You can alter trace levels, add or remove
components to or from the trace, and also configure the emitters in effect.
• Additionally, there is also a new component that you can trace - mf.mfdbfh - enables you to
trace activity of the Micro Focus Native Database File Handler.
COBOL Performance Management -
Running Micro Focus Enterprise Server
• Directory where the Enterprise Server ES regions system would reside:
var/mfcobol/es
• The HSF trace csv file from the ES regions system directory will show the
transaction response times and where the time is spent.
Question & Answer Session
For Reference
• Jerome Rose: [email protected]
• Blair McDonald: [email protected]
• Knowledge Base Article describing a way (on Unix/Linux platforms) to determine whether a command invoked by CALL “SYSTEM” was successful, based on the return code from the invoked command: https://community.microfocus.com/t5/Net-Express-Server-Express/Invoke-a-UNIX-command-from-within-COBOL-using-CALL-quot-SYSTEM/ta-p/1746705
• Upcoming Micro Focus Webinar: Visual COBOL 6.0 Launch
New Modernization solutions for your Micro Focus COBOL applications
24 June 2020, 8 am PDT, 3 PM GMTRegister Now
In an ever-changing IT world with new pressure to digitize corporate IT, developers need new ways of understanding and modernizing established COBOL systems. Visual COBOL 6.0 introduces new code slicing capabilities enabling developers to visually extract, refactor and build re-usable COBOL APIs for rapid deployment across the enterprise.
This latest release also features new container orchestration support using Docker and Kubernetes to intelligently manage your COBOL applications within a container architecture.
Upcoming Vivit Events
Thank you
• Complete the short survey so your Vivit leaders can better
serve you in the future
https://www.vivit-worldwide.org/
Thank You