New Features in Visual COBOL 5.0

COBOL Formatting

Back to Top

You can now reformat your COBOL code in the editor according to your preference and standards. Formatting sets the indentation based on the configuration options which you can set in Windows > Preferences > Micro Focus > COBOL > Editor > Formatter (for Eclipse).

You can find the COBOL formatting features on the editor context menu (for Eclipse) menu.

Code Analysis

Back to Top

You can now create the following views for your code:

  • Program Flow Graph - enables you to view the overall structure of the COBOL program with nodes representing sections and paragraphs. PERFORM statements between them which affect the program flow are represented by links joining the nodes. External calls to other programs are shown but cannot be expanded in the Program Flow Graph view. Hovering over the nodes shows a tooltip containing the code representing the respective sections or paragraph. Clicking a node or a link joining said nodes positions the code editor to that point in the source, allowing quick and easy navigation of the program.
  • Data Flow Analysis Tree - enables you to select a data item and then either statically trace what might change its value or what other data items it might affect.

Enterprise Server and Scale Out Architecture

Back to Top

Note: This feature is in Early Adopter Product (EAP) release status.

This release offers an enhanced and improved availability, and serviceability of Enterprise Server through the ability to administer and maintain a cross-system group of regions as a single system image with the new Performance and Availability Cluster (PAC).

In order for different Enterprise Server instances to be able to work together, they need to be able to share data. This is achieved through the use of a Scale Out Repository (SOR). All ES instances in a PAC will have a common SOR (PSOR) which is used to store CICS resources (limited to PCTs, PPTs, FCTs, DCTs and TSTs in this release) as well as internal system data to facilitate synchronisation between instances. Temporary Storage Queues and Transient Data Queues can also be shared between Enterprise Server instances by directing them to a SOR. Benefits of using PACs and SORs in this way include:

  • Reduced hardware costs - taking advantage of the PAC to scale-out rather than scaling-up for more efficient use of processor resources.
  • Easier maintenance - Dynamically adding or removing of regions to the PAC for system maintenance.
  • Increased availability - in the event of the failure of an Enterprise Server instance, the PAC can continue to operate with reduced capacity. Enterprise Server instances can reside on different machines, improving availability further.
  • Dynamic scaling - Enterprise Server instances can be added to, or removed from, the PAC depending on demand.
  • Better performance - throughput is no longer restricted by the resources on a single machine (scale-up).
  • Improved serviceability - you can now administer the PAC and any associated regions as a single image from a new contemporary web-based administration interface (ESCWA).

Enterprise Server Common Web Administration

Back to Top

Note: This feature is in Early Adopter Product (EAP) release status.

Visual COBOL now includes a new Enterprise Server Common Web Administration interface (ESCWA). ESCWA is a web user interface and server for modern administration, monitoring and control of Enterprise Server. It offers improved usability that consolidates the different Enterprise Server user interfaces so that native and managed regions, and security stores can be managed in one place. Features include:

  • Administering directory servers across multiple hosts.
  • Monitoring and control of Enterprise Server instances.
  • Configuring and administering a security store, defined in an LDAP-compatible security manager such as Microsoft Active Directory or OpenLDAP.
  • Administering the Scale-Out features - enable you to specify logical groups of Enterprise Server instances, and configure and run Performance Availability Clusters (PACs) and their related Scale-Out Repositories (SORs).
  • Administering, monitoring and control of Enterprise Server for .NET regions and listeners.
  • The use of current web frameworks that have a greater focus on security.

Application Workflow Manager

Back to Top

Improvements have been made in the following areas:

  • Tools from the AWM, Eclipse, and ISPF Function Packages have been restructured and improved:
    • Tool parameters are now named so that the position of the parameter is not significant anymore.
    • You can only specify parameters which are supported by the tool.
    • Only the parameter types String and File are now supported.
    • Mass Processing is now an attribute of a tool parameter and is no longer a special input/output parameter type.
    • The tool relationship "Resource Operation Value" replaces the parameter type "ToolDefinedResourceOperation".
  • A new REST Function Package has been added. It provides support for the following functions - DELETE, HEAD, GET, PATCH, POST, and PUT.

    The new JSON File Descriptor has been provided to support REST payloads. This function package enables you to integrate RESTful API with your AWM workflow. See REST Function Package.

  • New tools in the Eclipse Function Package enable you to store and retrieve information from the Eclipse secure store:
    • Save To Secure Storage; Read From Secure Storage; Delete From Secure Storage

    You can use these tools to securely store login credentials to a remote system and reuse the information for subsequent access.

  • A new attribute is now available to enable you to add comments to every model component in the AWM model editor. See Comments in the AWM Model Editor.

COBOL Language Enhancements

Back to Top

The following enhancements have been made to the COBOL syntax:

  • ISO2002 conditional compilation - an additional mechanism for conditional compilation, the ISO2002 Conditional Compilation method, is now available. This has been implemented as part of the support for Enterprise COBOL 6.2.

    The following compiler directing statements are supported:

    >>DEFINE
    >>IF/>>ELSE/>>END-IF
    >>EVALUATE/>>WHEN/>>WHEN OTHER/>>END-EVALUATE
  • The JSON PARSE statement enables you to convert JSON text into COBOL data formats. This has been implemented as part of the support for Enterprise COBOL 6.2.
  • INSPECT statement - the performance of INSPECT... CONVERTING has been improved, particularly for cases where source-alphabet is long.
  • Support has been added for the portable syntax for SET - set[string].

