This section describes significant changes in behavior or usage in the current and past releases of . These changes could potentially affect the behavior of existing applications or impact the way the tools are used.
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.
Backward compatible support is provided for symbols files (.idy files) generated using any of the previous five major product releases.
When you attempt to debug, a version check of the .idy file is carried out, and if produced with a product version older than the last five releases, it is rejected and you are unable to debug with it. In such circumstances, recompile your application to generate a new .idy file. [5]
You can replace your SafeNet Sentinel licenses with AutoPass licenses starting with release 8.0. However, it is not necessary to switch to AutoPass licenses unless you are adopting release 10.0. Contact Micro Focus Customer Care for further information.
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.
In a future release of the product (10.0 or later), only a Clang-based compiler will be supported, and any code compiled with the XL-based compiler will require recompilation. To prepare for this change if you plan to upgrade, you can run a script that scans for XL-compiled code, so you can see how much of an effect this change will have. The checkbin script is available from $COBDIR/bin: run checkbin -h for more details.
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) ...
A new EXTFH configuration option, FLUSHSYSOUT, is now available to enable you to view the progress of active spool jobs. When set to ON (the default), the buffer is flushed after each record is written, enabling you to view the progress as it runs. Previously, a pre-defined buffer had to be completely written to before progress was displayed; this behavior was more performant, and so can be re-enabled by setting FLUSHSYSOUT=OFF [2]
For an up-to-date list of these changes for release 8.0, see this product's Release Notes available from the Product Documentation section of the Micro Focus Customer Care website.
For an up-to-date list of these changes for release 7.0, see this product's Release Notes available from the Product Documentation section of the Micro Focus Customer Care website.
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.
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.
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".
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.
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 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 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.
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.
For an up-to-date list of these changes for release 6.0, see this product's Release Notes available from the Product Documentation section of the Micro Focus Customer Care website.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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_unix.ldf file, which is located in the etc sub-directory of your product directory.
With this release, all CICS-related Java artifacts have been delivered using a new directory structure under the javaee-ccl directory of your 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.
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).
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).
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.
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.
See Reserved Words Table at the end of this topic for more information.
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).
2869848 (619107)
2816871 (1099564)
2854207 (1103659)
2838118 (1101539)
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).
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.
mfaudit.timeout = nWhere 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)
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.
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.
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)
2830383 (1100609)
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).
2807531 (1097783)
2682101 (1092325)
2664675 (1091082)
2786397 (1095265)
2795077 (1096322)
Example of potential changes in behavior:
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.
2799213 (1096684)
2792382 (1096011)
Other COBOL subprograms built with previous versions of Visual COBOL are not required to be rebuilt.
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).
2697615 (1094527)
2697571 (1094370)
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)
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).
2673619 (1093197)
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).
2641890 (1088838)
2487164 (1081693)
2562118 (1083203)
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.
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).
2552658 (1082755)
2593798 (1085945)
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).
2579335 (1084817)
2553438 (1082469)
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).
2549058 (1082441)
2518330 (1079491)