Oracle® TimesTen In-Memory Database Release Notes

11g Release 2 (11.2.2)

E21630-26

Oracle® TimesTen In-Memory Database

Release Notes

11g Release 2 (11.2.2)

E21630-26

September 2012

This document provides late-breaking information for TimesTen release 11.2.2.4.0, as well as information that is not yet part of the formal documentation. The latest version of this document is the readme.html file in your installation directory.

Release notes may also be updated from time to time in the documentation library at

http://www.oracle.com/technetwork/products/timesten/documentation/

To install the Oracle TimesTen In-Memory Database, run setup from the installation media pack. For installation information, see Oracle TimesTen In-Memory Database Installation Guide. This guide can be accessed from install_dir/doc/ in the installation.

This document contains the following sections:

- Changes in this release

- Platforms and configurations

- Software requirements

- Deliverables

- Advance notice

- Known problems and limitations

- Documentation Accessibility

1 Changes in this release

This section lists changes between releases:

- Changes for Release 11.2.2.4.0 from Release 11.2.2.3.5

- Changes for Release 11.2.2.3.5 from Release 11.2.2.3.4

- Changes for Release 11.2.2.3.4 from Release 11.2.2.3.3

- Changes for Release 11.2.2.3.3 from Release 11.2.2.3.2

- Changes for Release 11.2.2.3.2 from Release 11.2.2.3.1

- Changes for Release 11.2.2.3.1 from Release 11.2.2.3.0

- Changes for Release 11.2.2.3.0 from Release 11.2.2.2.2

1.1 Changes for Release 11.2.2.4.0 from Release 11.2.2.3.5

Changes in this release include:

- New Features

- Bug Fixes

1.1.1 New Features

- This release contains an Index Advisor that can be used to recommend a set of indexes that can improve the performance of a specific workload. For details, see the Oracle TimesTen In-Memory Database Operations Guide and the Oracle TimesTen In-Memory Database Reference.

- You can now load a TimesTen table with the result of a query executed on an Oracle database. This feature does not require you to create a cache group. For details, see the Oracle TimesTen In-Memory Database Operations Guide and the Oracle TimesTen In-Memory Database Reference.

- The TimesTen Cache Advisor provides recommendations on how to initially configure a cache schema, to identify porting issues and to estimate the performance improvement of a specific workload. The Cache Advisor is available on Linux x86-64. For details, see the Oracle In-Memory Database Cache User's Guide and the Oracle TimesTen In-Memory Database Reference.

- This release contains the built-in procedure ttOptCmdCacheInvalidate that allows you to invalidate compiled statements. For details, see the Oracle TimesTen In-Memory Database Reference.

- In this release, when performing a ttRepAdmin -duplicate operation, you can specify a local or remote IP address for the destination of the duplicate. For details, see the Oracle TimesTen In-Memory Database Reference and the Oracle TimesTen In-Memory Database Replication Guide.

1.1.2 Bug Fixes

- In previous releases, if during installation you selected a secondary group for group restricted access and if the main TimesTen daemon is started or restarted by the root user, the daemon incorrectly starts with the primary group permission instead of the secondary group permission.
This problem could manifest itself in at least one of the following known ways, which may prevent the database from being loaded

- TimesTen error 836: Cannot create data store shared memory segment, error error_number

- An assertion failure, resulting in transaction log files being written: (Assertion failed: 0 [logfile.c:/main/21:sbLogFileCreate:780])

- TimesTen error 906: Cannot change mode on logfile file_name, error error_details

This problem is corrected. (BugDB 9966040)

- When the DROP ACTIVE STANDBY PAIR statements was issued and there was no active standby pair replication scheme, TimesTen was returning error message: 8165: Replication schema is inconsistent. Now, Timesten returns a more descriptive message: Error 8123: An ACTIVE STANDBY PAIR scheme does not exist. (BugDB 12427319)

- During replication operations, an SNMP trap is triggered when TimesTen error 16082 is encountered, indicating a table could not be updated. During batch update operations, this trap could be generated for every failed operation, causing heavy SNMP traffic. To prevent this, the error and trap messages have been changed to only report the number of failures that occur within a batch update operation. These messages appear in the support log. (BugDB 13241883)

- These replication daemon log messages that were previously incorrectly classified as errors now appear as warnings:

- TT16290: Replication transmitters are stopping.

- TT16293: Replication thread transmitter is exiting (exitLine line_number)

- TT16999: Transmitter exiting isAwt

- TT16999: Receiver exiting isAwt (BugDB 13726055)

- Previously, when TTC_TIMEOUT was set to 1, SQLQueryTimeout was set to 0. Now, when TTC_TIMEOUT is set to 1, SQLQueryTimeout is also set to 1. See the Oracle TimesTen In-Memory Database Reference for discussion of valid values for these attributes. (BugDB 13796704)

- This release includes enhanced query optimizations for columns that have numeric, date, time or timestamp types and that do not have a range index. This can improve performance for queries that have a range predicate on such columns. To benefit from this enhancement, you must update statistics. (BugDB 13824787)

- A problem with computing the column name of a complex view has been fixed. (BugDB 13896607) The problem manifested in these ways:

- The ttIsql describe command could show the column name as being empty,

- A JDBC application could receive a column not found exception when attempting to retrieve a column value from a result set using the column name.

- The ODBC SQLDescribeCol() function could return incorrect data.

