主コンテンツへ
Oracle® TimesTen In-Memory Databaseオペレーション・ガイド
リリース18.1
E98635-05
  目次へ移動
目次
索引へ移動
Index

前
 
次
 

1 TimesTenデータベースへの接続

TimesTenデータベースは、表、ビュー、順序などのオブジェクトの集合です。TimesTenデータベースはSQL文を使用してアクセスし、操作できます。

TimesTen Classicでは、データベースが存在しない場合、インスタンス管理者がデータベースに接続する際に指定した接続属性を使用して、TimesTen Classicによってデータベースが作成されます。

TimesTen Scaleoutでは、アプリケーションがデータベースに接続する前に、データベースを作成して開きます。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースの管理に関する項を参照してください。

一度データベースを作成すると、次の処理を実行できます。

この章では、TimesTenデータベースへの接続を構成する方法について説明します。接続属性には、TimesTenデータベースの管理構成の詳細が含まれます。

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

図1-1に、アプリケーションで様々なインタフェースおよびドライバを使用して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 ODBCドライバと直接リンクしたり、Windows ODBCドライバ・マネージャとリンクしたり、ODBCドライバにアクセスするOCIまたはPro*C/C++インタフェースを使用して、TimesTenと対話します。

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

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

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

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

次の点について考慮します。

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


    注意:

    このオプションの場合、ドライバ・マネージャにリンクする場合と比較すると、柔軟性は低くなりますがパフォーマンスは向上します。

  • TimesTen ODBCドライバが別のTimesTenデータベース用である場合でも、アプリケーションは、同じアプリケーション内で複数のTimesTen ODBCドライバとリンクできます。アプリケーションが複数のTimesTen ODBCドライバをロードする場合、アプリケーションでWindows ODBCドライバ・マネージャなどのドライバ・マネージャを使用する必要があります。

    また、TimesTenダイレクト・ドライバおよびTimesTen Clientドライバの両方を使用する必要がある場合は、複数のドライバが必要になることがあります。

    Windows ODBCドライバ・マネージャは、実行時にODBCドライバを動的にロードします。ただし、ODBCドライバ・マネージャを使用する場合は、ランタイム・オーバーヘッドが増大し、アプリケーションのパフォーマンスに影響が出る場合があるため、ODBCドライバ・マネージャを使用する利点を十分検討してください。


    注意:

    ODBCドライバ・マネージャを使用しているアプリケーションで、XLAは使用できません。

TimesTenドライバ・マネージャを使用するアプリケーションのコンパイル方法の詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』のアプリケーションのコンパイルおよびリンクに関する説明、『Oracle TimesTen In-Memory Database Java開発者ガイド』のJavaアプリケーションのコンパイルに関する説明および『Oracle TimesTen In-Memory Database TTClassesガイド』のアプリケーションのコンパイルおよびリンクに関する説明を参照してください。

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

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

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

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

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

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

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

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

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

LinuxおよびUNIXの場合、インストール時に選択したオプションに応じて、TimesTenでは、TimesTen Clientドライバおよび本番バージョンとデバッグ・バージョンの両方の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 18.1ドライバ。

Linux

Solaris x86

Solaris Sparc

デバッグ

timesten_home/install/lib/libttenD.so

TimesTen Data Manager 18.1 Debugドライバ。

Linux

Solaris x86

Solaris Sparc

クライアント

timesten_home/install/lib/libttclient.so

TimesTen Client 18.1ドライバ。

AIX

本番

timesten_home/install/lib/libtten.a

TimesTen Data Manager 18.1ドライバ。

AIX

デバッグ

timesten_home/install/lib/libttenD.a

TimesTen Data Manager 18.1 Debugドライバ。

AIX

クライアント

timesten_home/install/lib/libttclient.a

TimesTen Client 18.1ドライバ。

macOS

クライアント

timesten_home/install/lib/libttclient.dylib

TimesTen Client 18.1ドライバ。


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ドライバを追跡します。このアプリケーションを使用すると、複数のドライバのロードおよび各ドライバへの個別接続を実行できます。たとえば、アプリケーションはTimesTen Client JDBCドライバとOracle Database JDBCドライバの両方をロードできます。その後、Javaアプリケーションは、TimesTenデータベースまたはOracleデータベースのいずれかにアクセスできます。

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

TimesTenデータベースを識別するためのデータソース名の指定

