Significant Changes in Behavior or Usage

This section describes significant changes in behavior or usage in the current and past releases of Visual COBOL for Eclipse. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

Note: This list does not include the changes in behavior introduced by any of the Patch Update releases. Refer to the Patch Update readmes for information about such changes.

.NET COBOL projects

The 9.0 release installs several .NET NuGet packages each of which contains the assemblies for a specific Micro Focus functionality. New .NET projects, as well as existing projects you edit or build in 9.0 are linked to a core package, MicroFocus.COBOL.Runtime.Core, that includes the basic functionality for the projects. You need to add any additional packages (such as a specific file handler, COBOL Accept/Display etc.) manually to the projects.

Building existing .NET COBOL projects created prior to 9.0 might result in build errors. You can ensure compatibility by enabling the use of the MicroFocus.COBOL.Runtime metapackage. Alternatively, you need to add any required NuGet packages manually to the older projects.

See Upgrading existing .NET COBOL project files for details.

Licensing changes

  • The SafeNet Sentinel licensing system has been deprecated and will be not available in this product starting with the next major release after release 9.0. The SafeNet Sentinel licenses will not be supported after release 9.0 and you need to use AutoPass licenses if you use these releases.

    You can replace your SafeNet Sentinel licenses with AutoPass licenses starting with release 8.0. Contact Micro Focus Customer Care for further information.

Locally-declared variables

A new Compiler directive, DECLARE, has been introduced to support the introduction of the parameterized sections syntax. The default behavior of this directive (DECLARE"2") is to allocate locally declared directives afresh each time a SECTION is entered. Previously, the default behavior was that locally declared variables were added to local-storage, and therefore would not be allocated afresh each time a parameterized section is performed. To maintain previous behavior, set DECLARE"1"; however, this setting is not supported when compiling to JVM COBOL, or when a program contains a parameterized section.

INITIALIZE <condition-name> produces syntax error

The INITIALIZE <condition-name> statement, where condition-name is true for multiple values, now correctly receives a syntax error in all scenarios. In previous releases, some scenarios would allow compilation (although did not work).

Symbols files used when debugging

By default, the debug engine checks that the symbols file (.idy file) being used to for the debug session matches the COBOL program to be debugged; that is, it was the one produced the last time that the program was compiled. If the files do not match:

  • For JVM COBOL, "The symbol information does not match" is displayed in the debug stack (within the Debug perspective).
  • For native COBOL, "The program does not match the symbol information at: <path-to-idy-file> is displayed in the Console window.

For JVM COBOL, you can continue to debug, but if you receive the above message for native COBOL, debugging cannot continue.

To disable the check for native COBOL (only), clear the Require program symbols (.idy) to match the program option, which is available on the General tab of the debug configuration in effect.

Use of the com.microfocus.cobol.references package in JVM COBOL

Note: The APIs within this package are undocumented, and are not intended for customer use.

This package was previously used to pass all types BY REFERENCE in a JVM COBOL application, including to pass items from a Java program to a JVM COBOL program (although, this is not intended customer use).

In this release, the package has been split into two: com.microfocus.cobol.references and com.microfocus.cobol.user_references. The references package is used to pass, BY REFERENCE, all COBOL items that map to Java primitive types (short, int, etc...). All other types use the user_references package (for String, array of primitive types, etc...). Classes in the user_references package are generated as required by the Compiler, and need to be added to the JVM COBOL application's .jar file.

There are two issues to be aware of:

  • If you have created any Java code to use com.microfocus.cobol.references directly, that code needs to be updated to use the user_references package for passing non primitive types.
  • A separate package is now used for the Compiler-generated classes, to allow signing of .jar files to work correctly. This is because separately-signed .jar files cannot contain the same package.

    If a customer application has two separately-signed .jar files, and each one requires the use of the Compiler-generated com.microfocus.cobol.user_references classes, a security exception will occur when the .jar files interact with each other. (This was also true when the namespace com.microfocus.cobol.references was used.)

    The solution is to move any structures reliant on com.microfocus.cobol.user_references out of the generated class file directory structure for the application(s), and to package those structures into a separate jar file, which can also be signed, if required - this .jar file would also be need to be added to the CLASSPATH for the overall application.

If your application is affected by this issue, your feedback, via Customer Support (Micro Focus Customer Care website), would be appreciated, to help us refine a solution to these issues.

Default passing mode when passing pointers to a method

In previous releases, if a pointer was passed to a method without explicitly stating the passing mode (BY VALUE or BY REFERENCE), it was assumed to be passed BY REFERENCE. From this release, such items are assumed to be passed BY VALUE, making them consistent with other parameter types.

To pass a pointer BY REFERENCE, you must explicitly state reference in the method signature: for example:

method-id M1(reference ptr as pointer)
...

And ensure that the argument is also passed with the reference keyword; for example:

invoke M1(reference myptr)
...

Table Results view

A new Select element list () button has been added to the Team Developer Table Results view which enables you to directly select an existing list. Navigation using the arrow buttons has changed to enable you to browse the history for the current Eclipse session. You can select a lists from a previous session by clicking Select element list. When creating or selecting an element list a list history is built.

Licensing requirements

