ODBCドライバおよびJDBCドライバを使用したTimesTenへの接続

アプリケーションは、様々なインタフェースおよびドライバを使用してTimesTenデータベースにアクセスします。

図1-1 アプリケーションからTimesTenデータベースへのアクセスを表す図

図1-1の説明が続きます
「図1-1 アプリケーションからTimesTenデータベースへのアクセスを表す図」の説明
  • オープン・ソース言語は、Oracle Database Programming Interface for C (ODPI - C)を通じてTimesTenと対話します。現在サポートされている言語はPythonおよびNode.jsです。『Oracle TimesTen In-Memory Databaseオープン・ソース言語サポート・ガイド』はじめにを参照してください。

  • Cアプリケーションでは、TimesTenのダイレクト・ドライバまたはクライアント/サーバー・ドライバとリンクするか、TimesTenドライバ・マネージャとリンクするか、汎用ドライバ・マネージャとリンクするか、TimesTen ODBCドライバに間接的にアクセスするOCIまたはPro*C/C++ APIを使用して、TimesTenと対話します。

  • Javaアプリケーションでは、TimesTen JDBCドライバを使用してTimesTenと対話します。

  • C++アプリケーションでは、ODBCを介して直接、TimesTenで提供されるクラス・セット(TTClasses)を介して、またはTimesTen ODBCドライバに間接的にアクセスするOCIまたはPro*C/C++インタフェースを使用して、TimesTenと対話できます。

  • C#アプリケーションはTimesTenデータベース用のOracle Data Provider for .NETサポートを介してTimesTenと対話します。

これらすべてのインタフェースでは、最終的にTimesTen ODBCドライバを使用してTimesTenデータベースにアクセスします。これらのインタフェースでは、TimesTen ODBCダイレクト・ドライバ、TimesTen ODBCクライアント・ドライバ、TimesTenドライバ・マネージャまたは汎用ODBCドライバ・マネージャを使用できます。『Oracle TimesTen In-Memory Databaseイントロダクション』TimesTen接続オプションを参照してください。

次の項では、TimesTenデータベースの定義方法について説明します。

TimesTen ODBCドライバを使用した接続

アプリケーションは、TimesTen ODBCドライバを使用してTimesTenデータベースに接続できます。

TimesTenには、次のTimesTen ODBCドライバが含まれています。

  • TimesTen Data Managerドライバ: 直接接続のアプリケーションで使用するTimesTen ODBCドライバ。

  • TimesTenクライアント・ドライバ: クライアント/サーバー・アプリケーションで使用するTimesTenクライアントODBCドライバ。

TimesTen ODBCドライバに直接リンクするアプリケーションでは(ダイレクト・ドライバにリンクしているか、クライアント・ドライバにリンクしているかにかかわらず)、リンクしているドライバのみ使用できます。TimesTen ODBCドライバに直接リンクするアプリケーションでは、同時に複数のデータベースに接続できます。TimesTenダイレクト・ドライバおよびクライアント・ドライバでは、複数のTimesTenデータベースへの複数の接続がサポートされています。

ノート:

このオプションの場合、ドライバ・マネージャにリンクする場合と比較すると、柔軟性は低くなりますがパフォーマンスは向上します。ただし、アプリケーションでは、直接接続とクライアント・サーバー接続の両方で接続するときにドライバ・マネージャを使用する必要があります。ドライバ・マネージャを使用する場合は、パフォーマンスと機能を最大化するために、汎用ODBCドライバ・マネージャよりもTimesTenドライバ・マネージャを使用してください。

TimesTenには、次の2つのバージョンのTimesTen Data Managerドライバ(ダイレクト・ドライバ)が含まれています。

  • 本番: ほぼすべてのアプリケーション開発およびすべてのデプロイメントには、本番バージョンのTimesTen Data Managerドライバを使用します。

  • デバッグ: デバッグ・バージョンのTimesTen Data Managerドライバは、TimesTenで問題が発生した場合にのみに使用します。このバージョンは、内部エラーのチェックも行うため、本番バージョンより処理が遅くなります。LinuxおよびUNIXの場合は、追加のデバッグ情報を表示するために、TimesTenデバッグ・ライブラリを-gオプションでコンパイルします。