アプリケーションから接続する場合は、データソース名(DSN)を使用して、接続先となる特定のTimesTenデータベースを一意に識別します。具体的に、DSNは、TimesTenデータベースを識別する名前(文字列)で、データベースへの接続時に使用する接続属性の集まりです。Windowsの場合、データベースへのアクセスに使用するODBCドライバもDSNで指定します。

TimesTen Classicでは、ユーザーまたはアプリケーションのいずれかがDSNを指定しなかった場合や接続時にodbc.iniファイルに定義されていないDSNを指定した場合に使用可能なデフォルトDSNを定義することもできます。詳細は、「TimesTen ClassicでのデフォルトDSNの設定」を参照してください。


注意:

ユーザーが、権限のない接続属性(初期接続属性など)を持つDSNを使用しようとすると、エラーが表示されます。初期接続属性の権限の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

DSNではTimesTenデータベースを一意に識別しますが、データベースは複数のDSNが参照できます。このような一意のDSN間で異なる点は、データベースへの接続属性の指定です。これによって、1つのデータベースの様々な接続構成に対してわかりやすい名前が付きます。


注意:

ODBC標準に従うと、ある属性が接続文字列内に複数回出現する場合、指定されている最初の値が使用され、後続値は使用されません。

DSNには次の特性があります。

  • 最大長は32文字です。

  • 大文字と小文字は区別されません。

  • ()[]{},;?*=!@\/を除くASCII文字で構成されます。

  • TimesTenではDSNの一部としてスペースを使用することを推奨しません。DSNにスペースが含まれている場合、一部のTimesTenユーティリティはスペースに遭遇したところでDSNを切り捨てます。さらに、DSNをスペースで開始または終了したり、スペースのみで構成することはできません。

次の項では、DSNの構成および管理方法について説明します。

ユーザーDSNおよびシステムDSNの概要

DSNは2層の命名システムで解決され、TimesTenはまず定義済ユーザーDSN内で、次に定義済システムDSNでDSNの解決を試みます。

  • ユーザーDSNは、このDSNを作成したユーザーのみが使用できます。

    • Windowsの場合、ユーザーDSNは「ODBC データソース アドミニストレータ」の「ユーザー DSN」タブで定義します。

    • LinuxおよびUNIX上のTimesTen Classicの場合、ユーザーDSNはユーザーodbc.iniファイルで定義します。TimesTenによるこのファイルの特定では、まずファイルがODBCINI環境変数で指定されているかを検索します。ない場合、TimesTenは$HOME/.odbc.iniファイルを特定します。

      TimesTen Classicでは、TimesTen Data ManagerドライバとTimesTen Clientドライバの両方のデータソースを.odbc.iniファイルでサポートしています。

    • TimesTen Scaleoutの場合、ユーザーDSNは適切なデータベース定義および接続可能オブジェクト内で定義します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースの管理に関する項を参照してください。

    ユーザーDSNは、作成したユーザーのみが使用できますが、使用を制限されるのはDSN(文字列名およびその属性)のみです。基礎となるデータベースは、他のユーザーのユーザーDSNまたはシステムDSNで参照できます。

  • システムDSNは、TimesTenデータベースへの接続用にシステムDSNが定義されているシステム上ですべてのユーザーが使用できます。

    • Windowsの場合、システムDSNは、「ODBC データソース アドミニストレータ」の「システム DSN」タブで定義します。

    • LinuxおよびUNIX上のTimesTen Classicの場合、システムDSNは、システムodbc.iniファイルと呼ばれるsys.odbc.iniファイルで定義されます。

      TimesTenはシステムDSNファイルの場所を次の順序で特定します。

      • ファイルがSYSODBCINI環境変数で指定されている場合、そのファイルが特定されます。

      • インストールでは、ファイルはtimesten_home/conf/sys.odbc.iniにあります。

      • これらのいずれの場所でも見つからない場合、TimesTenはシステム上で/etc/odbc.iniファイルを参照します。

    • TimesTen Scaleoutの場合、システムDSNは適切なデータベース定義および接続可能オブジェクト内で作成します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースの管理に関する項を参照してください。

直接接続またはクライアント/サーバー接続用のDSNの定義

DSNは、ローカル・データベースやリモート・データベースを一意に識別するために作成します。直接接続またはクライアント/サーバー接続用に使用するDSNのタイプを次に説明します。

  • Data Manager DSN: LinuxまたはUNIXホストのローカル・データベースを指定するDSN。本番バージョンまたはデバッグ・バージョンのTimesTen Data Managerドライバを使用できます。

    Data Manager DSNは、パス名およびファイル名の接頭辞を使用してデータベースを参照します。データベースのパス名は、/disk1/databases/AdminDSなど、データベースが格納されているディレクトリの場所およびデータベースの接頭辞を示します。


    注意:

    このパス名および接頭辞は、ファイル名を定義するものではなく、データベースが格納されているディレクトリの場所およびすべてのデータベース・ファイルの接頭辞を示しています。データベースが使用する実際のファイルには、/disk1/databases/AdminDS.ds0などのファイル接尾辞が付きます。

    指定したTimesTenデータベースを参照するData Manager DSNは、データベースが存在するシステムと同じシステムで定義する必要があります。同じデータベースを複数のData Manager DSNで参照している場合、他のパス名で同じ場所を識別できても、必ず同一のデータベース・パス名を使用する必要があります。たとえば、1つのDSNでデータベースを参照するシンボリック・リンクを使用し、別のDSNで実際のパス名を使用することはできません。

  • クライアントDSN: クライアントDSNではリモート・データベースを指定し、TimesTenクライアントを使用します。クライアントDSNは、hostname、DSNのペアを指定して間接的にTimesTenデータベースを参照します(ここで、hostnameはTimesTenサーバーが実行しているサーバー・システムを表し、DSNはサーバー・ホスト上のTimesTenデータベースを指定するサーバーDSNを表します)。

  • サーバーDSN: サーバーDSNは常にシステムDSNとして定義され、クライアント・アプリケーションがアクセス可能な、そのサーバー上の各データベースのサーバー・システム上で定義されます。サーバーDSNの形式および属性は、Data Manager DSNのものと似ています。

LinuxおよびUNIXの場合、特定のユーザーが作成したすべてのユーザーDSN (クライアントDSNおよびData Manager DSNの両方)は、同じユーザーodbc.iniファイルで定義されます。同様に、すべてのシステムDSNは同じシステムodbc.iniファイルで定義されます。

次の表に、TimesTenでサポートされているDSNタイプ、ユーザーDSNとシステムDSNのいずれを作成するか、およびDSNの場所を示します。

DSNタイプ ユーザーDSNかシステムDSNか DSNの場所
Data Manager DSN ユーザーDSNまたはシステムDSN データベースがあるシステム上にあります。
クライアントDSN ユーザーDSNまたはシステムDSN 任意のローカルまたはリモート・システム上にあります。
サーバーDSN システムDSN データベースがあるシステム上にあります。

クライアントDSNおよびサーバーDSNの詳細は、「TimesTen ClientおよびTimesTen Serverの使用方法」を参照してください。

Data Manager DSNまたはサーバーDSN用の接続属性

LinuxおよびUNIXの場合、接続属性はodbc.iniファイルで指定します。odbc.iniファイルに指定されていない接続属性に対しては、デフォルト値が使用されます。

接続属性の一般的なタイプ:


注意:

すべての属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

  • データ・ストア属性は、データベースの作成時にデータベースに関連付け、その後の接続では変更できません。変更するには、データベースを破棄して作成しなおす必要があります。

    最もよく使用されるデータ・ストア属性は、次のとおりです。

    • DataStore: データベースのディレクトリ名およびファイル名の接頭辞。

    • LogDir: データベースのトランザクション・ログ・ファイルのディレクトリ名。トランザクション・ログ・ファイルとチェックポイント・ファイルを別々のファイル・システムに配置すると、システムのパフォーマンスを向上させることができます。

    • DatabaseCharacterSet: ストレージ・エンコーディングを定義する必須のキャラクタ・セット指定。

  • 初期接続属性は、TimesTenデータベースがメモリーにロードされる際に使用されます。初期接続属性の設定でデータベースをロードできるのは、インスタンス管理者のみです。デフォルトでは、最初の接続が確立されたときにはアイドル・データベース(接続のないデータベース)がメモリーにロードされます。これらの属性は、データベースへの最後の接続がクローズされるまで、後続のすべての接続で保持されます。初期接続属性は、TimesTenデータベースをアンロードしてから、インスタンス管理者が初期接続属性に異なる値を使用して再接続しないかぎり、変更できません。

    最もよく使用される初期接続属性は、次のとおりです。

    • PermSize: データベースの永続メモリー領域の割当て済サイズを構成します。永続メモリー領域には、永続データベース・オブジェクトが含まれています。TimesTenでは、チェックポイント処理の際に、永続メモリー領域のみがファイル・システムに書き込まれます。

    • TempSize: データベースの一時メモリー領域の割当て済サイズを構成します。一時メモリー領域には、文の実行時に生成された一時データが含まれます。


      注意:

      ご使用のシステムには、データベース全体を格納できるだけの十分なメイン・メモリーが必要です。領域サイズの設定の詳細は、「データベースのメモリー領域サイズの指定」を参照してください。

  • 一般接続属性は、接続のたびに設定され、その接続期間中のみ保持されます。各同時接続には別の値を設定できます。

    最もよく使用される一般接続属性は、次のとおりです。


    注意:

    接続文字列の接続属性を指定すると、DSNの接続属性が上書きされます。詳細は、「接続文字列を使用したデータベース接続」を参照してください。

    • UID: 直接またはクライアント/サーバー接続を使用してデータベースへの接続に使用されるユーザー名を指定します。インスタンス管理者として、または外部ユーザーとして接続する場合、ユーザー名を指定する必要はありません。ユーザー名を指定しない場合、TimesTenはUIDがオペレーティング・システムで指定されたユーザー名であると想定します。

    • PWD: 指定されているUIDに対応するパスワードを指定します。内部ユーザーの場合、指定したDSNのodbc.iniファイルで、または接続文字列でPWD属性を設定しないと、パスワードを要求されます。外部ユーザーの場合は、オペレーティング・システムによって検証されるので、パスワードを指定する必要はありません。

      クライアント/サーバー接続を開始すると、接続用に送信されるパスワードはすべて、クライアント/サーバー・プロトコルで暗号化されます。

    • PWDCrypt: 指定したUIDに対応する、暗号化されたパスワードを指定します。


      注意:

      一般接続属性UIDPWDおよびPWDCryptの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのUIDとPWDを参照してください。アクセス制御の詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』を参照してください。

  • TimesTenキャッシュ属性では、TimesTenにロードされるデータのロード元であるOracle DatabaseインスタンスのOracleサービス識別子を入力できます。


注意:

TimesTen Client ODBCドライバで使用可能な接続属性については、「TimesTen ClientおよびTimesTen Serverの使用方法」を参照してください。

LinuxおよびUNIXでのTimesTen ClassicのDSNの作成

この項では、TimesTen ClassicのDSNの作成に関する次の内容について説明します。TimesTen Scaleoutでは、DSNは適切なデータベース定義および接続可能オブジェクト内で作成します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースの管理に関する項を参照してください。


注意:

DSNの定義の例については、「TimesTen ClassicのDSNの例」を参照してください。

ユーザーodbc.iniファイルまたはシステムodbc.iniファイルの作成

LinuxおよびUNIXの場合、ユーザーDSNは、$HOME/.odbc.iniファイルまたはODBCINI環境変数に指定したファイルで定義します。このファイルは、ユーザーodbc.iniファイルと呼ばれます。システムDSNは、timesten_home/conf/sys.odbc.ini内のシステムodbc.iniファイルで定義します。

ユーザーおよびシステムのodbc.iniファイルの構文は同じです。構文は、「odbc.iniファイル・エントリの説明」で説明されています。システムodbc.iniファイルは、TimesTenをマシンにインストールすると作成されます。ユーザーodbc.iniファイルはユーザーが独自に作成する必要があります。

DSNを作成するには、次の手順を実行します。

  1. odbc.iniファイルでDSNを指定します。DSNは、DSN定義の最初に大カッコで囲み1行で指定します。次に例を示します。

    [AdminDS]
    
  2. TimesTen ODBCドライバを指定します。


    注意:

    JDBCユーザーは、JDBCドライバで使用するTimesTen ODBCドライバを指定する必要があります。TimesTen JDBCドライバおよびドライバ・マネージャを使用した接続を参照してください。

    TimesTen ODBCドライバを設定するには、odbc.iniファイル内でDriver属性を指定します。次の例は、このDSNが使用するように構成されているTimesTen ODBCドライバを示しています。ここで、/disk1/timestentimesten_homeです。

    [AdminDS]
    Driver=/disk1/timesten/lib/libtten.so
    

    注意:

    使用できるTimesTen ODBCドライバのリストは、表1-1を参照してください。

  3. odbc.iniファイルで、データベース・ディレクトリのパスおよび接頭辞を指定します。次の例では、/disk1/databasesをデータベース・ディレクトリのパス、FixedDsデータベース・ファイルの接頭辞に指定しています。

    DataStore=/disk1/databases/FixedDs
    

    「データベースのパス名での環境変数の使用方法」で説明するとおり、データベース・ディレクトリのパスには環境変数を使用できます。

  4. データベース・キャラクタ・セットを選択します。次の例では、odbc.iniファイル内でデータベース・キャラクタ・セットをAL32UTF8と定義しています。

    DatabaseCharacterSet=AL32UTF8
    

    注意:

    詳細は、「データベース・キャラクタ・セットの選択」を参照してください。

  5. odbc.iniファイルに接続属性を設定します。odbc.iniファイルに指定されていない属性に対しては、デフォルト値が使用されます。


    注意:

    『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。例については、「TimesTen ClassicのDSNの例」を参照してください。

データベースのパス名での環境変数の使用方法

データベースのパス名およびトランザクション・ログ・ファイルのパス名の指定に環境変数を使用できます。たとえば、データベースの場所に$HOME/AdminDSを指定できます。

環境変数は、$varnameまたは$(varname)で表現できます。カッコはオプションです。データベースのパス名のバックスラッシュ(\)は、後続の文字をエスケープします。


注意:

環境変数の展開では、データベースに接続しているプロセスの環境を使用します。異なるプロセスでは、同じ環境変数に対して異なる値を指定できるため、データベースのパス名を様々に展開することができます。環境変数は、ユーザーodbc.iniファイルでのみ使用できます。システムsys.odbc.iniファイルでは指定できません。

クライアントDSNおよびサーバーDSNの定義

各プラットフォームにクライアント/サーバーDSNを定義する方法の詳細は、「LinuxまたはUNIXシステム上のTimesTen ServerのサーバーDSNの定義」「TimesTen ClientシステムでのクライアントDSNの作成」を参照してください。

DSN用の解決パス

TimesTenでは、特定のDSNを解決する際、次の処理が実行されます。


注意:

  • 同じ名前を持つユーザーDSNとシステムDSNが存在する場合は、ユーザーDSNを取得します。

  • LinuxおよびUNIXでは、同じodbc.iniファイルに同じ名前を持つ複数のDSNがある場合、TimesTenは、ファイルで指定された最初のDSNを取得します。


  1. 次のファイル内で指定された名前のユーザーDSNを検索します。

    1. ODBCINI環境変数で参照されるファイル(環境変数が設定されている場合)。

    2. ユーザーのホーム・ディレクトリ内の.odbc.iniファイル(ODBCINI環境変数が設定されていない場合)。

  2. 一致するユーザーDSNが検出されない場合は、指定した名前を持つシステムDSNを検索します。

    1. SYSODBCINI環境変数で参照されるファイル(この環境変数が設定されている場合)。

    2. デーモンのホーム・ディレクトリ内のsys.odbc.iniファイル(SYSODBCINI環境変数が設定されていない場合)。

    3. LinuxおよびUNIXの場合、ファイルはtimesten_home/conf/sys.odbc.iniに入っています。

TimesTen ClassicのDSNの例

この項では、TimesTen Classicデータベースを設定する方法のその他の例を示します。

単一のTimesTen Classicデータベースに対する複数のDSNの作成

同じTimesTen Classicデータベースを参照するが異なる接続属性を持つ複数のDSNを作成できます。

この例では、AdminDSNおよびGlobalDSNの2つのDSNを作成します。これらのDSNは、接続キャラクタ・セット以外は同じです。US7ASCIIキャラクタ・セットを使用するアプリケーションは、AdminDSNを使用することによってTTDSデータベースに接続できます。マルチバイト文字を使用するアプリケーションは、GlobalDSNを使用してTTDSデータベースに接続できます。

大カッコで囲まれたテキストは、データソース名です。

AdminDSNAL32UTF8データベース・キャラクタ・セットを使用して作成され、接続キャラクタ・セットとしてUS7ASCIIが使用されます。GlobalDSNAL32UTF8データベース・キャラクタ・セットを使用して作成され、接続キャラクタ・セットとしてAL32UTF8が使用されます。/disk1/timestentimesten_homeであることに注意してください。

[AdminDSN]
Driver=/disk1/timesten/lib/libtten.so
Datastore=/disk1/databases/TTDS
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=US7ASCII

[GlobalDSN]
Driver=/disk1/timesten/lib/libtten.so
DataStore=/disk1/databases/TTDS
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8

DSNでのPL/SQL接続属性の指定

TimesTen Classicでは、PL/SQL接続属性は、初期接続属性と一般接続属性の両方として存在します。

  • PLSQL_MEMORY_ADDRESS - TimesTenダイレクト・ドライバを使用する各プロセスにPL/SQL共有メモリー・セグメントがロードされる仮想アドレス(16進値)を指定する初期接続属性。このメモリー・アドレスは、データベースへのすべての接続、およびデータベースに接続するすべてのプロセスで同じである必要があります。

  • PLSQL_MEMORY_SIZE - PL/SQL共有メモリー・セグメントのサイズ(MB)を指定する初期接続属性。

  • PLSCOPE_SETTINGS - PL/SQLコンパイラで相互参照情報を生成するかどうかを制御する一般接続属性。

  • PLSQL_OPTIMIZE_LEVEL - PL/SQLライブラリ・ユニットのコンパイルに使用する最適化レベルを設定する一般接続属性。

次の例では、PLdsn DSNを作成し、PL/SQL共有メモリー・セグメントのサイズを32 MBに設定します。

[PLdsn]
Datastore=/disk1/databases/PLdsn
PermSize=128
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8
PLSQL_MEMORY_SIZE=32

この他の例は、『Oracle TimesTen In-Memory Database PL/SQL開発者ガイド』のPL/SQL接続属性に関する説明を参照してください。すべてのPL/SQL接続属性の完全なリストは、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

TimesTen ClassicでのデフォルトDSNの設定

TimesTen Classicでは、必要に応じて、デフォルトのデータソース定義を追加できます。接続時にアプリケーションでodbc.iniファイルにないDSNが指定された場合やアプリケーションでDSNが指定されなかった場合、TimesTen Classicデータベースへの接続はデフォルトDSNを使用して構成されます。

デフォルトのデータソースを定義する際には、名前をdefaultにする必要があります。「DSN 仕様」で説明しているとおり、デフォルトDSNはその他のデータソースと同じ属性を使用して定義できます。

接続時、TimesTen Classicは次のいずれかのシナリオでデフォルトDSNを使用します。

  • 接続文字列にキーワードと値のペアDSN=defaultを指定した場合。

  • 接続文字列のDSN接続属性に未定義の値を指定した場合。

  • 接続文字列のDSN接続属性に値を指定しなかった場合。

ただし、一般的には特定のデータソースを使用して接続するのが最善です。

デフォルトDSNを使用する場合、ttDestroyユーティリティによるデータベース破棄などDSN名を必要とするTimesTenユーティリティ操作を実行する際に、DSN名としてdefaultと入力してください。

次の例は、ユーザーがttIsqlを呼び出して、未定義のDSNで接続しているところを示します。odbc.iniファイルのdoesNotExistに定義がないため、TimesTen Classicはdefault DSNを使用してデータベースを作成し、そのデータベースへの接続を開始します。この例はまた、DSNにdefaultを指定してttStatusttDestroyの両方のユーティリティを呼び出しているユーザーも示します。さらに、ユーザーがDSNとしてdefaultのかわりにdoesNotExistを指定した場合のエラーも示します。

% ttIsql doesNotExist;
 
Copyright (c) 1996, 2020 Oracle.  All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
 
connect "DSN=doesNotExist";
Connection successful:
Command> exit
Disconnecting...
Done.
% ttStatus default
TimesTen status report as of Mon Oct 22 12:27:52 2012
 
Daemon pid 13623 port 16138 instance myhost
TimesTen Server pid 13632 started on port 16140
------------------------------------------------------------------------
Data store /timesten/install/sample_db/default
There are no connections to the data store
Replication policy  : Manual
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Accessible by group xyz
End of report
% ttDestroy doesNotExist;
Failed to destroy data store: Specified DSN is not found in user and system
odbc.ini files (or registry)
% ttDestroy default; 

次の例は、デフォルトDSN用の接続属性を構成する方法を示します。必須ではありませんが、他のDSNと同様の方法で、デフォルトDSN用の接続属性を構成できます。これは「ODBC Data Sources」の項には指定されていません。/disk1/timestentimesten_homeであることに注意してください。

[ODBC Data Sources]
database1=TimesTen 18.1 Driver
...
 
[default]
Driver=/disk1/timesten/lib/libtten.so
DataStore=/disk1/timesten/sample_db/DemoDataStore/default
PermSize=128
TempSize=64
DatabaseCharacterSet=AL32UTF8

[database1]
Driver=/disk1/timesten/lib/libtten.so
DataStore=/disk1/timesten/sample_db/DemoDataStore/database1
PermSize=128
TempSize=64
DatabaseCharacterSet=AL32UTF8

odbc.iniファイル・エントリの説明

次の項では、odbc.iniファイルのエントリについて説明します。


注意:

TimesTen Scaleoutでは、ttGridAdmin gridClientExportコマンドを使用して、TimesTen Clientインスタンスで使用されるシステムまたはユーザーのodbc.iniファイルを作成します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のTimesTen Clientからのクライアント接続の確立に関する項を参照してください。

ODBCデータソース

オプションのODBC Data Sourcesセクションの各エントリは、データソースおよび使用するドライバの記述が示されます。このデータソース・セクションの形式は、次のとおりです。

[ODBC Data Sources]
DSN=driver-description
  • DSNは必須で、ドライバが接続するデータソースを識別します。この名前を選択します。

  • driver-descriptionは必須です。これは、データソースに接続するドライバについての説明です。

オプションのData SourcesセクションがTimesTen ServerのシステムDSNファイルに含まれる場合、クライアントDSNの設定時に使用されます。すべてのシステムDSNは、TimesTen Serverで使用できるすべてのDSNを表示する、クライアントのODBC データソース アドミニストレータ用のクライアントDSN設定に使用できます。ユーザーは、いつでもODBC データソース アドミニストレータで新しいシステムDSNを追加できます。DSNをシステムDSNファイルに追加する場合は、クライアントに公開できるDSNのみを含めるようにしてください。すべてのシステムDSNは、公開されていないものも、クライアント/サーバー構成からアクセスできる場合があります。

DSNの指定

ODBC Data Sourcesセクションに示される各DSNには、専用のDSN指定があります。Data Manager DSNのDSN指定の形式は、表1-2で示すとおりです。

表1-2 データ・ソース指定の形式

コンポーネント 説明

[DSN]

DSNは必須です。これは、.odbc.iniファイルのODBC Data Sourcesセクションに指定されているDSNの名前です。

Driver=driver-path-name

データソースとリンクされているTimesTenドライバ。

DataStore=data-store-path-prefix

アクセスできるデータベースのディレクトリ・パスと接頭辞です。これは必須です。

DatabaseCharacterSet=Database-character-set

データベースのキャラクタ・セットにより、データを格納する際のキャラクタ・セットが決定されます。データベースのキャラクタ・セットは必要であり、データベースの作成後に変更することはできません。詳細は、「データベース・キャラクタ・セットの選択」を参照してください。

オプションの属性

属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。


たとえば、database1というDSNの指定は、次のようになります。/disk1/timestentimesten_homeであることに注意してください。

[database1]
Driver=/disk1/timesten/lib/libtten.so
DataStore=/disk1/timesten/sample_db/DemoDataStore/database1
...

TimesTenクライアントDSNのデータベース指定は、表1-3で示す形式になっています。


注意:

ここではTimesTen Client DSNの構文を示していますが、クライアントDSNおよびサーバーDSNの詳細な設定方法については、「LinuxまたはUNIXシステム上のTimesTen ServerのサーバーDSNの定義」「TimesTen ClientシステムでのクライアントDSNの作成」を参照してください。

表1-3 TimesTen Clientを構成するデータベース指定

コンポーネント 説明

[DSN]

DSNは必須です。これは、.odbc.iniファイルのODBC Data Sourcesセクションに指定されているのと同じDSNです。

TTC_Server=server-name

server-nameは必須です。これは、TimesTen ServerのDNS名、ホスト名、IPアドレスまたは論理サーバー名です。

TTC_Server_DSN=server-DSN

server-DSNは必須です。これは、TimesTen Server上でアクセスするデータソースの名前です。

TTC_Timeout=value

クライアント接続のタイムアウト値(秒)。



注意:

ほとんどのTimesTenドライバ属性は、TimesTen Client DSNでは無視されます。

たとえば、TimesTen Server ttserver上のdatabase1に接続するクライアント/サーバー・データソースdatabase1CSの場合、データソース指定は次のようになります。

[database1CS]
TTC_Server=ttserver
TTC_SERVER_DSN=database1
TTC_Timeout=30

odbc.iniファイルの例

次の例は、LinuxまたはUNIXの.odbc.iniファイルの一部を示しています。/disk1/timestentimesten_homeであることに注意してください。

...
[ODBC Data Sources]
database1=TimesTen 18.1 Driver
...
 
[database1]
Driver=/disk1/timesten/lib/libtten.so
DataStore=/disk1/timesten/sample_db/DemoDataStore/database1
PermSize=128
TempSize=64
DatabaseCharacterSet=AL32UTF8
...
 
########################################################################
# This following sample definitions should be in the .odbc.ini file
# that is used for the TimesTen 18.1 Client.
# The Server Name is set in the TTC_SERVER attribute.
# The Server DSN is set in the TTC_SERVER_DSN attribute.
#########################################################################
 
[ODBC Data Sources]
database1CS=TimesTen 18.1 Client Driver
...
 
[database1CS]
TTC_SERVER=localhost
TTC_SERVER_DSN=database1
...

接続文字列を使用したデータベース接続

TimesTenアプリケーションでは、データベースに接続するためにDSNまたは接続文字列を指定する必要があります。モジュール性および保守を考えると、特定の接続で特定の属性設定によってDSN設定またはデフォルト設定を上書きする必要がある場合を除いて、属性はアプリケーション内の接続文字列ではなくDSNで設定することをお薦めします。

接続文字列の構文には、接続属性の定義が含まれます。ここでは各属性はセミコロンで区切られています。

DSN属性の設定を決定するには、次の優先ルールを使用します。

  1. 接続文字列で指定された属性設定が最も優先されます。接続文字列において1つの属性が複数回出現する場合は、最初の指定が使用されます。

  2. 属性が接続文字列で指定されていない場合は、DSNで指定された属性設定が使用されます。

  3. デフォルトの属性設定は、優先度が最も低くなります。

次の項では、DSNではなく接続文字列を使用する方法について説明します。

TimesTen Scaleoutでの接続文字列の使用

TimesTen Scaleoutでは、特定の要素に接続するには、その要素に関連付けられているホストのアドレス、データベース名、および少なくともCREATE SESSION権限を持つデータベース・ユーザーを接続文字列で指定します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』の接続文字列を使用したクライアント接続の確立に関する項を参照してください。

TimesTen Classicでの接続文字列の使用

接続文字列にDataStoreDriverおよびDatabaseCharacterSet属性が含まれている場合は、DSNを事前に定義しなくても、ODBCアプリケーションまたはttIsqlユーティリティを使用して、TimesTenデータベースに接続できます。接続文字列を次のように定義します。

  • Driver属性を使用したODBCドライバの名前またはパス名。

    • Windowsの場合、Driver属性の値はTimesTen Clientドライバの名前にする必要があります。

    • UNIXシステムの場合、Driver属性の値はTimesTen ODBCドライバの共有ライブラリ・ファイルのパス名にする必要があります(表1-1を参照)。このファイルは、timesten_home/libディレクトリにあります。

  • DataStore属性を使用したデータベースのパスおよびファイル名の接頭辞。

  • DatabaseCharacterSet属性を使用したデータベースのキャラクタ・セット。

次の例では、ttIsqlユーティリティで接続文字列を使用して、DriverDataStoreおよびDatabaseCharacterSet属性を指定して接続する方法を示します。

Linux/UNIXクライアントから接続文字列に接続属性を指定します。/disk1/timestentimesten_homeであることに注意してください。

% ttIsql 

Command> connect "Driver=/disk1/timesten/lib/libtten.so;
DataStore=/disk1/databases/database1;DatabaseCharacterSet=AL32UTF8;

Windowsクライアントから接続文字列に接続属性を指定します。

C:\ ttIsql
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
 
Command> connect "Driver=TimesTen Client 18.1;
DataStore=/disk1/databases/database1;DatabaseCharacterSet=AL32UTF8";