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も提供またはサポートしています。
-
直接接続:
cache1DSNは、直接モードまたはサーバーDSNです。TimesTen 22.1 Driverを使用します。このTimesTenインスタンスによってホストされるデータベースのパラメータおよび接続を定義します。このホストで実行されているツール、ユーティリティおよびアプリケーション(myhost)は、TimesTenの低レイテンシの直接モード接続メカニズムを使用して、このDSNを介して接続できます。 -
クライアント/サーバー接続: このデータベースには、TimesTenのクライアント/サーバー接続を使用してリモートからもアクセスできます。
cache1csDSNはクライアント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