TimesTen ClassicのDSNの例

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

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

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

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

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

AdminDSNは、AL32UTF8データベース文字セットを使用して作成され、接続文字セットとしてAL32UTF8を使用します。GlobalDSNAL32UTF8データベース文字セットを使用して作成され、接続文字セットとしてAL32UTF8が使用されます。/disk1/timestentimesten_homeであることに注意してください。

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

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

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
CacheAdminWallet=1

その他の例およびPL/SQL接続属性の完全なリストは、『Oracle TimesTen In-Memory Database PL/SQL開発者ガイド』PL/SQL接続属性を参照してください。

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, 2024 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 2021
 
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 22.1 Driver
 
[default]
Driver=/disk1/timesten/lib/libtten.so
DataStore=/disk1/timesten/sample_db/DemoDataStore/default
PermSize=128
TempSize=64
DatabaseCharacterSet=AL32UTF8
CacheAdminWallet=1

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