TimesTen ClassicデータベースのDSNの定義

Oracle DatabaseのデータをキャッシュするTimesTenデータベースは、システムDSNまたはユーザーDSNのいずれかによって参照できます。TimesTenデータベースは、インスタンス管理者ユーザーがDSNを使用して初めて接続したときに暗黙的に作成されます。OracleデータベースからデータをキャッシュするTimesTenデータベースのDSNを作成する場合は、接続属性の設定に特に注意します。

『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「TimesTenデータベースの管理」を参照してください。

UNIXまたはLinuxでは、システムDSNはtimesten_home/conf/sys.odbc.iniファイルに入っています。TimesTenデータベースへの接続で説明されているように、sys.odbc.iniファイルにはDSN定義が含まれます。

この例では、cache1およびcache1cs ODBCデータソース名(DSN)を定義します。

ノート:

ODBCはTimesTenのネイティブAPIですが、TimesTenはJDBC、Oracle Call Interface、ODP.NET、cx_Oracle (Pythonの場合)およびnode-oracledb (Node.jsの場合)など、一般的に使用される他の多くのデータベースAPIも提供またはサポートしています。

  • 直接接続: cache1 DSNは、直接モードまたはサーバーDSNです。TimesTen 22.1 Driverを使用します。このTimesTenインスタンスによってホストされるデータベースのパラメータおよび接続を定義します。このホストで実行されているツール、ユーティリティおよびアプリケーション(myhost)は、TimesTenの低レイテンシの直接モード接続メカニズムを使用して、このDSNを介して接続できます。

  • クライアント/サーバー接続: このデータベースには、TimesTenのクライアント/サーバー接続を使用してリモートからもアクセスできます。cache1cs DSNはクライアントDSNで、TimesTen 22.1 Client Driverを使用します。ツール、ユーティリティおよびアプリケーションがTimesTenのクライアント/サーバー接続メカニズムを使用して接続できるサーバーDSNの接続パラメータを定義します。この例では、DSNはローカルのcache1サーバーDSNのクライアント/サーバー・アクセスを定義します。

これらの接続属性は、他に示されていないかぎり、すべてダイレクトDSNまたは接続文字列で設定できます。

  • DataStoreは、データベースの完全修飾ディレクトリ・パス名およびファイル名接頭辞を指定します。この名前はファイル名ではありません。この例では、DataStore/disk1/databases/database1に設定されています。

  • PermSizeには、データベースの永続領域の割当てサイズをMBで指定します。PermSize値は、マシンの物理RAMより小さくする必要があります。すべてのデータを格納できる値に設定します。PermSize値は、数GBから数TBまでにできます。この例では、永続リージョンを1024MBに設定します。

  • TempSizeはデータベースの一時領域に割り当てられるメモリーの合計容量をMBで示します。この例では、一時リージョンを256MBに設定します。

  • LogBufMBは、データベースの内部トランザクション・ログ・バッファのサイズを指定します。この例では、トランザクション・ログ・バッファを256MBに設定します。

  • LogFileSizeは、トランザクション・ログ・ファイルの最大サイズをMB単位で指定します。この例では、トランザクション・ログ・ファイルの最大サイズを256MBに設定します。

  • DatabaseCharacterSetは、Oracleデータベースの文字セットと一致する必要があります。この例では、データベース文字セットはAL32UTF8です。

    ノート:

    任意のユーザーとしてSQL*Plusで次の問合せを実行すると、Oracle Database文字セットを確認できます。

    SQL> SELECT value FROM nls_database_parameters 
           WHERE parameter='NLS_CHARACTERSET';
  • ConnectionCharacterSetは、接続の文字エンコーディングを指定します。通常、ご使用の端末の設定またはデータソースと一致する接続文字セットを選択する必要があります。この例では、接続文字セットはAL32UTF8です。

  • OracleNetServiceNameは、Oracle Databaseインスタンスのネット・サービス名に設定する必要があります。この例では、これをorclに設定します。これは、tnsnames.oraファイルに設定された名前と同じです。

    Microsoft Windowsシステムの場合、Oracle Databaseインスタンスのネット・サービス名は、「TimesTen ODBC Setup」ダイアログ・ボックスにある「TimesTen Cache」タブの「Oracle Net Service Name」フィールドで指定する必要があります。

  • CacheAdminWallet=1は、ttCacheUidPwdSet組込みプロシージャを使用して登録されているOracleキャッシュ管理ユーザーの資格証明がメモリーではなくOracleウォレットに格納されるように指定します。

  • UIDには、TimesTenキャッシュ管理ユーザーの名前を指定します。UID接続属性は、ダイレクトDSN、クライアントDSNまたは接続文字列で指定できます。

  • PwdWalletは、ユーザーの資格証明が格納されるウォレットを指定します。ウォレット内でTimesTenユーザー名とパスワードを指定できます。キャッシュ管理者ユーザーおよびそれぞれのパスワードをウォレットに指定することもできます。キャッシュ処理の実行およびOracle Databaseへの接続時には、キャッシュ管理ユーザー資格証明が必要です。

  • PwdWalletを使用してウォレットを指定しない場合は、PWDを使用して、UID接続属性で指定されたTimesTenキャッシュ管理ユーザーのパスワードを指定します。PWD接続属性は、ダイレクトDSN、クライアントDSNまたは接続文字列で指定できます。

  • PwdWalletを使用してウォレットを指定しない場合は、OraclePWDを使用して、UID接続属性で指定したTimesTenキャッシュ管理ユーザーと同じ名前のOracle Databaseキャッシュ管理ユーザーのパスワードを指定します。

    ノート:

    「TimesTenユーザーの作成」を参照してください。

  • PassThroughを設定して、TimesTenデータベースで文を実行するか、Oracle Databaseで処理するためにパススルーするかを制御できます。「パススルー・レベルの設定」を参照してください。

  • LockLevelは、キャッシュではデータベース・レベル・ロックがサポートされていないため、デフォルトの0 (行レベル・ロック)に設定する必要があります。

  • ReplicationApplyOrderingおよびCacheAWTParallelismでは、AWTキャッシュ・グループのTimesTenキャッシュ表に対して行われた変更を対応するOracle Database表へ伝播するパラレル伝播を制御します。「Oracle Databaseへのパラレル伝播を使用したAWTスループットの向上」を参照してください。

次に、クライアントDSNのエントリがあります。クライアントDSNでは、次の属性を使用して、TimesTenデータベースの場所を指定します。

  • TTC_Server_DSN属性は、目的のデータベースのサーバーDSNを指定します。

  • TTC_Server属性は、データベースのサーバー(およびデフォルトのポート番号を使用しない場合はポート番号)を指定します。

sys.odbc.iniファイルで、TimesTen DSN cache1を作成し、次の接続属性を設定します。cache1 DSNは、Oracle DatabaseからデータをキャッシュするTimesTenデータベースを指定します。

[ODBC Data Sources]
cache1=TimesTen 22.1 Driver
cache1cs=TimesTen 22.1 Client Driver

[cache1]
DataStore=/disk1/databases/database1
PermSize=1024
TempSize=256
LogBufMB=256
LogFileSize=256
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8
OracleNetServiceName=orcl
CacheAdminWallet=1

[cache1cs]
TTC_SERVER_DSN=CACHE1
TTC_SERVER=myhost/6625
ConnectionCharacterSet=AL32UTF8