GT.M Changelog

New in version 6.1-000

January 4th, 2014
  • Virtually unlimited global variable sizes: With the ability to map global variables to database regions at the level of subscripts rather than a complete global variable, GT.M global variables are now limited by factors external to GT.M - available storage, file system limits, memory, and so on. This has additional benefits. For example, if there are ranges of a global variable within which there are patterns of sequential access, mapping each range to a different region can take advantage of one of many optimizations in the GT.M database engine for sequential access.
  • Transport Layer Security (TLS/SSL) for replication: With enhancements to the architecture of the encryption plug-in, GT.M can replicate over a secure connection. The reference implementation of a plug-in included with GT.M is tested with OpenSSL. The reference implementation also provides an option to use libgcrypt (from GnuPG) and libcrypto (OpenSSL) in "FIPS mode," removing a need to modify the plugin for sites that require certification for compliance with FIPS 140-2. Note: Achieving FIPS 140-2 certification requires actions and controls well beyond the purview of GT.M, including underlying cryptographic libraries that are certifiably FIPS compliant, administrative controls, and so on. FIS neither provides cryptographic libraries with GT.M nor recommends the use of any specific library - refer to the GT.M Administration and Operations Guide UNIX Edition for more details.
  • Relink recursive: Processes can explicitly ZLINK new versions of routines even when they have prior versions of routines with the same name already on the process stack. When a process links a routine with the same name as an existing routine, future calls use the new routine. Prior versions of that routine on the stack remain on the stack until they QUIT, at which point they become inaccessible. This enhancement provides a mechanism to patch long-running processes, one that allows a process to retain more state than previous techniques.
  • SOCKET device support for local sockets (also known as UNIX domain sockets).
  • The ability for a parent process to pass a SOCKET device to a child process in a JOB command.
  • A $ZCLOSE intrinsic special variable that provides the status of a CLOSE of a PIPE device.
  • Faster database reads, especially when large numbers of processes (thousands) concurrently access a database file.
  • Nanosecond timestamps to determine whether a source file is newer than an object file.
  • Performance enhancements to databases on AIX that use the MM access method.

New in version 6.0-003 (August 10th, 2013)

  • Adds IPv6 support for TCP connections. All GT.M uses of TCP/IP except the deprecated "TCP" devices use TCP over both IPv4 and IPv6.
  • Maintains $KEY for terminal operation and introduces the [NO]EMPT[ERM] device parameter for terminal devices, which allows an "erase" character to terminate a READ when there are no characters in the input buffer.
  • Improves critical section management and deadlock detection.
  • Simplifies operational management.
  • Provides a number of other enhancements, improvements in robustness, and bugfixes.

New in version 6.0-002 (May 8th, 2013)

  • GT.M 6.0-002 and the new GTMJI GT.M Java plugin together extend the usefulness of both GT.M and Java by enabling in-process calls between Java and M application code.
  • Together, they make the power of GT.M available to Java application code, and allow GT.M applications to access functionality written in a popular programming language.
  • 6.0-002 implements the changes within GT.M needed to allow access from and to Java application code, and GTMJI enables Java application code to call and be called by M code.
  • GTMJI is released as source code to be compiled and installed on each system.

New in version 6.0-001 (January 10th, 2013)

  • This version adds a number of useful enhancements to GT.M.