タスク2: TimesTenデータベースのデータソース名(DSN)の作成

Oracle DatabaseのデータをキャッシュするTimesTenデータベースは、システムDSNまたはユーザーDSNのいずれかによって参照できます。

TimesTenインスタンスをインストールおよび作成したオペレーティング・システム・ユーザーは、インスタンス管理者と呼ばれます。このインスタンス管理者が初めてDSNを使用して接続すると、TimesTenデータベースが暗黙的に作成されます。

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

この例では、2つのODBCデータソース名(DSN)を定義します。

ノート:

ODBCはTimesTenのネイティブAPIですが、TimesTenは、JDBC、Oracle Call Interface、ODP.NET、cx_Oracle (Pythonの場合)およびnode-oracledb (Node.jsの場合)など、一般的に使用される他の多くのデータベースAPIも提供またはサポートしています。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』ODBCドライバおよびJDBCドライバを使用したTimesTenへの接続を参照してください。

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

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

OracleデータベースからデータをキャッシュするTimesTenデータベースのDSNを作成する場合は、キャッシュ環境において次の接続属性が重要です。

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

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

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

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

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

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

    ノート:

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

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

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

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

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

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

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

sys.odbc.iniファイルで、TimesTen DSN cache1を作成し、次の接続属性を設定します。

[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

これ以外の接続属性にはデフォルト設定を使用できます。