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サービスおよび準備プローブを使用する必要があります。
-
準備プローブについて: このマニュアルの「TimesTenコンテナの準備プローブについて」を参照してください。
-
Kubernetesサービスについて: Kubernetesドキュメントの「Kubernetes Services」を参照してください。
-
NodePortサービスについて: Kubernetesドキュメントの「NodePort Service」を参照してください。