Overview

This document provides late-breaking information for TimesTen 22.1.1.23.0, 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 are updated 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. See Overview of the Installation Process in TimesTen Classic in Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide or Prerequisites and Installation of TimesTen Scaleout in Oracle TimesTen In-Memory Database Scaleout User's Guide.

Note:

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.

TimesTen XE

Oracle TimesTen In-Memory Database Express Edition (TimesTen XE) is a free version of TimesTen. The latest release of TimesTen XE is 22.1.1.11.0. TimesTen XE includes all features and bug fixes available in TimesTen, but is subject to the restrictions listed in Oracle TimesTen In-Memory Database Quick Start Guide for Express Edition.

This document contains the following topics:

Changes for Release 22.1.1.23.0 from Release 22.1.1.22.0

New Features

  • The replication agent now periodically logs statistical information to the daemon log. By default, a log record occurs for each thread every five minutes. To increase or reduce the frequency of these log records, use the ttDbConfig built-in procedure:

    CALL ttDbConfig('ReplAgentStatSampleFreq', 'seconds');

    Where seconds is the frequency in which the log record occurs. To fully disable this new behavior, set ReplAgentStatSampleFreq to 0. (BugDB #36032654)

  • This release includes Apache ZooKeeper 3.8.4. It is strongly recommended that you upgrade your ZooKeeper servers used for TimesTen Scaleout to this new version.

Bug Fixes

  • A problem is fixed where if the system time was modified to a backward time, the aging feature would wait until the system time reached its original time to continue. (BugDB #33689937)

  • A problem is fixed where the TimesTen subdaemon could receive a SIGSEGV error during process recovery. (BugDB #35819072)

  • A problem is fixed where, occasionally, the ttStats utility failed to populate the Cmd Text or Source fields in the report for the statements executed. (BugDB #35939042)

  • A problem is fixed where concatenating CLOBs or NCLOBs led to incorrect result strings. (BugDB #35977377)

  • A problem is fixed where, in an active standby pair replication scheme, the state of the recovered subscriber was not reset in the active database after the subscriber was duplicated from the standby database. (BugDB #36122887)

  • In previous releases, the System V init scripts—which start or stop the TimesTen daemon when the system boots or shuts down, respectively—contained an incorrect value for the environment variable ODBCINI. This issue is fixed.

    On systems where the TimesTen System V init scripts are already installed, rerun the setuproot -install script to apply the fix. (BugDB #36440583)

  • A problem is fixed where a bad request sent to the main daemon by a process connected to the database led to various assertions. (BugDB #36361167)

Changes for Release 22.1.1.22.0 from Release 22.1.1.21.0

New Features

  • TimesTen adds an entry to the daemon log when there are changes to the settings for tracing. (BugDB #36089935)

  • Tracing is turned off after loading a database into memory. (BugDB #36090914)

Bug Fixes

  • A problem is fixed where, in some cases where the receiver threads of the replication agent needed to restart, the error log did not contain details on the reason for the restart. (BugDB #17217819)

  • A problem is fixed where creating a materialized view on the subscriber of a replication scheme would return an error if there was an ongoing workload operating on the subscriber and a table in the materialized view was not already a base table for a materialized view. (BugDB #35668824)

  • A problem is fixed where a timing issue on highly concurrent workloads that consist of join queries and update or delete operations on the tables involved in the join queries could cause the queries to fail and return Assert and Tpg sane messages in the daemon log. (BugDB #36083469 - Forward port of BugDB #36054949)

  • A problem is fixed where tracing, under certain circumstances, could write files larger than the specified file size limits. (BugDB #36101809)

  • A problem is fixed where the field awtBehindMb was not properly reported in TimesTenClassicStatus. (BugDB #36298633)

  • A problem is fixed where the TimesTen Operator did not consider a Pod as unreachable if the status of the Pod was reported as Unknown. (BugDB #36304794)

  • A problem is fixed where error 15009 'user requires password' was reported in the user error log even when the connection attempt to the database was successful. (BugDB #36317365)

  • A problem is fixed where, in Ubuntu, init containers were failing due to the use of dash as shell. (BugDB #36319717)

  • A problem is fixed where the ttInstanceCreate utility failed to create an instance in Ubuntu. (BugDB #36333932)

  • A problem is fixed where using the timestenjmsxla.jar package in Spring Boot would make too many calls to the getInitialContext() method. (BugDB #36361070)

  • A problem is fixed where attempting to connect to a subscriber database with a FAILED replication state due to the replication log threshold being reached did not return error 8025. (BugDB #36378797)

Changes for Release 22.1.1.21.0 from Release 22.1.1.20.0

  • A problem is fixed where defining a large number of cache groups in the cachegroups.sql file caused the initial deployment of TimesTen to fail and the TimesTenClassic object to transition to the Failed state. (BugDB #36202396)

Changes for Release 22.1.1.20.0 from Release 22.1.1.19.0

  • A problem is fixed where the socket routine in the handler for the daemon would wait forever if there were many socket connections that were not sending proper messages to the daemon. (BugDB #34906849)

  • TimesTen JMS/XLA now supports two JMS providers: one based on the Java Message Service API version 1.1 and another based on the Jakarta Messaging API version 1.1. See Connecting to XLA in Oracle TimesTen In-Memory Database Java Developer's Guide. (BugDB #35804284)

Changes for Release 22.1.1.19.0 from Release 22.1.1.18.0

New Features

  • This release includes a new version of the TimesTen Kubernetes Operator. The TimesTen Kubernetes Operator provides the following new features:

    • Helm charts supporting the provisioning and upgrade of the TimesTen Operator and TimesTen Classic by using Helm.

    • The TimesTen Kubernetes Operator now publishes metrics to Prometheus.

    • If the Prometheus Operator is deployed in your cluster, the TimesTen Kubernetes Operator can automatically add TimesTen databases and the TimesTen Operator to your Prometheus configuration.

  • This release includes Apache ZooKeeper 3.8.3. It is strongly recommended that you upgrade your ZooKeeper servers used for TimesTen Scaleout to this new version.

Bug Fixes

  • A problem is fixed where replication log holds would not resume after being halted due to lack of disk space and more disk space was made available. (BugDB #35832351 - Forward port of BugDB #35775001)

  • A problem is fixed where the replication log cursor could not progress. This caused the log files to accumulate in the active database and later an error when the log failure threshold was exceeded. (BugDB #35851919 - Forward port of BugDB #35647789)

  • A problem is fixed where replication log holds could not progress due to a missing rollback log record. (BugDB #35851943 - Forward port of BugDB #35774580)

  • A problem is fixed where, on a duplicated database, tables with XLA subscriptions on the original database could not be dropped even when the -delXla option of the ttRepAdmin -duplicate command was used to duplicate the database. (BugDB #35895266)

  • A race condition between a log inserter and the log flusher that could cause an assertion failure is fixed. (BugDB #35898402 - Forward port of BugDB #35890807)

  • This release no longer prints an error in the daemon log for CTN wrap-around operations. (BugDB #35898856 - Forward port of BugDB #35896092)

Changes for Release 22.1.1.18.0 from Release 22.1.1.17.0

  • This release now includes the checkAdminPrivileges.sql script. This script checks that the cache administration user has been granted the required privileges to automatically create Oracle Database objects used to manage the caching of Oracle Database data when particular cache group operations are performed. This script checks that the privileges granted are those that are granted with the grantCacheAdminPrivileges.sql script. (BugDB #33354969)

  • A problem is fixed where a Commit Ticket Number (CTN) wraparound could invalidate the database or cause restart issues with the replication agent. The fix in this release corrects a problem with an earlier fix for this issue. (BugDB #34265439 - Forward port of BugDB #34265447, BugDB #35239124, BugDB #34237513, BugDB #35560190, BugDB #35523432, and BugDB #35775194)

  • A problem is fixed where the ttRepAdmin -duplicate command failed if TLS was only enabled as optional on the receiver. (BugDB #35728217)

Changes for Release 22.1.1.17.0 from Release 22.1.1.16.0

  • Previously, you could only provide credentials for a user when opening a connection to the TimesTen database by providing the user name and password individually in a client DSN or using connection attributes. For a cache administration user, you were able to provide credentials by providing the cache administration user name and both of its passwords to the TimesTen and Oracle databases individually in a client DSN or using connection attributes. Now, you can store user credentials within an Oracle Wallet where the wallet location is provided when opening a connection. The preferred method is storing credentials in an Oracle Wallet.

    We enabled this new method by implementing the following features:

    • New functionality for the ttUser utility. Traditionally, ttUser has let you generate a hashed password value for the PWDCrypt connection attribute. Now, it also lets you store user IDs and passwords in a user-managed Oracle Wallet. See Connect Using an Oracle Wallet with Credentials in Oracle TimesTen In-Memory Database Operations Guide.

    • New PwdWallet general connection attribute. It lets you retrieve user names and associated passwords from a user-managed Oracle Wallet. See Connect Using an Oracle Wallet with Credentials in Oracle TimesTen In-Memory Database Operations Guide and Creating a Connectable File in Oracle TimesTen In-Memory Database Scaleout User's Guide.

    • New CacheAdminWallet cache first connection attribute. It specifies that credentials for the Oracle cache administration user that are registered with the ttCacheUidPwdSet built-in procedure are stored in a system-managed Oracle Wallet. See Registering the Cache Administration User Name and Password in Oracle TimesTen In-Memory Database Cache Guide.

  • TimesTen now supports FIPS 140-2 encryption. For client/server and replication connections, you can enable the FIPS 140-2 mode using the new ssl_fips_140 configuration attribute. For symmetric encryption between TimesTen processes, use the new db_fips_140 configuration attribute. See TimesTen Instance Configuration File in Oracle TimesTen In-Memory Database Reference.

  • The new ttCacheInfo utility returns change-log table information for all Oracle Database tables cached in a cache group with autorefresh and information about Oracle Database objects used to track DDL statements issued on cached Oracle Database tables. The output provided by this utility is primarily intended for use by TimesTen customer support. See ttCacheInfo in Oracle TimesTen In-Memory Database Reference.

Changes for Release 22.1.1.16.0 from Release 22.1.1.15.0

  • This release reduces the execution time of CREATE CACHE GROUP statements. (BugDB #35202382)

Changes for Release 22.1.1.15.0 from Release 22.1.1.14.0

  • A performance issue introduced in a previous release by an increase in the prefetch buffer capability is fixed. It affected calls to the SQLAllocStmt ODBC function. (BugDB #35394119)

  • A problem is fixed where a temporary index was created with materialized results every time. This fix is a behavior change from a previous release and can be controlled using the TmpIdxForMatRes optimizer flag or TT_TmpIdxForMatRes statement level hint. The default value for TmpIdxForMatRes is 0. (BugDB #35464766)

  • A problem is fixed where the database hanged due to a latch deadlock between the log flusher and the log buffer inserters. (BugDB #35469376 - Forward port of BugDB #35449647)

Changes for Release 22.1.1.14.0 from Release 22.1.1.13.0

  • A problem is fixed where, in AIX, inserting a log record caused an assertion failure. (BugDB #35393136)

Changes for Release 22.1.1.13.0 from Release 22.1.1.12.0

  • A problem is fixed that caused the ttMigrate -r -numthreads utility to fail while restoring a foreign key relationship. (BugDB #35374194)

Changes for Release 22.1.1.12.0 from Release 22.1.1.11.0

New Features

  • This release now supports Oracle Database Release 21c for cache operations.

  • This release includes Apache ZooKeeper 3.8.1. It is strongly recommended that you upgrade your ZooKeeper servers used for TimesTen Scaleout to this new version.

Bug Fixes

  • A problem is fixed where SNMP version 1 traps did not work unless a path to an SSL library was provided in the TimesTen instance configuration file, timesten.conf. (BugDB #34306035)

  • A problem is fixed where repeatedly inserting or deleting rows containing an out-of-line column or updating an out-of-line column caused the in-use size of the database to grow. (BugDB #35189594 - Forward port of BugDB #35189403)

  • In previous releases, in TimesTen Classic, tables with foreign key dependencies needed to be restored together for the restore operation to succeed. The issue is fixed. (BugDB #35242158)

  • A problem is fixed where a SQL exception, such as a constraint violation, could invalidate the database if the database was operating under heavy DML workload. (BugDB #35280185 - Forward port of BugDB #35245636)

Changes for Release 22.1.1.11.0 from Release 22.1.1.10.0

  • This release is a TimesTen XE release and includes all features and bug fixes available in release 22.1.1.10.0.

Changes for Release 22.1.1.10.0 from Release 22.1.1.9.0

  • A problem is fixed where replication of transactions with a large amount of out-of-line data could lead to error TT16031 on the receiving database. (BugDB #34747475)

    To enable this fix, set the value of the ReplReceiverMultVCBuffers parameter to 1 on the receiving database:

    CALL ttDBConfig('ReplReceiverMultVCBuffers','1');
  • This release adds new metrics in the V$REPSTATS view for when replicated transactions are sent and applied. (BugDB #34861845)

  • A problem is fixed where unattached memory segments were not removed when the main daemon restarted if it was previously terminated before it could finish touching memory pages. (BugDB #34904785)

  • In previous releases, on systems where a symlink to the libtinfo library was missing, the editline feature in the ttIsql utility did not work, and ttIsql would crash if a file was sourced (using @). This problem is fixed. (BugDB #35069962)

Changes for Release 22.1.1.9.0 from Release 22.1.1.8.0

  • This release is an unrestricted version of TimesTen and includes all features and bug fixes available in release 22.1.1.8.0.

Changes for Release 22.1.1.8.0 from Release 22.1.1.7.0

New Features

Bug Fixes

  • A problem is fixed where XLA applications were able to read two-safe transactions before other database connections. (BugDB # 34761059)

    To enable this fix, set the value of the XlaReaderWaitTxnVisible parameter to 1:

    CALL ttDBConfig('XlaReaderWaitTxnVisible','1');
  • This release improves the handling of replicated VARCHAR2 out-of-line data in the receiving replication agent. (BugDB #34773132)

Changes for Release 22.1.1.7.0 from Release 22.1.1.6.0

  • The ttSchema utility now selects only objects within the current schema by default when a user without ADMIN privilege runs the utility. This change avoids access errors when the user tries to describe objects without the appropriate privileges. The user can still attempt to describe objects by including a different selection pattern argument. The pattern % will revert to the previous behavior, but using patterns that include objects in other schemas may result in access errors. (BugDB #34223037)

  • In previous releases, when a classic replication scheme included multiple masters, the replication agent while trying to apply transactions from different databases could run into improperly handled deadlocks. The replication operation would hang as a result. This issue is fixed. (BugDB #34592144 - Forward port of BugDB #34577070)

  • A problem is fixed where a CREATE CACHE GROUP statement would lock some Oracle objects to create the metadata objects even if the objects already existed. (BugDB #34644529 - Forward port of BugDB #34641177)

  • In previous releases, the TimesTen Kubernetes Operator used the Leader-for-life method to determine which operator would manage TimesTen. In this release, the Operator uses the Leader-with-lease method. (BugDB #34650236)

  • A problem is fixed with the ZooKeeper client for TimesTen Scaleout where frequent DNS calls to resolve hostnames could overload DNS servers with requests. (BugDB #34716434)

  • A problem is fixed where creating a view from a synonym was not working properly. (BugDB #34741197)

  • A problem is fixed where unnecessary permision checks on connects could sometimes result in spurious errors: User username does not have group permision to connect to the database. (BugDB #34747548)

  • A problem is fixed with excessive and misleading daemon log messages relating to aging. (BugDB #34777457)

  • A problem with memory allocation for insert or update operations is fixed. (BugDB #34779479 - Forward port of BugDB #34676797)

Changes for Release 22.1.1.6.0 from Release 22.1.1.5.0

  • The logic to handle transactions not tracked by XLA bookmarks is improved. (BugDB #34352710 - Forward port of BugDB #33968191)

  • This release no longer returns an error when the cipher suite specified for encrypted client/server connections is supported by the Oracle libraries but is not one of the two suites supported by TimesTen, SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 and SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384. (BugDB #34353105)

  • A problem is fixed with parallel index creation on compiled commands. (BugDB #34570931)

  • When running Java 8 after Oracle JDK 8u301 (JDK-8153005), the creation of certificates failed with a "Could not derive key" error. This release updates the version of the cryptoj.jar file to fix the issue. (BugDB #34630389)

Changes for Release 22.1.1.5.0 from Release 22.1.1.4.0

  • A problem is fixed where, under certain circumstances, updating the replication statistics caused an assertion failure. (BugDB #34224577 - Forward port of BugDB #31382397)

  • A problem is fixed where a Commit Ticket Number (CTN) wraparound could invalidate the database or cause a failed transmitter thread restart. (BugDB #34237513)

  • A problem with interval statistics on columns without range index was fixed. (BugDB #34285000)

Changes for Release 22.1.1.4.0 from Release 22.1.1.3.0

  • In previous releases, a heap assertion due to not switching to system transaction for the permanent heap invalidated the database during the reclaim phase of recovery. The problem is fixed. (BugDB #33828964)

  • A problem is fixed where daemon log files would either not be rotated and a single file would grow beyond the maximum specified size or the files would stop being written. (BugDB #34032225)

  • This release adds new rows in the v$repstats view to track the read position in the transaction log of the transmitter thread for replication. (BugDB #34119463 - Forward port of BugDB #32989457)

  • A memory leak while using REF CURSOR variables for OCI, ProC, or ODPI based languages has been fixed. (BugDB #34131513 and BugDB #34190418)

Changes for Release 22.1.1.3.0 from Release 22.1.1.2.0

  • This release is an unrestricted version of TimesTen and includes all features and bug fixes available in release 22.1.1.2.0.

Changes for Release 22.1.1.2.0 from Release 22.1.1.1.0

Changes in this release include:

New Features

  • This release is a TimesTen XE release. See Oracle TimesTen In-Memory Database Quick Start Guide for Express Edition.

  • This release supports the TimesTen driver manager (TTDM). TTDM is a lightweight ODBC driver manager that is designed and optimized for use with TimesTen databases. It provides access to TimesTen-specific features, extensions, and ODBC API support, offering 100% equivalent functionality to using the TimesTen direct driver or client driver directly. TTDM allows an application to use TimesTen direct and client connections concurrently. See Introduction to the TimesTen Driver Manager in Oracle TimesTen In-Memory Database C Developer's Guide.

  • This release contains updates to the TimesTen Kubernetes Operator. The Operator includes significant new functionalities, including:

    • The TimesTenScaleout object type, which enables the Operator to easily deploy grids from TimesTen Scaleout.

    • Support for the TimesTen Prometheus Exporter.

    • Simplified installation process. Only one container image is required both to run the Operator and to run TimesTen itself.

    • Ability to work with Oracle-supplied container images. Container images of TimesTen and all its prerequisites are available at https://container-registry.oracle.com. The Operator can directly be executed using these images.

    • Ability to change the user and group used to run TimesTen.

    These new functionalities resulted in a number of changes to the way that the Operator is packaged, and in the image formats that it supports.

    • By default, TimesTen and Operator now run as the timesten user.

    • The directory locations of various items are changed.

    The Operator can automatically upgrade TimesTen Classic databases associated with TimesTenClassic objects from one patch release of TimesTen to another. However, because of the changes described above, it is not possible to automatically upgrade a deployed active/standby pair of TimesTen Classic databases from a release previous to this one. Similarly, downgrades from this release to previous releases are not supported. TimesTen deployments created by the Operator in this release can be upgraded to subsequent TimesTen patch releases without issue.

    See Overview of the Oracle TimesTen Kubernetes Operator in Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide.

Bug Fixes

  • Read-only cache groups and the ttLoadFromOracle built-in procedure can now work with NCHAR or NVARCHAR2 columns from an Oracle database when the national character set is UTF8. (BugDB #33541824)

  • A problem is fixed where the values for the activePermInUse and standbyPermInUse metrics were reported incorrectly. (BugDB #33652345)

  • The TTClasses library linked against TTDM, libttclassesTTDM.so, is now included and supported on all TimesTen server distributions. (BugDB #33668736)

  • A problem is fixed where, for certain SSL configurations, users of the TimesTen Kubernetes Operator were unable to configure SSL certificates issued by a certificate authority. (BugDB #33890625)

  • A problem is fixed where the ttRepAdmin -duplicate command and other replication operations failed when the hostname of the sender (or master) database is mapped multiple times in the /etc/hosts file. (BugDB #34013653 - Forward port of BugDB #31857874)

Changes for Release 22.1.1.1.0 from Release 18.1.4.5.0

Changes in this release include:

New Features

  • TimesTen Scaleout now supports read-only cache groups with incremental autorefresh. See Using Cache Groups in TimesTen Scaleout in Oracle TimesTen In-Memory Database Scaleout User's Guide.

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

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

  • PLSQL packages, procedures and functions are now supported in TimesTen Scaleout. See Overview of PL/SQL in Oracle TimesTen In-Memory Database Scaleout User's Guide.

  • You can use Oracle GoldenGate instead of the native cache refresh mechanism of TimesTen 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 native cache mechanism of TimesTen. See Using Oracle GoldenGate as an Alternative Cache Refresh Mechanism in Oracle TimesTen In-Memory Database Cache Guide.

  • 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 About Performing a Fast Patch Upgrade in Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide.

  • 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 Upgrading a Grid in Oracle TimesTen In-Memory Database Scaleout User's Guide.

  • TLS certificate management is now supported in TimesTen Scaleout. See Transport Layer Security for TimesTen Client/Server in Oracle TimesTen In-Memory Database Security Guide.

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

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

  • SQL Profiles now support password complexity check functions. See CREATE PROFILE in Oracle TimesTen In-Memory Database SQL Reference.

  • 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 Diagnostics Through SNMP Traps in Oracle TimesTen In-Memory Database Error Messages and SNMP Traps.

  • You can now control LRU aging based on a number of rows. See Usage-Based Aging in Oracle TimesTen In-Memory Database Operations Guide.

  • For certain query types, TimesTen can now dynamically load multiple cache instances. See Dynamically Loading Multiple Cache Instances in Oracle TimesTen In-Memory Database Cache Guide.

  • You can set the TT_DynamicPassthrough optimizer hint to notify TimesTen Classic to pass through qualified SELECT statements to the Oracle database. See Automatic Passthrough of Dynamic Load to the Oracle Database in Oracle TimesTen In-Memory Database Cache Guide.

  • 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 Hybrid Cache Group in Oracle TimesTen In-Memory Database Cache Guide.

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

  • This release now supports multiple OUT refcursors in PL/SQL. See PL/SQL REF CURSORs in 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. See Determining the Effectiveness of Aging in Oracle TimesTen In-Memory Database Operations Guide.

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

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 later, 8.2 or later, and 9.2 or later

  • Red Hat Enterprise Linux 7.4 or later, 8.2 or later, and 9.2 or later

  • SUSE Enterprise Server 12 and 15

  • Ubuntu 22.04

Intel icc 17.0.2.174, gcc 4.4.7 or later

Oracle JDK 8, 11, 17, and 21

OpenJDK 8, 11, 17, and 21

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 11

  • Windows 10

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, 7.2, and 7.3

IBM xlC 13.1.0 Compiler for AIX

IBM JDK 8

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, ttjdbc17.jar, and ttjdbc21.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.

Client/Server Configurations

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

See Configuring TimesTen Client and Server in Oracle TimesTen In-Memory Database Operations Guide.

Cache

Cache in TimesTen enables you to view and modify data pulled from an Oracle database into a TimesTen database. The TimesTen installation includes Oracle Instant Client.

The following Oracle server releases are supported for cache in TimesTen:

  • Oracle Database Release 11.2.0.4

  • Oracle Database Release 12c

  • Oracle Database Release 19c

  • Oracle Database Release 21c

Replication Configurations

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

Active standby pair replication is supported with Oracle Clusterware 19c.

See Overview of TimesTen Replication in Oracle TimesTen In-Memory Database Replication Guide.

Kubernetes Operator

TimesTen and the TimesTen Kubernetes Operator are supported on Kubernetes 1.25, 1.26, 1.27, 1.28, and 1.29.

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 Prerequisites in Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide.

Oracle GoldenGate

TimesTen is supported as a delivery target with GoldenGate 21.3 or later. GoldenGate parallel Replicat is supported for increased apply performance.

See Using GoldenGate as an Alternative to Native Read-Only Cache Groups in Oracle TimesTen In-Memory Database Cache Guide.

Apache ZooKeeper

TimesTen ships a modified version of ZooKeeper 3.8.4, to address various CVEs and other problems. Please refer to installation_dir/tt22.1.1.23.0/3rdparty/README-zookeeper.txt for details.

TimesTen Scaleout supports the following versions of ZooKeeper:

  • Any ZooKeeper version included in any TimesTen release within the same TimesTen major release cycle.

  • Any ZooKeeper version downloaded from Apache that meets the following criteria:

    • The ZooKeeper release is marked as Stable.

    • The ZooKeeper release is of the same ZooKeeper release line as a ZooKeeper version included in the TimesTen major release cycle.

TimesTen Driver Manager

TTDM is supported on TimesTen 18.1.4.9.0 (or later) and on all platforms with TimesTen server support.

See Introduction to the TimesTen Driver Manager in Oracle TimesTen In-Memory Database C Developer's Guide.

Software Requirements

For software requirements, refer to:

Known Problems and Limitations

This topic contains known problems and limitations in these categories:

Backup/Restore

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

Cache

  • 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.

Installation

  • On Oracle Linux 7, 8 and 9 systems, TimesTen requires the libaio library. To install this library, run:

    sudo yum install libaio
  • On Oracle Linux 8 and Red Hat Enterprise Linux 8 systems, TimesTen requires the ncurses-compat-libs package. To install this package, run:

    sudo yum install ncurses-compat-libs
  • On Oracle Linux 8 and 9 and Red Hat Enterprise Linux 8 and 9 systems, TimesTen requires the /usr/lib64/libnsl.so.1 library. To install this library, run:

    sudo yum install libnsl
  • On Oracle Linux 9 systems, TimesTen requires the compat-openssl10 and libxcrypt-compat libraries. To install these libraries, run:

    sudo yum install compat-openssl10 libxcrypt-compat
  • 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 8.0.7.0. As a workaround, use IBM JDK 8.0.6.35 or earlier.

  • On Ubuntu, TimesTen requires the libaio and libxcrypt libraries. To install these libraries, run:

    sudo apt-get install libaio1 libcrypt1
  • On macOS, set your security preferences to allow applications downloaded from App Store and identified developers.

JDBC

  • 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 macOS, if you are running TimesTen JDBC applications, ensure that you include the following in the Java command line: ‑Djava.library.path=${TIMESTEN_HOME}/install/lib

Oracle Call Interface

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

  • Due to the TimesTen upgrade to Oracle Database 19c and 21c, 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.

PL/SQL

  • 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.

SQL*Plus

  • 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 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)

  • 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.

  • 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.

  • Oracle Linux 9 deprecates the SCP protocol for OpenSSH and uses SFTP instead. TimesTen Scaleout requires the SCP protocol to properly deploy a grid. Add the following configuration to the ~/.ssh/sshd.config file of the instance administrator to switch back to the SCP protocol:

    subsystem sftp /usr/libexec/openssh/sftp-server
  • On Ubuntu, staged backups have limited performance.

ttIsql Utility

  • The ncurses-compat-libs package is no longer available for Oracle Linux 9 or Red Hat Enterprise Linux 9. As a consequence, the editline feature in the ttIsql utility will not work. Other features of the ttIsql utility will work as normal.

Upgrade

  • Enhancements to the replication protocol mean that to perform an online upgrade between 11.2.2.8 and 22.1, the 11.2.2.8 release must be 11.2.2.8.27 or later. If you are using a version prior to 11.2.2.8.27, you must upgrade to a newer 11.2.2.8 release and then perform an online upgrade to this release using the documented online upgrade steps. See TimesTen Upgrades in Oracle TimesTen In-Memory Database Installation Guide and Online Upgrade: Using TimesTen Replication in Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide.

  • On TimesTen Classic, if you are on 18.1.2, you must first upgrade to 18.1.2.5.0 or later before upgrading to this release. If you are on 18.1.3, you must first upgrade to 18.1.3.5.0 or later before upgrading to this release. See Upgrades in TimesTen Classic in Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide.

Documentation Accessibility

Access to Oracle Support