- In previous releases, when the ttCWAdmin -create command failed due to an error in the generated CREATE ACTIVE STANDBY PAIR statement, the cause was incorrectly identified in the ttCWAdmin output and in the message log as an authentication issue. Also, warnings were treated as errors. Now, when the CREATE ACTIVE STANDBY PAIR statement returns a warning, the active standby pair is created. If the statement generates warnings or errors, now they are displayed in both the output of the call and in the ttcw message log. (BugDB 13907153)

- A problem is fixed where the replication peer failure state (TT_REPLICATION_INVALID), which is triggered by exceeding the replication threshold, was being reset on a database invalidation or unload. As a result, TimesTen issued the warning TT20100 instead of warning TT8025, after the reload. (BugDB 13915440)

- Prior to this release, a silent install erroneously prompted the user to enter a server name during a client-only install. This problem is fixed. (BugDB 14057512)

- A problem has been fixed in which propagation of changes to Oracle from a global cache group could not resume after an active standby failover occurred. (BugDB 14075830)

- When a member of a grid is detached forcibly, all changes that have not been propagated to Oracle are discarded. In previous releases, global cache groups were unloaded. In this release, local AWT cache groups are also unloaded if any of the changes that were not propagated to Oracle belonged to a local AWT cache group. (BugDB 14076317)

- TimesTen internal bookkeeping is improved to remove unneeded TimesTen objects left behind in an Oracle database once an autorefresh operation was completed. (BugDB 14115412)

- A problem has been fixed in TimesTen Oracle Clusterware where, under certain conditions, the system would fail and trigger a fail over when a user ran the ttCWAdmin -beginAlterSchema command and then ran the ttCWAdmin -status command before running ttCWAdmin -endAlterSchema. (BugDB 14217556)

- A problem was fixed where the execution of a SQL statement would terminate unexpectedly when referencing a view in a derived table clause, if the view definition contained both a derived table and an ORDER BY clause. (BugDB 14127716)

- When describing a table using the previous TimesTen 11.2.2 releases of ttIsqlCS and connecting to a TimesTen 11.2.1 instance, the describe command would attempt to access a non-existent column NUMCOMPRESS. This has been corrected. (BugDB 14157399)

- A problem is fixed where attempting to add a subscriber to an existing replication configuration could result in the deadlock error TT6002. (BugDB 14179123)

- A problem is fixed where a core dump could occur on the TimesTen server when using an automatic client failover configuration with Oracle Clusterware. The problem could occur even when the server was idle. (BugDB 14181234)

- In rare instances, an assertion failure could invalidate the database when logs were being flushed to disk while concurrent operations were taking place in the database. (BugDB 14220901)

- In previous releases, creating a temporary LOB outside a transaction would cause TimesTen to create a transaction that would be left open indefinitely. In this release, that transaction is committed when the temporary LOB is freed. (BugDB 14227570)

- A message with AWTBatchId details (curAwtBatchId, awtBatchIdAtCrCGTime, awtXactsInBatch, awtStmtsInBatch) was being logged as an error although it might not indicate a problem. This message is now logged at the information level in the support log. (BugDB 14253983)

- If the PL/SQL shared memory segment was full at connection time, additional shared memory was leaked. The problem has been corrected. (BugDB 14275478)

- A problem has been fixed where ODP.NET 11.2.0.3 clients that connect to the TimesTen 11.2.2.3 server could fail due to an access violation. (BugDB 14331111)

- A scalar subquery that contained an Oracle style outer join (+) on a derived table could return the wrong results. This has been corrected. (BugDB 14353684)

- A problem has been fixed where an assertion failure would occur when a wrong data type was used in an INSERT SELECT statement with a UNION clause on a derived table. (BugDB 14369779)

- When the active host of a TimesTen cluster configuration that used VIPs was rebooted, the standby host correctly became the active, but the original active host did not become the standby. This has been corrected. (BugDB 14372540)

- The ttBulkCP utility could use too much permanent space during inserts, if it encountered uniqueness constraint violations. This problem is corrected. (BugDB 14373510)

- A problem has been fixed where an assertion failure could occur in the TimesTen function sbMapIx_t when updating data. (BugDB 14379300)

- If ttBackup is run when the database is being loaded and undergoing recovery the user credentials cannot be checked. Previously TimesTen returned an internal "encrypt failed" error. Now TimesTen returns a more meaningful error. (BugDB 14458502)

- A problem was fixed in the initCacheAdminSchema.sql script where creating an asynchronous writethrough cache group could cause an Oracle constraint violation and return TimesTen error message 5222. You must run the new version of this script to fix the problem. (BugDB 14511714)

- A problem was fixed where a literal might be internally cast to an incorrect type when a SQL statement compared a column of TT_BIGINT data type with a string literal. (BugDB 14549475)

- A potential hang was fixed in TTClasses that could occur when an error was thrown during the TTConnectionPool::freeConnection method. (BugDB 14558534)

- Use of the built-in ttReplicationStatus can lead to lock timeouts in the replication agent. The effect of this is more pronounced when parallel replication is in use. The locking system that ttReplicationStatus uses has been adjusted so that it does not interfere with the replication agent. (BugDB 14582429)

- Under certain conditions, executing SELECT statements in the PL/SQL package DBMS_SQL could return columns in the wrong order. This has been corrected. (BugDB 14583425)