The following platforms - Solaris, Red Hat on IBM Z System, SUSE on IBM Z System, and Ubuntu - are now licensed using a new licensing model called AutoPass. These platforms and licenses are not available from the Software Licenses and Download portal (sld.microfocus.com) if you are using the existing SafeNet license technology. To obtain AutoPass licenses for the aforementioned platforms, contact your account manager to discuss your actual requirements, and also raise a support incident to track the request.

Exceeding the maximum record length

The maximum record length supported by the File Handler is 62KB. If you create records that exceed this limit, a COBCH0649 error is generated on compilation. You can continue to use programs that utilise these large records, but you may experience adverse results in your file handling operations.

ISO2002 support via the Compiler directive

The ISO2002 directive now supports an option to provide different levels of ISO2002 features. ISO2002"1" provides the level of features supported in Server Express and Net Express, and ISO2002"2" provides those features, plus additional ones added since Visual COBOL. If you have used the ISO2002 directive in Server Express/Net Express, and are migrating to Visual COBOL, use ISO2002"1" if your applications are affected by the change in behaviors provided with ISO2002"2".

Initializing variable-length groups when ODOSLIDE is in effect

The target of an INITIALIZE statement cannot be a variable-length group if the ODOSLIDE Compiler directive is set. This now results in a severe syntax error, whereas in previous releases this was incorrectly allowed to compile and produced unexpected run-time results.

Producing a stackdump

Stackdump production is now only available on Linux platforms (both 32- and 64-bit, where supported). Previous availability on Solaris platforms is no longer supported.

Reverse Debug and Live Recording

Reverse Debug and Live Recording functionality is licensed and installed separately from undo.

io. You can enable reverse debug functionality by downloading the extension from the Micro Focus Marketplace.

JVM COBOL interoperating with other languages

JVM COBOL programs compiled with REENTRANT"2" now produce instance methods, whereas previously, compilation of these programs produced static methods. If your non-COBOL code relies on these methods being static, you will have to refactor your code to handle this.

Compiling C programs with the cob command

On AIX platforms, when using the cob command to compile C or C++ programs (for example, cob -xc filename.c) the compiler used is dependent on the version of the operating system: on AIX 7.2, an XL-based compiler is used; on AIX 7.3, a Clang-based compiler is used.

Early warning of compatibility issues with current operating systems

In order to better support modern operating systems, we are aligning closely with their operability guidelines. We now detect previously-undefined behavior when interacting with OS level functions.

Error RTS096 alerts you to any calls to the operating system's fork() API, in a process that has directly or indirectly called COBOL functionality, in your code.

The error gives you an early diagnosis of a situation which, if left unchecked on modern operating systems, could lead to deadlocks, crashes or other failures at run time. These problems would often occur intermittently and be very challenging to track down.

See the KB article https://community.microfocus.com/t5/Visual-COBOL-Knowledge-Base/fork-rts64-Error-96-encountered-in-child-process/ta-p/1771191 for more details.

Call prototyping in library routines

The copybooks cbltypes.cpy and cblproto.cpy, provided by this system for call prototyping in library routines, include features of the latest syntax, specifically the CONSTANT keyword. If these files are used in conjunction with the MF directive, it should be set to the current level, 21; otherwise, you should remove the directive, or do not use these copybooks.

Database Access - OpenESQL

Just like other DBMS SQL COBOL precompilers, OpenESQL now follows embedded SQL standards and disallows the use of group host variables in WHERE <column> = :hostvar clauses. In the past, this was not flagged at compile-time, and would lead to unpredictable results when executed.

Handling of anonymous root field in JSON

For JSON (RESTful) service interfaces, the IMTK no longer forces the outermost (root) structure of a JSON message body to always be a JSON object, but now also supports a root JSON array or primitive. Though the root is obligatorily nameless in the JSON message, in the Interface Mapper the anonymous root must now be defined in the operation's interface fields as the top-level body field. Consequently, since there cannot be more than one input top-level body interface field nor more than one output top-level body interface field in an operation, all interface fields that appear in the body of a message must now be children of the top-level body field. Any non-conforming pre-6.0 JSON service interface is still supported as-is, but conformance would be required upon saving in the Interface Mapper.

National data items in JVM COBOL code

JVM COBOL code that uses IS NUMERIC tests on NATIONAL or NATIONAL NUMERIC data items, or uses NATIONAL NUMERIC data items in programs compiled with the CHECKNUM Compiler directive must be recompiled in this release. Compiled code from earlier products that uses such constructs will generate a MissingMethodException error when run under this release.

Rebuild required for projects unable to locate the Windows Resource Compiler

Projects that were last built in a version prior to 6.0, and that rely on the Windows Resource Compiler (RC.exe) need to be rebuilt in Eclipse, otherwise they may produce an error. This is due to the relocation of RC.exe in this version of the product. Affected projects will be those that explicitly reference a manifest file (used to include such things as cursors, fonts, and icons), and that are built directly from the command line.

The problem is fixed if you open and build the project within the Eclipse IDE (as .cobolBuild is rebuilt to find the new location of RC.exe). Alternatively, you should ensure that PATH contains a reference to RC.exe if you continue to run projects from the command line.