Compiler Directives

Back to Top

The following Compiler directives are new in this release:

JVMTARGET
Specifies the JVM version number targeted by the class files generated in this compilation unit.
ILNORMALIZENAMES
Determines the program elements that are normalized when a program is compiled to .NET or JVM COBOL. Normalization in this context results in replacing all $ and - (hyphen) characters with _ (underscore) characters in the name of the generated class file.

Consolidated Trace Facility (CTF)

Back to Top

This release provides the following enhancements:

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

Data File Tools

Back to Top

This release provides the following enhancements:

  • The Data File Editor now includes a Compare Files tool that enables you to compare the contents of two data files side-by-side.
  • Structure files, and the layouts within them, can now be created within the Data File Editor; you no longer need to use the Classic Data File Tools utility to manage your layouts.
  • When connecting to a VSAM dataset stored in an enterprise server region, you can store any passwords required for access, for the duration of your current session.
  • You can view archived JES spool jobs that have been merged into one spool file using the merging archived spool files process.
  • You can now quickly duplicate records in non-indexed files, using the Duplicate Record option.

Database Connectors

Back to Top

You can now create an identity column in your database by using a new XFD directive - IDENTITY_COLUMN. This must be specified on a numeric field.

Debugging

Back to Top

This release includes the following enhancements:

  • Animate - Eclipse now includes an additional menu option when debugging a COBOL program for setting the speed and toggling Animate mode. When active, the program will automatically step through each line of source code, updating the source code in the editor, the Debug Stack, Outline and Variables Views. See Debugging Commands and Options.
  • Conditional watchpoints - you can now specify conditions and hit counts for COBOL watchpoints. A condition can be in the form of an expression or it can be a hit count (for the number of times memory associated with a data item has been updated). The condition is evaluated each time the data item being watched changes. If the condition evaluates to true, then program execution stops. This enables more fine-tuning of the current watchpoint support and is useful when debugging large, complex programs.
  • Dynamic core dumps - you can now invoke a core dump programmatically and continue execution of your program. A new library routine, CBL_CREATE_CORE, enables you to produce a core file for the current process or a process owned by the same user that owns the current process.
  • Improved visibility of the PERFORM stack - the PERFORM stack and PERFORM range names are visible in system debuggers such as gdb in many cases on 32-bit Linux with Intel architecture and Solaris with Intel architecture. This was already the case on AIX, 64-bit Solaris-Intel, and all other Linux platforms (including 64-bit Linux-Intel).
  • Live Recording - a new environment variable, COB_LIVE_RECORD_SIZE, is now available to aid performance during the creation of a live recording file. Use it to specify the amount of memory (in MB) that is to be used to store events that are to be written to the live recording file. When the limit is reached, the buffer is cycled so that the oldest events are removed to make space for the most recent events.
  • In order to include source line numbers in run-time error messages, which makes the diagnosis of issues in your program easier, the COBOL compiler now produces .idy files by default when building from the command line, unless the NOANIM directive is specified. You can safely remove .idy files after compilation if you do not need them; they do not need to be distributed with your application unless you want to debug your code. However, unless you specify the ANIM directive, generated executables such as .dll and .gnt will not be debuggable, which is consistent with prior behavior.
    Note: Behavior has not changed if you are using an IDE or build scripts generated by an IDE.
  • Stackdump files (Linux Intel 64-bit, Solaris Intel 64-bit, and Linux/390 platforms only) - you can produce a stack trace for applications in a production environment that encounter a Run-Time system error. Use the stackdump_on_error and stackdump_filename tunables to configure the production of a stackdump file when an error occurs, from which you can locate the exact line of failing code in your program.
  • A new configurable tool is now available that dumps to a file stack traces of all threads in process on any Run-Time System error. [Linux Intel, Solaris Intel, zLinux only – requires ANIM on 32-bit Linux Intel]. This is only supported for native COBOL.
  • Line number information is now being output for optimized builds (on Linux Intel 64-bit, Solaris Intel 64-bit, PowerLinux, zLinux, and Solaris SPARC platforms only). This is only supported for native COBOL. Because of what optimization does, the information is imperfect, but it remains highly indicative. This gives the following advantages:
    • Enables the use of the stackdump utility (where available) for optimised builds.
    • Provides location information should a signal occur when running in a system debugger such as gdb.
    • Provides some limited ability to step through optimized code in system debuggers.

Eclipse Integration

Back to Top

