Skip Headers
Oracle® TimesTen In-Memory Database Release Notes
Release 11.2.1

Part Number E13080-14
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Master Index
Master Index
Go to Feedback page
Contact Us

  View PDF

Oracle® TimesTen In-Memory Database

Release Notes

Release 11.2.1

E13080-14

May 2010

This document provides late-breaking information for TimesTen release 11.2.1.6.1, as well as information that is not yet part of the formal 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/index.htm at the root of the installation media pack.

This document contains the following sections:

1 Changes in this release

This section lists changes in this release:

1.1 Changes for Release 11.2.1.6.1 from Release 11.2.1.6.0

  • In previous releases, on AIX systems, the user had to call setsockopt at the kernel level to get the benefits of the TCP_RFC1323 option. It is no longer necessary for the user to make this call. TimesTen makes the call by default. (BugDB 6800684)

  • A problem has been fixed where a disconnect from a standby store in an active standby pair with cache grid could hang. (BugDB 9538780)

  • In previous releases, creating many joins in a large materialized view could hang. This problem has been fixed. (BugDB 9581951)

  • In this release, TimesTen returns ODBC error S1000: Unable to load NLS initialization data from /bogus/nls/data if the TimesTen client driver cannot find or load NLS files. (BugDB 9595956)

  • In previous releases, a replication agent could fail with this assertion failure: eolCnt + eofCnt == logc->strandCnt. This bug has been fixed. (Bug 9644085).

  • During an upgrade from previous 11.2.1 releases to 11.2.1.6.0, the replication agent could fail to start due to error TT2211: Referenced column P.TRACK_ID not found>. This problem is fixed in this release. (BugDB 9733793)

1.2 Changes for Release 11.2.1.6.0 from Release 11.2.1.5.2

For details about behavior changes in Release 11.2.1.6.0, see the Behavior Changes document.

1.2.1 New features and changes in Release 11.2.1.6.0

See the "What's New" prefaces in the documentation to see the new features documented in a specific guide.

  • You can perform a global query on cache tables and noncache tables across all nodes in a cache grid. You can also unload a cache group on all grid members by specifying a global unload operation. Use the GlobalProcessing optimizer flag.

    For a detailed description, see the Oracle In-Memory Database Cache User's Guide.

  • TTClasses now supports PL/SQL IN, OUT and IN OUT parameters and REF CURSORs.

  • User-defined parallel replication can be configured for applications that have predictable transactional dependencies and do not require the commit order on the source data store to be the same as the commit order on the target data store. User-defined parallel replication is available for replication schemes that are not active standby pairs. See Oracle TimesTen In-Memory Database TimesTen to TimesTen Replication Guide for more information.

    This feature contains the new Data Store attributes:

    • ReplicationParallelism

    • ReplicationApplyOrdering

    • and the connection attribute, ReplicationTrack

    This feature contains the new SQL:

    • SET REPLICATION_TRACK clause of ALTER SESSION statement

    This feature contains the new ODBC feature:

    • TT_REPLICATION_TRACK ODBC connection option for the SQLSetConnectOption ODBC function

    This feature contains the new JDBC feature:

    • setReplicationTrack() method of the TimesTenConnection JDBC class

    The ALTER TABLE...USE INDEX operation is not permitted when user-defined parallel replication is used and replication agent is running.

  • Clusterware can be configured with grid by setting the GridPort attribute in the cluster.oracle.ini file. See a description of the GridPort attribute in the Oracle TimesTen In-Memory Database TimesTen to TimesTen Replication Guide.

    To enable grid with Clusterware:

    • Assign port numbers to the GridPort attribute in the cluster.oracle.ini file.

    • Create cache group instances on one data store.

    • Using the ttcwadmin utility, create an active standby pair on the data store.

    • Start the replication agent using the ttcwadmin -start operation.

    • Load cache group data if necessary.

1.2.2 Bug Fixes in Release 11.2.1.6.0

  • In previous releases, if you did a client-only install into a root directory, TimesTen would fail to find TimesTen servers during a Client DSN setup. This problem has been fixed. (BugDB 9261243)

  • A problem has been fixed where a flush cache group operation would hold row locks on child tables. This problem could block an update statement that touched the child table. (BugDB 9359437)

  • In previous releases, executing a query against multiple outer joins with the set operators UNION, MINUS or INTERSECT could result in abnormal termination. This problem has been fixed. (BugDB 9382127)

  • A problem has been fixed where the cache agent would not start if the ORA_NLS, ORA_NLS10 and ORA_NLS33 variables were set in the environment of the TimesTen main daemon. (BugDB 9382534)

  • A deadlock or lock timeout error that could be encountered during a parallel ttMigrate restore operation has been fixed. (BugDB 9388441)

  • In previous releases, an autorefresh polling query incorrectly used a full table scan. In this release, the query uses an index. (BugDB 9434677)

  • An assertion failure that resulted from an inconsistency in TimesTen internal lock structures has been fixed in this release. (BugDB 9436967)

  • In previous releases, an assertion could occur if the total number of rows for a single value needed more than 65K pages in a bitmap index and subsequent fast recoveries would hang. This has been fixed. (BugDB 9445235)

  • In previous TimesTen 11.2.1. releases, replication would fail during an ALTER REPLICATION operation when replicating from a TimesTen 11.2.1.x release to a pre-11.2.1 release. This has been fixed. (BugDB 9447493)

  • A problem has been fixed for Windows systems where Shared Memory IPC client server connections would fail sometimes. (BugDB 9478491)

  • The SQL command ID is included as output to ttXactAdmin. This ID is helpful as input for the built-in procedure ttSQLCmdCacheInfo when wanting to associate the SQL statement with the ID.(BugDB 9496444)

  • A problem has been fixed where a TimesTen daemon disconnect would fail with an error -8 in the StopManaging function if a process had exited ungracefully. (BugDB 9499437)

  • A problem has been fixed where projected constants in a JOIN of tables and views could create duplicate result column names. (BugDB 9503696)

  • In previous releases, when using timestamp based aging, rows with date values in the future could be aged out. This problem has been fixed.(BugDB 9541351)

  • A problem has been fixed where PL/SQL procedures could be stored incorrectly in the database. Any attempt to use these procedures would result in a crash. (BugDB 9542428)

  • In previous releases, when the value of the LogBufParallelism attribute was greater than 1, it could cause the transmitter in the replication agent to crash. This problem has been fixed. (BugDB9588242)

1.3 Changes for Release 11.2.1.5.2 from Release 11.2.1.5.1

  • A bug that could have crashed the replication agent has been fixed. (BugDB 9538156)

1.4 Changes for Release 11.2.1.5.1 from Release 11.2.1.5.0

  • Support for Mac OS X Client, releases 10.5 and 10.6, 32-bit is added in this release of TimesTen.