VALUE clause not permitted to follow items that use the OCCURS DEPENDING ON clause when ODOSLIDE in effect

If your Working Storage contains a data item with the OCCURS DEPENDING ON phrase, and ODOSLIDE is in effect, any subsequent data items at the same or higher level must not contain a VALUE clause. If they do, an error (COBCH1962) is now generated.

If you cannot remove the VALUE clauses from your source code or remove ODOSLIDE, contact Customer Care.

Changes in Behavior in Release 5.0

Back to Top

For an up-to-date list of these changes for release 5.0, see this product's Release Notes available from the Product Documentation section of the Micro Focus Customer Care website.

Communications Facility syntax no longer supported

The Communications Facility (also referred to as the COMMS SECTION or COMMUNICATION SECTION) has long since been deprecated. Certain syntax relating to this was still accepted (but ignored) by the Compiler. That syntax is no longer permitted, and if encountered, the Compiler will now generate an error (COBCH1895 Communication Facility not supported); you must remove the section from your sources before recompiling.

Compiling

Inclusion of line numbering information in run-time error messages provides useful diagnostic assistance during abnormal program termination. This is already the default behavior on Unix and Linux platforms, and is now the default compiler behavior when using the command line on Windows platforms too.

For debug builds it is normal to specify the ANIM compiler directive, and for release builds it is normal to leave the ANIM directive absent from build scripts. In these circumstances, you might now notice the presence of .idy files where you had not previously. The production of these .idy files does not affect the behavior or performance of your application other than generation of line number information. IDY files are not required to execute your application and you should not distribute them unless you have a specific requirement to debug your application.

Note: Behavior has not changed if you are using an IDE or build scripts generated by an IDE.

File Handling

Applications which make calls directly to EXTFH or EXTSM, passing the FCD (File Control Description) now need to initialize the FCD correctly. This means that any unused or reserved areas need to be initialized with binary zeros or you could receive an RTS114 error, for example when calling EXTSM. See File Control Description (FCD).

Calling coblongjmp() within an error procedure, exit procedure or signal handler

Calling coblongjmp() within an error procedure, exit procedure or signal handler now generates a fatal Run-Time System error message: COBRT131 coblongjmp() can not return from current context (Fatal).

This scenario was previously documented as a restriction, and is now enforced, to prevent subsequent issues. The resolution to such an error is to refactor the code to remove the coblongjmp() call from any error procedures, exit procedures, or signal handlers.

Changes in Behavior in Release 4.0

Back to Top

For an up-to-date list of these changes for release 4.0, see this product's Release Notes available from the Product Documentation section of the Micro Focus Customer Care website.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Compiling

The Compiler now produces an E level message - COBCH1888 Typedef is defined differently in another external program - if different external programs have conflicting definitions of the same typedef name. To restore the previous behavior, where the earlier definition was ignored, use the directive HIDEMESSAGE"1888".

Enterprise Server security

Web access to the Enterprise Server Console Log and Communications Server Log is now restricted when the enterprise server region is secured using external security. Users will be required to provide a valid username and password in order to view either log file.

Web access to the logs can be controlled using the standard ACL definitions under the new Communications Server resource class, with resources Enterprise Server Console Log and Communications Server Log. If these resources exist, users require 'read' access to be allowed to view the logs. If the resources do not exist, the default behavior is to allow 'read' access on entry of a valid username and password.

An example of the new resource class and resource definitions can be found in the es_default_ldap_msuser.ldf (Windows), or es_default_ldap_unix.ldf (UNIX) file, which is located in the bin (Windows), or etc (UNIX) sub-directory of your product directory.

Executables may require relinking or recompiling

Note: Windows-only.

Version 4.0 of your product is dependent on a later version of the Microsoft C run-time system than earlier Micro Focus products. This means that COBOL executables (.exe) built with an earlier version of your product might not be compatible with version 4.0 run-time products. If the behavior of your application changes with version 4.0, we strongly recommend that you relink the main executable with version 4.0. This will ensure that the COBOL run-time system fully handles any run-time error conditions that might occur.

A new executable that is fully compatible with version 4.0 can be produced without recompiling the application, as long as the original object code is available and it is relinked with version 4.0.

To allow your executables to benefit from the product's latest programming and performance enhancements, we recommend a full recompilation of your source code.

IMTK runtime configuration

Due to changes made to the Configure Runtime Environment dialog box in this release, after you upgrade your system, you must reenter all previously set values on this dialog box before running a service.

Application Server JCA Support for Enterprise Server

With this release, all CICS-related Java artifacts have been delivered using a new directory structure under the javaee-ccl directory of your Visual COBOL installation directory. The javaee-ccl directory structure mimics the structure of the javaee directory. For example, mfccl.jar is no longer located in the bin subdirectory, but can be found in the javaee-ccl\common directory.

Test Coverage results

Schema changes that affect the test coverage results generated from the tcutil utility mean that if you propagate the results to a third-party application (for example, an XSLT processor), and rely on the <copyFileCoverage> element, you need to alter your transformations to focus on <sourceFileCoverage> instead. The element was renamed to more appropriately reflect its contents, as tcutil now gives global coverage for all source files (not just copybooks).

Changes in Behavior in Release 3.0

Back to Top

