ODBCドライバおよびJDBCドライバを使用したTimesTenへの接続
アプリケーションは、様々なインタフェースおよびドライバを使用して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 Data Manager 22.1ドライバ。 |
Linux Solaris x86 Soliaris Sparc |
デバッグ |
TimesTen Data Manager 22.1 Debugドライバ。 |
Linux Solaris x86 Soliaris Sparc |
クライアント |
TimesTenクライアント22.1ドライバ。 |
AIX |
本番 |
TimesTen Data Manager 22.1ドライバ。 |
AIX |
デバッグ |
TimesTen Data Manager 22.1 Debugドライバ。 |
AIX |
クライアント |
TimesTenクライアント22.1ドライバ。 |
macOS |
クライアント |
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パッケージのインタフェースのサポートを参照してください。