- Specifying multiple CRS managed applications for an active standby pair in the cluster.ini file resulted in a ttCWAdmin utility failure and inconsistent TimesTen CRS resources. This problem has been corrected. (BugDB 14621564)

1.2 Changes for Release 11.2.2.3.5 from Release 11.2.2.3.4

- A problem is fixed where a SELECT operation could result in unnecessary dynamic loads of data from Oracle that already existed in the TimesTen cache group. This problem occurred when the workload included DML operations. (BugDB 14533454)

1.3 Changes for Release 11.2.2.3.4 from Release 11.2.2.3.3

- A problem is fixed where a SELECT operation could result in multiple dynamic loads of data from Oracle. (BugDB 14499661)

- A problem is fixed where the statistics for a local dynamic cache group were incorrectly reported in the sys.systemstats table as statistics for a global dynamic cache group. (BugDB 14504836)

1.4 Changes for Release 11.2.2.3.3 from Release 11.2.2.3.2

- Previously, dynamic loads could be done only for queries with equality conditions on all columns in primary keys or on all columns in unique indexes. Now, dynamic loads will also be done with a mixture of equality or "is null" conditions on all columns in unique indexes provided that at least one equality condition is used.For more details on dynamic loads, see "Dynamically loading a cache group" in the Oracle In-Memory Database Cache User's Guide. (BugDB 14462078)
For example:

CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH CACHE GROUP cg FROM t1(x1 INT PRIMARY KEY, y1 INT, z1 INT);

CREATE UNIQUE INDEX u1 ON t1(y1, z1);

The following queries dynamically load data because all columns of the index are qualified with either an IS NULL condition or an equality with a constant or argument, and at least one column is qualified with an equality condition.

SELECT * FROM t1 WHERE y1 IS NULL and z1=1;

SELECT * FROM t1 WHERE y1=1 AND z1 IS NULL;

SELECT * FROM t1 WHERE y1=1 AND z1=1;

The following query does not dynamically load data because no column of the unique index was qualified with an equality condition:

SELECT * FROM t1 WHERE y1 IS NULL AND z1 IS NULL;

1.5 Changes for Release 11.2.2.3.2 from Release 11.2.2.3.1

- A problem has been fixed where an assertion failure could occur when an INSERT statement contained a UNION clause in a derived table or view. (BugDB 14369779)

- A problem is fixed where a query that contained a left outer join could fail to dynamically load a writethrough cache group. (BugDB 14373623)

1.6 Changes for Release 11.2.2.3.1 from Release 11.2.2.3.0

- In previous releases, when a DROP ACTIVE STANDBY operation failed, the ttCWAdmin -drop operation exited with 0, which is considered "success." The problem has been fixed so that ttCWAdmin retries the operation and returns a failure exit code when a DROP ACTIVE STANDBY operation fails. (BugDB 14147496)

- An inconsistency in the temporary space block free list that could cause an assertion has been fixed. (BugDB 14075421)

- In previous releases, an assertion failure could occur when performing an INSERT, DELETE or TRUNCATE operation on a table while updating column statistics on the same table. In this release, TimesTen returns an error. (BugDB 14159483 and 14198331)

- A problem has been fixed on MontaVista Linux Carrier Grade Edition 6, where a TimesTen uninstall would reference an awk script in the wrong directory. (BugDB 14173419)

- Connections that used global temporary tables or PrivateCommands=1 could take 10 seconds or more to disconnect. The efficiency of disconnect in these cases has been dramatically improved. (BugDB 14198260)

- A problem has been fixed where a core dump could occur on the TimesTen server when using an automatic client failover configuration with Oracle Clusterware. The problem could occur even when the server was idle. (BugDB 14198318)

- Previously, cache group operations, such as dynamic load, would fail when connecting to Oracle if the user or application passed an empty Oracle password or did not provide a password. When multiple TimesTen sessions concurrently attempted to connect without specifying the Oracle password, it resulted in a performance degradation for subsequent connection attempts. This is related to a new Oracle database 11.2.0.2 behavior, which is described in KM Doc ID 1309738.1. Currently, if a TimesTen user or application tries to connect passing an empty password, TimesTen does not connect and returns an error message indicating to the user that the password is either empty or not provided. (BugDB 14205374)

- A problem has been fixed where TimesTen could return the wrong results when batch optimization and OR list optimization were applied to the same table scan. (BugDB 14210736)

- In rare instances, an assertion failure could invalidate the database when logs were being flushed to disk while concurrent operations were taking place in the database. (BugDB 14217041)

- A problem has been fixed where a deadlock could occur during an ALTER REPLICATION ... ADD SUBSCRIBER operation. (BugDB 14235264)

- A long running transaction could hang when an asynchronous writethrough cache group encounters a unique constraint violation. (BugDB 14239972)

- The maximum value for the cacheAWTParallelism connection attribute is now 31. (BugDB 14241071)

- When processing batch asynchronous writethrough operations, if the first operation fails, it could result in subsequent operations not serializing properly and becoming inoperative in propagating to the Oracle database. Thus, the batch operation appears to hang. (BugDB 14241173)

- A problem has been fixed where a previous connection's Oracle password would be used if an Oracle password was not specified for the current connection. (BugDB 14257660)

1.7 Changes for Release 11.2.2.3.0 from Release 11.2.2.2.2

Changes in this release include:

- New Features

- Bug Fixes

1.7.1 New Features

- This release contains performance improvements to SQL queries typically occurring in business intelligence (BI) applications.

