TimesTen Client/TimesTen Serverの概要

TimesTenサーバーは、サーバー・システム上で実行されるプロセスであり、TimesTenクライアントからネットワーク・リクエストを受け付け、サーバー・システム上にあるデータベースでの処理に変換します。これにより、クライアントは、異なるプラットフォームおよびオペレーティング・システムを実行している可能性のある様々なシステム上に存在するデータベースに接続できます。

TimesTenクライアントは、TimesTenサーバーと別のシステムにも同じシステムにもインストールできます。TimesTenクライアントをTimesTenサーバーと同じシステムにインストールする場合は、それを使用してローカル・システム上のTimesTenデータベースにアクセスできます。

ノート:

クライアント/サーバー接続は、TimesTenがサポートするプラットフォーム間のいずれの組合せに対しても作成できます。

TimesTenでは、クライアント/サーバーを使用したIPレベルのフェイルオーバーまたはロード・バランシングはサポートされていません。

図3-1に、それぞれのドライバを使用したTimesTenクライアントとTimesTenサーバーの通信方法を示します。

図3-1 TimesTen ClientとTimesTen Serverの概要図

図3-1の説明が続きます
「図3-1 TimesTen ClientとTimesTen Serverの概要図」の説明
  • TimesTenクライアント: リモート・システム上のTimesTenデータベースにアクセスするには、TimesTenクライアントODBCドライバにアプリケーションをリンクします。その後、アプリケーションはTimesTenサーバー・プロセスと通信します。TimesTenクライアントODBCドライバを使用すると、アプリケーションは、TimesTenがインストールされているリモート・システムまたはローカル・システム上のTimesTenデータベースに透過的に接続できます。

    クライアント・アプリケーションは、TimesTenクライアントODBCドライバに直接リンクするか、Windows ODBCドライバ・マネージャにリンクして、TimesTenデータベースにアクセスできます。TimesTenでは、Linux、UNIXおよびWindows用のドライバ・マネージャを用意しており、クイック・スタート・サンプル・アプリケーションが付属しています。ドライバ・マネージャを使用する場合には、パフォーマンス上の考慮事項があります。

    また、JDBC、OCI、Pro*C/C++など指定したインタフェースを通じて、クライアント・アプリケーションをリンクし、TimesTenデータベースにアクセスすることもできます。

    ノート:

    アプリケーションで各種のドライバとインタフェースを使用してTimesTenデータベースにアクセスする方法の詳細は、「ODBCドライバおよびJDBCドライバを使用したTimesTenへの接続」を参照してください

  • TimesTenサーバー: サーバー・システム上では、TimesTenサーバーはTimesTen Data Managerドライバを使用します。サーバーで実行されるのは、クライアント・アプリケーションからのリクエストをリスニングし、TimesTen Data Managerドライバを介してリクエストを処理した後、結果およびエラー情報(エラーが発生した場合)をクライアント・アプリケーションに戻す処理です。

ノート:

TimesTenアプリケーションのコンパイルおよびリンクの詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』Java開発のためのクラスパスの設定、または『Oracle TimesTen In-Memory Database C開発者ガイド』アプリケーションのコンパイルおよびリンクを参照してください。

次の項では、クライアント/サーバー通信の制限および通信プロトコルについて説明します。

クライアント/サーバー通信に関する制限事項

LinuxおよびUNIXの場合、ttAdminttRepAdminttBackupなどの一部のTimesTenユーティリティは、直接接続経由でのみ動作します。

LinuxおよびUNIXプラットフォームのクライアント/サーバー接続経由で実行可能なユーティリティの名前には、ttIsqlCSttBulkCpCSttMigrateCSttSchemaCSなど、CSという接尾辞が付いています。

クライアント/サーバー通信に対する制限は、次のとおりです。

  • これらのユーティリティは、TimesTenクライアント・ドライバにリンクされており、クライアント/サーバー接続を介してデータべースにアクセスするときにクライアントDSNに接続するために使用できます。『Oracle TimesTen In-Memory Databaseリファレンス』内のユーティリティでは、各ユーティリティにクライアント/サーバー・バージョンがある場合はその名前が示されています。

  • XLAはクライアント/サーバー接続では使用できず、TimesTen Classic内でのみサポートされます。

  • ttCacheUidPwdSet組込みプロシージャは、クライアント/サーバー接続経由では使用できません。

  • あるホスト上で定義されている外部ユーザーは、リモート・ホスト上のTimesTenデータソースに接続できません。内部ユーザーの接続には制限はありません。内部ユーザーと外部ユーザーの詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』TimesTenユーザーの概要を参照してください。

  • クライアント/サーバー接続を介して内部ユーザーを作成または変更できません。したがって、CREATE USERまたはALTER USER文は、TimesTenデータベースに直接接続されているときのみ発行できます。作成後、ユーザーがクライアントからサーバーに接続するには、そのユーザーにCREATE SESSION権限を付与しないと、接続は失敗します。TimesTenデータベースでのユーザーの作成方法、および管理者によるCREATE SESSION権限の付与方法の詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』データベース・ユーザーの作成または識別およびデータベースに接続するための権限を参照してください。

  • LinuxおよびUNIX上のTimesTenでは、親プロセスがオープンした接続をその子プロセスは使用できません。親プロセスがオープンした接続を使用するために子プロセスがfork()を使用して処理を試行すると、エラーが戻されます。

クライアント/サーバー通信用プロトコル

次の各項では、TimesTenクライアントがTimesTenサーバーとの間で使用できる通信プロトコルについて説明します。

TCP/IP通信

デフォルトでは、TimesTenクライアントは、TCP/IPソケットを使用してTimesTenサーバーと通信します。

これは、TimesTenクライアントとTimesTenサーバーが別々のシステムにインストールされている場合に使用可能な唯一の通信形式です。

通信に使用される共有メモリー・セグメント

クライアント/サーバー接続は、通信に共有メモリーを使用します。

各クライアント/サーバー接続の期間に、小さい共有メモリー・セグメントが割り当てられます(クライアント/サーバー接続ごとに1つずつ)。この共有メモリー・セグメントは接続時に作成され、クライアント/サーバー接続がTimesTenデータベースから切断されるときに破棄されます。

SHMMNI値は、ホストが同時に作成できる共有メモリー・セグメントの数を制御します。クライアント/サーバー接続の数を考慮するようにSHMMNIパラメータ設定を構成する必要があります。SHMMNIを、予想されるクライアント/サーバー接続の数より大きい値に設定します。『Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド』SHMMNIパラメータの設定を参照してください。

UNIXドメイン・ソケット通信

LinuxおよびUNIXプラットフォームでは、TimesTenクライアントとTimesTenサーバーが同一システムにインストールされている場合、通信にUNIXドメイン・ソケットを使用できます。

共有メモリー・セグメントを使用すると、パフォーマンスは向上しますが、消費されるメモリーがわずかに増えます。UNIXドメイン・ソケットを使用すると、共有メモリー・セグメントの接続より少ないメモリーの消費でTCP/IPのパフォーマンスを向上させることができます。ドメイン・ソケットを使用するには、論理サーバーのネットワーク・アドレスとしてttLocalHostを定義する必要があります。「論理サーバー名の定義」を参照してください。