1.5 Changes for Release 11.2.1.5.0 from Release 11.2.1.4.1

For details about behavior changes in Release 11.2.1.5.0, see the Behavior Changes document.

1.5.1 New features and changes in Release 11.2.1.5.0

See the "What's New" prefaces in the documentation to see the new features documented in a specific guide.

  • The ttCWAdmin utility contains news options for adding spare hosts to the cluster and for removing spare hosts. These new options are: -addMasterHosts, -delMasterHosts, -addSubscriberHosts and -delSubscriberHosts.

    For syntax and detailed descriptions of these options, see the Oracle TimesTen In-Memory Database Reference.

  • You can cache Oracle LOB data in TimesTen cache groups.

    Oracle CLOB data is cached as TimesTen VARCHAR2 data.

    Oracle BLOB data is cached as TimesTen VARBINARY data.

    Oracle NCLOB data is cached as TimesTen NVARCHAR2 data.

    For more details, see the Oracle TimesTen In-Memory Database Reference or the Oracle In-Memory Database Cache User's Guide.

  • When upgrading from releases 11.2.1.4 and earlier to releases 11.2.1.5 and later, you must relink applications on AIX after installing TimesTen. Failure to do so results in an application execution error similar to the following:

    Could not load program _application_:
    Dependent module _tt_inst_dir_/lib/libtten.a(libtten.so) could not be loaded.
    File _tt_inst_dir_/lib/libtten.a is not an archive or the file could not be read properly.
    System error: Exec format error
    

1.5.2 Bug Fixes in Release 11.2.1.5.0

  • In previous releases, a single ttAdmin command could not contain both the -cachePolicy and -cacheStart or -cacheStop. In this release, the options can be included on the same command line. (BugDB 8868895)

  • In previous releases, an autorefresh interval error could occur when the cache agent had been running for several months. In this case, the autorefresh interval would silently increase to a significantly larger interval value than specified by the user. This problem has been fixed. (BugDB 8908506)

  • A foreign key defined on a cache group table must reference the primary key of a different table in the same cache group. This rule is now strictly enforced. In previous releases, this rule was not strictly enforced. As a result, when a user tried to create a cache group that had a foreign key that referenced a non-primary unique key, the application could terminate unexpectedly or the cache group was created but later cache operations would return unexpected results. (BugDB 9002425)

  • Free blocks that are not in the free list are now properly added to the free list during data store restart. (BugDB 9041503)

1.6 Changes for Release 11.2.1.4.1 from Release 11.2.1.4.0

  • A problem has been fixed where an assertion failure could occur when a DROP CACHE GROUP operation performed global temporary table cleanup. (BugDB 9126569 and BugDB 9230900)

  • When using PL/SQL, additional diagnostic output for deadlocks are now included in TimesTen. If a deadlock occurs, review the stack trace in the file called ORA4024.DMP. You can find this file in the working directory of the application. For more details than those provided in this file, see the TimesTen daemon log, timestend.log. The daemon log contains a process dump that lists metadata for the anonymous blocks currently cached for the data store. (BugDB 9228193)

1.7 Changes for Release 11.2.1.4.0 from Release 11.2.1.3.0

For details about behavior changes in Release 11.2.1.4.0, see the Behavior Changes document.

1.7.1 New features in Release 11.2.1.4.0

See the "What's New" prefaces in the documentation to see the new features documented in a specific guide.

  • PL/SQL with TimesTen is now supported on Windows 32-bit systems.

  • Users can now specify Time-based aging for tables and cache groups in units of seconds as well as minutes, hours, and days. This feature is available with the SQL statements: ALTER TABLE, CREATE CACHE GROUP, CREATE TABLE.

  • The ttCWAdmin utility now includes the -ocrConfig option. For syntax and a detailed description, see the Oracle TimesTen In-Memory Database Reference.

  • The CREATE MATERIALIZED VIEW LOG statement creates a global temporary table called MVLGT$_detailTableID. The global temporary table is dropped when the DROP MATERIALIZED VIEW LOG statement is executed. If an asynchronous materialized view was created in a release before 11.2.1.4.0, the global temporary table is created when the asynchronous materialized view is refreshed.

  • The minimum transaction log file size is now 8MB. In previous releases, the minimum size was 1MB. For existing TimesTen databases that use a transaction log file smaller than 8MB, users must increase the size to 8MB or greater to avoid a connection error. The default transaction log file remains at 64MB. TimesTen recommends using a transaction log file size of 64MB or greater. The maximum transaction log file size remains 1GB.

  • In this release of TimesTen, JDBC support has been enhanced to support Java 6/JDBC 4.0. This feature includes support for the RowId interface and a few additional methods. For a list of the methods that are now supported in TimesTen, see the Oracle TimesTen In-Memory Database Java Developer and Reference Guide.

  • In this release, users can create synonyms for database objects including tables, views, synonyms, sequences, PL/SQL stored procedures, PL/SQL functions, PL/SQL packages, materialized views and cache groups. New SQL statements in this release are CREATE SYNONYM and DROP SYNONYM. New object privileges in this release are CREATE SYNONYM and DROP SYNONYM. New system privileges in this release are CREATE ANY SYNONYM, CREATE PUBLIC SYNONYM, DROP ANY SYNONYM and DROP PUBLIC SYNONYM. For syntax and descriptions of the new SQL statements, see the Oracle TimesTen In-Memory SQL Reference.

  • The following new built-in procedures are included in this release:

    ttCacheAutorefresh initiates an immediate autorefresh operation.

    ttGridDetachAll detaches all grid members from the grid.

    ttGridGlobalCGSuspend disallows global cache group ownership changes among attached grid members.

    ttGridGlobalCGResume enables global cache group ownership changes among attached grid members after a suspension.

    For syntax and detailed descriptions of these procedures, see the Oracle TimesTen In-Memory Database Reference.