- Beginning in 11.2.2.3.0, in the Windows 64-bit installer, there are options to install the 32-bit client.

- The TimesTen ttjdbc6.jar has been certified to work with the Oracle Java 7 runtime environment (JRE).

1.7.2 Bug Fixes

- A problem has been fixed where TimesTen returns the error message: repfailover.c(168): TT16067: Failed to retrieve next row for command: repfailover. The error message did not print out enough details about the cause of the failure or whether it was safe to continue. The daemon log now contains specific information by the cause of this error. This information is printed immediately after the error message. (BugDB 12994362)

- TimesTen internal bookkeeping is improved to remove unneeded TimesTen objects left behind in an Oracle database once an autorefresh operation was completed. (BugDB 13443440)

- A problem causing an assertion failure existed for active standby pairs in which an XLA replicated bookmark did not advance after an application called ttXlaAcknowledge. The problem is fixed. (BugDB 13642933/13644888)

- A problem has been fixed where an assertion failure could occur when trying to execute a complex query on a view. (BugDB 13842678)

- A problem has been fixed with queries that included N to M handling with aggregate queries. (BugDB 13903104)

- A problem has been fixed where an assertion failure could occur in the deadlock detector of the subdaemon when certain combinations of concurrent serializable and read-committed transactions were active. While the problem combinations could occur in various circumstances, they would most likely occur with replication running. (BugDB 13922118)

- A problem has been fixed where a query on a view that referenced another view could return TimesTen error 2210: Column reference of columnname is ambiguous. (BugDB 13923377)

- A problem was fixed where an assertion failure could occur when trying to use showplan with a query. (BugDB 13935557)

- A problem has been fixed where the ttSqlCmdQueryPlan built-in procedure could return a truncated query plan when the full plan should have been returned. (BugDB 13941976)

- A problem has been fixed where a ttRepAdmin -duplicate operation would fail with TimesTen error 703 or 12116 if the kernel SEMMSL parameter was configured in the range 2155 to 2205. (BugDB 13952486)

- A shutdown or failure of an underlying RAC instance could cause a process connected to TimesTen IMDB Cache to terminate abnormally. This included the replication agent and the cache agent processes. This problem is fixed. (BugDB 14002438)

- A problem has been fixed where a memory leak could occur in an asynchronous writethrough cache group with CacheAWTMethod=0 (SQL array execution method). (BugDB 14055189)

- Operations, such as cache autorefreshes, that involve hash index lookups with deletes could get stuck in an infinite loop. This has been fixed.(BugDB 14074535)

- The ADMIN_OPTION column was incorrectly defined in the system views SYS.DBA_SYS_PRIVS and SYS.USER_SYS_PRIVS. This problem resulted in the value of the column always being 'NO'. This has been fixed. (BugDB 14088236)

2 Platforms and configurations

This section includes:

- Platforms and compilers

- Client/Server configurations

- Oracle In-Memory Database Cache

- Replication configurations

2.1 Platforms and compilers

Platform or operating system

C/C++ compiler support

JDK support

Linux x86-32 and x86-64:

- Oracle Enterprise Linux 4, 5 and 6

- Red Hat Enterprise Linux 4, 5 and 6

- SUSE Enterprise Server 10 and 11

- MontaVista Linux CGE 5.0 and 6.0xFoot 1

- Asianux 3.0

TimesTen is not supported with LinuxThreads.

Intel compilers, gcc 4.1, 4.3 and 4.5
Oracle Linux 6 is tested and compiled with gcc 4.4.

Sun JDK 5.0 and 6.0
JRockit JDK 5.0 and 6.0

IBM JDK 6.0.

NOTE: The IBM Java 6 SDK requires Java SE Version 6 SR9-FP2 or above for both Linux x86 and x86-64

Microsoft Windows x86-32 and x86-64:

- Windows XP, Windows Vista, Windows Server 2003, Windows Server 2003 Release 2, Windows Server 2008, Windows 7

Visual Studio 2010, 2008 and 2005 for Windows

Sun JDK 5.0 and 6.0
JRockit JDK 5.0 and 6.0

Solaris SPARC 64-bit:

- Oracle Solaris 10 and 11

Sun Studio 11 and 10 for Solaris SPARC

Sun JDK 5.0 and 6.0
JRockit JDK 5.0 and 6.0

Solaris x86-64:

- Oracle Solaris 10 and 11

Sun Studio 11 and 10 for Solaris x86

Sun JDK 5.0 and 6.0

IBM AIX 64-bit:

- AIX 6.1 and 7.1

IBM Compiler for AIX

IBM JDK 5.0 and 6.0

Solaris SPARC 32-bit (client only):

- Oracle Solaris 10 and 11

Sun Studio 11 and 10 for SPARC

Sun JDK 5.0 and 6.0

IBM AIX 32-bit (client only):

- AIX 6.1 and 7.1

IBM Compiler for AIX 32-bit

IBM JDK 5.0 and 6.0

Footnote 1 On MontaVista CGE Linux, TimesTen only supports IMBD core functionality and replication. The following features are not supported on this platform: IMDB Cache and cache grid, the OCI API, Pro*C, PL/SQL, Clusterware and connections from Windows clients.

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 Oracle In-Memory Database Cache

Oracle In-Memory Database Cache (IMDB Cache) enables you to cache Oracle database data in TimesTen. The TimesTen installation includes Oracle Instant Client. The following Oracle server releases are supported with the IMDB Cache option:

- Oracle Database 10g Release 2 (10.2.0.5.0 or above)

- Oracle Database 11g Release 1 (11.1.0.7.0 or above)

- Oracle Database 11g Release 2 (11.2.0.2.0 or above)

2.4 Replication configurations

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

Oracle Clusterware 11.2.0.2 is supported with TimesTen active standby pair replication. For more details, see Oracle TimesTen In-Memory Database Replication Guide.

3 Software requirements

For software requirements, refer to Oracle TimesTen In-Memory Database Installation Guide.

4 Deliverables

You should receive the following with your copy of the Oracle TimesTen In-Memory Database:

- Release Notes. This document (which you are now reading) covers late-breaking information not included in the formal documentation.

- Oracle TimesTen Media Pack. The media pack includes the Oracle TimesTen libraries and executables, demo programs, utilities and online documentation. The documentation included on the media pack consists of:

- Oracle TimesTen In-Memory Database Release Notes (Part Number E21630). See the description above.

- Oracle TimesTen In-Memory Database Installation Guide (Part Number E21632). This guide provides information about installing and upgrading TimesTen.

- Oracle In-Memory Database Cache Introduction (Part Number E21631). This guide describes the features of Oracle In-Memory Database Cache and provides information to help developers plan an IMDB Cache application.

- Oracle TimesTen In-Memory Database Operations Guide (Part Number E21633). This guide provides information about configuring TimesTen and using the ttIsql utility to manage a database. It also provides a basic tutorial for TimesTen.

- Oracle TimesTen In-Memory Database C Developer's Guide (Part Number E21637). This guide describes how to compile and link your C application with Oracle TimesTen and how to set up and work with Oracle TimesTen databases. It covers topics that include error handling, event management and performance tuning. It also provides a reference for C language-specific APIs.

- Oracle TimesTen In-Memory Database Java Developer's Guide (Part Number E21638). This guide describes how to compile your Java application with Oracle TimesTen and how to set up and work with Oracle TimesTen databases. It covers topics that include error handling, event management and performance tuning. It also provides a reference for Java language-specific APIs.

- Oracle TimesTen In-Memory Database TTClasses Guide (Part Number E21640). This guide describes the Oracle TimesTen C++ Interface Classes library. The library provides wrappers around the most common ODBC functionality.

- Oracle TimesTen In-Memory Database PL/SQL Developer's Guide (Part Number E21639). This guide describes and explains how to use PL/SQL in the TimesTen database. It is intended for anyone developing PL/SQL-based applications for the Oracle TimesTen In-Memory Database.

- Oracle TimesTen In-Memory Database PL/SQL Packages Reference (Part Number E21645). This guide provides a reference to all PL/SQL packages available for use with the TimesTen database. It is intended for anyone developing PL/SQL-based applications for the Oracle TimesTen In-Memory Database.

- Oracle Data Provider for .NET Oracle TimesTen In-Memory Database Support User's Guide (Part Number E21641). ODP.NET support for Oracle TimesTen In-Memory Database (TimesTen) enables ADO.NET data access from .NET client applications to TimesTen databases. This document covers features specific to ODP.NET support of and use with TimesTen.

- Oracle TimesTen In-Memory Database Reference (Part Number E21643). This guide provides a reference to all Oracle TimesTen utilities, built-in procedures, attributes and system limits. Also provides a reference to other features of TimesTen.

- Oracle TimesTen In-Memory Database SQL Reference (Part Number E21642). This guide contains a complete reference to all TimesTen SQL statements, expressions and functions, including TimesTen SQL extensions.

- Oracle TimesTen In-Memory Database Error Messages and SNMP Traps (Part Number E21646). This guide contains a complete reference to the TimesTen error messages and information about using SNMP traps with TimesTen.

- Oracle TimesTen In-Memory Database System Tables and Views Reference (Part Number E21644). This document provides a reference for TimesTen system tables and views and replication tables.

- Oracle TimesTen In-Memory Database Replication Guide (Part Number E21635). This guide provides background information to help you understand how Oracle TimesTen replication works and step-by-step instructions and examples that show how to perform the most commonly needed tasks. It includes information about TimesTen integration with Oracle Clusterware.

- Oracle In-Memory Database Cache User's Guide (Part Number E21634). This guide provides background information to help you understand how to create and manage Oracle In-Memory Database Cache and cache grid.

- Oracle TimesTen In-Memory Database Troubleshooting Guide (Part Number E21636). This guide describes how to troubleshoot some of the problems users encounter when using TimesTen.

- Oracle TimesTen In-Memory Database JDBC Extensions Java API Reference (Part Number E21647) and Oracle TimesTen In-Memory Database JMS/XLA Java API Reference (Part Number E21648). These references describe TimesTen extensions to JDBC classes and interfaces and the TimesTen JMS/XLA package.

- Oracle Enterprise Manager System Monitoring Plug-in for Oracle TimesTen In-Memory Database Release Notes (Part Number E21650) and Oracle Enterprise Manager System Monitoring Plug-in for Oracle TimesTen In-Memory Database Installation Guide (Part Number E21649). This guide and the release notes document describe the Oracle Enterprise Manager Plug-in for TimesTen.

If any of these items is missing, contact Oracle TimesTen support. See "Access to Oracle Support".

5 Advance notice

This section lists deprecated and removed items.

5.1 Deprecated items in Release 11.2.2.1.0

