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のペア(ここで、hostnameはTimesTenサーバーが実行されているサーバー・システムを表し、DSNはサーバー・ホスト上のTimesTenデータベースを指定するサーバーDSNを表します)を指定することで間接的にTimesTenデータベースを参照します。

  • サーバー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に対応する、暗号化されたパスワードを指定します。

    • PwdWallet: TimesTenを使用すると、ユーザー名および関連するパスワードをOracleウォレットに格納できます。これは、TimesTenデータベースに接続する際に資格証明を提供するための最も安全で推奨される方法です。PwdWallet接続属性は、ウォレットの場所へのパスで、そこからTimesTenは指定されたユーザー名のパスワードを取得します。

    • ノート:

      詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』UIDおよびPWDPWDCryptおよびPwdWalletを参照してください。『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』TimesTenでの認証を参照してください。

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

ノート:

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