This section describes significant changes in behavior or usage in the current and past releases of
Visual COBOL
for Visual Studio 2019. 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.
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
.NET 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).
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)
...
Changes in Behavior in Release 7.0
Back to Top
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.
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.
.NET COBOL interoperating with other languages
.NET 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, or recompile the
.NET COBOL code with the ILSTATIC directive.
Note: The ILSTATIC directive will be deprecated in a future release of
Visual COBOL
Changes in Behavior in Release 6.0
Back to Top
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.
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
.NET COBOL code
.NET 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.
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 file, which is located in the
bin sub-directory of your product directory.
Executables may require relinking or recompiling
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).
Compatibility AddPack for Visual COBOL
Back to the list
Compatibility AddPack for Visual COBOL is now deprecated and will not be available with release 3.0 and later.
The Dialog System GUI and run-time components and Dialog System Character Mode (on Windows and UNIX) which were part of the
AddPack are now installed as part of
Visual COBOL for Visual Studio. The run-time components are installed as part of
COBOL Server. These are only included for backward compatibility and Micro Focus does not recommend that you use them for new development.
The other components which were part of the AddPack, the Character-Based Data File Editor, CSBIND and Screens, will be available
upon request from
Micro Focus
Customer Care.
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
both ADO.NET (DBMAN=ADO) and
ODBC (DBMAN=ODBC).
For ADO.NET, this reduces cursor memory consumption thereby providing optimal performance.
This
also
ensures that, for ODBC, 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.
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
- The ILPINVOKE directive is now allowed only in an initial $SET. This is in line with similar directives like ILREF and ILTARGET.
Previously, the ILPINVOKE directive was allowed in other positions in the source code which could cause issues with insufficient
memory.
2860347 (1104422)
- 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)
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)
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).
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.
Dialog System
Back to the list
- Versions of the Micro Focus Compatibility AddPack released with version 2.3 of Enterprise Developer or Visual COBOL 2.3 or
with earlier versions supported the use of the "MFOLECL_NO_THREAD_INIT" environment variable. Using this variable, you could
disable the default OLE Class Library COM threading initialization. This helped avoid issues that could manifest as hangs
and crashes, especially on Microsoft's Windows 8.x or 10 and with applications that are a hybrid between Dialog System, OLE
class library and .NET elements - see
http://community.microfocus.com/microfocus/cobol/visual_cobol/w/knowledge_base/20715.exception-occurs-when-native-dialog-system-program-calls-managed-winform.aspx.
In the version of the Micro Focus Compatibility AddPack released with Enterprise Developer 2.3.1 or Visual COBOL 2.3.1, this
environment variable is now enabled by default and no longer needs to be set exclusively. To restore the previous behavior,
use a new environment variable, MFOLECL_THREAD_INIT, and set it to Yes.
2848875 (1102920)
Editor Writing Assistance
Back to the list
-
IntelliSense suggestions are no longer offered if you start typing numbers and automatic triggering of suggestions is enabled.
- Pressing TAB in the Visual Studio editor now always inserts the highlighted item in the IntelliSense list of suggestions.
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).
Building
Back to the list
- Visual COBOL now supports Visual Studio parallel builds for COBOL projects. Parallel builds enable you to build multiple projects faster
on multi-CPU machines.
If, after upgrading to this version of
Visual COBOL, you start receiving unexpected build errors when compiling an existing multi-project solution, this may be a result of enabling
support for parallel project builds. These are a couple of examples of issues that might be causing these errors:
If resolving any of these issues does not help resolve the build errors, consider disabling the parallel build support - click
Tools > Options > Projects and Solutions > Build and Run and
set maximum number of parallel project builds to
1.
Converting Additional Directives to projects' properties
Back to the list
- Starting with this release, an
Update Project Properties dialog box might start to appear when you are opening existing COBOL solutions. The dialog box recommends converting some
of the directives specified in
Additional directives to project's properties. This is to address an issue where you might try to set file properties that differ from the project
directives and the directives specified in
Additional directives that have a property equivalent take precedence over the file properties. As a result of this you might receive unexpected
build issues when building your applications.
This dialog box helps eliminate the issue by converting the directives specified in
Additional directives to project properties.
If you do not want the IDE to perform this check, click
Tools > Options > Micro Focus > General and uncheck
Check Additional Directives for project properties.
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)
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)
IDE
Back to the list
- The default warning level for new COBOL projects in
Visual COBOL for Visual Studio is now "Include recoverable errors (Level E)". This also includes "Severe errors only (Level S)" and unrecoverable
(Level U) errors. Micro Focus recommends you set the warning level on the COBOL page in a project's properties to "Include
warnings (Level W)" where appropriate to help avoid potential coding problems.
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)
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 use of ILSMARTLINKAGE in sub-programs is now working correctly. In previous versions, if it was specified in a sub-program,
a dynamic call of that program from another program could cause execution failure.
2608825 (1087435)
- In managed code, the statement DISPLAY UPON SYSERR now behaves as expected. Previously, it was behaving the same as DISPLAY
UPON CONSOLE.
2589053 (1085576)
- When the PROPERTY keyword is used on a numeric edited field, the SET method now works correctly when the program specifies
DECIMAL POINT IS COMMA.
2588508 (1085560)
- 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
- Performance when loading and building COBOL projects that consist of a large number of files has been improved.
2657121 (1090316)
- When building a project outside of the IDE, adding a new file to a project no longer results in a full rebuild of the project.
2617003 (1089623)
- You can now change the display format of values on individual rows in the Watch window using modifiers after the names of
variables and expressions. To do this, click a row, press F2, and type a modifier after the name of the variable or the expression
as follows - type VariableName,h or VariableName,x to always display the variable or the expression in hexadecimal format;
type VariableName,d to always display numeric variables in decimal format and strings - as text.
2614182 (1087959)
- When you perform a search in the IDE for copybooks that your programs depend upon, the COPYEXT directive you set from the
Additional directives field on the COBOL tab in your project's properties is now used in preference to the list of copybook
extensions specified in Tools > Options > Text Editor > Micro Focus COBOL > Advanced, and in Copybook extensions. This change
does not affect the project build and background parsing that already use COPYEXT.
2612053 (1087773)
- Attempting to restart an enterprise server failed if the process took longer than fifteen seconds.
2607051 (1087259)
- When you debug native code and query a data item which contains null bytes, the value displayed in the Watch window is no
longer truncated at the first null byte.
2604749 (1087235)
- A new setting, "Define DEBUG constant", is now available on the COBOL page in the project properties of managed projects
for the Debug configuration. You can select it to add "constant"DEBUG(1)"" to the build directives.
2600567 (1086629)
- The Output window now displays a notification when the compilation of the IMS files has been successful.
2600137 (1086667)
- A problem with the value of "Link with objs" setting being duplicated after you reload the COBOL Link properties page has
been resolved.
2595408 (1086091)
- IntelliSense now displays data names longer than 32 characters correctly.
2594901 (1086053)
- Previously, when you upgraded COBOL projects with signed assemblies from Visual Studio 2003 format to Visual Studio 2010
format, the signed assembly property was lost.
2585458 (1085258)
- There is an improvement in the performance of the cursor in the text editor when working with larger files and projects.
2585450 (1085255)
- Using linked files in projects has been improved as follows:
- Folders that only contain linked files no longer disappear from the project when you reload it.
- The location of linked files is preserved in the project structure when you reload the project.
- Moving a linked file within a project no longer moves the actual file on the disk but only moves the link inside the project
structure.
- It is no longer possible to copy a linked file into the same project where, previously, this created a copy of the actual
file on the disk.
2574102 (1084208)
- When you convert Net Express projects that compile to .int or .gnt files to
Visual COBOL for Visual Studio, the application environment variables are now imported successfully.
2569777 (1083953)
- It is now possible to convert Net Express projects that do not contain any COBOL source files to Visual Studio projects.
2568638 (1083900)
- You can now set environment variables used by the native COBOL Run-Time system during initialization from the project properties
- click Environment on the Application tab.
2539447 (1081251)
- Pressing Enter to create a new line now preserves the indent in the COBOL editor in Smart edit mode.
2496411 (1077769)
- Pressing End inside the writing area of the COBOL editor now positions the cursor on the first non-blank character, if columns
12-72 contain any text. If the line is blank, the cursor is positioned on column 73.
2496351 (1077767)
- The COBOL editor now supports a "Smart edit mode" (see Tools > Options > Text Editor > Micro Focus COBOL > Margins) which
is enabled by default. In Smart edit mode, when you press ENTER in the code (A/B) area the comments move to the next line
and stay in the right-hand area.
2496350 (1077768)
- You now receive a suitable error message when you try to use "Start Without Debugging" with Mainframe Subsystem Application
projects.
2495298 (1078343)
- You can now use Solution folders to group projects in your solution.
2259310 (1065760)
- If, when you start debugging, the debug target does not exist you now receive an error message that correctly states the
missing filename.
- Any leading or trailing spaces you added to the name specified in the "Output name" field on the Application tab in the properties
of a native project are now ignored.
- Class view no longer contains outdated information from previous background syntax checking after classes have been renamed.
- Class view no longer contains outdated information from previous background syntax checking when the files defining types
have been removed.
- A problem with navigating to member definitions from the Class View has been resolved.
- A problem with navigating to member definitions from the Class View has been resolved.
- An issue where canceling some of the dialogs in Tools > Options resulted in the changes being saved anyway, or the pages
not reverting when next loaded, has been resolved.
- You can now start and stop servers from the Server Explorer when using the local machine's IP address or DNS name.
- It is now possible to debug a project that has its "Compile for debugging" setting enabled in the project properties for
the Release configuration.
- Selecting a project in Class View now triggers background syntax checking, if it has not been performed for that project
yet.
- If you have .NET Framework v. 4.5 installed, creating a COBOL Web application with Visual Studio 2010 Shell was failing with
a Signal 114 error and was causing the IDE to crash. This issue has been resolved for the IDE. To work around the issue when
you compile COBOL Web Applications from the command line, you need to manually set the environment variable VisualStudioVersion
to 10.0 before compiling.
- Using the tab character in comments no longer causes issues with the colorization of the code.
- The Visual Studio IDE no longer crashes if you try to close it while directives scan is in progress.
- Adding files to a project when directives scan is disabled was taking a long time to complete.
- Friend assemblies (as identified by the InternalsVisibleToAttribute) are now correctly handled during syntax checking, and
types are correctly found within friend assemblies when they are present.
- An issue with adding new platforms or configurations to a project or solution when the project contains pre- or post-build
events has been resolved.
- A problem with navigating to member definitions from the Class View, when the definitions occurred within copybooks used
within partial classes, has been resolved.
- A problem where trying to navigate to the source of an item from the Class View positioned you on the wrong line, has been
resolved.
- An issue where the Implements smart tag was present for interfaces that were fully implemented (when some of the methods
from that interface were implemented explicitly; and in addition to another interface which was not fully implemented) has
been fixed.
- An issue where method signatures were rendered incorrectly if the member had a 78 level item in its local storage has been
resolved.
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)
Samples Browser
Back to the list
- If you have installed the version of this product for both Visual Studio 2010 and Visual Studio 2012, the Samples Browser
now provides links for you to open the samples in either one of them.
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
- There is no longer a crash when adding a reference path to a managed COBOL project.
2604844 (1087055)
- When you debug native code and query a data item which contains null bytes, the value displayed in the Watch window is no
longer truncated at the first null byte.
2604749 (1087235)
- An issue where you could not open copybooks from the context menu in the COBOL editor when the filename was specified with
its extension and without surrounding quotes has been resolved.
2604709 (1087031)
- A problem with the value of "Link with objs" setting being duplicated after you reload the COBOL Link properties page has
been resolved.
2595408 (1086091)
- Previously, when you upgraded COBOL projects with signed assemblies from Visual Studio 2003 format to Visual COBOL 2010 format,
the signed assembly property was lost.
2585458 (1085258)
- There is an improvement in the performance of the cursor in the text editor when working with larger files and projects.
2585450 (1085255)
- The Error List window now shows the details about the "Illegal command line" error when it is a result of setting invalid
SQL directives.
2585426 (1085251)
- Adding files to a project when directives scan is disabled was taking a long time to complete.
(593378)
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).
Compiler
Back to the list
- The use of extended ACCEPT or DISPLAY statements in Windows applications (ilsubsystem"2") now produces error COBCH1634: Extended
ACCEPT/DISPLAY not allowed with a Windows GUI executable (ILSUBSYSTEM"2"). Remove the syntax or change the output type of
your application to 'Console Application'.
2575702 (1084365)
IDE
Back to the list
- A problem with the item templates in the Add New Items dialog box not available for PL/I projects has been resolved.
2581187 (1084876)
- There is now a build summary report for projects that compile to multiple output files.
2578006 (1084506)
- Previously, Visual Studio used to always rebuild the entire project after you changed the project properties or added files
when there were build error. This has been changed so that during subsequent builds Visual Studio only rebuilds the files
that are out-of-date.
2576400 (1084393)
- A new setting has been added to the COBOL tab in the project properties, "Generate listing option", which produces an .lst
file in a Listing subfolder in the project directory. The "Generate directives file" setting now generates the directive file
in the project output directory.
2494484 (1077662)
- Command line arguments are now passed to the program when started via the 'Start without Debugging' option in the Visual
Studio IDE.
- Previously, if you started debugging using CBL_DEUGBREAK and there was a COBOL source file open in the editor, when you stopped
debugging its dictionary file (.idy) was not being released. This resulted in any subsequent builds and rebuilds failing.
This problem has been resolved.
- The native COBOL projects in Visual Studio have been enhanced so that you can now build them to multiple executables - each
COBOL program in the project producing a separate executable.
- You no longer receive an error message when adding an event handler to an object in a COBOL WPF project if the .xaml code
behind file includes a class that does not have methods in it.
- The IDE no longer ignores certain Run-Time System errors from the Compiler which previously caused the build to fail without
an explanation.
- Compile extensionless COBOL files with the IDE no longer fails.
- Using the UI to add COBOL switches or environment variables to a COBOL Web Application (right-click the configuration file
in Solution Explorer and select Edit) no longer causes a configuration error when you run the application.
2558133 (1082871)
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
- An attempt to serialize a class containing COBOL data such as PIC X or group items could lead to a serialization exception.
2555177 (1082730)
- Dependent assemblies (ones that are required by other assemblies) that fail to load now issue a COBCH1581 warning "Could
not load dependent assembly AssemblyName". Previously, they generated a COBCH0942 error. If an assembly generates both COBCH0942
and COBCH1581 errors, the error report lists only the COBCH0942 error.
2507380 (1078845)
- 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
using the
Namespaces tab.
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
- Using File > New > Solution From Net Express Project to convert a Net Express project to a Visual COBOL solution on a machine
with a language locale other than English or Japanese produced an empty solution.
2548551 (1082073)
- The COBOL tab in the project properties of a new WPF Application sometimes was not showing any settings.
2535705 (1080950)
- In some menus and dialogs in the IDE copybooks were referred to as copy files. They are now consistently referred to as copybooks.
- The project properties have been enhanced. The SQL directives are no longer shown in Build Settings on the COBOL page where
they sometimes appeared as out-of-date. The SQL directives now appear only on the SQL page.
- Adding a watch on an item of the form buffer(1:size) caused the IDE to hang when "size" was not initialized.
- ActiveX components in the Windows Forms of a managed project could cause the programs to crash at run-time. Previously, to
work around this problem, you had to check the ActiveX references in the project and set their CopyLocal reference property
to True. This is now done automatically when the references are added.
2536071 (1080978)
- Adding an existing Windows Form to another project as a linked file did not function correctly. When you reopened the project,
the designer and the resx files were missing from all Windows Forms in the project.
2524313 (1079984)
OpenESQL
Back to the list
- OpenESQL did not always return a consistent error message or it returned an incorrect error message when a data conversion
exception occurred within the ADO.NET run-time system.
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.