Using a deprecated item results in a warning.

- The -repUpgrade option of ttMigrate has been changed to -exactUpgrade to be consistent with the replication STORE clause TABLE DEFINITION CHECKING EXACT. This is the default.

- The -noRepUpgrade option of ttMigrate has been changed to -relaxedUpgrade to be consistent with the replication STORE clause TABLE DEFINITION CHECKING RELAXED.

- The -rename option has been removed from the ttMigrate utility.

- Features for XLA non-persistent mode have been deprecated and removed from the documentation. Use utilities and APIs for persistent XLA only.

- Support has been removed for TTClasses methods that take a TTStatus object as the last argument and do not return exceptions.

6 Known problems and limitations

This section contains known problems and limitations in these categories:

- New issues in this release

- Cache Advisor

- IMDB Cache

- Installing and uninstalling TimesTen

- JDBC

- ODBC

- PL/SQL

- Replication

- SQL, utilities and procedures

- SQL*Plus

- TimesTen integration with Oracle Clusterware

- TimesTen OCI support

- TimesTen support for Oracle Pro*C/C++ Precompiler

- TTClasses

- Upgrading TimesTen

- XLA and JMS/XLA

6.1 New issues in this release

- Foreign key constraints are not enforced by the execution of the ttLoadFromOracle built-in procedure. When using this built-in procedure (or the ttIsql command) to load rows into a table that is the referencing table (child table) of a foreign key, it is possible that a row without any matching parent is loaded. TimesTen does not detect this foreign key violation. If the data loaded from Oracle may violate a foreign key constraint, verify the foreign key constraint manually after loading both the child and the parent table.

- A problem exists with TimesTen Oracle Clusterware exists where killing the ttCRSMaster process of the active database results in a role switch.

6.2 Cache Advisor

- The list of known problems and limitations for the Cache Advisor is in the readme.html file in install_dir/ttcacheadv in your TimesTen instance.

6.3 Client/Server

- In the Windows ODBC Client DSN Setup dialog box, when the Server Name refers to a UNIX host, pressing the Refresh button to get the list of DSNs on that server sometimes fails to obtain the list. Enter a known DSN in the Server DSN field to create the client DSN entry successfully. TimesTen connections from Windows using that client DSN work normally.

- On UNIX, when using ttlocalhost, a client of one TimesTen instance cannot connect with a server of another TimesTen instance. For example, a 32-bit TimesTen client cannot connect to a 64-bit TimesTen server when using ttlocalhost. 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.

6.4 IMDB Cache

