ヘッダーをスキップ

Oracle TimesTen In-Memory Databaseアーキテクチャ概要 リリース6.0 B25763-01 |
| 目次 | 索引

前へ | 次へ |

## TimesTenのODBCおよびJDBC API

TimesTenの実行時アーキテクチャがODBCおよびJDBC APIを介して接続をサポートすることで、アプリケーションは標準データ・アクセス言語としてSQL-92を使用して、TimesTenデータにアクセスできます。最も一般的に使用されているデータベース・システムに対して、ODBCとJDBCはベンダーに依存しない標準インタフェースを提供します。このため、これらは多くのDBMSベンダーによってサポートされ、またDBMSアプリケーション開発者によって幅広く採用されています。

図3.5 TimesTenのODBCおよびJDBC API

TimesTenでは、TimesTen固有の処理に対して、ODBCとJDBCの標準機能を拡張した組込みプロシージャを提供します。また、特別なAPIも提供して、分散トランザクションの管理やトランザクション・ログの監視を行うアプリケーションをサポートします。

この項の後半では、次の項目について説明します。

- SQL-92標準
- TimesTen組込みプロシージャ
- 分散トランザクション処理（DTP）API
- トランザクション・ログAPI

## SQL-92標準

TimesTenはSQL-92標準をサポートしており、TimesTen Data Managerはこれを介して、完全なリレーショナル・セマンティクスを実現します。アプリケーションは、ODBCまたはJDBCインタフェースを介して、SQL文をTimesTenに渡します。

TimesTenのSQLサポートには、データベース・オブジェクトを定義する標準のデータ定義言語（DDL）の文（CREATE TABLE、ALTER TABLE、DROP TABLEなど）と、データベース内のデータの問合せと操作を行うデータ操作言語（DML）の文（SELECT、INSERT、UPDATE、DELETEなど）が含まれます。

TimesTenのSQL式には、算術と文字列関数（MOD、CONCAT、UPPER）、変換関数（TO_DATE、TO_CHAR）、および集計関数（AVG、COUNT、MAX、MIN、SUM）が含まれます。副問合せが、SELECT、UPDATEおよびDELETEの述部で使用されることもあります。TimesTenは、ROWIDとSEQUENCEをサポートします。MATERIALIZED VIEW機能は、ビュー表に同期式で変更を伝播します。SQL構文に対するTimesTen固有のFIRST 'n'行拡張機能によって、最初の数行後にSELECT/UPDATE/DELETEを停止できます。SELECTサポートには、GROUP BY、HAVINGおよびORDER BYが含まれます。

また、TimesTenは拡張SQLを提供して、「レプリケーション」や「キャッシュ・グループ」で説明する、キャッシュ・グループ、レプリケーション構成などのTimesTen特有の機能もサポートします。

## TimesTen組込みプロシージャ

TimesTenでは、ODBCおよびJDBCの標準機能を拡張した組込みプロシージャを提供して、チェックポイントの開始、ロック・レベルの設定、ステータス情報の取得など、TimesTen固有の操作をアプリケーションでプログラム制御できるようにします。TimesTen組込みプロシージャは、ODBCまたはJDBC APIを介して呼び出されます。TimesTenはユーザー定義のストアド・プロシージャをサポートしません。

## 分散トランザクション処理（DTP）API

TimesTenでは、X/Open XA仕様とそのJava派生機能であるJavaトランザクションAPI（JTA）を実装しています。

TimesTenのXAインタフェースは、分散トランザクション処理（DTP）環境でトランザクション・マネージャが使用するために実装されています。これらのインタフェースを使用することで、新しいトランザクション・マネージャを作成して、あるいは既存のトランザクション・マネージャを適用して、TimesTenリソース・マネージャと連携した処理を実現できます。

TimesTenのJava JTAインタフェースは、Javaアプリケーション、アプリケーション・サーバー、トランザクション・マネージャを有効にして、TimesTenリソース・マネージャをDTP環境で使用するために実装されています。

図3.6に、X/Open DTPモデルによって定義されるインタフェースを示します。

図3.6 分散トランザクション処理モデル

DTPモデルでは、トランザクション・マネージャが、各グローバル・トランザクションを複数のブランチに分割し、それらを個別のリソース・マネージャに分散します。TimesTen XAのコンテキストでは、リソース・マネージャは、TimesTenデータ・ストアの集まり、またはXAをサポートする他の商用データベースと結合したデータ・ストアである可能性があります。

図3.6に示すように、アプリケーションは、TXインタフェースを使用して、グローバル・トランザクションをトランザクション・マネージャに伝えます。トランザクション・マネージャは、グローバル・トランザクションをブランチに分割し、XAインタフェースを使用して各トランザクション・ブランチと適切なリソース・マネージャとの調整を行います。

TXおよびXAインタフェースによって提供されるグローバル・トランザクションの制御は、ネイティブのODBCおよびJDBCインタフェースによって提供されるローカル・トランザクションの制御とは異なります。アプリケーションでは、ローカルおよびグローバル・トランザクションに対して個別の接続を維持するか、あるいは同じ接続でローカルおよびグローバル・トランザクションの両方を開始することができます。

注意: TimesTenのX/Open XA仕様の実装はかなり汎用的であり、XAのセマンティクスは分散トランザクションのパフォーマンスを制限するので、必要な場合にのみ使用する必要があります。

## トランザクション・ログAPI

トランザクション・ログAPI（XLA）によって、アプリケーションはローカル・データ・ストアの特定の表に加えられた変更を検出できます。また、XLAが提供する関数をアプリケーションで使用して、あるデータ・ストアで検出した変更を別のデータ・ストアに適用することもできます。詳細は、「トランザクション・ログAPI」を参照してください。