WindowsでのTimesTen Classicのサポートのために、「Typical」または「Custom」設定を選択した後、TimesTen Client 22.1ドライバをインストールできます。

LinuxおよびUNIXの場合、インストール時に選択したオプションによっては、TimesTenによって、TimesTenクライアント・ドライバ、および本番バージョンとデバッグ・バージョンの両方のTimesTen Data Managerドライバがインストールされます。

表1-1に、LinuxおよびUNIXプラットフォーム用のTimesTen ODBCドライバを示します。

表1-1 LinuxおよびUNIXプラットフォーム用に提供されているODBCドライバ

プラットフォーム バージョン 場所および名前

Linux

Solaris x86

Solaris Sparc

本番

timesten_home/install/lib/libtten.so

TimesTen Data Manager 22.1ドライバ。

Linux

Solaris x86

Soliaris Sparc

デバッグ

timesten_home/install/lib/libttenD.so

TimesTen Data Manager 22.1 Debugドライバ。

Linux

Solaris x86

Soliaris Sparc

クライアント

timesten_home/install/lib/libttclient.so

TimesTenクライアント22.1ドライバ。

AIX

本番

timesten_home/install/lib/libtten.a

TimesTen Data Manager 22.1ドライバ。

AIX

デバッグ

timesten_home/install/lib/libttenD.a

TimesTen Data Manager 22.1 Debugドライバ。

AIX

クライアント

timesten_home/install/lib/libttclient.a

TimesTenクライアント22.1ドライバ。

macOS

クライアント

timesten_home/install/lib/libttclient.dylib

TimesTenクライアント22.1ドライバ。

ODBCドライバ・マネージャを使用した接続

アプリケーション・プロセスでTimesTenのダイレクト・ドライバとクライアント/サーバー・ドライバの両方を使用する場合は、ODBCドライバ・マネージャとリンクする必要があります。

  • TimesTenドライバ・マネージャは、このユースケース専用に設計された透過的でオーバーヘッドが少ないオプションです。TimesTenドライバ・マネージャは、すべてのTimesTen機能をサポートしています。『Oracle TimesTen In-Memory Database C開発者ガイド』TimesTenドライバ・マネージャの概要を参照してください。

  • または、アプリケーションを汎用ODBCドライバ・マネージャとリンクすることもできます。汎用ODBCドライバ・マネージャは、通常、パフォーマンスに大きな影響を与え、一部のTimesTen機能(XLA、ルーティングAPI、ユーティリティAPI、TimesTen ODBCの拡張機能など)の使用を妨げます。

TimesTenドライバ・マネージャと汎用ODBCドライバ・マネージャの両方が実行時にODBCドライバを動的にロードします。

TimesTen JDBCドライバおよびドライバ・マネージャを使用した接続

TimesTen JDBCドライバを使用すると、JavaアプリケーションからTimesTenにSQL文を実行し、結果を処理できるようになります。これは、Javaプログラミング言語でデータにアクセスする主要なインタフェースです。

図1-1に示すとおり、TimesTen JDBCドライバは、ODBCドライバを使用してTimesTenデータベースにアクセスします。このドライバは、JDBCメソッドごとに一連のODBC関数を実行して適切な処理を行います。JDBCはすべてのデータベース処理でODBCに依存するため、JDBCを使用する場合の最初のステップは、TimesTenデータベースおよびJDBCのかわりにTimesTenデータベースにアクセスするODBCドライバの定義になります。

TimesTen JDBC APIはネイティブ・メソッドを使用して実装され、TimesTenネイティブAPIにブリッジします。Javaには、異なるデータベースに接続する複数のドライバをサポートできるドライバ・マネージャが用意されています。JavaのDriverManagerクラスは、ロードされてJavaアプリケーションで使用可能なすべてのJDBCドライバを追跡します。このアプリケーションを使用すると、複数のドライバのロードおよび各ドライバへの個別接続を実行できます。たとえば、1つのアプリケーションでTimesTenクライアントJDBCドライバとOracleデータベースJDBCドライバを両方ともロードできます。その後、Javaアプリケーションは、TimesTenデータベースまたはOracleデータベースのいずれかにアクセスできます。

TimesTenでサポートされているJava関数のリストは、『Oracle TimesTen In-Memory Database Java開発者ガイド』java.sqlパッケージのインタフェースのサポートを参照してください。