- You cannot use a hash (#) symbol in a table name in a cache group.

- Dynamic load might not occur under the following condition: The query specifies more than one table of the cache group and the first table in the plan is a cache group table without a dynamic load condition. Such a plan is possible when the cache group is empty.
This can be fixed by either:

- Setting the join order so the table with the dynamic load condition is the left-most table of the join, or

- Setting fake statistics so the tables without the dynamic load condition are not empty.

- Global cache group operations are not supported on Windows systems.

- If there are indexes on the Oracle database that are there to enforce constraints, you must duplicate them on TimesTen. This restriction applies for AWT cache groups when parallel propagation is enabled.

- In the following scenario:

- There are multiple AWT cache groups.

- There are pending DML operations to be applied to be propagated to Oracle for an AWT cache group.

- The AWT cache group is dropped and then recreated.

The expected behavior is that the pending DML will not be applied to the Oracle database. A problem exists where the pending DML is applied to Oracle. To work around this problem, do one of the following:

- Drop all AWT cache groups before any cache group is recreated.
OR

- Call the ttRepSubscriberWait build-in procedure against the Oracle database to ensure that all pending DML are applied to Oracle before dropping the cache group.

- If a foreign key on an Oracle database corresponds to cached tables, the foreign key must have an index on it. If there is no index on the foreign key, TimesTen returns an error at the time of cache group creation. This restriction applies for AWT cache groups when parallel propagation is enabled.

- If an application performs more than one UNLOAD BY ID operation on a cache group, there is potential for a deadlock with the autorefresh transaction executed by the cache agent. The deadlock occurs only if those same rows are being updated on the Oracle database at the same time.

- Oracle Server bug 7512227 causes TimesTen autorefresh to miss inserts and updates on the Oracle base table. Autorefresh does not miss deletes. The Oracle Server bug applies to Oracle 10g releases 10.2.0.3 and above but does not occur in Oracle Database 11g. There are two solutions:

- Set the CURSOR_SHARING Oracle server parameter to EXACT.

- Install the appropriate Oracle patch for Oracle release 10.2.0.5.

See My Oracle Support document 793948.1.

- Caching an Oracle synonym that is owned by a different user results in error 5140: Could not find owner.synonym in Oracle. May not have privileges. The workarounds are:

- The owner of the synonym can create the cache group.

- Create a new private synonym that points to the original synonym and then create the cache group. The user who owns the cache group that caches the synonym must match the owner of the synonym.

- For IMDB Cache to work correctly, the value returned by the hostname command and the uname -n command (UUCP address) must be the same. If hostname and uname -n return different values, IMDB Cache may report constraint violation failures on Oracle. Alternatively, you can use uname -s to make sure that the Internet and the UUCP addresses are the same.

- Nullable foreign keys can result in rows without a corresponding parent row. The rows may become stale and may not be refreshed properly through a manual refresh or autorefresh operation. They may not get removed through unload or aging operations, and they may not be updated on Oracle through a flush statement.

6.5 Installing and uninstalling TimesTen

- The section "Installing TimesTen on UNIX systems" in the Oracle TimesTen In-Memory Database Installation Guide says "Download TimesTen to your system. The download consists of a gzipped TAR file that is named timestenrelease.platform.tar.gz, for example, timesten112230.linux86.tar.gz." The passage should instead indicate only that the TimesTen tar file name indicates the platform and release number. The file name is not in the format indicated.

- For databases on Linux systems where PermSize+TempSize+LogBufMB+20MB > 256 GB, you must have Large Pages configured to accommodate the size of the shared segment.

- On Windows 64-bit systems, you need to compile the QuickStart TTClasses demos before you can use them.

- TimesTen is not supported with these Oracle Linux 5 kernels: Oracle Linux 5 GA with virtualization option (2.6.18-8.el5xen), Oracle Linux 5 Update 1 with virtualization option (2.6.18-53.el5xen), Oracle Linux 5 Update 2 with virtualization option (2.6.18-92.el5xen).
TimesTen is supported with these Oracle Linux 5 kernels: Oracle Linux 5 kernel version 2.6.18* without the xen suffix and without the virtualization option, Oracle Linux 5 Update 4 with virtualization option (2.6.18-164.el5xen), Oracle Linux 5 Update 5 with virtualization option (2.6.18-194.el5xen).

The uname -r Linux command displays the Linux kernel version.

- If you are installing TimesTen on a new 64-bit Linux system, you may find that it is not enabled for 32-bit applications. Select the Compatibility Arch Support and Compatibility Arch Development Support packages to install architecture specific support for your system.

- On Windows 64-bit systems, you can do either a 64-bit installation (typical) or a 32-bit installation, but you cannot do both a 64-bit installation and a 32-bit installation of the same major release. (You could, however, have a 64-bit installation of the 11.2.2.3.0 release and a 32-bit installation of the 11.2.1.9.0 release, for example.)

- On Windows systems, you cannot perform a modified or incremental installation. For example, if you originally installed only the Oracle TimesTen Client and later wanted to install the Oracle TimesTen Data Manager, you need to uninstall TimesTen and reinstall all of the components you wish to have on your system.

- To run TimesTen 32-bit on AIX, you must install the appropriate fix or higher mentioned at:

http://www-01.ibm.com/support/docview.wss?uid=isg1fixinfo105065

Without this operating system patch, core dumps or other serious problems may occur when running TimesTen.

The root IBM APAR is: IZ10231: R27 OVERWRITTEN AFTER DLSYM EXECUTION APPLIES TO AIX 5300-06.

See http://www-01.ibm.com/support/docview.wss?uid=isg1IZ10231.

- When re-installing TimesTen on UNIX, existing sys.odbc.ini and sys.ttconnect.ini files are optionally saved as sys.odbc.ini.old and sys.ttconnect.ini.old files and new demo files are installed. In this case, you must manually merge any additional DSNs that may have been defined after reinstalling.

6.6 JDBC

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

6.7 ODBC

- The ODBC SQLExtendedFetch function appears in TimesTen header files. However, TimesTen does not support this function.

6.8 PL/SQL

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

- JRockit on 32-bit Linux allocates a default heap that is 50 percent of available physical memory up to 1 GB. Users of JRockit on 32-bit platforms may need to choose a value for PLSQL_MEMORY_ADDRESS other than the default (10000000). Consider values such as B0000000, which ensures that the PL/SQL shared memory is not part of the JRockit heap.

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

- UTL_FILE access is limited to a temporary directory located in install_dir/plsql/utl_file_temp. The instance administrator can grant access 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.

6.9 Replication

- The default handling of cache groups when duplicating databases is inconsistent between the ttRepAdmin -duplicate command line utility and the ODCB ttRepDuplicateEX utility. When using ttRepAdmin, cache groups are converted to regular tables by default (-noKeepCG). When using ttRepDuplicateEX, cache groups are retained by default.

- Replication for an altered table can fail if the replication agent is stopped immediately after the ALTER TABLE statement has been issued and the agent has not advanced past the end of the ALTER TABLE transaction. This problem can occur regardless of return service policy. If you need to stop the replication agent after an ALTER TABLE transaction, issue a ttRepSubscriberWait call to ensure that the replication agent restart point has advanced beyond the alter table operation.

- TimesTen can return error message TT6003 when using master-subscriber two-safe replication and autorefresh cache groups. This can occur, specifically, if the first replicated two-safe transaction has either a LOAD CACHE GROUP or an ALTER CACHE GROUP SET AUTOREFRESH STATE operation on an autorefresh cache group. To work around this problem, either avoid doing a LOAD or ALTER on the first replication transaction or use active standby pair replication.

- If the first operation in a two-safe user session is an ALTER TABLE operation, the ALTER TABLE is not replicated. The workaround is to do some other operation on the table in the same session before altering the table.

- Under very rare circumstances, it is possible for a pair of replicated detail tables and their corresponding materialized view to diverge. This divergence can only happen if the materialized view satisfies both of the following conditions:

- The view definition has two or more predicates.

- One of the predicates contains an expression that can generate an exception such as numeric overflow, division by zero or string truncation.

Replicating an update to a detail table can cause divergence if differences in the order of predicate evaluation on the two databases cause a predicate to be evaluated and generate an exception only on the receiving database. The store then rejects the update, resulting in divergence of the detail table and the materialized view. To prevent such divergence, users should avoid replicating materialized views that have predicates that can generate exceptions during expression evaluation. The SQL CAST operator can be used in some cases to avoid arithmetic overflow.

- Foreign key and uniqueness constraints cannot be checked at the statement level if ttXlaApply is used to implement replication.

6.10 SQL, utilities and procedures

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

- Deleting rows from a table that has out-of-line columns and dropping that table in the same transaction results in an assertion failure when using DDLCommitBehavior=1. To work around this problem, add a commit between the DELETE statement and the DROP TABLE statement.

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

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

6.11 SQL*Plus

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

6.12 TimesTen integration with Oracle Clusterware

- When you perform one of these actions:

- Answer the prompt for which host should be designated as the host for the active database.

- Enter the ttCWAdmin -create command.

You receive the message:

"Warning!! Data store on host(s) host list may be destroyed in Order to be duplicated from active after the roll out. Please back up this data store manually if necessary, before executing ttCWAdmin -start".

If a database with the specified DSN exists on the host for the standby database, the old database will be destroyed and replaced with the database that is created by the ttCWAdmin -create command.

The warning has no meaning if there is no database with the specified DSN on the standby host.

6.13 TimesTen OCI support

- TimesTen OCI documentation primarily just documents differences between TimesTen OCI support and Oracle Database OCI support. TimesTen customers rely on the Oracle Database documentation for general information and functionality.
Please be aware of the following errata related to the OCIDescribeAny() function in the "Describing Schema Metadata" chapter of the Oracle Database 11.2.0.2 OCI programmer's guide:

1. Under "Parameter Attributes", the documentation lists OCI_ATTR_NUM_PARAMS under attributes of all parameters. OCI_ATTR_NUM_PARAMS is actually an attribute only for list parameters.

2. The value returned when you get the attribute OCI_ATTR_LIST_COLUMNS from OCI_PTYPE_TABLE or OCI_PTYPE_VIEW is of type OCIParam*. This is correctly documented in Appendix A but incorrectly documented as type void* under "Table or View Parameters" in the "Describing Schema Metadata" chapter.

3. The documentation mentions attribute OCI_ATTR_LIST_TYPE for list types (OCI_ATTR_PTYPE_LIST). This is incorrect. The attribute is OCI_ATTR_LTYPE.

4. Under "Schema Attributes", the OCI_ATTR_LISTS_OBJECTS attribute is said to be of type OraText*. The type is actually OCIParam*.

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

6.14 TimesTen support for Oracle Pro*C/C++ Precompiler

- On Windows platforms, the link line for a Pro*C application that uses SQLLIB functions should include both OCI.LIB and ORASQL11.LIB. The correct order is OCI.LIB first, then ORASQL11.LIB. Reversing the order can lead to the SQLLIB functions not working.

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

6.15 TTClasses

- The TTCmd::setParamNull() method cannot be used to set NULL LOB data in an Oracle Database table using passthrough. Instead, use literals in INSERT or UPDATE statements.

6.16 Upgrading TimesTen

- The ttMigrate utility cannot migrate foreign key dependencies between objects owned by different users to TimesTen release 11.2.1 and later from release 7.0 and older without a workaround. To work around this problem, first restore the parent tables. Then grant the owner of the child tables the appropriate REFERENCES privileges on its parent tables. Finally, restore the child tables.

- The ttMigrate utility cannot migrate materialized views to TimesTen release 11.2.1 and later from release 7.0 and older without a workaround. To work around this problem, first restore the detail tables referenced by the materialized view. Then grant the owner of the materialized view SELECT privileges on every detail table. Finally, restore the materialized view.

6.17 XLA and JMS/XLA

See Oracle TimesTen In-Memory Database C Developer's Guide for details about XLA (Transaction Log API). See Oracle TimesTen In-Memory Database Java Developer's Guide for details about JMS/XLA.

- XLA and JMS/XLA return incorrect information for index types for a CREATE INDEX statement. The value reflected in the flag field of ttXlaCreateIndexTup_t in XLA and the INDEX_TYPE value of CREATE_INDEX in JMS/XLA are always R, indicating regular indexes, regardless of the actual index type.

- In TimesTen JMS/XLA, the MapMessage.getString() method currently returns NULL for FLOAT data.

- This limitation applies to JMS/XLA, ODBC/XLA and TTClasses/XLA. When a modification of a LOB column is committed, XLA does not return the value of the LOB. XLA does indicate the following are true:

- Whether the LOB has been inserted, updated or deleted

- Whether the value of the LOB column is NULL or not NULL

- Whether the length of the LOB is zero

- Whether the value of the LOB is undefined

- TimesTen does not generate an XLA record for CREATE MATERIALIZED VIEW LOG operations.

- JMS/XLA depends on the Oracle GDK for internationalization support. TimesTen distributions include a version of orai18n.jar in install_dir/lib that JMS/XLA is tested against. JMS/XLA may work with other versions of orai18n.jar but those versions are not supported.

- To achieve the highest throughput, JMS/XLA applications running on Linux should follow performance guidelines presented in the section entitled "Handling high event rates" in Oracle TimesTen In-Memory Database Java Developer's Guide to work around these issues.

7 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 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, 11g Release 2 (11.2.2)

E21630-26

Copyright © 2012 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, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

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

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