GT.M High end TP database engine / News: Recent posts

V6.2-002 available

V6.2-002 brings a number of modest enhancements to GT.M.

Improving performance:

  • By reducing the number of dirty global buffers to be flushed in anticipation of an impending epoch, epoch tapers aim to ameliorate spikes in response time that can occur at epochs.

  • $ORDER(gvn,-1) - "reverse dollar order" - of global variables is faster.

  • Under conditions of high contention, processes holding locks exit faster, processes acquire database critical sections more efficiently when the mutex queue slots are all used, and lock acquisition is more efficient with substantially reduced impact on database throughput.... read more

Posted by K.S. Bhaskar 2015-06-08

GT.M V6.2-000 available

V6.2-000 is a major release that introduces auto-relink, a publish+subscribe model that enables GT.M processes to automatically and safely execute the latest published versions of routines; adds support to read and write encrypted sequential disk files, pipes, and FIFOs; adds the ability to pass SOCKET devices from one process to another; and includes many other enhancements and fixes.

Posted by K.S. Bhaskar 2014-09-18

GT.M V6.0-003 available

In V6.0-003, GT.M: adds IPv6 to the previous support of IPv4 for TCP connections. SOCKET devices, replication, inbound connections managed by Internet superservers such as inetd, and the GNP protocol - 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 that allows an "erase" character to terminate a READ when there are no characters in the input buffer; improves critical section management & deadlock detection; changes the time stamp used for prior generation journal files to make operational management easier; as well as providing a number of other enhancements, improvements in robustness, and bug fixes. Details are in the release notes.

Posted by K.S. Bhaskar 2013-08-09

GT.M V6.0-002 and GTMJI now available

GT.M V6.0-002 and the new GTMJI GT.M Java Plug-in, 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. V6.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.... read more

Posted by K.S. Bhaskar 2013-05-04

GT.M V6.0-000 available

V6.0-000 significantly extends database file limits:

The maximum supported key size increases from 255 to 1,019 bytes.
Global variable nodes need no longer fit within a database block. This opens opportunities for applications to consider smaller block sizes where these improve performance. Also, the new maximum global variable node size of 1,048,576 bytes (1 MiB) means that any local variable node can also be stored in a global variable.
The maximum size of a database file is now 1,040,187,392 (992 Mi) blocks. Previously this limit was 234,881,024 (224 Mi) blocks.... read more

Posted by K.S. Bhaskar 2012-09-20

POSIX plugin released

GT.M's open architecture makes it easy to extend GT.M with calls to functions in popular standard libraries. Such a call entails creating a small wrapper of a few lines for each function. On UNIX/Linux platforms, GT.M V5.5-000 brought a small enhancment to the "gtmprofile" shell commmand file that provided a framework for plugins that could be dropped into an existing GT.M installation: for any standard format plugin in the plugin subdirectory, the "gtmprofile" file automatically sets up environment variables to access the plugin. With the release of V5.5-000, we released a plugin to use the popular zlib compression library. ... read more

Posted by K.S. Bhaskar 2012-07-19

V5.5-000 available

(Our apologies; this news nugget was not submitted in a timely manner.)

V5.5-000 provides a new type of replication, described in more detail in the Supplementary Instance Technical Bulletin (for all GT.M user documentation go to and click on the User Documentation tab). With Supplementary Instance (SI) replication, GT.M provides a mechanism to replicate to a supplementary instance which can execute its own business logic and commit database updates, for example, to provide reporting, decision support, data warehousing, auditing, and so on. In the course of that work, we have improved other aspects of replication.... read more

Posted by K.S. Bhaskar 2012-07-19

GT.M V5.4-002B available

GT.M V5.4-002B brings timely remediation to several issues. Please review the release notes* to see whether any of the issues are relevant to your use of GT.M. In this release, we also improved the performance of NOBEFORE_IMAGE journaling by eliminating a time-consuming action that added no value to its correct operation; we expect a more interesting impact with the MM access method than with the BG access method.... read more

Posted by K.S. Bhaskar 2011-07-22

V5.3-004 will be the last release on Tru64 UNIX

We anticipate future releases on the x86 GNU/Linux and Alpha/AXP OpenVMS platforms, but not the Tru64 UNIX platform. If this will cause you hardship, please do contact us to discuss possible arrangements.

-- Bhaskar

Posted by K.S. Bhaskar 2009-07-17

GT.M V5.3-004 released