For an up-to-date list of these changes for release 3.0, see this product's Release Notes available from the Product Documentation section of the Micro Focus Customer Care website.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Compiler Directives

The default for the FASTINIT directive has changed: FASTINIT is now the default when setting the MF dialect. The directive remains not set by default (that is, NOFASTINIT) for other dialects.

Managed COBOL

Back to the list

References to types within an assembly other than mscorlib need to be explicitly referenced. You can achieve this by using the ILREF Compiler directive.

Previously, in certain circumstances, the Compiler would allow access to types within the System.dll assembly without the need for an ILREF"System" directive.

OpenESQL

Back to the list

The new OpenESQL OPTIMIZECURSORS SQL compiler directive option is turned on by default for ODBC (DBMAN=ODBC). This ensures that embedded SQL cursors that use WITH HOLD and FOR UPDATE clauses have the same data integrity across all databases.

If your applications require the OpenESQL preprocessor to use the behavior provided in an earlier release, compile them using OPTIMIZECURSORS=NO.

Reserved words

Back to the list

  • There have been a number of new reserved words added to the COBOL language; these are all in effect under MFLEVEL"19", which is the default level when running under the MF dialect. Any of the following words are now not allowed under default conditions, and you will need to remove/rename them, or specifically configure your environment to allow them:
    • ALLOCATE
    • FREE
    • JSON
    • END-JSON

    See Reserved Words Table at the end of this topic for more information.

Changes in Behavior in Release 2.3 Update 2

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Compiler

Back to the list

  • In previous product releases, the scoping rules for nested programs (as defined in ANS85 COBOL), were not enforced in managed COBOL (.NET and JVM). This meant that, in cases where program A contained programs B1 and B2, and programs B1 and B2 contained C1 and C2, respectively, it was possible to call program C2 from C1, for example. The lack of scoping rules also meant that it was not possible for B1 and B2 both to contain a program with the same name.

    This product release enforces the correct ANS85 scoping rules for nested programs, including COMMON programs, and makes it possible to have multiple programs with the same name at different levels of the nesting hierarchy. In this way, the behavior in managed COBOL is now compatible with the behavior of native COBOL programs.

  • Replacing a partial token no longer causes the second part of the token to appear on a new line. This could happen if the new text was larger than the text being replaced.

    2869185 (1105763)

  • There is no longer a problem opening an RM/COBOL indexed file when the program has a RECORD CONTAINS n CHARACTERS clause and there are record descriptions with lengths less than n. This situation previously caused a 39 error on the OPEN (other than OPEN OUTPUT) because there was a mismatch in the minimum record length.

Enterprise Server

Back to the list

  • Previously, it was possible to install groups that should not have been installed. If a group name, as defined in the Startup List, did not exist in the list of Groups then the next Group in the alphabetical order would be loaded instead. Now, if a Group is not defined in the list of Groups, a warning that the Group could not be loaded is issued.

    2869848 (619107)

  • On UNIX, if the "File Path" setting was not specified in the configuration of an Enterprise Server, the environment variable TXFILEP was defaulting to $COBDIR/etc/cas. This has been changed and TXFILEP is not populated when the "File Path" is not specified.

IDE

Back to the list

  • This update modifies any existing connections defined in an Eclipse workspace. If the connections had any non-default values, those values could revert to their original default setting. After installing this release, before you use any remote connections for the first time, you need to check the settings and amend them as necessary.

    2852872 (1103699)

Micro Focus Directory Server

Back to the list

  • The "-n" option for the mfds command now supports hostnames as the network addresses in addition to IPv4 addresses.

    2816871 (1099564)

Monitoring and Management

Back to the list

  • Messages that are written to the console log by applications that perform "display upon console" now contain a standard message ID (CASMG0001I).

    2854207 (1103659)

Run-Time System

Back to the list

  • The command_line_linkage tunable has been deprecated; equivalent functionality can be achieved by using the COMMAND-LINE-LINKAGE Compiler directive instead.

    2838118 (1101539)

    Attention: As of release 4.0, this tunable is no longer deprecated.

Changes in Behavior in Release 2.3 Update 1

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Application Workflow Modeller

Back to the list

  • Tools used in the File_Descriptor_Has_Action relationship now support Resource Processing. This means tools defined within a dialog table action can modify properties of the selected table rows.

    2835290 (1101493)

  • The standard Visual COBOL project model now contains additional context menu actions under "Open With..." for IMS DBD and PSP files to open either the DBD, the PSP or the IMS Database editors.
  • You no longer receive a REXX error when recompiling a component from a baseline.

Data Tools

Back to the list

  • When filtering a data file, if there is no valid temporary directory set, you are prompted to set one using the option in the Preferences dialog box.
  • The editor no longer allows you to open a file if the file size (without header size) is not a multiple of the record size on disk; an error is produced instead.
  • The level numbers displayed in a record layout correspond to the levels used in the .idy file that was used when the structure file was created.

Editor Writing Assistance

Back to the list

  • Content Assist suggestions are no longer offered if you start typing numbers and automatic triggering of suggestions is enabled.

IDE

