Go to primary content
Oracle® TimesTen In-Memory Database Release Notes
Release 18.1
E61191-38
 

 

Oracle® TimesTen In-Memory Database

Release Notes

Release 18.1

E61191-38

July 2020

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

To upgrade to this release, you must first upgrade to 18.1.2.3.0.

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/database/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 the ttVersion utility.

This document contains the following sections:

1 Changes in this release

This section lists changes between releases:

1.1 Changes for Release 18.1.3.5.0 from Release 18.1.3.4.0

  • 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 #30668890 - Backport of BugDB #30616019)

  • 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 #30870274 - Backport of BugDB #30611241)

  • 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 #31099040 and BugDB #31099079 - Backport of BugDB #30602916 and BugDB #30700586)

  • Oracle object validation in the cache agent reported possible problems when there were none. This problem is fixed. (BugDB #31247656)

  • An issue is fixed in this release, where, under certain system configurations, the CkptRate attribute setting was not being honored properly by TimesTen. (BugDB #31248501 - Backport of BugDB #30533832)

  • On very large NUMA machines TimesTen could crash while loading a database into RAM. This problem is fixed. (BugDB #31317790 - Backport of BugDB #31295922)

1.2 Changes for Release 18.1.3.4.0 from Release 18.1.3.3.0

1.2.1 New features

  • This release provides support for Oracle Clusterware 19c.

  • This release provides support for encrypted volumes in Oracle Automatic storage management Cluster File System (ACFS) 19.6.

  • This release contains the ability to set a time limit, in seconds, for a user transaction to complete. You can use the TransactionTimeout general connection attribute to set the timeout value. If a transaction times out, TimesTen returns an error indicating either that TimesTen rolled back the transaction or that the user must roll back the transaction. The value of this attribute must be 0 or greater. A setting of 0 indicates that the transaction does not time out.

1.2.2 Bug fixes

  • A problem is fixed where some TimesTen diagnostics files used large amounts of disk space. (BugDB #30846733 - Backport 30762459)

  • In this release, TimesTen uses less temp space during recovery. (BugDB #31044352 - Backport of BugDB #30814797)

  • A problem is fixed where replica sets could fail to recover during LBCU recovery. (BugDB #31044346 - Backport of BugDB #3088049)

  • An overflow issue with a large number of IN list values is fixed in this release. (BugDB #31045777 - Backport of BugDB #31020480)

1.3 Changes for Release 18.1.3.3.0 from Release 18.1.3.2.0

  • A problem is fixed where an uninitialized variable could result in a meaningless error message in the daemon log. (BugDB #30738968 - Forward port of BugDB #30454219)

  • In a previous release, when TimesTen Cache tried to create an object that already existed on the Oracle database, the error was handled as a fatal error. Error handling is improved in this release. (BugDB #30738981 - Forward port of BugDB #30454210)

  • A problem is fixed where a segv error would occur when a view that did not contain particular columns was part of a join operation inside of a PL/SQL block. (BugDB #30795842 - Backport of BugDB #30714068)

  • In previous releases, queries on the SYS.USER_USERS or SYS.DBA_USERS views could fail with views could fail with 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 #30906803 and BugDB #30923582 - Backport of BugDB #28349381 and BugDB #30794417)

1.4 Changes for Release 18.1.3.2.0 from Release 18.1.3.1.0

  • In previous releases, when a user started the TimesTen daemon before executing the ttenv.sh script, the cache agent would not start. This problem is fixed. (BugDB #30668890 - Backport of BugDB #30616019)

1.5 Changes for Release 18.1.3.1.0 from Release 18.1.2.2.0

Changes in this release include:

1.5.1 New features

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

1.5.2 Bug fixes

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

1.6 Changes for Release 18.1.2.2.0 from Release 18.1.2.1.0

Changes in this release include:

1.6.1 New features

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

1.6.2 Behavior change

  • Users should no longer issue the ttGridAdmin dbDistribute -evict command with the -add or -remove options.

1.6.3 Bug fixes

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

    1. Take note of the current values for Retain Days and Retain Versions in your grid.

      % ttGridAdmin gridDisplay
      ...
      Retain Days:                30
      Retain Versions:            10
      ...
      
    2. Set the values for Retain Days and Retain Versions to 0.

      % ttGridAdmin gridModify -retainDays 0 -retainVersions 0
      
    3. 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 #29178157)

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

1.7 Changes for Release 18.1.2.1.0 from Release 18.1.1.3.0

Changes in this release include:

1.7.1 New features

  • This release supports Classic TimesTen 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. On Linux platforms, 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.

1.7.2 Behavior change

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

1.7.3 Bug fixes

  • 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 - ForwardPort 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- ForwardPort 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 - ForwardPort 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 - ForwardPort 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 - ForwardPort BugDB #27388330)

  • A problem is fixed where multiple dynamic load executions from the same TimesTen connection could lead to a memory corruption. (BugDB #27840782 - ForwardPort 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 - ForwardPort 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 - ForwardPort BugDB #28325161)

  • An assertion could occur when a CREATE VIEW operation returned long view query results. This problem is fixed. (BugDB #28640816 - ForwardPort 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 - ForwardPort 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- ForwardPort BugDB #27928747)

  • In previous releases, a compilation heap assertion failure could invalidate the database. This problem is fixed. (BugDB #28717013 - ForwardPort BugDB #26535068)

  • Performance for certain SELECT queries was slower than in an older release of TimesTen. This problem is fixed. (BugDB #28717014 - ForwardPort 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)

1.8 Changes for Release 18.1.1.3.0 from Release 18.1.1.2.1

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

1.9 Changes for Release 18.1.1.2.1 from Release 18.1.1.2.0

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

1.10 Changes for Release 18.1.1.2.0 from Release 18.1.1.1.0

Changes in this release include:

1.10.1 New features

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

1.10.2 Bug fixes

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

1.11 Changes for Release 18.1.1.1.0 from Release 11.2.2.8.29

Changes in this release include:

1.11.1 New features

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

1.11.2 Behavior changes

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

  • In this release, TTClasses source code is not shipped with the product. The TTClasses libraries are included in this release. Any discussion of compiling TTClasses in the Oracle TimesTen In-Memory Database TTClasses Guide is not relevant for this release.

1.11.3 Bug fixes

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

2 Platforms and configurations

This section includes:

2.1 Platforms and compilers

Platform or operating system C/C++ compiler support JDK support
Linux x86-64:
  • Oracle Linux 6 and 7

  • Red Hat Enterprise Linux 6 and 7

  • SUSE Enterprise Server 12 and 15

TimesTen supports Native POSIX threads but not LinuxThreads.

Intel icc 17.02.174, gcc 4.7 or higher Oracle JDK 8, 9, 10, and 11Foot 1 

OpenJDK 8, 9, 10, and 11

Linux x86-32 (Client only):
  • Oracle Linux 6

  • Red Hat Enterprise Linux 6

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 11.3

  • Solaris 11.4

Oracle Developer Studio 12.5 Oracle JDK 8, 9 and 10
Solaris x86-64:
  • Solaris 11.3

  • Solaris 11.4

TimesTen supports Native POSIX threads but not LinuxThreads.

Oracle Developer Studio 12.5 Oracle JDK 8, 9 and 10
Microsoft Windows x86-64
(Client only):
  • Windows 2012 R2

  • Windows Server 2016

  • Windows Server 2019

  • Windows 10

  • Windows 8.1

Visual Studio 2012, 2013, 2015, 2017 and 2019 Oracle JDK 8, 9, 10, and 11
IBM AIX Power PC 64-bit:
  • AIX 7.1 and 7.2

IBM xlC 13.1.0 Compiler for AIX IBM JDK 8
macOS 64-bit (Client only):
  • 10.9.2 Mavericks

  • 10.11 El Capitan

  • 10.13.6 High Sierra

  • 10.14.6 Mojave

Apple LLVM 5.1, gcc 4.2.1 Oracle JDK 8

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, ttjdbc9.jar, ttjdbc10.jar, and ttjdbc11.jar are copies of ttjdbc8.jar, implementing JDBC 4.2 (Java 8) only.

TimesTen is supported in virtual machines provided by Oracle VM.

2.2 Client/Server configurations

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

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

2.3 TimesTen Cache

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

2.4 Replication configurations

TimesTen replication is supported only between identical platforms and bit-levels. TimesTen replication is supported with Classic TimesTen only.

TimesTen active standby pair replication is supported with Oracle Clusterware 12.2. It is also supported with 18.1 and 19c on the Linux platform.

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

3 Software requirements

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

4 Advance notice

This section lists deprecated items. In this release, using a deprecated feature results in a warning. Deprecated items are permanently removed in a future release.

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

5 Known problems and limitations

This section contains known problems and limitations in these categories:

5.1 TimesTen Scaleout

  • TimesTen Scaleout supports a maximum of 64 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)

5.2 Client/Server

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

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

5.4 PL/SQL

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

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

5.6 SQL*Plus

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

5.7 TimesTen OCI support

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

5.8 TimesTen Pro*C/C++ Support

  • When compiling a Pro*C/C++ demo, this message may appear: "System default option values taken from: install_dir/ttoracle_home/instantclient_11_2/precomp/admin/pcscfg.cfg." The path name may be incorrect.

5.9 TTClasses

  • TTClasses source code is not shipped with the product. The TTClasses libraries are included in this release. Any discussion of compiling TTClasses in the Oracle TimesTen In-Memory Database TTClasses Guide is not relevant for this release.

5.10 Upgrade

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

5.11 Backup/Restore

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

6 Documentation Accessibility

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

Access to Oracle Support

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


Oracle TimesTen In-Memory Database Release Notes, Release 18.1

E61191-38

Copyright © 1996, 2020 Oracle and/or its affiliates. All rights reserved.

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 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 installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. 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 and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon 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, Opteron, the AMD logo, and the AMD Opteron 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.