|Oracle® TimesTen In-Memory Database C Developer's Guide
Part Number E13066-10
This section summarizes new features and functionality of Oracle TimesTen In-Memory Database Release 11.2.1 that are documented in this guide, providing links into the guide for more information.
This release of the document provides information about TimesTen support for the ODBC
CALL for PL/SQL procedures and functions
TimesTen now supports
CALL syntax from any of its programming interfaces to call PL/SQL procedures and functions (in addition to
CALL syntax to call TimesTen built-in procedures, which was already supported).
User-specified parallel replication
For applications that have very predictable transactional dependencies and do not require the commit order on the replica database to be the same as that on the originating database, TimesTen supports parallel replication. This feature allows replication of multiple user-specified tracks of transactions in parallel.
TimesTen supports private and public synonyms (aliases) for database objects such as tables, views, sequences, and PL/SQL objects.
Quick Start demos
This release includes an optional Quick Start feature with introductory information, tutorials, and new or reworked demo applications. Note that the demos have mostly the same names as in earlier releases, but in a different location.
See "About the TimesTen C demos" and
/quickstart.html in your installation.
Oracle Call Interface (OCI) support
OCI is an API that provides functions you can use to access the database server and control SQL execution. OCI supports the data types, calling conventions, syntax, and semantics of the C and C++ programming languages. You compile and link an OCI program much as you would any C or C++ program. There is no preprocessing or precompilation step.
The Oracle Pro*C/C++ Precompiler enables you to embed SQL statements or PL/SQL blocks directly into C or C++ code. You use a precompilation step to convert the Pro*C/C++ source file into a C or C++ source file.
Perhaps the most significant overall change to previous functionality in this release is access control. TimesTen has new features to control database access with object-level resolution for database objects such as tables, views, materialized views, and sequences. This also affects access to certain TimesTen built-in procedures, utilities, and connection attributes.
See "Considering TimesTen features for access control". For general information, see "Managing Access Control" in Oracle TimesTen In-Memory Database Operations Guide.
Discussion of binding parameters includes new support for binding
IN OUT parameters.
See appropriate subsections under "Binding parameters and executing statements".
TimesTen now supports either of two modes for binding duplicate parameters in a SQL statement. Use the
DuplicateBindMode general connection attribute to choose between the Oracle mode (now the default) and the traditional TimesTen mode.
REF CURSOR is a PL/SQL concept, where a REF CURSOR is a handle to a cursor over a SQL result set and can be passed between PL/SQL and an application.
Automatic client failover
Automatic client failover, used in High Availability scenarios when failure of a TimesTen node results in failover (transfer) to an alternate node, automatically reconnects applications to the new node. TimesTen provides features that allow applications to be alerted when this happens, so they can take any appropriate action.
To make its behavior consistent with OCI expectations and to avoid unwanted round trips between client and server, the TimesTen client library implementation of
SQLPrepare performs what is referred to as a deferred prepare, where the request is not sent to the server until required.
Parallel log manager
As a result of new multistrand functionality of the log manager, some terminology has changed in Chapter 5, "XLA and TimesTen Event Management," and Chapter 9, "XLA Reference." For discussion in those chapters, the term "log sequence number" (LSN) is replaced by "log record identifier". There are still LSNs, but in a more limited and specific context. Only some of what used to be called LSNs are still LSNs in the new usage. Names of functions, data structures, and so on where "LSN" appears are not changed due to backward compatibility considerations.
In particular, note that the multistrand functionality affects the
tt_XlaLsn_t structure used by XLA functions
ttXlaSetLSN. It also affects the
tt_LSN_t structure that is a field of the
ttXlaUpdateDesc_t structure. See "ttXlaGetLSN", "ttXlaSetLSN", and "ttXlaUpdateDesc_t".
Each row in a TimesTen database table has a unique identifier known as its rowid. TimesTen now supports Oracle-style rowids. An application can retrieve the rowid of a row from the
ROWID pseudocolumn. Rowids can be represented in either binary or character format.
DML returning (RETURNING INTO clause)
TimesTen now supports the
RETURNING INTO clause, referred to as DML returning, with an
DELETE statement to return specified items from a row that was affected by the action.
Execution time threshold for SQL statements
You can configure TimesTen to write a warning to the support log and throw an SNMP trap when the execution of a SQL statement exceeds a specified time duration, in seconds. This feature was added in a 7.0.x maintenance release but not documented in this manual. Note that this feature is similar to but differs from the previously existing timeout value for SQL statements.
"T-tree" indexes are now referred to as "range" indexes.
C utility function changes
ttRepDuplicateEx function in particular is affected by access control. See "ttRepDuplicateEx".
XLA replicated bookmarks
If you are using an active standby pair replication scheme, you now have the option of using replicated bookmarks. For a replicated bookmark, operations on the bookmark are replicated to the standby database as appropriate. This allows more efficient recovery of your bookmark positions in the event of failover.
See the section on replicated bookmarks under "About XLA bookmarks".
Additional XLA changes
Use of XLA in non-persistent mode is discouraged. Use the persistent mode.
There is a new XLA type conversion function for rowids,
XLA indicates whether an update was generated as part of a cascading delete or aging operation, through new values for the
flags field in the