Back to the list

  • When compiling to multiple executables from the command line, you must specify the -logger parameter to enable the correct log to be output to the console.

    2848855 (1102932)

  • For a file added to a JVM COBOL project by adding the folder that stores the file (using the Source tab on the Micro Focus > JVM Build Path > Source page in the projects' properties), there is now a new context-menu command, Copy to Output Directory, in COBOL Explorer. Choosing this command on a file triggers a build of the project and copies the file into the output directory.

    2699374 (1094326)

Run-Time System

Back to the list

  • The Audit Manager contains a new TIMEOUT option. When a client sends an audit event using the ‘CBL_AUDIT_EVENT’ API, the event gets placed in the next available slot in a shared memory block. If shared memory is full (i.e. no slots are available), the event is re-tried until a slot becomes available.

    If no Audit Manager is running, no events are removed from shared memory, and no slots will ever become available. Therefore, use the new TIMEOUT option so that a client will only retry sending until the TIMEOUT duration is reached; after which, it will stop sending audit events. If Audit Manager is recycled, events will start to be sent again.

    To set the TIMEOUT for all Audit Manager clients, specify the following line in the Audit Manager configuration file:
    mfaudit.timeout = n
    Where n is the timeout value in milliseconds.

    To set the TIMEOUT for an individual Audit Manager client, use the ‘CBL_AUDIT_CONFIG_PROPERTY_SET’ API. It takes an integer property-value, which should be the timeout value in milliseconds.

    If TIMEOUT is set using both methods, the client property TIMEOUT takes precedence, unless this property is set to zero; in such cases, the TIMEOUT in the configuration file is used. If you use the ‘CBL_AUDIT_CONFIG_PROPERTY_GET’ API on the ‘TIMEOUT’ property, it only returns the TIMEOUT value for the client property; it does not return the value set in the configuration file.

    2838689 (1101685)

  • Several changes have been made to the implementation of IS DBCS, IS KANJI and IS JAPANESE class condition tests:
    • IS [NOT] DBCS

      When CHARSET"EBCDIC" is in effect, the IS DBCS test returns true when each character in the string is deemed to be a valid DBCS character. A valid character has its first byte in the range 0x41 through 0xFE, and the second byte in the range 0x41 through 0xFE, or the character is an EBCDIC space (0x4040). When CHARSET"ASCII" is in effect, the DBCS test uses an OS call to determine if the string contains only valid double-byte character, and returns true if valid.

    • IS [NOT] KANJI

      When CHARSET"EBCDIC" is in effect, the IS KANJI test returns true when each character in the string is deemed to be a valid Kanji character. A valid character has its first byte in the range 0x41 through 0x7F, and the second byte in the range 0x41 through 0xFE, or the character is an EBCDIC space (0x4040). When CHARSET"ASCII" is in effect, the IS KANJI test uses an OS call to determine if the string contains only valid Kanji character, and returns true if valid.

    • IS [NOT] JAPANESE

      When CHARSET"EBCDIC" is in effect, the IS JAPANESE test is not supported, and will generate a COBCH1806 Feature not supported in selected charset message on compilation.

      When CHARSET"ASCII" is in effect, the IS JAPANESE test returns true when the string contains only double-byte Japanese characters or single-byte Japanese Katakana characters, and returns true if valid. When NSYMBOL"NATIONAL" is in effect, these class tests are not supported, and will generate a COBCH0303 Operand has wrong data-type message on compilation.

    2812895 (1098401)

SQL Option for DB2

Back to the list

  • Spurious errors were sometimes returned while querying using an ALIAS.

    2830383 (1100609)

Changes in Behavior in Release 2.3

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

Where present, the numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

CAS Security

Back to the list

  • The Enterprise Server External Security Facility now includes MLDAP ESM Module 2.0, with a new algorithm for identifying the best-matching resource-access rule and ACE for resource-access security checks. This algorithm is faster and matches most customers' expectations. The new algorithm also provides an optional "username substitution" feature. It can be enabled by setting "rule substitutions" to "yes" in the [Operation] section in the Security Manager configuration text area. When this is enabled, the string "${user}" in a resource-rule name will be replaced with the name of the user that makes the request. For example, a DATASET rule named "USERS.${user}.**" would apply to datasets with the requesting user's name as the second qualifier. In rare cases, customers with complex, ambiguous resource-access security rules might see experience changes in behavior as a result of the new algorithm. The old algorithm is still supported and can be enabled by setting "version 1 authentication" to "yes" in the [Operation] section of the Security Manager configuration.

    2807531 (1097783)

CAS XA Switch modules

Back to the list

  • The XA switch modules now support dynamic registration.

    2682101 (1092325)

  • The XA switch modules now support batch-only operations when multiple XA Resource Managers have been defined.

    2664675 (1091082)

  • In Visual COBOL 2.2 update 2, Micro Focus identified undefined run-time behavior when the following combination of directives was specified: SIGN"EBCDIC", CHARSET"ASCII", and one of the following: HOST-NUMMOVE, HOST-NUMCOMPARE or SIGN-FIXUP. Previously (Visual COBOL 2.2 update 1 and earlier), if this combination was specified, the SIGN”EBCDIC” directive should have been ignored, to avoid a mixture of ASCII and EBCDIC characters; however, SIGN”EBCDIC” was still being honored, resulting in undefined run-time behavior. Therefore, this combination of directives is now invalid for Visual COBOL 2.2 update 2 or later, and if specified, will be rejected at compile time.

    2786397 (1095265)

Compiler

Back to the list

  • For native COBOL, the size limit of the Data Division now stands at 2GB -1.

    2796076 (1096384)

  • COBDATA has no effect on compilation. The output of the Compiler is the same location regardless of whether COBDATA is set.

    Previously, it was not possible to specify sign(EBCDIC) with sign-fixup, host-num-move or with host-num-compare. This combination is now supported in native COBOL but remains invalid for managed COBOL code. This is applicable to version 2.2 U2 HotFix 10 onwards.

    2824577 (1100823)

Data Tools

Back to the list

  • DFCONV now returns the correct return-code; previously, it would always return 0.

File Handling

Back to the list

  • Custom file handlers (using DYNREDIR) are now called for each part of a concatenated file.

    2795077 (1096322)

File Locking

Back to the list

  • In versions prior to Visual COBOL 2.3, the semantics of the sharing phrase specified in an OPEN statement or used within a call to CBL_OPEN_FILE were not correctly applied in some cases on UNIX and Linux platforms. From version 2.3 onwards, the sharing phrase is correctly honored when the tunable strict_file_locking=true is set, which is the default setting.

    Example of potential changes in behavior:

    • Process-A opens a file with read-only access and a sharing mode that denies other processes write access (SHARING WITH READ ONLY).
    • Process-B then attempts to open the file with read-only access and a sharing mode that denies other processes read access (SHARING WITH NO OTHER).

    With strict_file_locking=true, Process-B is unable to open the file, because Process-A has successfully opened the file allowing only read access.

    With strict_file_locking=false, Process-B successfully opens the file.

    If your application encounters unexpected OPEN conditions or fails to open files, it might be as a result of the new file locking behavior. In such circumstances, we recommend that you review the file locking and sharing requirements of your application and refactor your source code to work with the default setting. The original file locking and sharing behavior can be restored by setting strict_file_locking=false.

IDE

Back to the list

  • Visual COBOL for Eclipse now ships with Eclipse 4.4.2 (Luna). A consequence of this is that if your application also contains JVM COBOL code that was built with a version of Visual COBOL prior to version 2.3, those parts of your application must be rebuilt; otherwise you will experience errors at either compilation or run time.
  • Visual COBOL for Eclipse now ships with Eclipse 4.4.2 (Luna). If your applications contain JVM COBOL code that was built with a previous version of the product, those parts of your application must be rebuilt; otherwise you will experience errors at either compilation or run time.

    (609469)

  • A project can have one of two connection modes: NFS/Samba, where the target location is mounted as a local drive, and RSE, which is a purely remote connection to the target location. For project types such as Mainframe COBOL, NFS/Samba is required to use some tools which do not support RSE. For most other projects, it is possible to switch between connection modes using the Remote Settings context menu option. In the dialog box, there are radio buttons allowing for selection of connection modes. On changing mode, you must select an existing connection of the appropriate type, or create a new one. If switching to NFS/Samba mode, you must specify the local path to the project.

    2792882 (1096196)

  • By setting "-Denable.projectrepair=true" in the eclipse.ini file, .cobolProj and .pliProj files will be repaired to reflect the workspace on project refresh.

    2696707 (1095994)

J2EE Connector

Back to the list

  • This release provides a new command-line argument to Java, mf.ssl.algorithm, which can be set to an appropriate algorithm.

    2799213 (1096684)

MF Server Administrator (GUI)

Back to the list

  • Passwords that entered through either the MFDS or the ESMAC interface now use the same encoding.

    2792382 (1096011)

Updated Run-Time System

Back to the list

  • COBOL Server now provides an execution environment capable of running applications that were each built using different development products. A consequence of this is that if your application has a main COBOL executable (.exe) that was built with a version of Visual COBOL prior to version 2.3, you should ensure that the executable is rebuilt and packaged with the new run-time system. You can rebuild from the IDE or the command line.

    Other COBOL subprograms built with previous versions of Visual COBOL are not required to be rebuilt.

Changes in Behavior in Release 2.2 Update 2

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Compiler

Back to the list

  • When using the HOSTRW directive with the mainframe dialect, Report Writer will now produce the full range of ASA control characters and will emulate mainframe print files.

    2697615 (1094527)

  • Fixed Binary (p<=7) is now an 8-bit, signed, 2's complement binary integer by default.

Documentation

Back to the list

  • The default setting for the MFALLOC_PCFILE environment variable has changed; the default is now set to Y, which means that when cataloguing a file that has a DCB attribute of DSORG=PS, a physical file is created for it if one does not exist. Previously, the default was set to N, which meant that a file was not created.

    2697571 (1094370)

Enterprise Server

Back to the list

  • The Enterprise Server External Security Facility now includes MLDAP ESM Module 2.0, with a new algorithm for identifying the best-matching resource-access rule and ACE for resource-access security checks. This algorithm is faster and matches most customers' expectations.

    The new algorithm also provides an optional "username substitution" feature. It can be enabled by setting "rule substitutions" to "yes" in the [Operation] section in the Security Manager configuration text area. When this is enabled, the string "${user}" in a resource-rule name will be replaced with the name of the user that makes the request. For example, a DATASET rule named "USERS.${user}.**" would apply to datasets with the requesting user's name as the second qualifier. In rare cases, customers with complex, ambiguous resource-access security rules might see experience changes in behavior as a result of the new algorithm. The old algorithm is still supported and can be enabled by setting "version 1 authentication" to "yes" in the [Operation] section of the Security Manager configuration.

    2807531 (1097783)

J2EE Connector

Back to the list

  • The listSystem.properties file in package com.ibm.ctg.client was missing documentation for some sections.

Changes in Behavior in Release 2.2 Update 1

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

COBSQL

Back to the list

  • COBSQL now displays appropriate COBOL syntax errors after encountering EXEC SQL statement errors.

    2673619 (1093197)

Changes in Behavior in Release 2.2

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Common Communications Interface

Back to the list

  • A new option, use_global_namespace, is available for the CCI.INI file in the Windows %SystemRoot% folder. If use_global_namespace is set, all the ccishared memory objects are created in a system-wide address space, and the applications hosted by different users, including system services, can communicate. To use this facility, edit the CCI.INI file and ensure use_global_namespace is set to "yes". [ccismem-base] # Allow interaction between users on a # single system. Using this option reduces security as # all users will have access to the same name space. use_global_namespace=yes If the value of this option is anything other than "yes", or if the option is missing, no change is made to the existing behavior.

    2195519 (1062800)

Compiler

Back to the list

  • The default for the NSYMBOL directive under DIALECT(ENTCOBOL) has been changed to NSYMBOL(NATIONAL) to emulate the equivalent IBM default.

    2657471 (1090355)

  • To improve RM/COBOL and ACUCOBOL compatibility, the SIGN clause at a group level is no longer applied to non-DISPLAY usage signed numeric data items within the group, just as it is not applied to unsigned numeric data items and non-numeric data items within the group.

    2549904 (1082171)

  • Previously, even though no code was generated, the Compiler allowed the ON EXCEPTION and NOT ON EXCEPTION phrases in the DISPLAY statement in formats that do not allow these phrases. As a result, if the DISPLAY statement was in the ON EXCEPTION phrase of another statement, the NOT ON EXCEPTION phrase would bind incorrectly with the DISPLAY statement instead of with the intended containing statement - for example, ACCEPT or CALL.

IDE

Back to the list

  • The Problems view now has a 'Program' column that displays the name of the program in which the problem occurred. If the column is not present in the view by default, it can be added through the Configure Columns dialog box in the View Menu.

    2608496 (1088530)

  • The outline of the ruler in the COBOL editor now changes on modelChanged depending on the current source format.

    2488419 (1077143)

  • Deleting a Web service or a Java interface mapping now deletes the files relating to it from the repos directory and, if it is empty after the files have been deleted, will remove the repos directory itself.
  • The IDE now performs an automatic directive determination when files are added to a project. You can also use a command to perform directive determination of the project manually.

Interface Mapping Toolkit

Back to the list

  • For program-based Service Interfaces, if the program-id name in the COBOL source is in lowercase and is not surrounded by quotes, its corresponding entry-point name is now forced to uppercase when used in a Service Interface Operation. Previously, the case was preserved. As a result of this change, existing Service Interfaces will become invalidated if you refresh their program's annotations because of the new spelling of the entry-point name. To avoid this, you need to surround the program-id name in the COBOL source with quotes before you refresh the annotations.

MF Directory Server

Back to the list

  • The mfds command line option for exporting registered Enterprise Server definitions to an XML file now supports the "*" option. This exports all registered servers rather than a specified server. Multiple server definitions are now exported into the target directory and saved into a file with the default name ALLSERVERS.xml. The import option now also supports the import of multiple server definitions from a single XML file.

    2641890 (1088838)

  • mdump now supports a new option, -e, to help you query the Security Manager configuration details. The possible values of the option are: "1" - shows security configuration that applies to any returned enterprise servers; "2" - shows security configuration for MFDS and the default Enterprise Server security configuration. This requires MFDS version 1.15.00 or higher; "3" - returns the properties of all configured external Security Managers.

    2487164 (1081693)

MF Server Administrator (GUI)

Back to the list

  • When adding a user to an external security manager, you can now include a password expiry time in the Advanced Configuration section of the Add New User wizard in Enterprise Server Administration. The field value is specified using generalized time format (YYYYMMDDHHMMSS.0Z), and can be used by the MLDAP ESM for calculating whether a user's password has expired and requires updating. This value may only be specified using this page when adding a user. You need to use an external directory services configuration tool to edit it.

    2562118 (1083203)

Request Handler

Back to the list

  • A problem that caused BIS to create log files in a directory named C:\ProgramData\AcuCorp\BIS\LogFiles was fixed. BIS no longer creates log files unless specified and the BIS logging service is now disabled by default. To enable it, you need to use the following global environment variable: BIS_LOG=[ OFF | ON | <directory> ] Where the values are:
    • OFF - disables logging (the same as if BIS_LOG is not specified or is left blank)
    • ON - enables logging and directs the log files into the default location, which must not be read-only.
    • <directory> - enables logging and directs the log files into the specified directory. The user must ensure that the BIS request handler has write rights for this directory. The directory must be an absolute path or network path. If the specified directory does not exist, BIS will attempt to create it. The containing directory must exist.

    The BIS_LOG variable is only examined when the BIS application pool is started or recycled. After setting or changing BIS_LOG, IIS must be restarted in order for the variable to take effect.

Changes in Behavior in Release 2.1 Update 1

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Documentation

Back to the list

  • To ensure no loss of functionality when accessing Vision and RM/COBOL data files, you should use the appropriate IDXFORMAT Compiler directive setting or file handling option, and not use the CALLFH(ACUFH) Compiler directive. See 'Configuring Access to Vision Files' and 'Configuring Access to RM/COBOL Data Files' for more information.

Enterprise Server

Back to the list

  • HSF includes the following enhancements:
    • A new record type (JCLF) for JCL files.
    • A Job class has been added to the JCL JOBSTART records.
    • A condition code has been added to the JCL STEP records.
    • Statistics for up to 5 Transient Data Queues per CICS record has been added (same as for exisiting TSQ stats). The HSF files will now be created with the following header: #HSFVer=02 Type,PID,Task,Date,Time,Tran/Job,User/DDName/CC,LU/Step,Prog/DSName,Latent/ReadCount,Resp/WriteCount,API/RewriteCount,SQL/DeleteCount,IMS,DSType,DSAccessType,File1,Count1,Time1,File2,Count2,Time2,File3,Count3,Time3,File4,Count4,Time4,File5,Count5,Time5,TS1,Count1,Time1,TS2,Count2,Time2,TS3,Count3,Time3,TS4,Count4,Time4,TS5,Count5,Time5,TD1,Count1,Time1,TD2,Count2,Time2,TD3,Count3,Time3,TD4,Count4,Time4,TD5,Count5,Time5

    2552658 (1082755)

IDE

Back to the list

  • You can now set program breakpoints as follows - click "Add Program Breakpoint" in the Run menu or on the Breakpoints view toolbar, and enter the program name in the dialog that is displayed.

    2606838 (1087239)

  • Local Enterprise Server regions without secure user credentials are now started with casstart and stopped with casstop commands.

    2606835 (1087238)

OpenESQL

Back to the list

  • SQLWARN4 flag was not being set when more than one row was returned for a singleton SELECT statement. The OpenESQL run-time now correctly sets SQLWARN flags when a singleton SELECT statement returns multiple rows.

    2593798 (1085945)

Changes in Behavior in Release 2.1

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

IDE

Back to the list

  • You can now specify in the IDE whether directories that you add to the project should be added to the copypath. You configure this in the project's properties under Micro Focus COBOL > Build Paths, and on the Copybook Paths tab.

    (589096)

Run-Time System

Back to the list

  • When running a full-screen application inside a terminal emulator on Linux, the actual size of the terminal is read at startup and reread when the terminal is resized. This behavior is also supported on AIX, HP/UX, and Solaris. The Micro Focus vt220 terminfo entry now correctly describes a 24-line display. A vt220-25 terminfo entry is included for compatibility with the previous behavior.

    2579335 (1084817)

Vision File System

Back to the list

  • When you configure your application to return RM/COBOL file status codes, by setting COBFSTATCONV=rmstat, the codes returned are ANSI'85 codes.

    2553438 (1082469)

Changes in Behavior in Release 2.0

Back to Top

This section describes significant changes in behavior or usage. These changes could potentially affect the behavior of existing applications or impact the way the tools are used.

The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem Incident (RPI) number (in parentheses).

Compiler

Back to the list

  • The scope of the ILUSING Compiler directive when used in a $set command has changed. The scope of the directive is now limited only to the source file it is set in, and not globally. This new behavior may mean that your source files no longer compile. To resolve this, add the required ILUSING statements to the required individual source files, or add the ILUSING directive on the command line. Alternatively, use the IDE to achieve the required behavior by setting the directive in the Additional Directives field.

DB2

Back to the list

  • The DB2 ECM has been updated to resolve run-time errors returned when compiling against mainframe databases in 64-bit mode.

    2549058 (1082441)

File Handling

Back to the list

  • When reading a file cataloged as DISP=SHR the file handler now buffers the read for better performance.

    2518330 (1079491)

IDE

Back to the list

  • Typing in the sequence area moves text after the cursor to the right and doesn't delete the characters at area end. To overwrite characters in the area, switch to insert mode by pressing the Insert key. Pressing the Tab key in the sequence area indents the text if the option "Pressing Tab in the sequence number area moves caret to area A" is not selected. Pressing the Tab key when there is a multiline selection aligns the text to the area margins.
  • Typing in the sequence area now works like typing in a regular text editor - it moves to the right all the text after the cursor and doesn't delete the charaters at area end. If you want to overwrite characters in the area, you can switch insert mode to overwrite by using "Insert" key.

Run-Time System

Back to the list

  • On Windows 7, building 64-bit native COBOL applications always rebuilt the entire project. This was caused by the Microsoft FileTracker tool, used by the COBOL projects to track dependencies, not working because of Windows 7 security updates. This product now includes a fix to work around this issue.