This document provides late-breaking information for TimesTen, as well as information that is not yet part of the formal documentation.

The latest version of this document is the README.html file in your installation directory. Release notes also may be updated from time to time in the documentation library.

You can find the Oracle TimesTen In-Memory Database documentation set on the TimesTen documentation website.

To install Oracle TimesTen In-Memory Database, unzip the distribution file. For installation information, see Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide and Oracle TimesTen In-Memory Database Scaleout User's Guide.


TimesTen release numbers are reflected in items such as TimesTen utility output, file names, and directory names. These are subject to change with every minor or patch release, and the documentation cannot always be up to date. The documentation seeks primarily to show the basic form of output, file names, directory names, and so on. You can confirm the current release number by executing the ttVersion utility.

This document contains the following sections:

Changes in this release

This section lists changes between releases:

Changes for Release from Release

Changes in this release include:

New features

  • TimesTen Scaleout now supports read-only cache groups with incremental autorefresh. See Oracle TimesTen In-Memory Database Cache Guide for full details.

  • You can now create a grid with a K-safety level up to 5. See Oracle TimesTen In-Memory Database Scaleout User's Guide for more details.

  • Global Indexes now are supported in TimesTen Scaleout. See Oracle TimesTen In-Memory Database Scaleout User's Guide for more information.

  • PLSQL packages, procedures and functions are now supported in TimesTen Scaleout. See Oracle TimesTen In-Memory Database Scaleout User's Guide for more information.

  • You can use Oracle GoldenGate instead of the native cache refresh mechanism of TimesTen Cache to provide the equivalent of static read-only cache groups for both TimesTen Classic and TimesTen Scaleout. All other types of cache functionality must use the TimesTen Cache native cache mechanism. See Oracle TimesTen In-Memory Database Cache Guide for details.

  • You can perform a fast patch upgrade with TimesTen Classic. This involves performing operations to modify a TimesTen instance to point to a new installation while ensuring the shared memory segment remains in memory. See Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide for details.

  • For TimesTen Scaleout, you can now perform online upgrades to patch-compatible releases. This release adds the ttGridAdmin gridUpgrade command to simplify online and offline upgrade operations. See Oracle TimesTen In-Memory Database Scaleout User's Guide for more information.

  • TLS certificate management is now supported in TimesTen Scaleout. See Oracle TimesTen In-Memory Database Security Guide for more information.

  • The TimesTen Prometheus Exporter together with Grafana tools enables you to monitor the health and operation of your databases. See Oracle TimesTen In-Memory Database Monitoring and Troubleshooting Guide and Oracle TimesTen In-Memory Database Reference for details.

  • You can now configure the client/server buffer size. This can improve performance when retrieving large result sets on slower networks. See Oracle TimesTen In-Memory Database Operations Guide and Oracle TimesTen In-Memory Database Reference.

  • SQL Profiles now support password complexity check functions.

  • On Linux platforms, TimesTen Classic now supports SNMP version 1, 2, and 3 through Net-SNMP. This replaces the prior SNMP version 1 implementation and its snmp.ini configuration file. See Oracle TimesTen In-Memory Database Error Messages and SNMP Traps for more details.

  • You can now control LRU aging based on a number of rows.

  • For certain query types, TimesTen can now dynamically load multiple cache instances. See Oracle TimesTen In-Memory Database Cache Guide for details.

  • You can set the TT_DynamicPassthrough optimizer hint to notify TimesTen Classic to pass through qualified SELECT statements to the Oracle database. See Oracle TimesTen In-Memory Database Cache Guide for details.

  • A new type of cache group is added to this release. Hybrid cache group is a dynamic read-only cache group where the root table is created in the TimesTen database and does not exist in the Oracle database. See Oracle TimesTen In-Memory Database Cache Guide for details.

  • On Linux platforms that use systemd, you can use systemd to automatically manage the TimesTen daemon for TimesTen Classic. See Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide for details.

  • This release now supports multiple OUT refcursors in PL/SQL. See Oracle TimesTen In-Memory Database PL/SQL Developer's Guide.

  • As aging deletes rows, TimesTen frees empty pages and reuses empty slots on non-full pages. The ttPageLevelTableInfo built-in procedure shows the page allocation for each table to determine when TimesTen is reusing empty slots and freeing empty pages or if new pages are allocated to store new rows.

  • You can define a readiness probe to tell Kubernetes that a TimesTen (tt) container is ready. See Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide for more information.

