Release Notes
Release 18.1
E61191-87
January 2023
This document provides late-breaking information for TimesTen 18.1.4.31.0, as well as information that is not yet part of the formal documentation.
On TimesTen Classic, if you are currently using an 18.1.2.x release, you must first upgrade to 18.1.2.5.0 or greater before upgrading to this release. If you are currently using an 18.1.3.x release, you must first upgrade to 18.1.3.5.0 or greater before upgrading to this release.
On TimesTen Scaleout, if you upgrade to this release, you must create a new database using this release. Instructions are in the Oracle TimesTen In-Memory Database Scaleout User's Guide.
If you are upgrading to this release from 18.1.1.1.0, please contact Oracle Support.
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 at https://docs.oracle.com/en/database/other-databases/timesten/18.1
.
To install the Oracle TimesTen In-Memory Database, unzip
the distribution file. For installation information, see Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide and the 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 thettVersion utility. |
This document contains the following sections:
This section lists changes between releases:
A problem with excessive and misleading daemon log messages relating to aging is fixed. (BugDB #34784255 - Backport of BugDB #34777457)
A problem is fixed where XLA applications were able to read two-safe transactions before other database connections. (BugDB #34887700 - Backport of 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 #34948343 - Backport of BugDB #34773132)
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 #34695254 - Forward port of BugDB #34641177)
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 #34729349 - Backport of BugDB #34716434)
A problem with memory allocation for insert or update operations is fixed. (BugDB #34676797)
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 #34577070)
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 #34630420 - Backport of BugDB #34630389)
A problem is fixed that caused replication to an Oracle database (AWT cache groups) to hang after recreating the standby database in a two-safe active standby pair. (BugDB #34097271)
The TimesTen Kubernetes Operator is now deployed using a security context which drops all OS privileges. (BugDB #34195376)
A problem is fixed where the failure of a direct mode application container could result in a failover of TimesTen to the standby database. (BugDB #34405985)
A problem is fixed where a failed transmitter thread start or restart could cause a memory leak. (BugDB #34419898 - Backport of BugDB #34352769)
A problem is fixed where, under certain scenarios, a receiver thread restart could cause a memory leak. (BugDB #34447175)
A problem is fixed where a SQL statement used to retrieve or update metadata could cause a memory leak. (BugDB #34475860 - Backport of BugDB #34457914)
Security context settings specified in TimesTenClassic and TimesTenScaleout objects are now properly passed on to Kubernetes. (BugDB #34505871)
A memory leak that could occur along error paths during a ttRepAdmin -duplicate
operation is fixed. (BugDB #34515877)
This release includes Apache ZooKeeper 3.8.0. It is strongly recommended that you upgrade your ZooKeeper servers used for TimesTen Scaleout to this new version.
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.
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 #34119452 - Forward port of BugDB #32989457)
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 #34177506 - Backport of BugDB #34032225)
A problem is fixed where, under certain circumstances, updating the replication statistics caused an assertion failure. (BugDB #34224575 - 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 #34265447 - Backport of BugDB #34237513)
A problem is fixed where the information gathered by interval statistics was incorrect, which changed the query optimizer plan. (BugDB #34311152 - Backport of BugDB #34285000)
A problem with interval statistics on columns without range index was fixed. (BugDB #34465746 - Backport of BugDB #34311169)
A problem is fixed where the ttRepAdmin -duplicate
command (and other replication operations) failed due to the name of the replication host appearing in multiple lines in the /etc/hosts
file. (BugDB #34013364 - Forward port of BugDB #31857874)
A problem is fixed where SQL queries with a NULL
value for a ?
parameter failed. (BugDB #34106789 - Backport of BugDB #34075277)
In previous releases, a heap assertion due to not switching to system transaction for the permanent heap invalidated the database during reclaim phase of recovery. The problem is fixed. (BugDB #34121026 - Backport of BugDB #33828964)
A problem is fixed where a B-tree index cursor operation could invalidate the database. (BugDB #33847074 - Backport of BugDB #33767655)
In this release, the TimesTen client on Linux x86-32 systems now supports client/server connections over Transport Layer Security (TLS) to provide encrypted network communication. (BugDB #30435732)
A problem is fixed where SSL/TLS connection errors with expired certificates were handled incorrectly. (BugDB #33789220 - Backport of BugDB #33771090)
This release includes a TTClasses library linked against TimesTen driver manager, libttclassesTTDM.so
. (BugDB #33756674 - Backport of BugDB #33668736)
A problem is fixed where certain SQL queries containing a WITH
clause and a UNION
operator could return the wrong result. (BugDB #33590462 - Backport of BugDB #33486276)
A problem is fixed where small memory segments used for client/server connections where only destroyed once the connection was terminated instead of as soon as the segments were out of use. (BugDB #33631635 - Backport of BugDB #31460919)
A problem is fixed where the activePermInUse
and standbyPermInUse
metrics reported incorrect values. (BugDB #33680271 - Backport of BugDB #33652345)
This release now reports activePermInUse
and standbyPermInUse
metrics in TimesTen Kubernetes Operator log. (BugDB #33308656)
In this release, the ttLoadFromOracle
utility and read-only cache groups are enhanced to work with NCHAR
or NVARCHAR2
columns on Oracle database when the national character set is UTF8
. The data type set for the columns in the TimesTen tables must be CHAR
or VARCHAR2
, respectively. (BugDB #33386289)
A problem is fixed where the TimesTen Kubernetes Operator log reported incorrect values for the awtBehindMb
metric. (BugDB #33386532)
A problem is fixed where, under certain circumstances, the TimesTen Kubernetes Operator failed to react if the active database failed. (BugDB #33435160)
In this release, XLA bookmark information is reported in the TimesTen Kubernetes Operator log. (BugDB #33185439)
For the TimesTen Kubernetes Operator, the default for agentPostTimeout
was incorrectly set to 6000. It is now 600 as documented. (BugDB #33313576)
When using the TimesTen Kubernetes Operator, if the active database failed while a newly-created standby database was catching up both databases were left in an inoperable state. The TimesTenClassic object associated with the databases is now placed into the ManualInterventionRequired
state. Human intervention is required to correct the situation.(BugDB #33336786)
Additional diagnostics are reported in the TimesTen Kubernetes Operator log when the operator creates its TimesTen instance. (BugDB #33347034)
In previous releases, 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 #33369086 - Backport of BugDB #33360774)
TimesTen now references all memory before database load to avoid a class of memory errors.
TimesTen now supports PermSize
settings larger than 256 GB without the use of huge pages on Linux systems.
In this release, the daemon log message that indicates that the new deadlock-breaking mechanism has been started is Info type. The new message is of the format: XXXXX Info: XXXXX Log: Log: logMgrUnpublishedLWNInsert: XXXXX due to log flusher contention. Will retry the log insert.
XXXXX
indicates a variable length string that may change form message to message. (BugDB #33277162 - Backport of BugDB #33246081)
In this release, a possible deadlock condition in the TimesTen log manager is fixed. The symptoms were that the user DML operations appeared to hang, there was high CPU utilization from the TimesTen subdaemon process due to waiting and warning messages were printed in the TimesTen message log containing the content [...waiting for latch "Log Strand Insertion[1]" ...] and [...waiting for latch "Log Flusher LWNHdrLSNTbl
"...] (BugDB #33277165 - Backport of BugDB #33246081)
A problem is fixed where backup operations might stall for a long time on systems with constant background checkpoint operations running. (BugDB #33175574)
A problem is fixed that caused an error to be sent to the message log when MemoryLock was set to 4. (BugDB #33176102 - Backport of BugDB #33097190)
The ttSchema
utility no longer contains the -includePassword
option. Also, in this release, the CREATE USER
statement printed by ttSchema
includes a random string so that the disabled password is not predictable. (BugDB #33143330 - Backport of BugDB #32918773)
A problem with concurrent materialized view updates of a row is fixed. (BugDB #33156491 - Backport of BugDB #32118671)
In this release, TimesTen reports the value of the PermSize
attribute in the Kubernetes operator log. (BugDB #33165777)
A problem is fixed that prevents random crashes for multi-terabyte databases. (BugDB #33199190)
This release includes ZooKeeper 3.6.3. Customers are advised to upgrade their ZooKeeper servers used for TimesTen Scaleout to this new version.
A problem that causes the ttMigrate
utility to return error code TT2231
when migrating from 11.2.2.x to later major releases is fixed. (BugDB #33066918 - Backport of BugDB #32128770)
When using the TimesTen Kubernetes Operator and when recovering from the failure of both databases in an active standby pair, under some circumstances it could take longer than necessary to bring up the active database. This problem is fixed. (BugDB #33074719)
In previous releases, if you installed TimesTen in a location that TimesTen could not access, the error message that TimesTen returned was not helpful. In this release, the error message is improved. (BugDB #33075300 - Backport of BugDB #32956797)
A problem is fixed where terminated cache groups with fractional second intervals could not be recovered. (BugDB #33111568 - Forward port of BugDB #32945636)
If a cache group was autorefreshed due to a transient condition, it was possible for the full autorefresh to fail and an incremental autorefresh to resume if the transient condition was gone. This could result in a partially unloaded cache group. In this release, the autorefresh continues until a full autorefresh has been completed. (BugDB #33121644 - Forward port of BugDB #33043967)
In TimesTen Scaleout, when an element recovers through duplication, transient conditions can result in duplicated checkpoint/log files being persisted in the file system. In previous releases, integrity checks at the beginning of database duplication aggressively checked for the existence of these files that could cause the database recovery to fail repeatedly. In this release, these unnecessary checks have been removed. (BugDB #33131286)
In the previous release, direct mode connections made by users other than the instance administrator would fail. This problem is fixed. (BugDB #33055853)
When using the TimesTen Kubernetes Operator, the awtBehindMb
field in TimesTenClassicStatus
output reports how many megabytes of transaction log are present in TimesTen that have not yet been pushed to the Oracle database. In previous releases, this number could be incorrectly calculated in some circumstances. The calculation is corrected in this release. (BugDB #32698380 and BugDB #32805059)
When using the TimesTen Kubernetes Operator, a JSON representation of TimesTenClassicStatus
is periodically written to the Operator's log for customer monitoring purposes. In previous releases, this was not done. (BugDB #32884459)
In previous releases, when using the TimesTen Kubernetes Operator, if both the active and standby databases in an active standby pair failed, the Operator might not recover the databases correctly if one instance entered the Unknown
state. In this release, the Operator handles this sequence of events correctly. (BugDB #32925588)
In previous releases, if the environment variable ORACLE_BASE
pointed to a read-only directory, then creation or loading of a TimesTen database would fail with error 8502: Error 48189 initializing PLSQL_MEMORY
. This is fixed. (BugDB #32945853 - Backport of BugDB #32216156)
When using the TimesTen Kubernetes Operator, if both the active and standby databases in an active standby pair fail simultaneously there are cases when the Operator cannot determine which database is ahead
. In such cases the Operator no longer attempts to automatically recover the databases. In previous releases the Operator could attempt to do so, unsuccessfully. (BugDB #32956707)
When using the TimesTen Kubernetes Operator, if the standby database in an active standby pair fails, and while the Operator is restoring the standby the Active then fails, in previous releases TimesTen would never be able to recover the active standby pair. This problem is fixed. (BugDB #32987853)
In previous releases, certain SQL queries that contained a WITH
clause could return the wrong result. This is fixed. (BugDB #32989462 - Backport of BugDB #32928200)
In previous releases, when using the TimesTen Kubernetes Operator, if the active and standby databases failed simultaneously after the Operator recovers them, attempts to modify the active database could fail with error 8112
. In this release, while recovering from such a failure, the Operator can drop any cache groups in the active database and can re-run the user's cachegroups.sql file, in some circumstances. (BugDB #32993130)
In TimesTen Scaleout, certain error conditions during a ttLoadFromOracle
operation could lead to a SEGV
. This problem is fixed. (BugDB #32920937)
Log read stability is improved in this release. (BugDB #32764274 - Backport of BugDB #32699204)
A problem is fixed where an error condition while loading Oracle data on TimesTen Scaleout using the ttLoadFromOracle
utility could cause an assertion. (BugDB #32864255)
This release contains new features for the TimesTen Kubernetes Operator. You can learn more in the Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide. The new features include:
Support for automated upgrades of TimesTen
Ability to recover TimesTen if both databases in an active standby pair fail
Ability to suspend the management of a TimesTenClassic
object
Support for direct mode applications
Support for additional CRD syntax elements
Enhancements to TimesTenClassicStatus
Support for running containers as non-root
A problem is fixed that prevented using HugePages with the connection attribute MemoryLock
set to 4. (BugDB #30760775)
A problem is fixed where TimesTen client connections would fail after 30 seconds. (BugDB #32746952 - Forward port of BugDB #32740629)
An issue has been fixed that caused an overflow when creating a unique index on a large table. (BugDB #32817772)
In previous releases, a batch update on a dynamic cache group could lead to a crash. This problem is fixed. (BugDB #32864746)
This release contains two new options for the ttLoadFromOracle
utility. These options speed up loading large data sets into non-readonly cache groups.
The SkipCacheChecks
option allows data to be loaded into non-readonly cache group tables with ttLoadFromOracle
utility. This option is not used by default. Valid values are Y
and N
.
The DryRun
option checks if reading data on the Oracle database can be parallelized across multiple fetchers and stops before loading any rows. If parallelizing the reads is possible, ttLoadFromOracle
returns success. Otherwise it returns an error. This option is not used by default. Valid values are Y
and N
.
An issue that might cause an assertion during checkpointing has been fixed. (BugDB #32449495 - Backport of BugDB #32498023)
In previous releases, if a large number of connections simultaneously connected to elements on a large grid, queries could fail due to an inability to create communication channels between the elements. This problem is fixed. (BugDB #32654342 - Backport of BugDB #32651929)
In previous releases, running the ttOptEstimatesStats
built-in procedure on a standby database could cause a buffer over run assertion. This problem is fixed. (BugDB #32670979 - Backport of BugDB #32307505)
Improved log manager diagnostics. (BugDB #32449495 and BugDB #32449521 - Backport of BugDB #32225061 and BugDB #32420187)
In previous releases, if there were multiple failed connection attempts in a short period of time, defunct child servers would accumulate, resulting in an error indicating that no more processes were available. This problem is fixed. (BugDB #32560604 - Backport of BugDB #29747131)
A problem is fixed where rare error conditions could lead to a parallel LOAD CACHE GROUP
operation using the wrong credentials to select on the Oracle database. (BugDB #32202049 - Backport of BugDB #32480322)
An optimizer hint has been added to have the COUNT
function return a TT_INTEGER
instead of a TT_BIGINT
. (BugDB #32466032 - Backport of BugDB #32466016)
A problem is fixed where a connection storm could cause new connection requests to be rejected. (BugDB #32214368 - Backport of BugDB #32198508)
In previous releases client connections could fail if an inconsistent value for the ForceDisconnectEnabled
connection attribute was supplied in the connection string. This is fixed. (BugDB #32243854 - Backport of BugDB #32228891)
A rare deadlock between dynamic load and autorefresh could occur and result in an error message in the daemon log. (BugDB #32244827 - Backport of BugDB #32224367)
In previous releases when a client with many open connections was forced to shut down, many error messages would fill both the daemon and support logs. In this release, the messages now appear as INFO
and are only sent to the support log. (BugDB #32281255- Backport of BugDB #32228936)
A problem is fixed where a ttIsql
command would try to open a mesg
file that did not exist. (BugDB #32297690 - Backport of BugDB #32188026)
For TimesTen Classic, this release contains several new features for the Oracle TimesTen Kubernetes Operator (TimesTen Operator). For details, see the Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide.
TimesTen supports password management functionality by using profiles. A profile consists of a set of limits on the database password parameters. A profile can be assigned to one or more users. A user who is not assigned a profile is subject to the limits of the DEFAULT
profile. For details, see the Oracle TimesTen In-Memory Database SQL Reference.
For use with Transport Layer Security (TLS), new options for the ttCreateCerts
utility allow you to specify the elliptical curve signing algorithm, size of the elliptical curve, and duration for which the certificates are valid. For details, see the Oracle TimesTen In-Memory Database Security Guide.
When a SELECT
is done in the TimesTen Client/Server driver, a set of SQLFetch operations is performed. Each time the buffer is exhausted, another set of rows is requested until all rows have been fetched and returned to the client. Previously, the maximum size of the returned buffer was hard-coded to 256 KB or 200 rows, whichever is reached first. In this release, the user can set custom limits using one of the following operations:
TimesTen connection attributes for the client connection string or client DSN definition:
TTC_NetMsgMaxRows
TTC_NetMsgMaxBytes
ODBC attributes that you can set and get with SQLSetStmtAttr
and SQLGetStmtAttr
:
TT_NET_MSG_MAX_ROWS
TT_NET_MSG_MAX_BYTES
These can also be set with SQLSetConnectAttr
, which provides initial default values for statement objects created from the connection.
JDBC Statement
object methods to set or get the attributes:
void setTtNetMsgMaxRows(int rows)
int getTtNetMsgMaxRows()
void setTtNetMsgMaxBytes(int bytes)
int getTtNetMsgMaxBytes()
You can also call the set
methods from a Connection
object, which provides initial default values for statement objects created from the connection.
The JDBC Statement getFetchSize()
and setFetchSize()
methods are mapped to getTtNetMsgMaxRows()
and setTtNetMsgMaxRows()
respectively.
In this release, a problem is fixed where TimesTen replication could loop while reading log records. The problem would resolve when the user restarted replication. This problem impacted some, but not all subscribers. (BugDB #31939615 and BugDB #31963773 - Backport of BugDB #31931953)
This release contains improved assertion diagnostics for latch stability. (BugDB #31963787 - Backport of BugDB #31963612)
A problem is fixed where an assertion could occur during a dynamic load of a cache group with hash indexes. (BugDB #31806677 - Backport of BugDB #31765975)
A problem is fixed where checkpoints could fail or take a long time to complete. (BugDB #31849763 and #31902277 - Backport of BugDB #31707345 and #31740312)
A problem is fixed where parallel load cache group could fail with lock timeouts. (BugDB #31860854 - Backport of BugDB #31805396)
For TimesTen Classic, this release contains the Oracle TimesTen Kubernetes Operator (TimesTen Operator). The TimesTen Operator provides the ability to create and deploy highly available replicated pairs of TimesTen databases to a Kubernetes cluster with minimal effort. In addition, the TimesTen Operator provides the ability to automate failure detection and recovery. For details see the new book, Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide.
For TimesTen Classic, this release has been certified to run in containers managed by Kubernetes. The following environment was used for the certification:
Kubernetes v1.13.5 in Oracle Kubernetes Environment (OKE).
A container on Oracle Linux 7 or a container based on a base SUSE Enterprise Server 15 image.
You can enable Transport Layer Security (TLS) to provide encrypted network communication for replication agent communication and client/server communication. Client/server over TLS is not supported on Linux32 in this release. Please see the Oracle TimesTen In-Memory Database Security Guide for more details.
When using Oracle TimesTen In-Memory Database Cache, you can now set a time interval for calculating the fragmentation percentage of the change log tables on the Oracle database. Use the ttCacheConfig
built-in procedure providing the AutorefreshLogMonitorInterval
as the value parameter.
In TimesTen Classic, automatic client failover no longer is limited to scenarios that include an active standby pair replication scheme. The client can automatically fail over from one database to another using generic automatic client failover. This is especially useful if you are using read-only cache groups. See "Using automatic client failover" in Oracle TimesTen In-Memory Database Operations Guide for the automatic client failover entry?
This release contains support for the VSIZE
SQL function, a scalar function that returns the number of bytes in the internal representation of an expression.
This release of TimesTen Scaleout has a new type of backup: staged backups. This type of backup eliminates the overhead of creating local copies of the checkpoint and log files and reduces the network traffic of creating a remote copy in the repository. Staged backups are ideal for when you want to make regular backups on a second site that is independent to your main site.
To increase the performance of database import operations, the ttGridAdmin dbImport
command now enables you to use multiple threads to import database objects with the use of the -numThreads
option.
This release allows you to set a timeout (in milliseconds) for channel create requests to a remote element with the ChannelCreateTimeout
general connection attribute. This timeout avoids potential channel create hangs due to software issues or network failures. In this release, the default value is 0
. (The documentation incorrectly states the default value as 30,000
.)
The CURRENT_SCHEMA
parameter has been added to the SYS_CONTEXT
function.
This release contains support for the TO_TIMESTAMP
SQL function. TO_TIMESTAMP
is a datetime function that converts a CHAR
or VARCHAR2
data type to a value of TIMESTAMP
data type.
This release contains support for the ACCESSIBLE BY
clause. You can use the ACCESSIBLE BY
clause in the CREATE
FUNCTION
, CREATE
PROCEDURE
, and CREATE
PACKAGE
statements.
In previous releases, queries on the SYS.USER_USERS
or SYS.DBA_USERS
views could fail with an error indicating an incorrect resource limit value instead of UNLIMITED
. In this release, the max value for UNLIMITED
in both of these views is TT_BIGINT
. (BugDB #28349381 and BugDB #30794417)
In previous releases, when using TimesTen Scaleout, materialized views that have different distribution schemas than the base tables contain inaccurate information after evict operations. This problem is fixed. (BugDB #30175635)
A memory leak in the TimesTen server has been fixed. (BugDB #30376195)
In previous releases, the command to force a connection to disconnect could be ignored by the system. This issue is fixed. (BugDB #30407097)
An issue is fixed in this release where, under certain system configurations, the CkptRate
attribute setting was not being honored properly by TimesTen. (BugDB #30533832)
In previous releases, when a user started the TimesTen daemon without executing the ttenv.sh
/ttenv.csh
script, the cache agent would not start. This problem is fixed. (BugDB #30616019)
In previous releases a heap buffer corruption during SQL compilation could invalidate the database. TimesTen now returns a runtime error if this problem is detected. (BugDB #30602916 and BugDB #30700586)
A problem is fixed where a SEGV
error would occur when a view that did not contain certain columns was part of a join operation inside of a PL/SQL block. (BugDB #30714068)
In this release, a performance regression is fixed. In previous releases, some operations could take an extra long time to complete when the database was under a high workload. (BugDB #30752313)
A problem is fixed where some TimesTen diagnostics files used large amounts of disk space. (BugDB #30762459)
In this release, TimesTen uses less temp space during recovery. (BugDB #30814797)
A problem is fixed where a specific Oracle error caused by running Database Replay on the Oracle database could lead the autorefresh cycle to be a full autorefresh for incremental autorefresh cache groups when autorefresh select limit is used. (BugDB #30870273)
A problem is fixed where replica sets could fail to recover during LBCU recovery, when using TimesTen Scaleout. (BugDB #30880449)
A problem is fixed where a SEGV
error would occur when processing ref cursors in a C function in a Pro*C or OCI program. (BugDB # 30998539)
An overflow issue with a large number of IN
list values is fixed in this release. (BugDB #31020480)
This release contains a fix for a performance degradation that caused TimesTen to read more often from persistent storage. (BugDB #31147999)
On NUMA machines with a large number of CPUs TimesTen could crash while loading a database into RAM. This problem is fixed. (BugDB #31295922)
Changes in this release include:
TimesTen is now certified to support these additional platforms:
Solaris 11.3 and 11.4 on Intel and Sparc 64-bit
Linux SUSE Enterprise Server 15
IBM AIX 7.2
macOS 10.9.2, 10.11, 10.13.6 and 10.14.6
Linux 32-bit client only
In this release, TimesTen adds support of Python and Node.js through the Oracle Database Programming Interface for C (ODPI-C). For each language, there is an open source package, or driver, available through GitHub and maintained by Oracle. See Oracle TimesTen In-Memory Database Open Source Languages Support Guide for information.
The ACTION
, CLIENT_INFO
, and MODULE
parameters have been added to the SYS_CONTEXT
function. See Oracle TimesTen In-Memory Database SQL Reference for more information.
TimesTen now supports these scalar functions: ACOS
, ASIN
, ATAN
, ATAN2
, COS
, COSH
, EXP
, LN
, LOG
, SIN
, SINH
, TAN
, TANH
. See Oracle TimesTen In-Memory Database SQL Reference for more information.
Cache group autorefresh interval set to 0 milliseconds enables continuous autorefresh, where the next autorefresh cycle is scheduled immediately after the last autorefresh cycle has ended.
The syntax for table name in the SELECT
statement allows optional parenthesis. This is also true for the SELECT
clause of the INSERT...SELECT
and CREATE
TABLE
AS
SELECT
statements. See Oracle TimesTen In-Memory Database SQL Reference for more details.
Setting the CacheCommitDurable
cache configuration parameter to 0
with the ttCacheConfig
built-in procedure reduces the occurrence of lock contention between autorefresh and dynamic load requests in the same application. See Oracle TimesTen Application-Tier Database Cache User's Guide for details.
This release adds support in TimesTen Classic for the -open
and -close
options for the ttAdmin
utility. You open and close a database in order to direct whether users can connect to that database. If a database is closed, user connection attempts are refused. When a database is closed only the instance administrator can connect to it. In TimesTen Classic, databases are open by default. See Oracle TimesTen In-Memory Database Operations Guide for details.
The SYS.V$SESSION
view contains data for each current connection in TimesTen Classic. For details, see Oracle TimesTen In-Memory Database System Tables and Views Reference.
SNMP traps were not shipped in previous 18.1 releases. Support for SNMP is included in this release of 18.1. See Oracle TimesTen In-Memory Database Error Messages and SNMP Traps, for details.
Cache agent thread contentions are reduced in this release. (BugDB #27446726)
This release contains a feature to support Oracle connection pooling for client/server cache connections. By configuring the pool appropriately, applications can limit the number of open Oracle connections. (BugDB #28503586 - Forward port of BugDB #27453129)
In previous releases, the SELECT
privilege on the Oracle database ARDL_CG_COUNTER
prevented dynamic load with the reduced contention feature enabled. This problem is fixed. (BugDB# 29809872 - Backport of BugDB #29809244)
Column types returned by TimesTen to JDBC applications are different than the ones returned by the Oracle database in a TimesTen cache. This release contains the Java property timesten.oracle.type.mapping
that returns the expected column types. (BugDB #30160298)
To enable the fixed mapping, run your applications with:
java -Dtimesten.oracle.type.mapping=true myJavaProgram myParams
In previous releases, in the event of a critical event (such as database invalidation) the TimesTen daemon log messages might be lost. In this release, to help diagnose the cause of the critical event, TimesTen collects a copy of a few minutes of daemon log entries at the time that a critical event occurs. (BugDB #30206361)
A problem has been fixed where a query with nested aggregates could cause an assertion. (BugDB #30258456)
A memory leak in the main TimesTen daemon has been fixed. (BugDB #30385213)
In previous releases, when trying to delete an instance, TimesTen deleted the current working directory instead. This problem is fixed. (BugDB #30399673)
A memory leak in the TimesTen server has been fixed. (BugDB #30580882 - Backport BugDB #30376195)
Changes in this release include:
You can use the SQLQueryTimeoutMsec
connection attribute to specify the time limit in milliseconds within which the database should execute SQL statements. The value of SQLQueryTimeoutMsec
can be any integer equal to or greater than 0. The default value is 0
. A value of 0
indicates that the query does not time out. This attribute does not affect TimesTen Cache operations that are being processed on an Oracle database. This includes passthrough statements, flushing, manual loading, manual refreshing, synchronous writethrough, and propagating. Both SQLQueryTimeout
and SQLQueryTimeoutMsec
attributes are internally mapped to one timeout value in milliseconds. If different values are specified for these attributes, TimesTen retains the value specified by the SQLQueryTimeoutMsec connection attribute.
TimesTen active standby pair replication is supported with Oracle Clusterware 18c.
Users should no longer issue the ttGridAdmin dbDistribute -evict
command with the -add
or -remove
options.
A problem is fixed where a segmentation fault could occur when TypeMode=1
and a query tries to convert an empty string to a number type. (BugDB #25501615)
A problem that caused timeouts of materialized views that had self joins of inner tables is fixed in this release. (BugDB #29014221)
In previous releases, the ttRestore
utility did not respect the value of the Preallocate
connection attribute when the value was 1
. This problem impacted databases created by using the ttRepAdmin -duplicate
command or the ttRestore
utility. This problem is fixed. (BugDB #29214692)
A problem is fixed where an ALTER STANDBY PAIR
... DROP SUBSCRIBER
or an ALTER REPLICATION
... DROP SUBSCRIBER
statement is given priority over user workloads to avoid deadlocks when dropping a subscriber. (BugDB # 29278422)
A problem is fixed where the output of columns in a Replication Conflict Resolution report were truncated (which were not previously truncated) resulting in the generation of invalid XML in the report. (BugDB #29359698)
A compilation heap corruption could invalidate the database if the compilation heap header was corrupted. This problem is fixed. (BugDB #29371488)
A problem has been fixed where replication between hosts that have TimesTen 18.x releases and pre-18.x releases installed could break due to incorrect table aging comparison errors. (BugDB #29456369)
In previous releases, it was possible for the ttGridAdmin modelApply
command to delete the current version of the model if the current version of the model was older than the Retain Days
value. This problem is fixed. (BugDB #29642503)
Before upgrading a grid to the 18.1.2.2.0 release, ensure that you perform these steps:
Take note of the current values for Retain Days
and Retain Versions
in your grid.
% ttGridAdmin gridDisplay ... Retain Days: 30 Retain Versions: 10 ...
Set the values for Retain Days
and Retain Versions
to 0
.
% ttGridAdmin gridModify -retainDays 0 -retainVersions 0
After the upgrade, restore the values for Retain Days
and Retain Versions
in your grid.
% ttGridAdmin gridModify -retainDays 30 -retainVersions 10
A performance issue related to B-tree latch contention has been fixed. (BugDB #29664356)
A problem is fixed where a complex query returned TimesTen error 4053: Internal error: Failed to get offset. The command failed.
(BugDB #29718157)
In previous releases, running an anonymous block could result in an internal error. In this release the ttTraceMon
utility is enhanced to include new traces for PL/SQL compilation. Trace level 1
is for PL/SQL compilation and Trace level 2
is for PL/SQL execution. (BugDB #29863040 - Forward port of BugDB #20625183)
In previous releases, when recovering from a fuzzy checkpoint after activating replication for the first time, an assertion could occur. This problem is fixed. (BugDB #30025064)
An assertion failure in the function sbTupRefcountDecMacro
is fixed in this release. (BugDB #3008138 - Forward port of BugDB #29916932)
In a previous release, an assertion failure could happen without printing a message to indicate the SQL statement in which the error occurred. In this release, TimesTen prints out the failing SQL statement. (BugDB #30179366 - Backport of BugDB #30119077)
Changes in this release include:
This release supports TimesTen Classic In-Memory Database, in addition to TimesTen Scaleout.
This release includes the Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide. The procedures for completing an installation have changed since the TimesTen 11.2.2 release.
You can attempt a re-synchronization of your data if the data distribution process is interrupted or fails to complete. Re-synchronization involves executing the ttGridAdmin dbDistribute -resync
operation. See "Recovering from a data distribution error" in the Oracle TimesTen In-Memory Database Scaleout User's Guide for further details.
The TimesTen JDBC driver implements the JDBC 4.2 API (Java 8) and is certified to work with Java 8, 9, and 10 runtime environments (JRE). This includes support for standard REF CURSORs, large update counts, SQLType
, and DatabaseMetaData
enhancements.
You can gracefully shut down the database by disconnecting applications in an orderly fashion. The new forced disconnect option asynchronously disconnects all connected applications from the database, including those that are idle or unresponsive. See "Disconnecting from a database" in the Oracle TimesTen In-Memory Database Operations Guide, "ForceDisconnectEnabled", "Force disconnect" for Classic, and "Force all connections to disconnect (dbDisconnect)" for TimesTen Scaleout in Oracle TimesTen In-Memory Database Reference.
The ttCkptHistory
built-in procedure was updated to add information about the number of actual transaction log files purged by a checkpoint and the reason for a transaction log hold. See "Displaying checkpoint history and status" in the Oracle TimesTen In-Memory Database Operations Guide for full details.
Some applications choose incremental autorefresh instead of full autorefresh mode for performance reasons. However, a full autorefresh could still be requested in some situations. You can set the DisableFullAutorefresh
cache configuration parameter to 1 to disallow any full autorefresh requests for all cache groups defined with incremental autorefresh. See "Disabling full autorefresh for cache groups" in the Oracle TimesTen Application-Tier Database Cache User's Guide for details.
The PLSQL_SESSION_CACHED_CURSORS
connection attribute specifies the number of session cursors to cache. The default value is 50 and the range is 1-65535. Also see "PLSQL_SESSION_CACHED_CURSORS" in Oracle TimesTen In-Memory Database Reference.
PLSQL_OPEN_CURSORS
is a ttDBConfig
parameter that specifies the maximum number of PL/SQL cursors that can be open in a session at one time. The default value is 50 and the range is 1-65535. Also see "ttDBConfig" in Oracle TimesTen In-Memory Database Reference.
For TimesTen Scaleout, you can find proxy connection information by specifying the command ttGridAdmin dbStatus -proxies
.
In previous releases, a call to the ODBC 2.5 SQLColAttribute
function returned a blank field. In this release, a call to SQLColAttribute
returns the owner name. This is a behavior change.
In previous releases, when dropping a table and creating a new table during a replication backlog, the replication agent could transmit work for a table that had been dropped. This problem is fixed. (BugDB #6053644)
When using asynchronous writethrough under no workload, the AWT sorter thread could consume 100% of the CPU. This problem is fixed. (BugDB #21556263 - Forward port of BugDB #21452176)
A deadlock could occur when trying to add a subscriber to a replication scheme. This problem is fixed. (BugDB #26546964 and BugDB #27433418- Forward port of BugDB #26383257)
A problem has been fixed where TimesTen would return Error 8110: Connection not permitted. This store may require master catchup
, when an active store had closed abruptly and the standby was marked failed. (BugDB #27433402 - Forward port of BugDB #24007219)
A problem has been fixed where slow performance occurred because the cache agent executed PL/SQL using literal SQL strings instead of bind variables. (BugDB #27444093 - Forward port of BugDB #25906163)
This release contains a new built-in procedure for changing the frequency at which "Waiting for latch . . .
" messages are printed. The built-in procedure is ttLatchWaitMsgTimeout
. (BugDB #27692915 - Forward port of BugDB #27388330)
A problem is fixed where multiple dynamic load executions from the same TimesTen connection could lead to a memory corruption. (BugDB #27840782 - Forward port of BugDB #27753072)
A problem is fixed where connection errors could occur when trying to create many simultaneous client/server connections. (BugDB #28084560)
A problem is fixed where a full autorefresh could be triggered after manually loading a cache group. (BugDB #28130065 - Forward port of BugDB #27953067)
A problem related to reuse of constant expressions in NVL
and CAST
clauses of a SELECT
operation is fixed in this release. (BugDB #28361914 - Forward port of BugDB #28325161)
An assertion could occur when a CREATE VIEW
operation returned long view query results. This problem is fixed. (BugDB #28640816 - Forward port of BugDB #28618970)
A problem is fixed where memory from one shared cursor could consume most of the memory specified by the PLSQL_MEMORY_SIZE
connection attribute and TimesTen would return error 4030. (BugDB #28715222 - Forward port of BugDB #18829074)
A problem is fixed where the ttRepAdmin -showstatus -detail
command could show multiple entries for the same peer relationship and return confusing output. (BugDB #28716671)
An assertion failure that could occur at SQL parsing and at heap compilation when querying system tables now returns an error instead of asserting. (BugDB #28717010 and #27976616- Forward port of BugDB #27928747)
In previous releases, a compilation heap assertion failure could invalidate the database. This problem is fixed. (BugDB #28717013 - Forward port of BugDB #26535068)
Performance for certain SELECT
queries was slower than in an older release of TimesTen. This problem is fixed. (BugDB #28717014 - Forward port of BugDB #)
A problem is fixed where a segmentation fault could occur during a query that contained a CASE
statement and a GROUPBY
clause. (BugDB #28448399)
A problem that caused a delay in a log-based catchup (LBCU) operation is fixed. (BugDB #28852175)
For TimesTen Scaleout, when upgrading from an 18.1.1.x release to this release, there was a problem that would prevent the creation of a duplicate grid management store from the previous release or duplicating a grid management store to the previous release. This problem was fixed. (BugDB #28890812)
An assertion failure during latch handling that caused database invalidation is fixed in this release. (BugDB #28902021)
A problem that caused a loop of disconnect failure for log-based catchup (LBCU) operation is fixed in this release. (BugDB #28920075)
In previous releases, a background checkpoint could fail if the system was waiting on an epoch. This would cause excess log records to accumulate. In this release, TimesTen retries the background checkpoint as soon as possible. (BugDB #28931970 - Forward port of BugDB #29039498)
An application using a mini-client produced by ttmkLiteClient
could core dump when trying to connect. This problem is fixed. (BugDB #29286011)
This release contains new options to the ttGridAdmin dbStatus
command that provide information about connections. For details, see the Oracle TimesTen In-Memory Database Reference.
A problem is fixed where a query could return different results depending on the position of the optimizer hint. (BugDB #27424470 - Forward port of BugDB #27237541)
A problem is fixed where TimesTen could return a wrong result for a query with an aggregate push down when concurrent update operations involved tables used in the query. (BugDB #27444108 - Forward port of BugDB #25647667)
A problem is fixed where an assertion failure could happen during an update operation. (BugDB #28390068 - Forward port of BugDB #28289058)
In previous releases, if the ttGridAdmin modelApply
command executed numerous times with a database created, eventually subsequent executions of ttGridAdmin modelApply
failed. This is fixed. (BugDB #28425254)
A problem with batch insert with duplicate key is fixed. (BugDB #28522995)
This release contains changes to the client-server driver, that can be used to configure the Oracle connection pool for IMDB Cache, which was added in TimesTen 11.2.2.8.33.
In previous releases, an import operation (ttGridAdmin dbImport
) would fail on a grid with multiple instances that had the same instance name. This problem is fixed. (BugDB #28489389 - Backport of BugDB #28488704)
Changes in this release include:
TimesTen Scaleout now contains the TT_CommitDMLOnSuccess
optimizer option that forces simple DML transactions to commit automatically on both elements of the replica set.
TimesTen Scaleout includes a new client routing API that enables C and Java client applications to route connections to an element based on the key value for a hash distribution key. This feature enables the client application to connect to the element that stores the row with the specified key value, avoiding unnecessary communication between the element storing the row and the one connected to your application. For more information, see the Oracle TimesTen In-Memory Database C Developer's Guide and Oracle TimesTen In-Memory Database Java Developer's Guide.
This release contains system table and system view changes that are not documented. These changes are reserved for a future release.
A problem is fixed where TimesTen returned errors 1699 and 907 on the standby, when there were unique hash indexes on a replicated table. (BugDB #27086859)
A problem is fixed where the status of the standby database in an active standby pair replication scheme changed to IDLE
after migration using the ttMigrate
utility. (BugDB #27433379 - Forward port of BugDB #21124942)
A problem has been fixed where a deadlock could occur during an ALTER REPLICATION
operation. (BugDB #27433413 - Forward port BugDB #26050592)
A problem is fixed where an assertion failure and database invalidation could happen during an update operation. (BugDB #27445399 - Forward port BugDB #27210882)
A problem is fixed where calling to a particular PL/SQL procedure when the database is empty would throw error TimesTen: ORA-06508: PL/SQL: Could not find program unit being called.
(BugDB #27509032 - Forward port BugDB #27503945)
With very large group entries, the daemon startup could fail with a message like "{groupname}" is not a valid value for the -group option
. This problem is fixed. (BugDB #28025300)
A problem is fixed where a final checkpoint could fail with a negative reference count on a slot inside a tuple page. (BugDB #28094755)
A problem is fixed where an INSERT SELECT
operation with a UNION
would fail to insert some rows. (BugDB #28188267)
Space allocation latch contention related to point queries such as SELECT 1 FROM A_TABLE WHERE PK=?
has been fixed. (BugDB #28336156)
Changes in this release include:
This release includes a new mode referred to as "TimesTen Scaleout," or "grid." TimesTen Scaleout is a grid of interconnected hosts running TimesTen instances that work together to provide fast, fault tolerance, and high availability for in-memory data. A grid contains one or more databases and each database is distributed across all instances of the grid. The features are documented in the Oracle TimesTen In-Memory Database Scaleout User's Guide.
TimesTen Scaleout supports a maximum of 64 instances in this release.
NOTE: Oracle TimesTen In-Memory Database "in classic mode" or "TimesTen Classic" refers to single-instance environments and databases as in previous releases.
Newly included with this release are these documents: the Oracle TimesTen In-Memory Database Security Guide, the Oracle TimesTen In-Memory Database Scaleout User's Guide, Oracle TimesTen In-Memory Database Accessibility Guide and Oracle TimesTen In-Memory Database Licensing Information.
Installation information for this release is included in the Oracle TimesTen In-Memory Database Scaleout User's Guide.
TimesTen adds ODBC 3.51 core interface conformance to the previous support for ODBC 2.5. If you use a driver manager for ODBC 3.5 applications, you must explicitly specify which ODBC version you are using. In this release, it is advisable to recompile and relink existing ODBC applications. Some applications may require code changes. See "ODBC API incompatibilities with previous versions of TimesTen" in the Oracle TimesTen In-Memory Database C Developer's Guide for more details.
Cache Advisor is removed from TimesTen in this release.
Cache grid and all its components are removed in this release.
Asynchronous WriteThrough cache groups are only supported with active standby pair replication schemes in this release.
The default value for the Preallocate
connection attribute is 1
.
The RangeIndexType
connection attribute is removed in this release. By default, TimesTen uses B-tree indexes.
The default value for the CkptFrequency
connection attribute is 0
.
The default value for the CkptLogVolume
connection attribute is now the value of the LogFileSize
connection attribute.
The default value for the Connections
attribute is the minimum of 2000
or the value of the kernel setting SEMMNS-15
.
The values returned by some attributes to the ODBC call SQLGetInfo
are changed. This affects both ODBC and JDBC.
These are the changes to SQLGetInfo
output:
SQL_IBLE_PROCEDURES "N" ==> "Y" SQL_PROCEDURES "N" ==> "Y" SQL_FETCH_DIRECTION [Not Supported] ==> SQL_FD_FETCH_NEXT SQL_TXN_CAPABLE [SQL_TC_ALL] ==> [SQL_TC_DDL_COMMIT] SQL_MAX_BINARY_LITERAL_LEN [0] ==> [16384] SQL_MAX_CURSOR_NAME_LEN [0] ==> [18] SQL_MAX_INDEX_SIZE [0] ==> [4194304] SQL_MAX_ROW_SIZE [0] ==> [4194304] SQL_TIMEDATE_FUNCTIONS Added SQL_FN_TD_NOW to bitmask. SQL_OWNER_USAGE, Added SQL_OU_PROCEDURE_INVOCATION + SQL_OU_PRIVILEGE_DEFINITION to bitmask.
If the number of columns provided in an INSERT AS SELECT
statement is less than number of columns in a table, TimesTen now returns error message 843.
The default value for the LogBufMB
connection attribute is 1024 MB.
The default value for the LogFileSize
connection attribute is now the value of the LogBufMB
connection attribute.
The default value for the CommitBufferSizeMax
is 10 MB per connection.
The -delayFkeys
option is removed from the ttMigrate
utility. In this release, ttMigrate
always delays the foreign keys check.
PL/SQL is always enabled.
Only Oracle mode is supported for duplicate bind mode.
DDL is always auto-committed.
ttDataStoreStatus
builtin procedure did not separately classify client/server connections. This release includes a flag to indicate whether a connection is direct connect of a client server connection.
In the past, the TimesTen Connection.setAutoCommit
method would result in a commit whenever it was called, regardless of whether the setting of the AUTOCOMMIT
flag actually changed. Beginning in this release, there is a commit only when the method call actually changes the setting of AUTOCOMMIT
.
Obsolete errors: sb_ErrCkptBlocked
(606
) and sb_ErrBackupBlocked
(607
) are not used anymore. They are replaced by sb_ErrCkptReserveBlocked
(625
). To prevent the new behavior from changing application logic, replace the obsolete errors (606
and 607
) with sb_ErrCkptReserveBlocked
(625
).
The database ID of the latch is now included in the output of ttXactAdmin -latch
command. This database ID can be used to externally release the latch.
Error message 907
(Unique constraint violation) is improved to include column names and values.
The sb_ErrOcDupKey
error msg is improved to contain the column name and value of the row causing a load or autorefresh failure.
A problem is fixed where performance would slow because commands were accumulated in the command cache instead of being freed. (BugDB #13891496)
The database ID of the latch was included into the latch name. This database ID can be used to externally release the latch. (BugDB #14578460)
The WE8DEC character set is not supported in TimesTen. A problem is fixed where users could choose the character set WE8DEC although it it not supported. (BugDB #17557587)
A problem is fixed where an integer overflow would occur when calling SELECT COUNT (1)
from a large table. (BugDB #18692578)
In previous releases, TimesTen returned an EOF failure
when the database could not be loaded because it is was not in the expected location. In this release the error message contains the expected path to the database to help with troubleshooting. (BugDB #18899144)
An assertion would occur when using cachesqlget
with oracle_ddl_tracking
. This problem is fixed. (BugDB #19619587)
If the wrong UID/PWD
was provided to a connection attempt and client failover was configured, the connect request would hang for the number of seconds specified by the TTC_TIMEOUT
connection attribute. In this release an appropriate error is returned. (BugDB #19828640)
This release contains more diagnostics when an error occurs while checkpointing. (BugDB #19914524)
A problem is fixed where SQL-92 queries ran slowly. (BugDB #20198488)
This release contains more diagnostics when TimesTen returns Error 805
. (BugDB #20477397)
A memory leak in the JDBC driver has been fixed. The issue would occur when the daemon was down and the application continuously tried to connect. (BugDB #21225265)
A problem has been fixed where an invalid out-of-line value would be found in the SYS.CACHE.GROUP
table when attempting to use the ttRepAdmin -duplicate
command. (BugDB #21260424)
A problem is fixed where replication would stop replicating to all nodes on a system that involved more than 8 nodes. (BugDB #21695235)
The ttCheck
utility failed with Error 15009
, when a user logged into the operating system as a user other than the instance administrator, or with Error 7001
, when the external user logged in as a user in the same group as the instance administrator. These problems are fixed. (BugDB #24285271)
In this release, a commit for a replicated transaction that is using either TWOSAFE
or RETURN RECEIPT
will not observe any SQL query timeout setting. It will only return after the time indicated by the wait value configured in the replication scheme. (BugDB #25039883)
This section includes:
Platform or operating system | C/C++ compiler support | JDK supportFoot 1 |
---|---|---|
Linux x86-64:
TimesTen supports Native POSIX threads but not LinuxThreads. |
Intel icc 17.0.2.174, gcc 4.4.7 or higher | Oracle JDK 8, 9, 10, 11, 12, 13, 14 and 17
OpenJDK 8, 9, 10, 11, 12, 13 and 14 |
Linux x86-32 (Client only):
TimesTen supports Native POSIX threads but not LinuxThreads. |
Intel icc 17.02.174, gcc 4.7 or higher | Oracle JDK 8 and 9 |
Solaris SPARC 64:
|
Solaris Studio 12u3 for Solaris SPARC | Oracle JDK 8, 9, 10, 11, and 13 |
Solaris x86-64:
|
Solaris Studio 12u3 | Oracle JDK 8, 9 and 10 |
Microsoft Windows x86-64 (Client only):
|
Intel Compiler 14
Visual Studio 2012 (VC11) |
Oracle JDK 8, 9, 10 and 11 |
IBM AIX Power PC 64-bit:
|
IBM xlC 13.1.0 Compiler for AIX | IBM JDK 8 |
macOS 64-bit (Client only):
|
Apple Xcode 5.1.1 | Oracle JDK 8, 11 and 14 |
Footnote 1 TimesTen ttjdbc
n
.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, ttjdbc9.jar
, ttjdbc10.jar
, ttjdbc11.jar
, and ttjdbc17.jar
are copies of ttjdbc8.jar
, implementing JDBC 4.2 (Java 8) only. When using JREs more recent than JRE 17, use ttjdbc17.jar
.
TimesTen is supported in virtual machines provided by Oracle VM.
TimesTen ships the Oracle Database 12.1.0.2 version of Instant Client. In addition, TimesTen PL/SQL and other internal components are based on Oracle Database 12.1.0.2.
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 the Oracle TimesTen In-Memory Database Operations Guide.
Oracle TimesTen Application-Tier Database Cache (TimesTen Cache) enables you to cache Oracle Database data in TimesTen. The TimesTen installation includes Oracle Instant Client. TimesTen Cache is supported with TimesTen Classic only.
The following Oracle server releases are supported with the TimesTen Cache option:
Oracle Database Release 12.1
Oracle Database Release 12.2
Oracle Database Release 18c
Oracle Database Release 19c
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 Clusterware12.2, 18c and 19c.
For more details, see Oracle TimesTen In-Memory Database Replication Guide.
TimesTen and the TimesTen Kubernetes Operator are supported on Kubernetes 1.18, 1.19, 1.20, 1.21 and 1.22.
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.
TimesTen ships a modified version of ZooKeeper 3.8.0, to address various cybersecurity vulnerabilities and other problems. Please refer to 3rdparty/README-zookeeper.txt
for details.
TimesTen Scaleout supports the following versions of ZooKeeper:
Any ZooKeeper version included in any TimesTen release within that 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.
For software requirements, refer to Oracle TimesTen In-Memory Database Scaleout User's Guide.
This section lists deprecated and desupported items. In this release, using a deprecated feature can, but do not necessarily, result in a warning. Deprecated items are permanently removed in a future release.
TimesTen supports SNMP V1 in this release. In a future release, TimesTen plans to support SNMP V3 and deprecate SNMP V1.
Because PL/SQL is now always enabled, the PLSQL
connection attribute is deprecated.
Because now only Oracle mode is supported, the DuplicateBindMode
connection attribute is deprecated.
Because DDL is now always auto-committed, the DDLCommitBehavior
connection attribute is deprecated.
The ttSyslogCheck
utility is deprecated in this release. (BugDB #29436501)
The TT_DECIMAL
data type and the TIMESTEN8
character set are deprecated in this release.
Setting the ReplicationApplyOrdering
connection attribute to a value of 1
is deprecated.
The ttSQLCmdCacheInfo2
builtin procedure is removed in this release. The ttSQLCmdCacheInfo
builtin procedure supports the features of this builtin procedure.
The RangeIndexType
connection attribute is deprecated.
Asynchronous Materialized Views are deprecated in this release.
The -convertTypestoTT
and -convertTypeToOr
a command line options to the ttMigrate
utility are deprecated.
The TypeMode
connection attribute is deprecated. Oracle type mode is the default.
The OPTIMIZED FOR READ
clause of the CREATE TABLE
statement is deprecated.
The ttCompactTS
builtin procedure is deprecated.
The CacheGridEnable
connection attribute is removed.
For TTClasses, error checking must now be accomplished through {try/catch}
blocks. Use of TTStatus&
method parameters, previously deprecated, is now desupported, as are the TTStatus::DO_NOT_THROW
setting and the -DTTEXCEPT
compiler flag. (Compiling with -DTTEXCEPT
will not produce an error, but will have no effect.) Application code that previously used TTStatus&
parameters must be updated, as these parameters are no longer in the method signatures.
For TTClasses, The TTCmd::RePrepare()
method is deprecated in this release. If the statement handle for a prepared statement becomes invalidated, call the TTCmd::Prepare()
method again.
The ttSrcScan
utility is no longer available for download from Oracle Technology Network (OTN).
This section contains known problems and limitations in these categories:
Your ZooKeeper server configuration file (zoo.cfg
) must contain this allowed commands list: 4lw.commands.whitelist=stat, ruok, conf, isro
Restoring a grid backup (using the ttGridAdmin dbRestore
command) succeeds only when all instances in the grid are running.
On UNIX, when using ttlocalhost
, a client of one TimesTen instance cannot connect with a server of another TimesTen instance. The workaround is to use ttShmHost
(shared memory IPC) or localhost
(127.0.0.1
).
While using shared memory as IPC, the application may see the error message 24
from the client driver if the application reaches the system-defined, per process file descriptor limit. This may happen during a connect operation to the Client DSN when the shmat
system call fails because the application has more open file descriptors than the system-defined per-process file descriptor limit.
A typo can be found in the first paragraph of the "Third-Party Notices and/or Licenses" section of Oracle TimesTen In-Memory Database Licensing Information. The paragraph should read instead:
Commercial software products or components and Open Source software or components distributed in Oracle TimesTen In-Memory Database or Oracle TimesTen Application-Tier Database Cache are identified here along with the applicable licensing information.
On Oracle Linux 8 and Red Hat Enterprise Linux 8 systems, TimesTen requires these libraries or packages:
/usr/lib64/libnsl.so.1
ncurses-compat-libs
To install both, run:
% sudo yum install libnsl ncurses-compat-libs
On Linux x86-32 systems, the TimesTen client requires the ncurses-devel.i686
package. To install the package, run:
% sudo yum install ncurses-devel.i686
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 or JMS/XLA applications, ensure you include the following in the Java command line: -Djava.library.path=${TIMESTEN_HOME}/install/lib
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.
If you encounter problems upgrading a CRS cluster to 12.1, ensure that the permissions on certain TimesTen directories are set correctly.
These are the commands to ensure correct permissions:
# chmod 777 /opt/grid/gridbase/diag # chmod 777 /opt/grid/gridbase/diag/crs/hostname # chmod -R 775 /opt/grid/gridbase/diag/crs/hostname/crs_timesten
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 12.1.0.2, customers using 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.
PLSQL_CODE_TYPE=NATIVE
can be specified, but it is implemented as INTERPRETED
.
Using q'
(quoting syntax) is not supported.
UTL_FILE
is limited to a temporary directory located in install_dir
/plsql/utl_file_temp
. The instance administrator can grant to UTL_FILE
to specific database users. Users can reference the directory using UTL_FILE
if and only if they provide the string 'UTL_FILE_TEMP'
for the location parameter string.
This sequence of operations involving PL/SQL and CLOBs or NCLOBs does not work correctly.
Create a temporary CLOB
Set the temporary CLOB value
Assign the value of the temporary CLOB to another CLOB variable
Free the temporary CLOB
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 18.1.4, the correct error is generated, but no exception is raised.
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 es 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 does not support SQL*Plus connections to TimesTen databases. Use ttIsql
.
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)
TTClasses source code is not shipped with the product. The TTClasses libraries are included in this release.
Enhancements to the replication protocol mean that to perform an online upgrade between 11.2.2.8 and 18.1, the 11.2.2.8 release must be 11.2.2.8.27 or higher. If you are using a version prior to the 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.
On TimesTen Classic, if you are on 18.1.2, you must first upgrade to 18.1.2.5.0 or greater before upgrading to this release. If you are on 18.1.3, you must first upgrade to 18.1.3.5.0 or greater before upgrading to this release.
This section lists error messages added to TimesTen since the 18.1.4.1.0 release, which have yet to be added to Oracle TimesTen In-Memory Database Error Messages and SNMP Traps.
Error number | Error or warning message | Details |
---|---|---|
4066 |
Retry log cursor read:
error_message
| Type of Message: Error
Cause: An internal error occurred during log cursor read. Review the Impact: Review the User Action: Review the |
8526 |
You cannot use PLSQL=0 when duplicating from a Database with PLSQL=1 | Type of Message: Error
Cause: You cannot set Impact: TimesTen failed to perform the operation. User Action: Change the |
30200 |
Unable to allocate memory | Type of Message: Error
Cause: The TimesTen driver manager was unable to allocate memory. Impact: TimesTen did not perform the operation. User Action: Determine why there was no available memory and resolve the situation. |
30201 |
Unable to load TimesTen native driver | Type of Message: Error
Cause: The TimesTen driver manager was unable to load a required TimesTen native driver. Impact: TimesTen did not perform the operation. User Action: Check your TimesTen instance type and the environment of the application ( |
30202 |
Handle is currently connected | Type of Message: Error
Cause: The Impact: The handle is not freed. User Action: Ensure that you disconnect the handle ( |
30203 |
Invalid argument | Type of Message: Error
Cause: The application passed an invalid argument to a TimesTen driver manager function. Impact: The requested operation was not performed. User Action: Fix the application code and retry the operation. |
30204 |
Function not supported by this version of TimesTen | Type of Message: Error
Cause: The application called a function that is not supported by this version of TimesTen. Impact: The requested operation was not performed. User Action: Fix the application code or use an appropriate version of TimesTen. |
51016 |
Failed to write log record into an unpublished lwn | Type of Message: Error
Cause: TimesTen cannot insert a log record into a log write number (LWN) boundary in the specific strand. Impact: The database cannot continue normal operations. User Action: Contact TimesTen Customer Support. |
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.
Oracle TimesTen In-Memory Database Release Notes, Release 18.1
E61191-87
Copyright © 1996, 2023 Oracle and/or its affiliates.
This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.
If this is software, software documentation, data (as defined in the Federal Acquisition Regulation), or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed, or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software," "commercial computer software documentation," or "limited rights data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed, or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract. The terms governing the U.S. Government's use of Oracle cloud services are defined by the applicable contract for such services. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.
Oracle®, Java, and MySQL are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc, and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.