GT.M V5.3-004 adds major new functionality and platform support.

* Database encryption. GT.M on selected platforms can encrypt data in database and journal files. Encryption protects against unauthorized access to data by an unauthorized process which is able to access disk files, that is, encryption protects data at rest (DAR) to help improve security in cloud based application deployment, as well as making it easier for sites to comply with data protection standards such as PCI and HIPAA. A plug-in architecture facilitates use of your preferred encryption software. Details are in the GT.M Database Encryption Technical Bulletin ( read more

Posted by K.S. Bhaskar 2009-07-17

Experimental Toaster - WorldVistA EHR on GT.M in UTF-8 mode

I have created an *experimental* Toaster (software appliance, virtual machine) of WorldVistA EHR VOE/ 1.0 on GT.M V5.3-003 on Ubuntu Jeos 8.04 - *running in UTF-8 (Unicode) mode*. See for information about GT.M Unicode support. Instructions for use are the same as for the VistA Tour CD ( except that the file name of the virtual disk image differs.... read more

Posted by K.S. Bhaskar 2009-01-23

GT.M V5.3-003 released

V5.3-003 is a new GT.M release with useful additional functionality. Complete details are in the release notes (http://

Highlights include:

* IO to a process. A GT.M process can now OPEN a process, WRITE to that process and READ from that process. For the simplest usage, application code can now write directly to, say, the lpr command to send output directly to a print spooler without the need for a temporary intermediate file. For a more complicated example, you can use an external program like iconv to translate between encodings of strings by writing to its STDIN and reading from its STDOUT. Details are in a technical bulletin ( user_documentation/html/rn_tb/PIPE_IO_Technical_Bulletin.html).... read more

Posted by K.S. Bhaskar 2009-01-14

VistA Tour CD now available

As part of the GT.M sponsorship of VistA Tour (, Peter Bodtke will hand out CDs of WorldVistA EHR VOE/ 1.0 on GT.M V5.3-002. A copy of the CD is now available in the download area.

Posted by K.S. Bhaskar 2008-11-18

[S9I10-002703] Security advisory - update

An updated advisory, with details of a remediation wrapper for gtmsecshr has been posted ( Please act on it at your earliest convenience.

-- Bhaskar

Posted by K.S. Bhaskar 2008-10-31

[S9I10-002703] GT.M Security Advisory

In response to a report of a GT.M vulnerability, we have produced a GT.M security advisory (see\). This vulnerability can theoretically allow someone who has programmer access to GT.M in a UNIX/Linux system to escalate privileges to root, but should not otherwise expose a properly secured production system.... read more

Posted by K.S. Bhaskar 2008-10-27

GT.M+PIP Technology Exchange

We will have our first GT.M+PIP Technology Exchange in Malvern, Pennsylvania, October 16 & 17 ( Please do plan to attend if you can.

-- Bhaskar

Posted by K.S. Bhaskar 2008-09-15

GT.M V5.3-002 available

GT.M V5.3-002 is a major new release that completes the planned support for 64-bit architectures by adding Sun SPARC Solaris to the set of 64-bit platforms. It also adds support for the Mapped Memory database access method and includes functional & performance enhancements (especially on platforms running GNU/Linux), as well as bug fixes. Details follow.

Effective V5.3-002:

* GT.M on the following computing platforms runs as 64-bit processes: Solaris on SPARC; GNU/Linux on x86_64 and Itanium; AIX on pSeries; HP-UX on Itanium. With this and future releases, there are no 32-bit GT.M processes on these platforms.
* GT.M on the following computing platforms continues to run as 32-bit processes: x86 GNU/Linux; HP-UX on PA-RISC; Tru64 UNIX and OpenVMS on Alpha/AXP. There are no plans to move to a 64-bit architecture on these platforms. ... read more

Posted by K.S. Bhaskar 2008-08-22

GT.M V5.3-001A available

GT.M V5.3-001A is available. It is a minor release derived from V5.3-001, and provides timely fixes to defects, including an issue with NOUNDEF handling, an issue with TP transactions that include multiple global directories, as well as some other issues as described in the release notes at read more

Posted by K.S. Bhaskar 2008-04-27

GT.M V5.3-001 available

GT.M V5.3-001 is a major new release that extends the platforms on which GT.M is a 64-bit application to IBM pSeries AIX and x86_64 GNU/Linux.

On IBM pSeries AIX, GT.M processes are now 64-bit processes rather than 32-bit processes. Since there is no contemporary 32-bit hardware, and all contemporary releases of AIX are 64-bits, there are no more 32-bit GT.M processes on pSeries AIX. M application program logic and database formats remain 100% compatible between the 32-bit V5.3-000 and the 64-bit V5.3-001. As a consequence of the move to 64-bits, GT.M processes on pSeries AIX are no longer limited to 11 database regions, and shared libraries are no longer limited to a system wide limit of 256MB (there are still limits of course, but they are vastly greater than the needs of any application that we know of).... read more

Posted by K.S. Bhaskar 2008-01-31

Project name change - we are now FIS GT.M

The Source Forge project name has been changed from sanchez-gtm to fis-gtm, to reflect rebranding following the acquisition of Sanchez Computer Associates by Fidelity National Information Services.

-- Bhaskar

Posted by K.S. Bhaskar 2008-01-23

GT.M V5.3-000 available

GT.M V5.3-000 is a major new release. Although there are no changes to M language support or to database functionality, GT.M has been internally re-engineered to support both 32- and 64-bit architectures. Even on 64-bit hardware, prior GT.M releases have always executed as 32-bit processes.

Coming in a release in the near future, 64-bit GT.M processes will be supported on GNU/Linux on x86_64. Since 64-bit hardware and operating systems are not yet common on the x86 platform, a 32-bit GT.M will continue to be available to run on GNU/Linux on both x86 as well as x86_64 hardware.... read more

Posted by K.S. Bhaskar 2008-01-23

GT.M V5.2-000B available on all platforms

GT.M V5.2-000B is available. This release is identical to V5.2-000A with a fix for a regression introduced in V5.2-000 that was recently reported by the user community. Release notes will be on the GT.M web site (go to and click on the User Documentation tab) shortly, if they are not there already. The release note entry for the fix is:

READ * in M-mode on Sequential Disk file and Socket device of a character with encoding between 128 to 255 inclusive now returns the correct code value. This fixes a problem introduced in V5.2-000 that resulted in READ * on those devices returning an incorrect (negative) value. (C9H04-002843)... read more

Posted by K.S. Bhaskar 2007-04-24

GT.M V5.2-000A available on x86 GNU/Linux

GT.M V5.2-000A is available. This provides timely fixes to GT.M on x86 GNU/Linux, as noted in the release notes (which if it is not there already will shortly be available shortly at\). Improvements of most general interest include:

1. GT.M now allows the $PIECE() and $EXTRACT() functions as targets in a SET command that has a parenthesized, comma-separated list of targets. Previous versions disallowed this usage.... read more

Posted by maimoneb 2007-04-13

GT.M V5.1-000 Available for x86 GNU/Linux and Tru64 UNIX

A significant new release, GT.M V5.1-000, is now available for UNIX/Linux platforms. As discussed in the release notes (, there is significant new functionality in this release.

GT.M's unique functionality for creating logical dual site configurations of applications has for years set the standard for continuity of business in the face of both unplanned as well as planned events. With V5.1-000 GT.M now provides for the creation of logical multi-site configurations of applications. As with prior versions of GT.M, updates originate with a primary instance (now referred to as the root primary instance). Whereas in prior versions of GT.M the primary instance replicated to a single secondary instance, in GT.M V5.1-000 the root primary can replicate to as many as 16 secondaries. Each of these secondaries can act as a propagating primary and replicate do as many as 16 tertiaries for a total of 273 instances. Each tertiary can replicate to 16 quarternaries for a total of 4,369 instances. And so on. In the event of a failure of the root primary instance, with appropriate network and operational procedures as discussed in the technical bulletin (, any other instance can become the new root primary. This provides for an unprecedented level of continuity of business.... read more

Posted by K.S. Bhaskar 2006-06-22

GT.M V5.0-000D available for x86 GNU/Linux

GT.M V5.0-000D is available. This release provides timely fixes to several bugs, as noted in the release notes on the GT.M user documentation page (

In addition to bug fixes, GT.M source code was modified to use ANSI C stdargs.h style of variable argument list parameter passing instead of the earlier K&R C varargs.h style. This change enabled the use of optimizer flags with the gcc C compiler, reducing CPU usage by GT.M applications on the x86 GNU/Linux platform. The change is internal to GT.M and has no functional or operational impact.... read more

Posted by K.S. Bhaskar 2006-05-10