Behavior changes and deprecated features

  • The ResultSet returned when calling the ttSQLCmdCacheInfo built-in procedure has two new columns.

  • The directory name of the directory for the bundled Oracle Instant Client is changed.
  • The -setMasterRepStart option is now the default for ttRepAdmin -duplicate command.

  • These features are deprecated in this release:

    • Scaleout PhysicalGroups
    • Temporary databases
    • Static autorefresh cache groups with legacy replication
    • The TTC_RollbackRequiredOnFailover client connection attribute
    • Local shared memory ipc for client/server connections.
  • The -list all | userinfo option of the ttSchema utility now prints user information, such as CREATE PROFILE, CREATE USER, and GRANT statements. CREATE USER statements are printed with the PASSWORD EXPIRE and ACCOUNT LOCK parameters specified and the password for the IDENTIFIED BY parameter is replaced with DISABLED: followed by a random set of characters.

Bug fixes

  • In TimesTen Scaleout, a problem is fixed where the eviction process would suspend when a replica set was down. (BugDB #29586987)

  • On Linux 64-bit platforms, in previous releases compiling TTClasses source could result in a compiler warning and possible loss of data. This problem is fixed. (BugDB #29626001)

  • The rownum parameter for the ttSize built-in procedure is now of type BIGINT. Previously it was type INT. (BugDB #31645887)

  • In previous releases, a SELECT COUNT (*) operation could fail when a table has a very large number of rows. (BugDB #32620599)

  • In this release, the default value of TT_DYNAMICLOADMULTIPLEPKS optimizer hint is 1 . (BugDB #32690444)

  • In TimesTen Scaleout, in previous releases the loghold bookmark was updated during a backup procedure. This caused an assertion. In this release the bookmark update is conditional. (BugDB #32800967)

  • In this release the ttGridAdmin backup, restore, import and export commands accept a new option to specify the directory for temporary files. (BugDB #32801316)

  • An issue has been fixed that caused an overflow when creating a unique index on a large table. (BugDB #32874657)

  • In this release, the number of daemon log messages for rollback is reduced. (BugDB #32995755)

  • In a previous release, a rare edge case when multiple databases were caching the same tables with different cache admin users could lead to the wrong bookmarks being used. This problem is fixed. (BugDB #33360774)

Platforms and compilers

Platform or operating system C/C++ compiler support JDK support(1)

Linux x86-64:

  • Oracle Linux 7.4 or greater and 8.2 or greater

  • Red Hat Enterprise Linux 7.4 or greater and 8.2 or greater

  • SUSE Enterprise Server 12 and 15

TimesTen supports Native POSIX threads but not LinuxThreads.

Intel icc, gcc 4.4.7 or higher

Oracle JDK 8, 11 and 17

OpenJDK 8, 11 and 17

Solaris SPARC 64:

  • Solaris 11.3 and 11.4

Solaris Studio 12.6 for Solaris SPARC

Oracle JDK 8 and 11

Solaris x86-64:

  • Solaris 11.3 and 11.4

Solaris Studio 12.6

Oracle JDK 8

Microsoft Windows x86-64 (Client only):

  • Windows Server 2019

  • Windows Server 2016

  • Windows Server 2012 R2

  • Windows 10

  • Windows 8.1

Intel Compiler 17

Visual Studio 2017 (VC11)

Oracle JDK 8, 11 and 17

OpenJDK 8, 11 and 17

IBM AIX Power PC 64-bit:

  • AIX 7.1 and 7.2

IBM xlC 13.1.0 Compiler for AIX


IBM Semeru Runtime Certified Edition, Version 11

macOS 64-bit (Client only):

  • 12 Monterey

  • 11 Big Sur

  • 10.15 Catalina

Apple Xcode 12.0.5

Oracle JDK 8, 11 and 17

Footnote 1 TimesTen ttjdbcn.jar files generally include the JDBC driver for use with the JRE version that corresponds to the number in the file name. In the current release, ttjdbc11.jar and ttjdbc17.jar are copies of ttjdbc8.jar, implementing JDBC 4.2 (Java 8) only.

TimesTen is supported in virtual machines provided by Oracle VM.

Oracle Database

TimesTen ships the Oracle Database 19c version of Instant Client. In addition, TimesTen PL/SQL, OCI, Pro*C/C++, and other internal components are based on Oracle Database 19c library.

Client/Server configurations

A TimesTen client on any supported platform can connect to a TimesTen server on any platform where TimesTen is supported.

For configuration details see "Configuring TimesTen Client and Server" in Oracle TimesTen In-Memory Database Operations Guide.

TimesTen Cache

TimesTen Cache enables you to cache Oracle Database data in TimesTen. The TimesTen installation includes Oracle Instant Client.

The following Oracle server releases are supported with the TimesTen Cache option:

  • Oracle Database Release

  • Oracle Database Release 12c

  • Oracle Database Release 19c

Replication configurations

TimesTen replication is supported only between identical platforms. TimesTen replication is supported with TimesTen Classic only.

TimesTen active standby pair replication is supported with Oracle Clusterware 19c.

For more details, see Oracle TimesTen In-Memory Database Replication Guide

Kubernetes Operator support

TimesTen and the TimesTen Kubernetes Operator are supported on Kubernetes 1.16, 1.17, 1.18, 1.19, 1.20 and 1.21.

We have tested TimesTen and the TimesTen Kubernetes Operator in AWS EKS and OCI OKE.

Other Kubernetes environments are supported if they meet the requirements listed in the “Prerequisites” section of Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide.

GoldenGate support

TimesTen is supported as a delivery target with GoldenGate 19c or later. It is recommended that you use GoldenGate 21c for TimesTen.

GoldenGate parallel Replicat is supported (with GoldenGate 21.3 and later) for increased apply performance.

For more information, see Oracle TimesTen In-Memory Database Cache Guide.

Software requirements

For software requirements, refer to Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide and Oracle TimesTen In-Memory Database Scaleout User's Guide.

Known problems and limitations

This section contains known problems and limitations in these categories:

New in this release

  • In this release, due to the TimesTen upgrade to Oracle Database 19, customers using Pro*C or Oracle Call Interface (OCI) and APIs based on OCI will need to relink their applications with the new OCI library due to a name change. You may also need to update your Makefiles accordingly.

  • In TimesTen Scaleout, if two instances (including managements instances) are added to a distribution map using ttGridAdmin dbDistribute command but the hosts to which they belong cannot communicate through SSH, the ttGridAdmin dbDistribute command fails with error TT3701.

  • In TimesTen Scaleout, if you restore a database backup with cache groups into a grid with a larger topology, you must set the cache administration user name and password for the database (using the ttGridAdmin dbCacheCredentialSet command) before redistributing the data to all replica sets (using the ttGridAdmin dbDistribute command). Otherwise, you will be unable to set the cache credentials for the cache groups.

  • On IBM AIX, the ttCreateCerts utility may fail with the following error:

    ewallet.p12 not present at rootWallet
    PKI-02003: Unable to load the wallet at: rootWallet

    This is a problem with IBM JDK As a workaround, use IBM JDK or earlier.


  • Restoring a grid backup (using the ttGridAdmin dbRestore command) succeeds only when all instances in the grid are running.


  • ttLoadFromOracle may fail with error message ORA-01466, can't flashback because table definition too new. This problem may be the result of a missing patch in Oracle Database (Bug 6598432). This bug leads to ORA-01466 when the Oracle database timezone and the system timezone are different. If the user hits this problem, verify that the corresponding patch is applied.


  • The Instant Client included with TimesTen Cache requires /usr/lib64/libnsl.so.1. By default, libnsl.so.1 is not installed with Oracle Enterprise Linux 8. Without this package, TimesTen OCI, Cache and passthrough may not work. To install libns1.so.1, run: yum install libnsl

  • On the Oracle Linux 8.x and RedHat 8.x systems, the user must install the ncurses-compat-libs package (sudo yum install ncurses-compat-libs), otherwise cursor-based command recall and editing does not work in ttIsql.


  • TimesTen does not support Positioned Updates and Deletes. Calls to setCursorName and getCursorName methods are ignored.

  • If a JDBC application running in a time zone that has Daylight Savings Time selects a nonexistent time using ResultSet.getTimestamp(), it gets a time that is an hour behind. For example, in Pacific Standard Time, on the day when the time changes from Standard to Daylight Savings Time, the time between 2:00 a.m. and 2:59 a.m. does not exist. So, if a JDBC application running in Standard Time selects a value of '2002-04-07 02:00:00' using getTimestamp() it gets '2002-04-07 01:00:00'.

  • SQL statements in JDBC applications should contain only characters from the database character set. Unicode characters not in the database character set are converted to replacement characters during parsing of the query. Potential workarounds include:

    • Using AL32UTF8 as the database character set.

    • Parameterizing the statement to avoid characters that are not in the database character set in the query text.

  • On a macOS host, if you are running TimesTen JDBC or JMS/XLA applications, ensure you include the following in the Java command line: -Djava.library.path=${TIMESTEN_HOME}/install/lib


  • PLSQL_CODE_TYPE=NATIVE can be specified, but it is implemented as INTERPRETED.

  • Using q' (quoting syntax) is not supported.

  • This sequence of operations involving PL/SQL and CLOBs or NCLOBs does not work correctly.

    1. Create a temporary CLOB

    2. Set the temporary CLOB value

    3. Assign the value of the temporary CLOB to another CLOB variable

    4. Free the temporary CLOB

    5. Try to use the temporary CLOB

    At step 5, an error ORA-22275 is supposed to be generated, and an exception is supposed to be raised. In TimesTen 22.1.1, the correct error is generated, but no exception is raised.

  • UTL_FILE is limited to the directory timesten_home/plsql/utl_file_temp. Access does not extend to subdirectories of this directory. In addition, access is subject to file system permission checking. The instance administrator can grant UTL_FILE access to specific users as desired. Users can reference this UTL_FILE directory by using the string 'UTL_FILE_TEMP' for the location parameter in UTL_FILE subprograms. This predefined string is used in the same way as directory object names in Oracle Database.


  • TimesTen does not support SQL*Plus connections to TimesTen databases. Use ttIsql.

SQL, utilities and procedures

  • When SQL query timeouts are used (SQLQueryTimeout or SQLQueryTimeoutMsec), TimesTen behavior is on a best-effort basis. It is not possible to guarantee that the timeout will actually occur within the specified time. (BugDB #29671762)

  • TimesTen BINARY_DOUBLE and BINARY_FLOAT are approximate data types. When storing and retrieving data of these types, the least significant digits may be rounded or truncated. You should avoid using columns of these types in primary keys, unique keys and foreign keys.

  • When the same column alias name is used in a view definition and a query that references the view, TimesTen might incorrectly issue the TT2210: Column reference of XXX is ambiguous error. The workaround is to explicitly assign a different column alias name to the column.

  • In TimesTen Scaleout, the ALTER SESSION statement should return an error when attempting to alter an unsupported feature. Instead, no error is returned.

  • The maximum sum of the total number of tables specified in a query and all temporary aggregates needed to handle the query is 32. A temporary aggregate is needed to handle scalar or aggregate subqueries. A query fails with the message Statement that needs more than 31 nesting levels has not been implemented when the sum of tables and temporary aggregates in a query is greater than 32.

  • COUNT DISTINCT with CHAR type uses binary sorting order and binary comparison semantics even when the NLSSORT attribute was set to a value different than binary.

  • When the NLS_SORT session parameter is set to a multilingual sort (for example, FRENCH_M), the LIKE operator may produce incorrect results when the pattern match wild-card symbols are applied to the space character.

  • If you execute an ALTER SESSION statement anytime after the initial connection, you must re-execute the statement after a failover. (BugDB #29444131)

TimesTen OCI support

  • If NLS_LANG is set to a value that is not supported by TimesTen, spurious errors such as "Cannot connect" may result.

TimesTen Scaleout

  • TimesTen Scaleout supports a maximum of 64 data instances in this release.

  • Instances in a grid connect with each other over TCP/IP using ports within the dynamic port range. For this reason any active firewall needs to be configured to allow TCP/IP traffic over all possible ports in each host's dynamic port range. On Linux you can determine the port range as follows:

      $ cat /proc/sys/net/ipv4/ip_local_port_range 
      9000    65500 

    In this case the host may allocate ports in the range 9000 through 65500.

  • Each process connected to a TimesTen Scaleout database keeps at least one operating system file descriptor open. Additional file descriptors may be opened for a connection when the connection commits or rolls back a transaction. If you receive an error that all file descriptors are in use when attempting to connect to a database, increase the allowable number of file descriptors. (BugDB #25815090)

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.