Client/Serverドライバの使用について

Kubernetesクラスタ内の別のポッドで実行されているアプリケーションは、標準のTimesTen Client/Serverドライバを使用してTimesTenデータベースを使用できます。TimesTenクライアント・インスタンスを使用してアプリケーション・コンテナを構成する必要があります。そのインスタンスに構成済の$TIMESTEN_HOME/conf/sys.odbc.iniファイルを含めるか、アプリケーションで適切なClient/Server接続文字列を使用する必要があります。

TimesTen Classicでは、sys.odbc.iniファイルを構成することを選択した場合、sys.odbc.iniの内容にはTimesTenデータベースを実行しているポッドを参照するクライアントDSN定義が含まれます。TimesTen Scaleoutでは、グリッドの外部にあるクライアント/サーバー・クライアントが使用するsys.odbc.iniファイルをエクスポートできます。この目的においては、ttGridAdminユーティリティをgridClientExportまたはgridClientExportAllとともに使用します。Oracle TimesTen In-Memory DatabaseリファレンスttGridAdminを参照してください。

この例では、sample DSNを作成し、mynamespaceネームスペース内のsample TimesTenClassicオブジェクトを参照します。

% vi $TIMESTEN_HOME/conf/sys.odbc.ini

[sample]
TTC_SERVER_DSN=sample
TTC_SERVER1=sample-0.sample.mynamespace.svc.cluster.local
TTC_SERVER2=sample-1.sample.mynamespace.svc.cluster.local

アプリケーションは、このDSNを使用してTimesTenデータベースに接続します。TimesTen Classicアクティブ・スタンバイ・ペア構成では、TimesTenによってアプリケーション接続が自動的にアクティブ・データベースにルーティングされます。

Client/Serverアプリケーションは、定義済のユーザー名とパスワードを使用してデータベースに接続する必要があります。オペレータは、ADMIN権限を持つこのようなユーザーを作成できます。その後、そのユーザーとしてデータベースに接続し、他のユーザーを作成して、CREATE SESSION権限をこれらのユーザーに付与できます。「構成メタデータとKubernetes機能の概要」を参照してください。

この例では、接続文字列を使用して、sampleデータベースにsampleuserユーザーとして接続します。(必要なすべての接続属性を必要とする接続文字列を使用する場合は、sys.odbc.iniファイルで定義する必要はありません。)sampleuserユーザーはオペレータが作成したもので、すでにsampleデータベースに存在しています。接続後、sampleuser.emp表が存在するかどうかを確認できます。(オペレータは以前にこの表も作成しています。オペレータがこの表を作成した方法の詳細は、schema.sqlを参照してください。)

% ttIsqlCS -connstr "TTC_SERVER1=sample-0.sample.mynamespace.svc.cluster.local;
TTC_SERVER2=sample-1.sample.mynamespace.svc.cluster.local;
TTC_SERVER_DSN=sample;UID=sampleuser;PWD=samplepw";

 
Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights 
reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
 
 
 
connect "TTC_SERVER1=sample-0.sample.mynamespace.svc.cluster.local;
TTC_SERVER_DSN=sample;uid=sampleuser;pwd=********";
Connection successful: 
DSN=;TTC_SERVER=sample-0.sample.mynamespace.svc.cluster.local;
TTC_SERVER_DSN=sample;UID=sampleuser;DATASTORE=/tt/home/timesten/datastore/sample;
DATABASECHARACTERSET=AL32UTF8;CONNECTIONCHARACTERSET=AL32UTF8;PERMSIZE=200;
DDLREPLICATIONLEVEL=3;
(Default setting AutoCommit=1)
Command> tables;
  SAMPLEUSER.EMP
1 table found.

Kubernetesクラスタ内のアプリケーションからTimesTenクライアント/サーバーを使用している場合は、接続文字列内のすべてのTimesTenポッドをリストする必要はありません。かわりに、受信クライアント接続を準備のできたインスタンスにルーティングするKubernetesサービスを作成できます。このサービスを正しく動作させるには、準備プローブを使用する必要があります。

Kubernetesクラスタ外のアプリケーションからTimesTenクライアント/サーバーを使用している場合は、Kubernetes NodePortサービスおよび準備プローブを使用する必要があります。

詳細情報: