TimesTenデータベースは、表、ビュー、順序などのオブジェクトの集合です。TimesTenデータベースはSQL文を使用してアクセスし、操作できます。
TimesTen Classicでは、データベースが存在しない場合、インスタンス管理者がデータベースに接続する際に指定した接続属性を使用して、TimesTen Classicによってデータベースが作成されます。
TimesTen Scaleoutでは、アプリケーションがデータベースに接続する前に、データベースを作成して開きます。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースの管理に関する項を参照してください。
一度データベースを作成すると、次の処理を実行できます。
データベースを使用するアプリケーションの実行。
ttIsql
ユーティリティを使用して、データベースに接続し、SQLファイルを実行するか対話型SQLセッションを開始します。詳細は、バッチ・モードおよび対話モードを参照してください。
この章では、TimesTenデータベースへの接続を構成する方法について説明します。接続属性には、TimesTenデータベースの管理構成の詳細が含まれます。
図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には、次の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 Data Manager 18.1ドライバ。 |
Linux Solaris x86 Solaris Sparc |
デバッグ |
TimesTen Data Manager 18.1 Debugドライバ。 |
Linux Solaris x86 Solaris Sparc |
クライアント |
TimesTen Client 18.1ドライバ。 |
AIX |
本番 |
TimesTen Data Manager 18.1ドライバ。 |
AIX |
デバッグ |
TimesTen Data Manager 18.1 Debugドライバ。 |
AIX |
クライアント |
TimesTen Client 18.1ドライバ。 |
macOS |
クライアント |
TimesTen Client 18.1ドライバ。 |
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パッケージのインタフェースのサポートに関する説明を参照してください。
アプリケーションから接続する場合は、データソース名(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標準に従うと、ある属性が接続文字列内に複数回出現する場合、指定されている最初の値が使用され、後続値は使用されません。 |
最大長は32文字です。
大文字と小文字は区別されません。
()[]{},;?*=!@\/を除くASCII文字で構成されます。
TimesTenではDSNの一部としてスペースを使用することを推奨しません。DSNにスペースが含まれている場合、一部のTimesTenユーティリティはスペースに遭遇したところで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のタイプを次に説明します。
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の使用方法」を参照してください。
LinuxおよびUNIXの場合、接続属性はodbc.ini
ファイルで指定します。odbc.ini
ファイルに指定されていない接続属性に対しては、デフォルト値が使用されます。
接続属性の一般的なタイプ:
注意: すべての属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。 |
データ・ストア属性は、データベースの作成時にデータベースに関連付け、その後の接続では変更できません。変更するには、データベースを破棄して作成しなおす必要があります。
最もよく使用されるデータ・ストア属性は、次のとおりです。
DataStore
: データベースのディレクトリ名およびファイル名の接頭辞。
LogDir
: データベースのトランザクション・ログ・ファイルのディレクトリ名。トランザクション・ログ・ファイルとチェックポイント・ファイルを別々のファイル・システムに配置すると、システムのパフォーマンスを向上させることができます。
DatabaseCharacterSet
: ストレージ・エンコーディングを定義する必須のキャラクタ・セット指定。
初期接続属性は、TimesTenデータベースがメモリーにロードされる際に使用されます。初期接続属性の設定でデータベースをロードできるのは、インスタンス管理者のみです。デフォルトでは、最初の接続が確立されたときにはアイドル・データベース(接続のないデータベース)がメモリーにロードされます。これらの属性は、データベースへの最後の接続がクローズされるまで、後続のすべての接続で保持されます。初期接続属性は、TimesTenデータベースをアンロードしてから、インスタンス管理者が初期接続属性に異なる値を使用して再接続しないかぎり、変更できません。
最もよく使用される初期接続属性は、次のとおりです。
PermSize
: データベースの永続メモリー領域の割当て済サイズを構成します。永続メモリー領域には、永続データベース・オブジェクトが含まれています。TimesTenでは、チェックポイント処理の際に、永続メモリー領域のみがファイル・システムに書き込まれます。
TempSize
: データベースの一時メモリー領域の割当て済サイズを構成します。一時メモリー領域には、文の実行時に生成された一時データが含まれます。
一般接続属性は、接続のたびに設定され、その接続期間中のみ保持されます。各同時接続には別の値を設定できます。
最もよく使用される一般接続属性は、次のとおりです。
UID
: 直接またはクライアント/サーバー接続を使用してデータベースへの接続に使用されるユーザー名を指定します。インスタンス管理者として、または外部ユーザーとして接続する場合、ユーザー名を指定する必要はありません。ユーザー名を指定しない場合、TimesTenはUID
がオペレーティング・システムで指定されたユーザー名であると想定します。
PWD
: 指定されているUID
に対応するパスワードを指定します。内部ユーザーの場合、指定したDSNのodbc.ini
ファイルで、または接続文字列でPWD
属性を設定しないと、パスワードを要求されます。外部ユーザーの場合は、オペレーティング・システムによって検証されるので、パスワードを指定する必要はありません。
クライアント/サーバー接続を開始すると、接続用に送信されるパスワードはすべて、クライアント/サーバー・プロトコルで暗号化されます。
PWDCrypt
: 指定したUID
に対応する、暗号化されたパスワードを指定します。
注意: 一般接続属性UID 、PWD およびPWDCrypt の詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのUIDとPWDを参照してください。アクセス制御の詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』を参照してください。 |
TimesTenキャッシュ属性では、TimesTenにロードされるデータのロード元であるOracle DatabaseインスタンスのOracleサービス識別子を入力できます。
この項では、TimesTen ClassicのDSNの作成に関する次の内容について説明します。TimesTen Scaleoutでは、DSNは適切なデータベース定義および接続可能オブジェクト内で作成します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースの管理に関する項を参照してください。
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を作成するには、次の手順を実行します。
odbc.ini
ファイルでDSNを指定します。DSNは、DSN定義の最初に大カッコで囲み1行で指定します。次に例を示します。
[AdminDS]
TimesTen ODBCドライバを指定します。
注意: JDBCユーザーは、JDBCドライバで使用するTimesTen ODBCドライバを指定する必要があります。TimesTen JDBCドライバおよびドライバ・マネージャを使用した接続を参照してください。 |
TimesTen ODBCドライバを設定するには、odbc.ini
ファイル内でDriver
属性を指定します。次の例は、このDSNが使用するように構成されているTimesTen ODBCドライバを示しています。ここで、/disk1/timesten
はtimesten_home
です。
[AdminDS] Driver=/disk1/timesten/lib/libtten.so
odbc.ini
ファイルで、データベース・ディレクトリのパスおよび接頭辞を指定します。次の例では、/disk1/databases
をデータベース・ディレクトリのパス、FixedDs
をデータベース・ファイルの接頭辞に指定しています。
DataStore=/disk1/databases/FixedDs
「データベースのパス名での環境変数の使用方法」で説明するとおり、データベース・ディレクトリのパスには環境変数を使用できます。
データベース・キャラクタ・セットを選択します。次の例では、odbc.ini
ファイル内でデータベース・キャラクタ・セットをAL32UTF8
と定義しています。
DatabaseCharacterSet=AL32UTF8
odbc.ini
ファイルに接続属性を設定します。odbc.ini
ファイルに指定されていない属性に対しては、デフォルト値が使用されます。
注意: 『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。例については、「TimesTen ClassicのDSNの例」を参照してください。 |
データベースのパス名およびトランザクション・ログ・ファイルのパス名の指定に環境変数を使用できます。たとえば、データベースの場所に$HOME/AdminDS
を指定できます。
環境変数は、$varname
または$(varname)
で表現できます。カッコはオプションです。データベースのパス名のバックスラッシュ(\)は、後続の文字をエスケープします。
注意: 環境変数の展開では、データベースに接続しているプロセスの環境を使用します。異なるプロセスでは、同じ環境変数に対して異なる値を指定できるため、データベースのパス名を様々に展開することができます。環境変数は、ユーザーodbc.ini ファイルでのみ使用できます。システムsys.odbc.ini ファイルでは指定できません。 |
各プラットフォームにクライアント/サーバーDSNを定義する方法の詳細は、「LinuxまたはUNIXシステム上のTimesTen ServerのサーバーDSNの定義」と「TimesTen ClientシステムでのクライアントDSNの作成」を参照してください。
TimesTenでは、特定のDSNを解決する際、次の処理が実行されます。
注意:
|
次のファイル内で指定された名前のユーザーDSNを検索します。
ODBCINI
環境変数で参照されるファイル(環境変数が設定されている場合)。
ユーザーのホーム・ディレクトリ内の.odbc.ini
ファイル(ODBCINI
環境変数が設定されていない場合)。
一致するユーザーDSNが検出されない場合は、指定した名前を持つシステムDSNを検索します。
SYSODBCINI
環境変数で参照されるファイル(この環境変数が設定されている場合)。
デーモンのホーム・ディレクトリ内のsys.odbc.ini
ファイル(SYSODBCINI
環境変数が設定されていない場合)。
LinuxおよびUNIXの場合、ファイルはtimesten_home
/conf/sys.odbc.ini
に入っています。
この項では、TimesTen Classicデータベースを設定する方法のその他の例を示します。
同じTimesTen Classicデータベースを参照するが異なる接続属性を持つ複数のDSNを作成できます。
この例では、AdminDSN
およびGlobalDSN
の2つのDSNを作成します。これらのDSNは、接続キャラクタ・セット以外は同じです。US7ASCII
キャラクタ・セットを使用するアプリケーションは、AdminDSN
を使用することによってTTDS
データベースに接続できます。マルチバイト文字を使用するアプリケーションは、GlobalDSN
を使用してTTDS
データベースに接続できます。
大カッコで囲まれたテキストは、データソース名です。
AdminDSN
はAL32UTF8
データベース・キャラクタ・セットを使用して作成され、接続キャラクタ・セットとしてUS7ASCII
が使用されます。GlobalDSN
はAL32UTF8
データベース・キャラクタ・セットを使用して作成され、接続キャラクタ・セットとしてAL32UTF8
が使用されます。/disk1/timesten
がtimesten_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
TimesTen Classicでは、PL/SQL接続属性は、初期接続属性と一般接続属性の両方として存在します。
PLSQL_MEMORY_ADDRESS
- TimesTenダイレクト・ドライバを使用する各プロセスにPL/SQL共有メモリー・セグメントがロードされる仮想アドレス(16進値)を指定する初期接続属性。このメモリー・アドレスは、データベースへのすべての接続、およびデータベースに接続するすべてのプロセスで同じである必要があります。
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では、必要に応じて、デフォルトのデータソース定義を追加できます。接続時にアプリケーションで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
を指定してttStatus
とttDestroy
の両方のユーティリティを呼び出しているユーザーも示します。さらに、ユーザーが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/timesten
がtimesten_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
ファイルのエントリについて説明します。
注意: TimesTen Scaleoutでは、ttGridAdmin gridClientExport コマンドを使用して、TimesTen Clientインスタンスで使用されるシステムまたはユーザーのodbc.ini ファイルを作成します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のTimesTen Clientからのクライアント接続の確立に関する項を参照してください。 |
オプションの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は、公開されていないものも、クライアント/サーバー構成からアクセスできる場合があります。
ODBC Data Sourcesセクションに示される各DSNには、専用のDSN指定があります。Data Manager DSNのDSN指定の形式は、表1-2で示すとおりです。
表1-2 データ・ソース指定の形式
コンポーネント | 説明 |
---|---|
|
|
|
データソースとリンクされているTimesTenドライバ。 |
|
アクセスできるデータベースのディレクトリ・パスと接頭辞です。これは必須です。 |
|
データベースのキャラクタ・セットにより、データを格納する際のキャラクタ・セットが決定されます。データベースのキャラクタ・セットは必要であり、データベースの作成後に変更することはできません。詳細は、「データベース・キャラクタ・セットの選択」を参照してください。 |
オプションの属性 |
属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。 |
たとえば、database1
というDSNの指定は、次のようになります。/disk1/timesten
がtimesten_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を構成するデータベース指定
コンポーネント | 説明 |
---|---|
|
|
|
|
|
|
|
クライアント接続のタイムアウト値(秒)。 |
注意: ほとんどのTimesTenドライバ属性は、TimesTen Client DSNでは無視されます。 |
たとえば、TimesTen Server ttserver
上のdatabase1
に接続するクライアント/サーバー・データソースdatabase1CS
の場合、データソース指定は次のようになります。
[database1CS] TTC_Server=ttserver TTC_SERVER_DSN=database1 TTC_Timeout=30
次の例は、LinuxまたはUNIXの.odbc.ini
ファイルの一部を示しています。/disk1/timesten
がtimesten_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つの属性が複数回出現する場合は、最初の指定が使用されます。
属性が接続文字列で指定されていない場合は、DSNで指定された属性設定が使用されます。
デフォルトの属性設定は、優先度が最も低くなります。
次の項では、DSNではなく接続文字列を使用する方法について説明します。
TimesTen Scaleoutでは、特定の要素に接続するには、その要素に関連付けられているホストのアドレス、データベース名、および少なくともCREATE SESSION
権限を持つデータベース・ユーザーを接続文字列で指定します。詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』の接続文字列を使用したクライアント接続の確立に関する項を参照してください。
接続文字列にDataStore
、Driver
およびDatabaseCharacterSet
属性が含まれている場合は、DSNを事前に定義しなくても、ODBCアプリケーションまたはttIsql
ユーティリティを使用して、TimesTenデータベースに接続できます。接続文字列を次のように定義します。
Driver
属性を使用したODBCドライバの名前またはパス名。
Windowsの場合、Driver
属性の値はTimesTen Clientドライバの名前にする必要があります。
UNIXシステムの場合、Driver
属性の値はTimesTen ODBCドライバの共有ライブラリ・ファイルのパス名にする必要があります(表1-1を参照)。このファイルは、timesten_home
/lib
ディレクトリにあります。
DataStore
属性を使用したデータベースのパスおよびファイル名の接頭辞。
DatabaseCharacterSet
属性を使用したデータベースのキャラクタ・セット。
次の例では、ttIsql
ユーティリティで接続文字列を使用して、Driver
、DataStore
およびDatabaseCharacterSet
属性を指定して接続する方法を示します。
Linux/UNIXクライアントから接続文字列に接続属性を指定します。/disk1/timesten
がtimesten_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";