This release includes enhancements in the following areas:

  • Supported Eclipse versions - this release supports Eclipse 4.7 (Oxygen) and 4.8 (Photon). The setup file installs Eclipse 4.8.

    Eclipse 4.6 (Neon) is no longer supported.

  • Java support - the 64-bit Java 8 is required to run the Eclipse IDE. The setup file installs Adopt OpenJDK 8 (u202) with Hotspot. Java 8 (32 or 64-bit versions), and Java 11 (64-bit version only) are supported for executing JVM COBOL code and for native COBOL and Java interoperability. For full details on the supported Java versions, see Software Requirements.
  • COBOL editor:
    • Automatic insertion of END statements - Eclipse now automatically inserts the end clause for IF, EVALUATE, PERFORM, EXEC and TRY statements.
    • Automatic insertion of closing symbols - by default, Eclipse now automatically adds closing quotes and brackets where required.
    • Search text positioned between specified columns - the Micro Focus Find/Replace dialog box now includes options to search between specified columns in the code.
  • Directive sets - Compiler directives for your projects are now saved in language-specific .mfdirset XML files stored within a .settings subfolder in the project's folder. You can create your own versions of .mfdirset files and verify them against an XML schema that Micro Focus supplies.

    Previously, all settings were stored in a single, proprietary IDE project file. Existing projects which currently specify directives and other similar settings in the .cobolproj file will be upgraded to use the new .mfdirset files when imported or loaded in Visual COBOL 5.0. If you are storing your source code in a source control system, ensure that you add the .mfdirset files to source control as well.

  • Remote connections - support is available for automatic SSH tunnelling of Visual COBOL Development Hub network traffic. You can route most Visual COBOL Development Hub network traffic using SSH port forwarding. This makes developing on a remote UNIX host running a firewall easier to configure. In addition, the network traffic is encrypted as it is being sent within an SSH tunnel.
  • User Interface:
    • The COBOL Explorer view uses an icon overlaid with P to indicate COBOL programs that will not be built because they are preceded by another of the same name on the build path.
    • Improved settings UI - the COBOL, and the Run-time Configuration settings pages now use a property grid that also shows the definitions of the settings.

Enterprise Server Security

Back to Top

This release includes the following enhancements:

  • Security - security features can now be employed when developers and administrators install new COBOL services (web services and EJBs) into an enterprise server instance over the network. There are a number of authentication and authorization options that can be enabled. See Deployment Listeners and The .mfdeploy File.
  • Vault Facility - a new security feature has been added that enables some Enterprise Server components to keep certain sensitive information in a form of storage defined as a vault, accessible via a configurable vault provider. The default vault provider stores data in encrypted format on disk.
  • OpenSSL 1.1.1 - the OpenSSL security provider has been updated to OpenSSL version 1.1.1.

    This is the stable Long Term Support version of OpenSSL.

    • Added support for the ratified TLS protocol version 1.3. TLS 1.3 benefits include:
      • Much shorter initial connection negotiation sequence. This reduces the time taken to establish a link before starting to transmit data.
      • Using only the most secure ciphers and hash methods.
      • TLS 1.3 will be negotiated in preference to the older TLS protocols.
    • Added support for new Ciphers and Key Exchange groups in line with TLS 1.3 requirements.
    • The default security level for previously configured endpoints has been moved from Security Level 0 to Security Level 1. This removes the ability to accidentally make use of known-weak elements such as SSL3 and MD5. Similar changes to the default Security Level have recently happened to Java, Chrome, Firefox, and other systems providing secure connections.
  • Fileshare Security - the Fileshare Secure TCP/IP transport provider now supports the trusted use of X509 certificates bearing the name of the Fileshare service as the Common Name element of the certificate.

    In previous releases, a secure connection to a Fileshare server was made using a certificate that represented the network location upon which the Fileshare service was located. This method is still supported, but does not distinguish between the exact Fileshare server that is being connected to when more than one service can exist on a single host system. With this change, individual Fileshare services can identify themselves by using a unique certificate. While running on the same host and registered with the same network endpoint.

  • Support for Active Directory user groups and group name mapping - the Enterprise Server External Security Facility's MLDAP ESM Module can now use Active Directory user group objects for Enterprise Server user groups. Also, the module can now map long group names to the 8-character-maximum names required for mainframe emulation.
  • Selective auditing - administrators can audit only security activity of particular interest, reducing audit overhead and the volume of events. The Enterprise Server External Security Facility's MLDAP ESM Module can now enable ESF Audit events only for particular users, groups, and resources.
  • Improved interaction with LDAP client libraries resulting in fewer LDAP-related issues and easier diagnostics - the Enterprise Server External Security Facility's MLDAP ESM Module has improved interoperation with LDAP client libraries:
    • The client library vendor and version information is logged after the library is loaded
    • The module has better heuristics for loading the correct library supplied by the OS vendor, so the "provider" configuration option can generally be omitted
    • For OpenLDAP, the module sets its proprietary "connect timeout" option

Micro Focus Unit Testing Framework

Back to Top

This release provides support for the following functionality:

  • Data-driven unit tests - a new type of test suited to testing data where values read from a source are passed through the same tests.
  • Test output colorization - test output can now include basic colorization for supported terminal emulations. This feature must be run from the command line.

Product Documentation

Back to Top

The following is new in this release:

  • The Comparison of COBOL with Other Managed Languages document has been updated to reflect the recent enhancements in the .NET and JVM COBOL support.