Copyright © 2006 Fidelity National Information Services, Inc.
|Revision 1.0||6 September 2005|
In prior versions, GT.M restricted the length of a valid M name to 8 characters. Effective V5.0-FT01, GT.M allows M names up to thirty one (31) characters long. GT.M ignores any characters after the first 31, i.e. only the first 31 characters are significant in an M name. The following M names are enhanced according to the new length restrictions:
For global names, the preceding caret (^) continues to not count towards the limit.
Effective V5.0-FT01, GT.M also enhances region and segment names by allowing up to 31 characters from the existing limit of 16 characters. All GT.M utilities MUPIP, LKE, DSE and GDE including the percent utilities are enhanced according to the new restrictions on M names, region names and segment names.
All M commands and functions that use user-provided identifier names are enhanced to allow up to 31 characters.
On the VMS platform, GT.M previously had a restriction on external routines in that they had to refer to an upper-case M label when calls were made from external routines into M routines. This restriction no longer applies. GT.M allows external routines to call in to mixed-case M labels. In order to call into mixed-case M labels, you need to:
Compile the M sources specifying the MUMPS qualifier /LABELS=LOWER so that case-sensitive labels are generated in the object file. Note that this qualifier is enabled by default. Please see the chapter “Program Development Cycle” in the manual “GT.M Programmer’s Guide – VMS Edition” for more details on using the MUMPS /LABELS qualifier.
Compile the MACRO file (i.e. call-in table) using the MACRO-64 Assembler specifying the qualifier /NAMES=AS_IS. Please refer to the chapter “Integrating External Routines” in the manual “GT.M Programmer’s Guide – VMS Edition” for more details on using/compiling MACRO tables and the VMS system manual “MACRO-64 Assembler for Open VMS AXP systems” for more details on using the MACRO /NAMES qualifier.
The following are the restrictions with the usage of the MACRO /NAMES qualifier:
GT.M restricts the usage of /NAMES=AS_IS with External Call MACRO tables. Compiling the External Call tables using this option will result in MACRO or LINK errors. Note that GT.M already supports mixed-case M labels for CALLNAME in External Call tables, so this option is not required.
When compiling call-in MACRO tables with /NAMES=AS_IS, ensure that the macro name MUMPS_BINDING as well as the keyword names ENTRYREF, LINKNAME and OUTPUT are used in upper case. If these names are specified in mixed-case, the MACRO table will not compile.
When /NAMES=AS_IS is used, ensure that call-in tables and External Call tables reside in separate MACRO files.
The GT.M object file format has changed because of support up to 31 character long name and reorganizing the internal sections of object files. After the upgrade from an earlier version, all M programs must be recompiled using the new version. GT.M automatically recompiles and replaces old object files. All GT.M shared libraries need to be recreated.
The MUPIP binary extract format changed in V5.0-FT01 from the earlier versions. Although binary extract file from V4 releases can be loaded into V5 databases, a V5 binary extract file cannot be loaded into an earlier version database.
In a replicated environment where the primary site is running on V5.0-FT01 or later and the secondary site is running a version prior to V5.0-FT01, the primary will not replicate globals that are longer than 8 characters. The source server detects if the key in the journal record contains a global name of more than 8 characters and exits with the REPLGBL2LONG error.
In a client-server environment based on GT.CM GNP protocol, when the client is running V5.0-FT01 or later and the server is running a version prior to V5.0-FT01, any request to access a global with a name longer than 8 characters is blocked at the client. GT.M issues the following error message if the global name has more than 8 characters:
GTM-E-TEXT GT.CM server does not support global names longer than 8 characters.
On the other hand, when the server is running V5.0-FT01 or later and the client is running a version prior to V5.0-FT01, the request from the client would not contain a global name longer than 8 characters, so the operation would be allowed. However, if the result of the operation (i.e. value returned by $ORDER()/$ZPREVIOUS() gives an un-subscripted global variable name) contains a long global name, the server will return the following error to the client:
GTM-I-TEXT GT.CM client does not support global names longer than 8 characters.
Effective V5.0-FT01, the names of the global variables, database regions and segments used in GDE mapping can be up to 31 characters.
In order to support the longer names in the mapping, the format of the global directory (.gld) files is changed. With the exception of GDE, all GT.M utilities and the run-time system for GT.M processes can only read the new format. They all report version mismatch errors such as GDINVALID if they encounter the global directory (.gld) file in the old format. However, GDE continues to recognize the old format and can read the global directory file successfully. Since GDE automatically converts to the new format, the resultant file, when saved, is always written in the new format.
After installing V5.0-FT01, all global directory (.gld) files created by prior versions must be upgraded using GDE. The upgrade can be performed by setting the environment variable $gtmgbldir [UNIX] or gtm$gbldir [VMS] to the global directory (.gld) file and invoking GDE and then issuing a simple EXIT command to save the file in the new format.
Before upgrading a global directory (.gld) file, ensure that a backup copy of the old .gld file is made. GDE does not provide downgrade options to prior versions.
GDINVALID (認識されないグローバルディレクトリのファイル )
[参考]<s0><s1> GDINVALID, </s1></s0> Unrecognized Global Directory file format: xxx, expected label: yyy, found: zzz
Run Time Error:
The version of the global directory file "xxx" (without the quotes) does not match with the version expected by GT.M. The file might have been created by an incompatible GT.M version.
Compare the labels "yyy" and "zzz" (without the quotes). If the global directory was created by an earlier GT.M version, upgrade the file just by loading and then saving the file using GDE of the new GT.M version.
Global names longer than 8 characters cannot be handled at the secondary
Source Server Error:
A journal record contains a global variable name longer than 8 characters and the version running at the secondary does not support global variables longer than 8 characters.
Upgrade the secondary to V5.0-FT01 or later. If upgrade is not possible, avoid replicating regions that contain globals longer than 8 characters.
GT.CM server does not support global names longer than 8 characters
GT.CM GNP Client Error:
The GT.M GNP client process contains a global variable name longer than 8 characters while the version running at the server does not support global names longer than 8 characters.
Upgrade the server to V5.0-FT01 or later. If upgrade is not a possible option, avoid using global variable names longer than 8 characters at the client.
GT.CM client does not support global names longer than 8 characters
GT.CM GNP Server Error:
The result returned by the GT.M GNP server process contains a global variable name longer than 8 characters while the version running at the client does not support global names longer than 8 characters.
Upgrade the client to V5.0-FT01 or later. If upgrade is not a possible option, avoid using global variable names longer than 8 characters at the server.