1.7.2 Bug Fixes in Release 11.2.1.4.0

  • In previous releases, when passthrough mode was set to 1, if a SQL statement contained a function that was not supported in TimesTen, it was not passed through to Oracle. This problem is fixed in this release. (BugDB 8672249)

  • In this release, the polling interval for the fluxwait function has been reduced from 1 second to 100 milliseconds. (BugDB 8783994)

  • In a certain scenario, changes made to an Asynchronous Writethrough cache group on one TimesTen data store could be sent to the wrong Oracle database. For the scenario to occur, there would have to be two different TimesTen data stores on the same host machine within the same TimesTen installation, having the same data store filenames, and caching data from two different Oracle databases. This bug has been fixed. (BugDB 8788839)

  • A problem has been fixed where a cache load operation could encounter a foreign key violation if Oracle tables were being updated at the same time as the load operation. (BugDB 8818041)

  • A problem has been fixed where the TimesTen Server could core dump when an application tried to execute a query that would return a large number of rows. (BugDB 8833699)

  • A problem has been fixed where an assertion failure could occur during a REFRESH WITH ID operation when the primary key and the table order didn't match. (BugDB 8867191)

  • In previous releases, a single ttAdmin command could not contain both the -cachePolicy and -cacheStart or -cacheStop. In this release, the options can be included on the same command line. (BugDB 8868895)

  • In previous releases, an autorefresh interval error could occur when the cache agent had been running for several months. In this case, the autorefresh interval would silently increase to a significantly larger interval value than specified by the user. This problem has been fixed. (BugDB 8908506)

  • A problem has been fixed where an exception could occur when an application set the flag OCI_DESCRIBE_ONLY in the OCIStmtExecute function. (BugDB 8919045)

  • When using PL/SQL with TimesTen, a memory leak could occur during any exit without a disconnect. This problem has been fixed in this release. (BugDB 9008270)

  • Free blocks that are not in the free list are now properly added to the free list during data store restart. (BugDB 9041503)

1.8 Changes for Release 11.2.1.3.0 from Release 11.2.1.2.0

  • In an active standby pair replication scheme with a disaster recovery subscriber, if one or both master data stores have a failure threshold configured, then the disaster recovery subscriber inherits the failure threshold value when it is created with the ttRepAdmin -duplicate -initCacheDR utility. If the master data stores have different failure thresholds, then the higher value is used for the disaster recovery subscriber. (BugDB 7686572)

  • In JDBC client/server mode, you can reuse a Statement with an open ResultSet for update. (BugDB 8536362)

  • When running a PL/SQL block that uses OUT parameters, ttIsql using the client/server driver did not recognize that the parameters were OUT and did not display the updated values (autoprint). This problem has been fixed. (BugDB 8528518)

  • The TimesTen integration of Oracle Clusterware on Windows did not fail back the virtual IP addresses of the master hosts after a failover. This problem has been fixed. (BugDB 8639286)

  • The TimesTen integration of Oracle Clusterware on Windows did not restart the TimesTen daemon after it was stopped by the task manager. This problem has been fixed. (BugDB 8639248)

1.9 Changes for Release 11.2.1.2.0 from Release 11.2.1.1.0

  • When using TimesTen OCI, incorrect results could be returned when these actions occurred:

    • Execute a SELECT statement.

    • Fetch an array.

    • Execute the SELECT statement again with new define variables.

    This problem has been fixed. (BugDB #8592579)

  • Dynamic read-only cache groups can be replicated only by using an active standby pair. If you attempt to use another type of replication scheme for a dynamic read-only cache group, TimesTen now returns an error. You must now detach a grid member from the grid before you drop an active standby pair replication scheme that is defined within the member database. (BugDB #8581905)

  • The ttGridNodeStatus built-in procedure returned information about the status of a standby master data store even though the active standby pair had been dropped. This problem has been fixed. (BugDB #8392567)

  • In some circumstances PL/SQL returned the wrong error message. This problem has been fixed. (BugDB #8541146)

  • The autorefreshChangeLogInfo.sql script has been renamed to cacheInfo.sql. The autorefreshCleanup.sql script has been renamed to cacheCleanup.sql. They are located in the install_dir/oraclescripts directory.

1.10 Changes for Release 11.2.1.1.0 from Release 11.2.1.0.0

For details about behavior changes in Release 11.2.1.1.0, see the Behavior Changes document.

  • Access Control has been changed completely to be more compatible with Oracle security standards. See "Managing Access Control" in Oracle TimesTen In-Memory Database Operations Guide and "Privileges" in Oracle TimesTen In-Memory Database SQL Reference. There is new syntax for the ALTER USER, CREATE USER, DROP USER, GRANT and REVOKE SQL statements. See Oracle TimesTen In-Memory Database SQL Reference.

  • By default, you must associate a TimesTen database with a cache grid before you can create cache groups within that database. See Oracle In-Memory Database Cache User's Guide.

  • TimesTen integration with Oracle Clusterware has had significant changes. The syntax for the ttCWAdmin utility has changed. Attributes for the cluster.oracle.ini file have been changed. See "Clusterware Attributes for TimesTen" and "ttCWAdmin" in Oracle TimesTen In-Memory Database Reference and "Using Oracle Clusterware to Manage Active Standby Pairs" in Oracle TimesTen In-Memory Database TimesTen to TimesTen Replication Guide.

  • The configuration for the transaction log buffer file size has been modified. See Oracle TimesTen In-Memory Database Operations Guide.

  • JDBC now maps ODBC data types as follows:

    • SQL_FLOAT to Types.DOUBLE

    • SQL_DOUBLE to Types.VARCHAR

    • SQL_REAL to Types.FLOAT

1.10.1 New features in Release 11.2.1.1.0

See the "What's New" prefaces in the documentation to see the new features documented in a specific guide.

  • TimesTen has implemented a parallel log manager.

  • TimesTen supports parallel operation for the ttMigrate utility.

  • TimesTen supports replication of tables with different table definitions. See "Replicating tables with different definitions" in Oracle TimesTen In-Memory Database TimesTen to TimesTen Replication Guide.

  • Replication throughput of active standby pairs can be increased from one thread to two by setting the ReceiverThreads first connection attribute. See Oracle TimesTen In-Memory Database Reference.

  • An active standby pair replication scheme can replicate XLA bookmarks. See Oracle TimesTen In-Memory Database C Developer's Guide and Oracle TimesTen In-Memory Database Java Developer's Guide.

  • Automatic client failover can be configured for data stores that have active standby pair replication schemes. This enables the client to fail over automatically to the server on which the standby data store resides. See Oracle TimesTen In-Memory Database Operations Guide.

  • TimesTen materialized views can be refreshed asynchronously. See Oracle TimesTen In-Memory Database Operations Guide and Oracle TimesTen In-Memory Database SQL Reference.

  • TimesTen offers Oracle-style behavior for duplicate parameter names. See "Duplicate parameter names" in Oracle TimesTen In-Memory Database SQL Reference.

  • The DELETE, INSERT, and UPDATE SQL statements have been enhanced with the RETURNING...INTO clause. See Oracle TimesTen In-Memory Database SQL Reference.

  • TimesTen supports the ROWID data type. See Oracle TimesTen In-Memory Database SQL Reference.

  • VARCHAR2, NVARCHAR2, VARBINARY and TT_VARCHAR columns in replicated tables can have a size of 4 megabytes.

  • You can retrieve executed commands such as SQL statements and built-in procedures from the SQL command cache.You can also view the query plan information to monitor and troubleshoot queries. See Oracle TimesTen In-Memory Database Operations Guide.

  • You can monitor DDL operations performed on Oracle tables that are cached in a TimesTen database. See Oracle In-Memory Database Cache User's Guide.

  • Synchronous Data Guard can be used with IMDB Cache. See Oracle In-Memory Database Cache User's Guide.

  • This release includes TimesTen Quick Start. The Quick Start includes demos, tutorials and an overview of the product with links to the product documentation. See quickstart/index.html at the root of your installation.

1.10.2 New attributes in Release 11.2.1.1.0

See Oracle TimesTen In-Memory Database Reference for more information.

  • DuplicateBindMode

  • DynamicLoadEnable replaces DisableDynamicLoad.

  • LogBufMB replaces LogBuffSize. The units have been changed from kilobytes to megabytes.

  • LogBufParallelism

  • PLSQL_CCFLAGS

  • PLSQL_CONN_MEM_LIMIT

  • ReceiverThreads

1.10.3 New built-in procedures in Release 11.2.1.1.0

See Oracle TimesTen In-Memory Database Reference for more information.

  • ttGridDetachList

  • ttSQLCmdCacheInfo

  • ttSQLCmdCacheInfoGet

  • ttSQLCmdQueryPlan

1.10.4 New clusterware attributes in Release 11.2.1.1.0

Attributes for the cluster.oracle.ini file have been changed significantly. See "Clusterware Attributes for TimesTen" in Oracle TimesTen In-Memory Database Reference.

1.10.5 Utilities enhancements in Release 11.2.1.1.0

The syntax for the ttCWAdmin utility has changed significantly. See "ttCWAdmin" in Oracle TimesTen In-Memory Database Reference.

1.10.6 New SQL statements and functions in Release 11.2.1.1.0

  • SYS_CONTEXT and UID functions

  • CREATE MATERIALIZED VIEW LOG, DROP MATERIALIZED VIEW LOG and REFRESH MATERIALIZED VIEW statements. In addition, the CREATE MATERIALIZED VIEW statement has been enhanced.

1.10.7 New system tables and views in Release 11.2.1.1.0

See Oracle TimesTen In-Memory Database SQL Reference for more information about system tables and views.

  • SYS.DBA_SYS_PRIVS and SYS.USER_SYS_PRIVS

  • SYS.ALL_TAB_PRIVS, SYS.DBA_TAB_PRIVS and SYS.USER_TAB_PRIVS

  • SYS.ALL_USERS, SYS.DBA_USERS and SYS.USER_USERS

  • SYS.ALL_COL_PRIVS, SYS.DBA_COL_PRIVS and SYS.USER_COL_PRIVS

  • SYS.SESSION_ROLES

1.11 Changes for Release 11.2.1.0.0 from Release 7.0.5.2.0

  • The release numbering system has been changed. In the release number a.b.c.d.e, a.b.c represents the TimesTen release (11.2.1), d represents the patch release (0) and e represents the port patch (0).

  • Demos are NOT added by default during installation. You must choose to include the demos at installation time.

  • The TimesTen client library implementation of SQLPrepare performs a deferred prepare. The request is not sent to the server until required. See Oracle TimesTen In-Memory Database C Developer's Guide.

  • TimesTen support has been added for these platforms: AIX 6.1, Asianux 3.0, Monta Vista 5.0, Windows Vista and Windows Server 2008.

  • TimesTen no longer supports these platforms, development kits and compilers: AIX 5.2, HP-UX 11i v1, RedHat 3, Solaris 8 (Sparc), Solaris 10 x86 32-bit, SUSE Linux 9, TRU 64, JDK 1.4.x on all platforms, gcc 3.2.3, VC++ 6.0, VS.NET 2002, Sun Studio 10.

1.11.1 New features in Release 11.2.1.0.0

See the "What's New" prefaces in the documentation to see the new features documented in a specific guide.

  • PL/SQL is supported in TimesTen. See Oracle TimesTen In-Memory Database PL/SQL Developer's Guide.

  • The following SQL statements are new: ALTER FUNCTION, ALTER PACKAGE, ALTER PROCEDURE, CREATE FUNCTION, CREATE PROCEDURE, CREATE PACKAGE, CREATE PACKAGE BODY, DROP FUNCTION, DROP PACKAGE, DROP PROCEDURE. The ALTER SESSION SQL statement has been enhanced for PL/SQL support. See Oracle TimesTen In-Memory Database SQL Reference.

  • OUT and IN OUT parameters are supported. OUT REF CURSORs are supported. See Oracle TimesTen In-Memory Database PL/SQL Developer's Guide, Oracle TimesTen In-Memory Database C Developer's Guide and Oracle TimesTen In-Memory Database Java Developer's Guide.

  • Oracle Call Interface (OCI) applications can be used with TimesTen. See Oracle TimesTen In-Memory Database C Developer's Guide.

  • The Oracle Pro*C/C++ Precompiler can be used with TimesTen. See Oracle TimesTen In-Memory Database C Developer's Guide.

  • Oracle Clusterware can be used with TimesTen. See Oracle TimesTen In-Memory Database TimesTen to TimesTen Replication Guide.

  • A cache grid is a set of TimesTen databases that collectively manage application data using the relational data model. The cache grid provides users with Oracle databases a means to horizontally scale cache groups across multiple systems with read/write data consistency across the TimesTen databases and predictable latency for database transactions. See Oracle In-Memory Database Cache User's Guide.

  • In a dynamic cache group, data in cache tables is loaded on demand. Dynamic cache groups are supported for read-only and writethrough cache groups. A user managed cache group can also be defined as dynamic if it does not use both the AUTOREFRESH cache group attribute and the PROPAGATE cache table attribute. See Oracle In-Memory Database Cache User's Guide.

  • TimesTen supports bitmap indexes. See Oracle TimesTen In-Memory Database SQL Reference.

  • Set operators are allowed in subqueries. See Oracle TimesTen In-Memory Database SQL Reference.

  • ":" parameter markers have been enhanced. See Oracle TimesTen In-Memory Database SQL Reference.

  • Multiline C-style comments can be included in SQL statements and PL/SQL blocks. See Oracle TimesTen In-Memory Database SQL Reference.

  • XLA is updated when aging and cascading delete operations occur. See Oracle TimesTen In-Memory Database C Developer's Guide and Oracle TimesTen In-Memory Database Java Developer's Guide.

  • TimesTen installation includes the Oracle Instant Client.

1.11.2 New attributes in Release 11.2.1.0.0

See Oracle TimesTen In-Memory Database Reference for more information.

  • DDLCommitBehavior

  • PLSQL, PLSQL_MEMORY_ADDRESS, PLSQL_MEMORY_SIZE, PLSCOPE_SETTINGS, PLSQL_OPTIMIZE_LEVEL, PLSQL_TIMEOUT. These attributes are available only on Linux platforms.

  • CacheGridEnable and CacheGridMsgWait

  • DisableDynamicLoad and DynamicLoadErrorMode

  • OracleNetServiceName replaces OracleID.

  • TCP_Port2, TTC_FailoverPortRange, TTC_Server2, TTC_Server_DSN2

1.11.3 Clusterware attributes in Release 11.2.1.0.0

See Oracle TimesTen In-Memory Database Reference and Oracle TimesTen In-Memory Database TimesTen to TimesTen Replication Guide for more information.

  • The TimesTen integration with Oracle Clusterware requires a cluster.oracle.ini file that contains clusterware attributes.

1.11.4 New built-in procedures in Release 11.2.1.0.0

See Oracle TimesTen In-Memory Database Reference for more information.

  • ttCacheConfig

  • ttCacheDbCgStatus

  • ttCacheDDLTrackingConfig

  • ttGridAttach

  • ttGridCreate

  • ttGridDestroy

  • ttGridDetach

  • ttGridInfo

  • ttGridNameSet

  • ttGridNodeStatus

  • ttPLSQLMemoryStats

1.11.5 New utilities in Release 11.2.1.0.0

See Oracle TimesTen In-Memory Database Reference for more information.

  • ttCWAdmin

1.11.6 Utilities enhancements in Release 11.2.1.0.0

See Oracle TimesTen In-Memory Database Reference for more information.

  • ttIsql has been enhanced to support PL/SQL operations. It has new commands for creating and executing PL/SQL blocks, reporting PL/SQL errors and returning server output. It also includes enhanced parameter handling. ttIsql has new commands to list PL/SQL objects and other database objects such as tables, sequences and views. These metadata commands make it possible to list user-owned objects separately from system-owned objects.

  • TimesTen supports parallel operation for the ttMigrate utility.

  • ttRepAdmin -showstatus has a new asynchronous writethrough cache monitoring option: -awtmoninfo.

  • ttSchema has new options to display PL/SQL program units.

1.11.7 New system tables and views in Release 11.2.1.0.0

See Oracle TimesTen In-Memory Database SQL Reference for more information.

  • SYS.ALL_SYS_PRIVS, SYS.DBA_SYS_PRIVS and SYS.USER_SYS_PRIVS

  • SYS.ALL_TAB_PRIVS, SYS.DBA_TAB_PRIVS and SYS.USER_TAB_PRIVS

  • SYS.ALL_USERS, SYS.DBA_USERS and SYS.USER_USERS

  • SYS.ALL_ARGUMENTS, SYS.DBA_ARGUMENTS and SYS.USER_ARGUMENTS

  • SYS.ALL_DEPENDENCIES, SYS.DBA_DEPENDENCIES and SYS.USER_DEPENDENCIES

  • SYS.ALL_ERRORS, SYS.DBA_ERRORS and SYS.USER_ERRORS

  • SYS.ALL_IDENTIFIERS, SYS.DBA_IDENTIFIERS and SYS.USER_IDENTIFIERS

  • SYS.ALL_OBJECTS, SYS.DBA_OBJECTS and SYS.USER_OBJECTS

  • SYS.ALL_PLSQL_OBJECT_SETTINGS, SYS.DBA_PLSQL_OBJECT_SETTINGS and SYS.USER_PLSQL_OBJECT_SETTINGS

  • SYS.ALL_PROCEDURES, SYS.DBA_PROCEDURES and SYS.USER_PROCEDURES

  • SYS.ALL_SOURCE, SYS.DBA_SOURCE and SYS.USER_SOURCE

  • SYS.ALL_STORED_SETTINGS, SYS.DBA_STORED_SETTINGS and SYS.USER_STORED_SETTINGS

  • SYS.DBA_OBJECT_SIZE and SYS.USER_OBJECT_SIZE

  • SYS.PUBLIC_DEPENDENCY

2 Platforms

Environment 32-bit 64-bit Compiler notes
Microsoft Windows 2000, Windows XP, Windows Vista and Windows Server 2003 and 2008 for Intel IA-32 and EM64T and AMD64 CPUs. Yes Yes Compiled and tested with Intel 8.

VS .NET 2003, VS 2005 and VS 2008 are also supported.

To use the TimesTen debug library, you must use VS .NET 2003.

Asianux 2.0 and 3.0 for Intel IA-32 and EM64T and AMD64 CPUs. Yes Yes Compiled and tested with Intel 9.1.

gcc 3.4.6 and 4.1.0 are also supported.

Solaris 9 and 10 for UltraSparc CPUs. Yes Yes Compiled with Sun Studio 11.

Shipped with a TimesTen client library compiled with gcc 3.2.3.

Solaris 10 for x86-64. No Yes Compiled with Sun Studio 10. Tested on AMD64 CPUs.
SuSE LINUX Enterprise Server 10 for Intel IA-32 and EM64T and AMD64 CPUs. Yes Yes Compiled and tested with Intel 9.1.

gcc 3.4.6 and 4.1.0 are also supported.

SuSE LINUX Enterprise Server 10 for Itanium2 CPUs. No Yes Compiled and tested with Intel 9.1.

gcc 3.4.5 and 4.1.0 are also supported.

Red Hat Enterprise Linux 4 and 5 for Intel Itanium2 CPUs. No Yes Compiled and tested with Intel 9.1.

gcc 3.4.5 and 4.1.0 are also supported.

Red Hat Enterprise Linux 4 and 5 for Intel IA-32 and EM64T and AMD64 CPUs. Yes Yes Compiled and tested with Intel 9.1.

gcc 3.4.6 and 4.1.0 are also supported.

Oracle Enterprise Linux 4 and 5 for Intel IA-32 and EM64T and AMD64 CPUs. Yes Yes Compiled and tested with Intel 9.1.

gcc 3.4.6 and 4.1.0 are also supported.

Monta Vista Linux Carrier Grade Edition Release 4.0 and 5.0 for Intel IA-32, EM64T and AMD64 CPUs. Yes Yes Compiled and tested with Intel 9.1.

gcc 3.4.6 and 4.1.0 are also supported.

HP-UX 11i v2 and 11iv3 for PA-RISC. Yes Yes Compiled and tested with the HP compiler.
HP-UX 11i v2 and 11iv3 for Itanium2. Yes Yes Compiled and tested with the HP compiler.
AIX 5L 5.3 and 6.1 for POWER CPUs. Yes Yes Compiled and tested with the AIX compiler.

TimesTen is supported on Oracle VM guest x86 and x86-64 operating systems on Oracle Enterprise Linux 4 and 5 or Red Hat Enterprise Linux 4 and 5 systems.

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:

If any of these items is missing, contact Oracle TimesTen support. See "Contacting support".

5 Advance notice

This section lists deprecated and removed items and desupport of platforms, Oracle releases, JDK releases and compilers.

5.1 Deprecated items in Release 11.2.1.1.0

  • LogBuffSize attribute. Use LogBufMB instead. The units have changed from kilobytes to megabytes.

  • Including sequence values in a CREATE VIEW statement is deprecated.

5.2 Removed items in Release 11.2.1.1.0

  • Authenticate attribute

  • It is not possible to set the Logging attribute to 0. The only possible value is 1.

  • ttCommitLSN built-in procedure

  • ttLogBufPrint built-in procedure

  • ttuser built-in procedure

  • ttUserPrivileges built-in procedure

  • The -at and -af options of the ttXactLog utility have been removed.

5.3 Deprecated items in Release 11.2.1.0.0

  • The GroupRestrict and Authenticate attributes are deprecated. They are scheduled to be removed in a later release.

5.4 Removed items in Release 11.2.1.0.0

  • SELECT FOR UPDATE ON ORACLE SQL statement

  • DURATION clause in CREATE CACHE GROUP and ALTER CACHE GROUP SQL statements

  • The ttCacheAgingMemoryThresholdSet and ttCacheAgingIntervalSet built-in procedures

  • The TransparentLoad attribute and the TT_TRANSPARENT_LOAD ODBC option have been removed. Use dynamic cache groups instead.

  • The OracleID attribute has been removed. Use OracleNetServiceName instead.

  • The ExclAccess attribute has been removed.

  • The Cache Administrator (web-based user interface) has been removed.

  • TimesTen no longer supports these platforms: AIX 5.2, HP-UX 11i v1, RedHat 3, Solaris 8 (Sparc), Solaris 10 x86 32-bit, SuSE Linux 9 and TRU 64.

  • TimesTen no longer supports Oracle9i or Oracle 10.1.0.x.

  • TimesTen no longer supports JDK 1.4.x on all platforms. Also, classes15.jar and classes16.jar have been removed.

  • TimesTen no longer supports the gcc 3.2.3 compiler, Visual C++ 6.0, Visual Studio .NET 2002 and Sun Studio 10.

5.5 Deprecated items in Release 7.0.3.0.0

  • The ttCacheMonitor built-in procedure is deprecated. It is supported for backward compatibility only and is scheduled to be removed in a later release.

5.6 Deprecated items in Release 7.0.1.0.0

These items are supported for backward compatibility only and are scheduled to be removed in a later release.

  • WITH LIMIT clause in CREATE CACHE GROUP and ALTER CACHE GROUP SQL statements

  • ttCachePolicy built-in procedure. Use ttCachePolicySet instead.

  • Restricted cache groups

  • The ttRepPolicy built-in procedure is deprecated. Use ttRepPolicySet instead.

  • The ttXlaDeleteBookmark built-in procedure is deprecated. Use ttXlaBookmarkDelete instead.

6 Known problems and limitations

This section contains known problems and limitations.

6.1 Installing and uninstalling TimesTen

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

  • For releases 11.2.1.5 and later, you must relink applications on AIX after installing TimesTen. Failure to do so results in an application execution error similar to the following:

    Could not load program _application_:
    Dependent module _tt_inst_dir_/lib/libtten.a(libtten.so) could not be loaded.
    File _tt_inst_dir_/lib/libtten.a is not an archive or the file could not be read properly.
    System error: Exec format error
    
  • 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.

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

  • If you are installing Oracle TimesTen on a new 64-bit RedHat Linux system, you may find that it is not enabled for 32-bit applications. According to the Redhat Enterprise Linux installation guide: 'Users of AMD64, Intel(R) EM64T, and Itanium systems who want support for developing or running 32-bit applications are encouraged to select the Compatibility Arch Support and Compatibility Arch Development Support packages to install architecture specific support for their systems.'

  • When uninstalling TimesTen on Windows, the oci.dll file shipped with the TimesTen installation sometimes cannot be removed because it is in use by a process that is not part of TimesTen.

6.2 Upgrading TimesTen

  • The ttMigrate utility cannot migrate foreign key dependencies between objects owned by different users to TimesTen release 11.2.1.1.0 and later 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.1.0 and later 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.3 Log Files

  • Support log files do not rotate properly on Windows operating systems. When the MaxSupportLogFiles limit is reached, new log files should overwrite old files in the order they were created. On Windows systems, new log files randomly overwrite the old files.

6.4 PL/SQL

  • The use of PL/SQL ref cursors in applications linked using the Windows Driver Manager is not supported. Windows applications that wish to use ref cursors must link with the TimesTen direct or client ODBC driver.

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

  • The EXECUTE IMMEDIATE statement cannot be used to execute a PL/SQL anonymous block.

  • 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' or 'utl_file_temp' for the location parameter string.

  • When using Java 6 on 32-bit AIX, connections to a PL/SQL-enabled database using the TimesTen direct driver may fail because of a memory address conflict between the Java memory segment and the TimesTen PL/SQL memory segment. Such a failure is reported as error TT8517:

    SQLException: [TimesTen][TimesTen 11.2.1.4.0 ODBC Driver][TimesTen]TT8517: Cannot attach PL/SQL shared memory; PLSQL_MEMORY_ADDRESS not valid or already in use
    

    The conflict can be resolved by specifying a smaller Java memory maximum size using the -Xmx option to java or the IBM_JAVA_OPTIONS environment variable. For example: java -Xmx64M. Use java -verbose:sizes to see the current default java memory size.

    An alternative solution is to explicitly set the TimesTen PLSQL_MEMORY_ADDRESS connection attribute to a value that does not conflict with the java segment. Potential good values for PLSQL_MEMORY_ADDRESS may include 0xe0000000 and 0xa0000000, depending on the environment and other factors. See the AIX documentation for a complete discussion of how Java uses memory on AIX.

6.5 TimesTen OCI support

See "Oracle Call Interface Support" in Oracle TimesTen In-Memory Database C Developer's Guide for detailed information about known problems and limitations.

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

  • When an INSERT or UPDATE statement is executed which has an array of structures bound as parameters (using OCIBindArrayofStruct), the first execution of the statement succeeds. Subsequent executions may result in a numeric overflow error, a uniqueness constraint violation or a truncation error.

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

  • The Oracle Pro*C pre-compiler can fail when the path length to the pre-compiler is greater than 100 characters. The work-around is to use either a relative path or a symbolic link that has a path length less that 100 characters.

  • When a variable is declared as long long on 32-bit Solaris and 32-bit HP-UX platforms, Pro*C generates its size as long.

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

See "TimesTen Support for Oracle Pro*C/C++ Precompiler" in Oracle TimesTen In-Memory Database C Developer's Guide for detailed information about known problems and limitations.

6.7 JDBC

  • On HPUX 11 systems, 32-bit JDBC client and direct drivers cannot co-exist in one JVM due to some problems with loading shared libraries.

  • If a JDBC application running in a time zone that has Daylight Savings Time selects a non-existent 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'.

6.8 JMS/XLA

  • TimesTen does not generate an XLA (Transaction Log API) record for CREATE MATERIALIZED VIEW LOG operations. See Oracle TimesTen In-Memory Database C Developer's Guide for other details about XLA.

  • 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 it is not supported. See Oracle TimesTen In-Memory Database Java Developer's Guide for other details.

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

6.9 Cache grid

  • If an insert of a new instance in one grid node does not propagate to the Oracle database before a dynamic load operation for the same instance is executed on a child table in another grid node, then the dynamic load operation results in "0 rows found".

6.10 IMDB Cache

  • When trying to create a global cache group, the data store can become invalidated if there are more than 15 errors in the cache group definition. This only happens when connecting to the 11.2.0.1 Oracle Server. The workaround is to either use an Oracle Server version 10g, 11g or a 11gR2 version higher than 11.2.1.0.1.0.

  • There is a known issue (BugDB #9359437) that during a FLUSH CACHE GROUP operation, TimesTen may lock the tables and rows in the cache group tables. This can cause blocking or a deadlock if your application attempts to update the rows concurrently.

  • If an application performs more than one UNLOAD BY ID operation on a cache group, there is a 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.

  • CREATE, ALTER and DROP CACHE GROUP statements are not supported in serializable isolation mode.

  • If DDL tracking is enabled on the Oracle database, destroying a data store that has cache groups may result in the DDL trigger on a cached table not being dropped from the Oracle database. The user must manually drop each of these triggers using the DROP TRIGGER statement on the Oracle database. The DDL trigger name of a table with an Oracle object with identifier X is TT_X_DDL_T. The object identifier of an Oracle table can be retrieved from the V$ALL_OBJECTS view on the Oracle database.

  • For autorefresh cache groups, after a transaction that executes several DML operations on an Oracle base table (for example in a bulk insert), we recommend that you coalesce the autorefresh log table index (the logseq column in the change table). Use ALTER INDEX index_name COALESCE.

  • Oracle In-Memory Database Cache supports specific Oracle server releases. See the Oracle TimesTen In-Memory Installation Guide for a list of supported servers.

  • 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 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.3 or above.

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

  • Local dynamic asynchronous writethrough (AWT) cache groups have a problem when there are update or delete operations on a dynamically loaded row that is waiting to be propagated to Oracle. Such operations may result in dynamically loading the same row again.

    There are 3 scenarios in which such a situation can arise. For example:

    • A delete of a dynamically loaded row on TimesTen followed by a select operation results in a dynamic load because the row no longer exists in TimesTen. The application should use ttRepSubscriberWait to ensure that the changes are propagated to Oracle. The application should also use ttRepSubscriberWait for update operations to ensure data integrity.

    • When time-based aging is configured, a dynamically loaded row is deleted at the end of the time interval. To avoid reloading the same row while any changes made to this rows are propagated to Oracle, the aging interval should be set to a large enough interval to ensure that changes to dynamically loaded rows are propagated to Oracle.

    • When LRU aging is configured, the aging threshold should be set large enough so that any changes to the rows that are aging out are pushed to Oracle before they are dynamically loaded again.

    Use a global AWT cache group if it is appropriate for your application. Global AWT cache groups resolve these problems automatically.

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

  • Set SQLNET.SEND_TIMEOUT and SQLNET.RCV_TIMEOUT to a value large enough to avoid unnecessary timeouts during normal operations. For example, setting each parameter to 100 seconds forces any communication call from TimesTen to Oracle to time out within 200 seconds.

  • With Passthrough=3, if a JDBC application calls setTimestamp on a passthrough statement when binding more than one field, the session NLS_TIMESTAMP_FORMAT is lost. You can work around this issue by changing the SQL statement to use TO_TIMESTAMP(?, 'syyyy-mm-dd hh24:mi:ss.ff9') and TO_DATE(?,'syyyy-mm-dd hh24:mi:ss').

  • Nullable foreign keys can result in rows without a corresponding parent row. The rows may become stale and 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.

  • When using IMDB Cache, the following JDBC methods are not supported with Oracle pass-through modes 1 through 3: PreparedStatement.setAsciiStream, PreparedStatement.setUnicodeStream, PreparedStatement.setBinaryStream, PreparedStatement.setCharacterStream.

6.11 TimesTen integration with Oracle Clusterware

  • When you perform one of these actions:

    1. Answer the prompt for which host should be designated as the host for the active data store.

    2. 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 data store with the specified DSN exists on the host for the standby data store, the old data store will be destroyed and replaced with the data store that is created by the ttCWAdmin -create command.

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

  • The TimesTen integration with Oracle Clusterware is not available on these platforms: Solaris 32-bit SPARC, HP-UX PA-RISC, HP-UX Itanium 32-bit, AIX 32-bit, Linux Itanium and Windows 64-bit.

  • Spurious internal errors in the logs may be generated during TimesTen Clusterware operations. These errors are benign. Run ttCWAdmin -status to verify the status of the system.

6.12 TimesTen to TimesTen Replication

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

  • Access to the NEXTVAL SQL function of a sequence is not supported in a query on a standby node of an active standby pair.

  • 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 2 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 data stores cause a predicate to be evaluated and generate an exception only on the receiving data store. 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.

  • For replication to work efficiently, it must be able to quickly translate host names of peers into IP addresses. For this to happen efficiently on Windows, make sure that a Windows machine is set up to query either a valid WINS server or a valid DNS server that has correct information about the hosts on the network. In the absence of such servers, static HOST-to-IP entries can be entered in either a %windir%\system32\drivers\etc\hosts or %windir%\system32\drivers\etc\lmhosts file.

    Without any of these four options, a Windows machine resorts to broadcasting, which is extremely slow, to detect peer nodes. Also, if the Windows machine cannot communicate with a defined WINS server or DNS server, or if incorrect information is stored on those servers, the hostname resolution will be extremely slow. Use the ping command to test whether a host can be efficiently located. The ping command should immediately respond if host name resolution is set up properly.

  • When changing the state of a replication receiver (that is, to start or stop) when replication has been configured to use a secondary IP address, a misconfiguration of the /etc/hosts file may cause ttRepAdmin to print the error: Alter replication with 'ALTER REPLICATION...port 0' failed: TT0907: Unique constraint (REPSTORESIX) violated. This error is caused by replication not recognizing the local data store. This situation can be confirmed by the following query:

    SELECT * FROM ttrep.ttstores WHERE is_local_store <> 0x0;
    

    If this query returns either no rows, or a row with the data store's main host name set to the result of the hostname command rather than the host you specified, you have encountered a configuration problem with /etc/hosts.

    To correct the problem, you must make sure that the special host name you are using is defined in /etc/hosts and that there is an IP address in common between your special host name and the result of the hostname command.

    Example: your hostname command returns softswitch and your machine has two Ethernet cards with the addresses 10.10.15.136 and 192.168.15.136. Then the IP addresses defined for softswitch should include both IP addresses.

6.13 SQL*Plus

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

6.14 SQL, utilities and procedures

  • Executing a query against multiple outer joins with the set operators UNION, MINUS or INTERSECT can result in abnormal termination. To work around this problem, define a view to encapsulate each of the outer joins. Then, execute the query against the views.

  • If privileges on tables created by one user are revoked for a different user, the associated materialized views are marked invalid. Users are allowed to select from an invalid asynchronous materialized view without error. Refreshing an invalid asynchronous materialized view fails with an error. When the detail table for an invalid synchronous materialized view is updated, the materialized view is not updated. Users receive an error when they attempt to select from an invalid synchronous materialized view.

    To re-validate an invalid materialized view, you must drop and then recreate it

    In the following example, U2.MV1 is a synchronous materialized view and U2.MV2 is an asynchronous materialized view.

    To create the following materialized views, user U2 must have SELECT privileges on U1.T. Also the user executing the statement needs CREATE MATERIALIZED VIEW privileges and user U1 needs CREATE TABLE privileges. For more information, see the CREATE MATERIALIZED VIEW statement in the Oracle TimesTen In-Memory Database SQL Reference.

    CREATE MATERIALIZED VIEW U2.MV1 AS SELECT * FROM U1.T 
    CREATE MATERIALIZED VIEW U2.MV2 REFRESH FAST NEXT SYSDATE AS SELECT * FROM  U1.T
    

    If at some later point user U2 loses SELECT on U1.T (for example, with the REVOKE SELECT ON U1.T FROM U2 statement), then both of these materialized views become invalid.

    Now that the synchronous materialized view U2.MV1 is invalid, users attempting to select from it receive an error. Now that the asynchronous materialized view U2.MV2 is invalid, users can select with it but any attempt to REFRESH it causes an error.

    Even if user U2 is re-granted select on U1.T, both U2.MV1 and U2.MV2 remain invalid. The only way to make U2.MV1 and U2.MV2 valid again is to drop and re-create them.

  • When using scalar functions that accept TIME, DATE or TIMESTAMP data types as arguments, you must prefix the function with a literal indicating the data type. For example:

    SELECT GREATEST (TIME '10:10:10', TIME '12:12:12' ) FROM DUAL; 
    

    If you do not specify the datetime literal, TimesTen treats the data type as CHAR. Functions that accept datetime literals as arguments are: GREATEST, LEAST, ROUND and ADD_MONTHS.

  • On HP-UX 32-bit and 64-bit platforms, using the ADD_MONTH function causes a segmentation violation.

  • ROUND(date) is supported only for Oracle DATE types.

  • For ROUND (date), ADD_MONTHS, GREATEST, and LEAST functions: An assertion may occur during SQL statement preparation:

    • When using either a CASE expression or the DECODE function as one of the arguments to the function and the expected data type is datetime and

    • The return values of either the CASE expression or the DECODE function are NULL or parameter binding (i.e.: decode (x,0,NULL, ?)).

    For example:

    SELECT GREATEST (CASE WHEN 'A' LIKE '__' THEN? END, TIME '11:11:11') FROM DUAL;
    

    As a workaround, CAST the bind variable or NULL value to the expected datetime data type:

    SELECT GREATEST (CASE WHEN 'A' LIKE '__' THEN CAST (? as TIME) END, TIME '11:11:11') FROM DUAL;
    
  • The ORDER BY clause is not supported in a CREATE TABLE AS SELECT 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 (e.g. FRENCH_M), the LIKE operator may produce incorrect results when the pattern match wild-card symbols are applied to the space character.

  • SQL query strings 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 query so as to avoid non-database character set characters in the query text.

  • The TO_CHAR SQL function provides inconsistent results (truncates or rounds) when applied to BINARY_FLOAT and BINARY_DOUBLE values. TO_CHAR also truncates some NUMBER values that should instead be rounded.

  • The MERGE statement may not be used to insert into or update from a detail table of a materialized view.

  • If an application process on HP-UX is connected to a TimesTen data store and if the application process calls the ttXactIdRollback utility API for a transaction associated with the same data store, the call may fail due to the inability to attach to the shared memory segment for the data store.

  • The fourth argument (stats) to the ttOptSetColIntvlStats built-in procedure is a compound structure that cannot be parameterized using ODBC functions. This means that a statement such as the following fails:

    SQLPrepare(hstmt, “call ttOptSetColIntvlStats('t1', 'c1', 1, ?)”, SQL_NTS);
    

    Similarly, the ttIsql describe command fails because the “stats” argument does not have one of the known types.

6.15 TTClasses

  • A problem with TTClasses causes NCHAR / NVARCHAR2 parameters and columns to be bound incorrectly. This results in parameter and column data being transferred to/from the database without a null terminator.

6.16 Client/Server

  • In the Windows ODBC Client DSN Setup dialog box, when the Server Name refers to a UNIX host, 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 works normally.

  • When setting multiple client connections to a TimesTen server, do not set the stack size (using the -ServerStackSize daemon option or ServerStackSize attribute) to less than 64KB on 64-bit systems and 48KB for 32-bit systems. If the stack size is too small, the TimesTen Server dies with SIGSEGV on most UNIX system, or SIGBUS on HP-UX. The default stack size is 128 KB on 32-bit systems and 256 KB on 64-bit systems.

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

7 Contacting support

For information about obtaining technical support for Oracle TimesTen products, go to the following Web address: http://www.oracle.com/support/contact.html

8 Documentation Accessibility

Our goal is to make Oracle products, services, and supporting documentation accessible to all users, including users that are disabled. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Accessibility standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For more information, visit the Oracle Accessibility Program Web site at http://www.oracle.com/accessibility/.

Accessibility of Code Examples in Documentation

Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/support/contact.html or visit http://www.oracle.com/accessibility/support.html if you are hearing impaired.


Oracle TimesTen In-Memory Database Release Notes, Release 11.2.1

E13080-14

Copyright © 2010, 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 software or related documentation 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 USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software 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 which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

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