ヘッダーをスキップ
Oracle® TimesTen In-Memory Databaseオペレーション・ガイド
11gリリース2 (11.2.2)
B66441-07
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 TimesTen ClientおよびTimesTen Serverの使用方法

TimesTenデータベースへのネットワーク経由のクライアント/サーバー接続は、TimesTen ClientおよびTimesTen Serverを使用してオープンできます。

次の項では、TimesTen Client/TimesTen Serverおよびそれらを使用した接続方法について説明します。

TimesTen Client/TimesTen Serverの概要

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

TimesTen Clientfは、TimesTen Serverと別のシステムにも同じシステムにもインストールできます。TimesTen ClientをTimesTen Serverと同じシステムにインストールする場合は、それを使用してローカル・システムのTimesTenデータベースにアクセスできます。たとえば、32ビット・アプリケーションと64ビット・アプリケーションの両方をサポートするプラットフォームで、32ビット・アプリケーションを使用して同じシステム上の64ビット・データベースにアクセスできます。


注意:

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

図2-1に、それぞれのドライバを使用したTimesTen ClientとTimesTen Serverの通信方法を示します。

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

図2-1の説明が続きます
「図2-1 TimesTen ClientとTimesTen Serverの概要図」の説明

  • TimesTen Client: リモート・システム上のTimesTenデータベースにアクセスするには、TimesTen Client ODBCドライバにアプリケーションをリンクします。その後、アプリケーションはTimesTen Serverプロセスと通信します。TimesTen Clientドライバを使用すると、アプリケーションは、TimesTen ServerおよびTimesTen Data Managerがインストールされているリモート・システムまたはローカル・システム上のTimesTenデータベースに透過的に接続できます。

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

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


    注意:

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

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


注意:

TimesTenアプリケーションのコンパイルおよびリンク方法の詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』のJavaアプリケーションのコンパイルに関する説明または『Oracle TimesTen In-Memory Database C開発者ガイド』のアプリケーションのコンパイルおよびリンクに関する説明を参照してください。

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

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

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

  • クライアント/サーバー接続にXLAを使用することはできません。

  • UNIXの場合、ttAdminttRepAdminttBackupなどの一部のTimesTenユーティリティは、直接接続経由でのみ動作します。UNIXプラットフォームのクライアント/サーバー接続経由で実行可能なユーティリティの名前には、ttIsqlCSttBulkCpCSttMigrateCSttSchemaCSなど、CSという接尾辞が付いています。これらのユーティリティは、TimesTen Clientドライバにリンクされており、クライアント/サーバー接続経由でデータべスースにするときにクライアントDSNに接続するために使用できます。『Oracle TimesTen In-Memory Databaseリファレンス』には、各ユーティリティにクライアント/サーバー・バージョンがある場合はその名前が示されています。

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

  • あるホスト上で定義されている外部ユーザーは、リモート・ホスト上のTimesTenデータソースに接続できません。内部ユーザーの接続には制限はありません。

  • 内部ユーザーを作成または変更できるのは直接接続経由のみであり、TimesTenデータベースへのクライアント/サーバー接続経由ではできません。したがって、CREATE USERまたはALTER USER文は、TimesTenデータベースに直接接続されているときのみ実行できます。作成後、ユーザーがクライアントからサーバーに接続するには、そのユーザーにCREATE SESSION権限を付与しないと、接続は失敗します。TimesTenデータベースでのユーザーの作成方法および管理者によるCREATE SESSION権限の付与方法の詳細は、「ユーザーの作成およびデータベースでのユーザーの識別」および「データベースに接続するための権限の付与」を参照してください。

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

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

デフォルトでは、サーバー・プロセスは、クライアントが接続をリクエストした時点で生成されます。サーバー・システム上のttendaemon.optionsファイルに-serverPoolオプションを設定することで、サーバー・プロセスの予約プールを事前に生成できます。詳細は、「TimesTen Serverプロセスの事前生成」を参照してください。

次の項では、TimesTen ClientがTimesTen Serverとの間で使用できる通信プロトコルについて説明します。

TCP/IP通信

デフォルトでは、TimesTen Clientは、TCP/IPソケットを使用してTimesTen Serverと通信します。これは、TimesTen ClientとTimesTen Serverが異なるシステムにインストールされている場合に使用可能な唯一の通信形式です。

共有メモリー通信

TimesTen ClientおよびTimesTen Serverの両方が同じシステムにインストールされている場合、TimesTen Client ODBCドライバを使用しているアプリケーションでは、プロセス間通信(IPC)用の共有メモリー・セグメントを使用できます。共有メモリー・セグメントを使用すると、TCP/IP通信よりパフォーマンスが向上します。共有メモリー・セグメントを通信に使用するには、次の操作を行う必要があります。

  1. 共有メモリー通信を使用するように、ttendaemon.optionsファイルでサーバー・オプションを構成します。詳細は、「クライアント/サーバーIPCでの共有メモリーの使用方法」を参照してください。

  2. 論理サーバー名で、ネットワーク・アドレスをttShmHostと定義します。詳細は、「論理サーバー名の定義」を参照してください。


注意:

TimesTenでは、共有メモリーのIPC対応サーバーの最大16の異なるインスタンスがサポートされています。アプリケーションで16を超えて異なる共有メモリー・セグメントに接続しようとすると、エラーが戻されます。

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

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

TimesTen ClientおよびTimesTen Serverの構成


注意:

TimesTen ClientおよびTimesTen Serverを構成する前に、「ODBCおよびJDBCドライバを使用したTimesTenへの接続」および「TimesTenデータベース識別のためのデータソース名の指定」を参照してください。

次の各項では、TimesTen ClientおよびTimesTen Serverを使用してアプリケーションからTimesTenデータベースに接続する方法について説明します。

TimesTen Client/TimesTen Serverの概要

クライアント・アプリケーションをTimesTenデータベースに接続するには、「図2-2」に示すように、クライアントDSN(オプションとして論理サーバー名)およびサーバーDSNを構成して、目的のTimesTenデータベースを一意に識別する必要があります。

図2-2 クライアント/サーバー接続の構成

図2-2の説明が続きます
「図2-2 クライアント/サーバー接続の構成」の説明

クライアント・アプリケーションは、接続の開始時にクライアントDSNを参照します。次の詳細情報により、接続リクエストが解決され、目的のTimesTenデータベースへの接続が可能になります。

  • クライアントDSNは、サーバー・ホスト名、論理サーバー名または実際のサーバー・システム名、およびサーバー上のTimesTenデータベースを識別するサーバーDSNを使用して、ユーザー・ファイルまたはシステム・ファイルのodbc.iniで構成されます。

  • 論理サーバー名は、クライアントでのオプションの構成です。使用すると、TimesTenデータベースがインストールされているサーバー・ホスト名が指定されます。サーバー・ホスト名を隠したり、簡略化する場合に使用します。論理サーバー名は、共有メモリーIPCまたはUNIXドメイン・ソケットを使用する場合に必ず使用します。

  • サーバーDSNは、TimesTenデータベース名およびその接続属性を使用して、システム・ファイルのodbc.iniで構成されます。接続属性では、TimesTenデータベースのロードおよび構成方法と、TimesTenデータベースへの接続の制御または管理方法が指定されます。

したがって、これらの情報が正しく構成されると、クライアント・アプリケーションでは、クライアントDSNを使用してTimesTenデータベースを特定し、接続することが可能になります。クライアントDSNによって、サーバー・システムおよびサーバーDSNが定義されます。サーバーDSNでは、サーバー上のTimesTenデータベース、そのロード方法および接続の管理方法が指定されます。

クライアント/サーバー接続のインストールおよび構成

次の項では、クライアント/サーバー接続のためにどのノードに何をインストールする必要があるかについて説明します。

同一リリースのTimesTen ClientおよびTimesTen Serverの構成方法

次の項では、TimesTen ClientとTimesTen Serverが同じリリースのTimesTenの場合のTimesTenのインストールおよび構成方法について説明します。

TimesTen Serverのインストールおよび構成

TimesTenデータベースが格納されているシステムで、次のタスクを実行します。このシステムを、サーバー・システムと呼びます。

  1. TimesTen Serverをインストールします。TimesTen Serverのインストール方法については、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。

  2. TimesTenデータベースに対応するサーバーDSNを作成および構成します。「TimesTen ServerシステムでのサーバーDSNの定義」を参照してください。サーバーDSNでTimesTen接続属性を設定します。『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

TimesTen Clientのインストールおよび構成

クライアント・アプリケーションが格納されているシステムで、次のタスクを実行します。このシステムを、クライアント・システムと呼びます。

  1. TimesTen Clientをインストールします。TimesTen Clientのインストール方法については、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。

  2. データベースとの接続にJDBCを使用している場合は、Java Development Kit (JDK)をインストールした後、CLASSPATHや共有ライブラリ検索パスなどの環境変数を設定します。詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』のJava環境変数の設定に関する説明を参照してください。

  3. サーバーDSNに対応するクライアントDSNを作成および構成します。詳細は、「UNIXでのクライアントDSNの作成および構成」および「WindowsでのクライアントDSNの作成および構成」を参照してください。

  4. OCIおよびPro*C/C++クライアント/サーバー接続の場合は、『Oracle TimesTen In-Memory Database C開発者ガイド』のOCIからのTimesTenデータベースへの接続に関する説明に従って、tnsnames.oraまたは簡易接続を使用するようにアプリケーションを構成します。

  5. クライアント/サーバー・アプリケーションをリンクするには、次の手順を実行します。

    • 『Oracle TimesTen In-Memory Database C開発者ガイド』のオプションのリンクに関する説明に従って、CおよびC++クライアント/サーバー・アプリケーションをリンクします。

    • OCIまたはPro*C/C++直接接続アプリケーションの場合と同じ方法で、OCIまたはPro*C/C++アプリケーションをリンクします。リンク方法の詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』の「TimesTenでのOCIのサポート」および『TimesTenでのPro*C/C++のサポート」に関する説明を参照してください。

リリースが異なるTimesTen ClientおよびTimesTen Serverの構成

TimesTen Clientは、リリースやビット・レベルの異なるTimesTen Serverに接続できます。TimesTen Client 7.0以上のリリースは、任意のビット・レベルのTimesTen Server 7.0以上のリリースに接続できます。リリースの異なるTimesTen Client/TimesTen Server接続を構成する場合は、「同一リリースのTimesTen ClientおよびTimesTen Serverの構成方法」の説明に従って、インストールおよび構成します。

TimesTen ClientアプリケーションがTimesTenデータベースに接続されると、TimesTen Serverは自身のリリースおよびビット・レベルのドライバおよびTimesTenデータベースをロードします。TimesTen Data Managerが、TimesTen Serverシステムに自動的にインストールされます。

  • ttLocalHost経由のUNIXドメイン・ソケットを使用したローカル・クライアント/サーバー接続を使用している場合は、クライアントおよびサーバーのプラットフォームがUNIXである必要があります。クライアント・ホストおよびサーバー・ホストのビット・レベルとリリース・レベルが同じである必要があります。

  • ttShmHostを使用した共有メモリーIPC経由のローカル・クライアント/サーバー接続を使用している場合は、クライアントおよびサーバーのプラットフォームはWindowsとUNIXのいずれでもかまいません。ビット・レベルは、クライアント・ホストとサーバー・ホストで異なっている可能性があります。

TimesTen ServerシステムでのサーバーDSNの定義

サーバーDSNにより、クライアント/サーバー接続でアクセスするTimesTenデータベースが識別されます。サーバーDSNは、TimesTen Data Manager DSNと同じ構成形式および属性を持ち、システムDSNとして定義する必要があります。DSNおよびその作成方法については、「WindowsでのData Manager DSNの作成」または「UNIXでのData Manager DSN DSNの作成」を参照してください。


注意:

TimesTen Serverの稼働中に、サーバーDSNの追加および構成を実行できます。

サーバーDSNはTimesTen Serverからアクセスされるデータベースを識別するため、Data Manager DSNと同じ接続属性を使用して構成することができます。さらに、サーバーDSNの指定でのみ許可される接続属性もあります。それらの属性を使用すると、単一のサーバーに対して複数のクライアント/サーバー接続を指定することが可能になります。


注意:

接続属性の中には、次の項で説明するものも含めて、TimesTenデーモン・オプション・ファイル(ttendaemon.options)で構成できるものがあります。サーバーDSNとデーモン・オプション・ファイルの両方で同じ接続属性が指定されている場合は、サーバーDSNの接続属性の値が優先されます。

TimesTenデーモン・オプションの詳細は、「TimesTen Client/Serverのオプションの管理」を参照してください。


次の項では、odbc.iniファイルまたはODBCデータソース・アドミニストレータのコンテキストにおけるサーバーDSN属性について説明します。


注意:

TimesTen Server接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

odbc.iniファイルで定義されたサーバーDSN接続属性

デフォルトでは、TimesTenは、1つのサーバーへの接続は1つの子プロセスにつき1つのみ作成されます。ただし、次のTimesTen Server接続属性を使用すると、単一のTimesTen Serverに対して複数のクライアント/サーバー接続を指定できます。


注意:

次の属性は、初期接続で読み込まれます。TimesTen Serverを再起動するまで、TimesTen Serverの設定変更は有効になりません。サーバーを再起動するには、次のコマンドを使用します。
ttDaemonAdmin -restartserver

  • MaxConnsPerServer: 単一のサーバー・プロセスによって処理される最大クライアント接続数を設定します。サーバーは、サーバーDSNによって参照されます。サーバーには複数のサーバー・プロセスが存在できますが、その場合、この属性によって指定された接続数が各プロセスに許可される最大接続数になります。

  • ServersPerDSN: サーバー上の複数の着信接続に対応する複数のサーバー・プロセスを設定できます。ServersPerDSN属性は、サーバーで最初に生成されるサーバー・プロセスの数を指定します。新しい着信接続ごとに、ServersPerDSNを上限として、新しいサーバー・プロセスが生成されます。ServersPerDSNに指定した数に到達すると、MaxConnsPerServerに指定された接続数を上限として、既存のサーバー・プロセスが複数の接続を処理します。

  • ServerStackSize: 接続ごとに、サーバー上のスタック・サイズを設定します。

MaxConnsPerServer属性とServersPerDSN属性は関連しています。これらの属性では、指定したDSNのクライアント接続数は制限されません。かわりに、接続がサーバー・プロセスに対してどのように分散されるかが制御されます。たとえば、MaxConnsPerServerを2に、ServersPerDSNを5に設定すると、次のように処理が実行されます。

  • 接続1がサーバーに接続され、その接続用に1つ目のサーバー・プロセスが起動されます。接続2から接続5までがサーバーに接続され、サーバー・プロセス2からサーバー・プロセス5が起動され、各サーバー・プロセスが1つの接続に対応します。

  • 接続6がサーバーに接続されます。ServersPerDSNには達しましたが、MaxConnsPerServerには到達していないため、接続6には1つ目のサーバー・プロセスが割り当てられます。着信接続7から着信接続10までは、それぞれ、2つ目の接続としてサーバー・プロセス2からサーバー・プロセス5が割り当てられます。

  • 接続11がサーバーに接続されます。ServersPerDSNMaxConnsPerServerの両方の値に到達したため、接続11を処理するためにサーバー・プロセス6が起動されます。

ODBCデータソース・アドミニストレータで定義されたサーバーDSN接続属性

サーバーDSNを使用して接続を複数作成する場合は、必要に応じてサーバーDSN属性に適切な値を指定します。WindowsのODBCデータソース・アドミニストレータの場合は、「Server」タブで指定します。

図2-3 TimesTen ODBCアドミニストレータの「Server」タブ

図2-3の説明が続きます
「図2-3 TimesTen ODBCアドミニストレータの「Server」タブ」の説明

論理サーバー名の定義

論理サーバー名は、TimesTen Client上のサーバー・システムに対する定義です。ローカル・クライアント/サーバーに対して、TCP/IP以外の通信プロトコルを使用したり、TimesTen Serverプロセスが、デフォルトのTCP/IPポートをリスニングしないなどの場合は、クライアント・システムで論理サーバー名を定義する必要があります。このような場合、クライアントDSNは、論理サーバー名を参照する必要があります。ただし、使用されている通信プロトコルがTCP/IPである場合、クライアントDSNが、サーバー・ホスト名を直接参照でき、論理サーバー名を定義する必要がないのが一般的です。

次の項では、WindowsプラットフォームまたはUNIXプラットフォームでの論理サーバー名の定義方法の例を示します。

Windowsでの論理サーバー名の作成および構成

論理サーバー名の作成および構成を行うには、次の手順を実行します。

  1. Windowsデスクトップで、「スタート」「設定」「コントロール パネル」「管理ツール」「データ ソース (ODBC)」を選択します。

    「ODBC データソース アドミニストレータ」が開きます。

  2. 「ユーザー DSN」または「システム DSN」をクリックします。

  3. 「TimesTen Client DSN」を選択して「構成」をクリックします。クライアントDSNが存在しない場合は「追加」をクリックし、「TimesTen Client 11.2.2」を選択して「完了」をクリックします。「TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。

  4. 「Servers」をクリックします。「TimesTen Logical Server List」ダイアログ・ボックスが開きます。

  5. 「追加」をクリックします。「TimesTen Logical Server Name Setup」ダイアログ・ボックスが開きます。

  6. 「Server Name」フィールドに、論理サーバー名を入力します。

  7. 必要に応じて、「Description」フィールドにサーバーの説明を入力します。

  8. 「Network Address」フィールドに、サーバー・システムのホスト名またはIPアドレスを入力します。ネットワーク・アドレスは、次のいずれかである必要があります。

    接続のタイプ ネットワーク・アドレス
    リモートのクライアント/サーバー接続 TimesTen Serverが稼働しているシステムの名前。たとえば、server.mycompany.comなどです。
    プロセス間通信(IPC)に共有メモリーを使用する、ローカルのクライアント/サーバー接続 ttShmHost

    共有メモリーをIPCとして使用するには、システムが正しく構成されていることを検証します。「共有メモリー通信」を参照してください。


  9. 「Network Port」フィールドには、TimesTen Logical Serverがデフォルトでリスニングを行うポート番号が表示されます。TimesTen Serverが別のポートでリスニングしている場合は、「Network Port」フィールドにそのポート番号を入力します。

    次に例を示します。

    server.gifの説明が続きます
    server.gifの説明

  10. 「OK」をクリックした後、「TimesTen Logical Server List」ダイアログ・ボックスの「Close」をクリックして、論理サーバー名の作成を終了します。

サーバー名を削除するには、次の手順を実行します。

  1. クライアント・システムのWindowsデスクトップで、「スタート」「設定」「コントロール パネル」を選択します。

  2. 「ODBC」をダブルクリックします。「ODBC データソース アドミニストレータ」が開きます。

  3. 「ユーザー DSN」または「システム DSN」のいずれかをクリックします。

  4. 「TimesTen Client DSN」を選択して「構成」をクリックします。「TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。

  5. 「Servers」をクリックします。「TimesTen Logical Server List」ダイアログ・ボックスが開きます。

  6. 「TimesTen Servers」リストからサーバー名を削除します。

  7. 「Delete」をクリックします。

UNIXでの論理サーバー名の作成および構成

論理サーバー名を、SYSTTCONNECTINI環境変数で指定されているファイルに定義します。このファイルは、ttconnect.iniファイルと呼ばれます。このファイルには、説明、ネットワーク・アドレスおよびポート番号が含まれています。

TimesTenは、論理サーバーを次の順序で検索します。

  1. SYSTTCONNECTINI環境変数によって指定されたファイル内(設定されている場合)

  2. install_dir/info/sys.ttconnect.iniファイル内

ttconnect.iniファイルの使用

TimesTenでは、ttconnect.iniファイルを使用して、サーバーの名前と属性、および論理サーバー名とそれらのネットワーク・アドレスとの間のマッピングを定義します。この情報は、TimesTen Clientがインストールされているシステムに格納されます。デフォルトでは、ttconnect.iniファイルは、install_dir/info/sys.ttconnect.iniです。

実行時にこのファイルの名前および場所を上書きするには、TimesTenアプリケーションを起動する前に、SYSTTCONNECTINI環境変数にttconnect.iniファイルの名前および場所を設定します。

UNIXでは、ttconnect.iniファイルにTimesTen Serverの短縮名を定義できます。表2-1に、ttconnect.iniファイルでのTimesTen Server指定の形式を示します。

表2-1 ttconnect.iniファイルでのTimesTen Serverの形式

コンポーネント 説明

[ServerName]

TimesTen Serverシステムの論理サーバー名

Description=description

TimesTen Serverの説明。

Network_Address=network-address

TimesTen Serverが実行されているシステムのDNS名、ホスト名またはIPアドレス。

TCP_Port=port-number

TimesTen Serverが実行されているTCP/IPポート番号。TimesTenリリース11.2.2のデフォルトは、53393(32ビットのプラットフォーム用)および53397(64ビットのプラットフォーム用)です。


ネットワーク・アドレスは、次のいずれかである必要があります。

接続のタイプ ネットワーク・アドレス
リモートのクライアント/サーバー接続 TimesTen Serverが稼働しているシステムの名前。たとえば、server.mycompany.comなどです。
UNIXドメイン・ソケットを使用する、ローカルのクライアント/サーバー接続 ttLocalHost
プロセス間通信に共有メモリーを使用する、ローカルのクライアント/サーバー接続 ttShmHost

例2-1 論理サーバー名の定義

この例はttconnect.iniファイルの一部を示しており、システムserver.mycompany.comで稼働し、ポート53397をリスニングするTimesTen Serverの論理サーバー名LogicalServer_1122を定義しています。TimesTenインストールのインスタンス名はtt1122_64です。

[LogicalServer_1122]
Description=TimesTen Server 11.2.2
Network_Address=server.mycompany.com
TCP_Port=53397

例2-2 通信におけるUNIXドメイン・ソケットの使用

クライアントとサーバーが同じUNIXシステム上にある場合、TimesTen Client ODBCドライバを使用するアプリケーションで、通信にUNIXドメイン・ソケットを使用すると、パフォーマンスが向上する場合があります。

また、同じバージョンのTimesTen Serverの複数のインスタンスを同じシステム上で実行できるように、TimesTen Serverがリスニングを行うポート番号を論理サーバー名に定義する必要もあります。これには、ttconnect.iniファイルで論理サーバー名を次のように定義します。

[LocalHost_1122]
Description=Local TimesTen Server 11.2.2 through domain sockets
Network_Address=ttLocalHost
TCP_Port=53397

例2-3 プロセス間通信用の共有メモリーの構成

クライアントとサーバーが同じシステム上にある場合、アプリケーションでプロセス間通信に共有メモリーを使用できます。これによって、パフォーマンスが向上する場合があります。

また、TimesTen Serverが初期接続を行うためにリスニングを行っているポート番号を論理サーバー名に定義する必要もあります。これには、ttconnect.iniファイルで論理サーバー名を次のように定義します。

[ShmHost_1122]
Description= Local TimesTen Server 11.2.2 through shared memory
Network_Address=ttShmHost
TCP_Port=53397

TimesTen ClientシステムでのクライアントDSNの作成

クライアントDSNは、リモート・データベースを指定し、TimesTen Clientを使用します。クライアントDSNは、ユーザーDSNとしても、システムDSNとしても定義できます。クライアントDSNは、hostname、DSN(hostnameはTimesTenサーバーが実行しているサーバー・システムを表し、DSNはそのホスト上で定義されているサーバーDSNを表します)のペアを指定して間接的にTimesTenデータベースを参照します。これらは、クライアントDSN接続属性内で構成します。


注意:

TimesTen Client接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

また、実行時に接続属性を、ODBCのSQLDriverConnect関数に渡される接続文字列として構成したり、JDBCのDriverManager.getConnection()メソッドに渡されるURL文字列として構成することもできます。たとえば、サーバー上でクライアントが使用するDSNを指定するには、クライアントの接続文字列またはクライアントDSNでTTC_Server_DSN属性を使用できます。


注意:

クライアントDSNの定義内で構成されたサーバーDSNデータ・ストアまたは最初の接続属性はいずれも無視されます。ただし、TimesTen Clientでは、接続文字列またはURL文字列の一部として、ほとんどのサーバーDSN属性(DataStore接続属性を除く)を渡すことができます。それらは、サーバーに透過的に渡され、サーバーDSNの構成が上書きされます。

次の項では、WindowsプラットフォームまたはUNIXプラットフォームでのクライアントDSNとその属性の作成方法については説明します。

WindowsでのクライアントDSNの作成および構成

Windowsの場合、ODBCデータソース・アドミニストレータを使用して、論理サーバー名の構成およびクライアントDSNの定義を行います。

この項の内容は次のとおりです。

WindowsでのクライアントDSNの作成

TimesTen Client DSNを定義するには、次の手順を実行します。

  1. Windowsデスクトップで、「スタート」「設定」「コントロール パネル」「管理ツール」「データ ソース (ODBC)」を選択します。「ODBC データソース アドミニストレータ」が開きます。

  2. 「ユーザー DSN」または「システム DSN」をクリックします。ユーザーDSNおよびシステムDSNについては、「TimesTenデータベースを識別するためのデータソース名の指定」を参照してください。

  3. 「追加」をクリックします。「データソースの新規作成」ダイアログ・ボックスが開きます。

    add_dsn.gifの説明が続きます
    add_dsn.gifの説明

  4. 「TimesTen Client 11.2.2」を選択します。「完了」をクリックします。「Oracle TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。

    setup_adv.gifの説明が続きます
    setup_adv.gifの説明

  5. 「Client DSN」フィールドに、クライアントDSNの名前を入力します。

    クライアント・アプリケーションがインストールされているシステム上の定義したDSNの現行のリストで、この名前は最大32文字で一意である必要があります。論理サーバー名とサーバーDSNの名前を組み合せた一貫したネーミング規則を使用すると、名前の競合を回避できます。たとえば、ある企業に、BostonおよびChicagoという名前の論理サーバーと、AccountsというサーバーDSNがある場合、クライアントDSNの名前はBoston_AccountsおよびChicago_Accountsにできます。

  6. 必要に応じて、「Description」フィールドにクライアントDSNの説明を入力します。

  7. 「Server Name or Network Address」フィールドで、サーバー・システムの論理サーバー名またはネットワーク・アドレスを指定します。

    • この名前には、ホスト名、IPアドレスまたは論理サーバー名を指定できます。クライアント・システムで定義した論理サーバー名は、ドロップダウン・リストに表示されます。論理サーバー名を定義するには、「Servers」をクリックします。

    • このフィールドに論理サーバー名を指定しない場合、TimesTen Clientは、TimesTen ServerがデフォルトのTCP/IPポート番号で稼働していると想定します。このため、デフォルトのポート以外でサーバーが稼働しているときにこのフィールドに論理サーバー名を指定しない場合は、TCP_Port属性を使用してODBC接続文字列にポート番号を指定する必要があります。

      論理サーバー名の定義の詳細は、「Windowsでの論理サーバー名の作成および構成」を参照してください。

  8. 「Server DSN」フィールドに、クライアント・アプリケーションがアクセスするデータベースに対応するサーバーDSNを入力します。

    • サーバーDSNの名前がわからない場合は、「Refresh」をクリックして、「Server Name or Network Address」フィールドに指定したシステムで定義されているサーバーDSNのリストを取得します。ドロップダウン・リストから「Server DSN」を選択します。

    • TimesTen Serverが稼働しているシステムへのネットワーク・接続が必要です。

    このリストに表示するサーバーDSNのカスタマイズ方法については、「ODBCデータソース」を参照してください。

  9. 「Connection Character Set」フィールドで、ターミナル設定またはデータソースと一致しているキャラクタ・セットを選択します。デフォルトの接続キャラクタ・セットはUS7ASCIIです。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のConnectionCharacterSetに関する説明を参照してください。

  10. 自動クライアント・フェイルオーバーを使用する場合は、「Failover Server Name」「Failover Port Range」および「Failover DSN」を構成します。詳細は、「自動クライアント・フェイルオーバーの構成」を参照してください。

タイムアウト時間および認証の設定

クライアント/サーバー接続のユーザー名、パスワードおよびタイムアウト時間は、UIDPWDおよびTimeoutの各属性を使用して、クライアントDSNで定義できます。ただし、接続時にユーザー名およびパスワードを指定できるため、クライアントDSNでの認証の構成はオプションです。パスワードは暗号化されずにクライアントに格納されるため、クライアントDSNでパスワード指定することは絶対に避けてください。

UIDPWDおよびTimeoutの各属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。

タイムアウト時間および認証を設定するには、次の手順を実行します。

  1. Oracle TimesTenクライアントの「DSN Setup」ダイアログの「User ID」フィールドに、サーバー・システムで定義されているユーザー名を入力します。

  2. 「Password」フィールドには、ユーザーIDに対応するパスワードを入力します。「PwdCrypt」フィールドに、暗号化されたパスワードを入力することもできます。

  3. 「Timeout Interval」フィールドに、間隔を秒単位で入力します。負の整数以外を入力できます。0を指定すると、クライアント/サーバー処理でタイムアウトは設定されません。デフォルトは60秒です。最大値は99,999秒です。

  4. 「OK」をクリックして、設定を保存します。

Windowsでのリモート・データベースへのアクセス

この例で、TimesTen Clientシステムはclient.mycompany.comです。クライアント・アプリケーションは、リモート・サーバー・システムserver.mycompany.com.上のサーバーDSNにアクセスしています。論理サーバー名はLogicalServer_1122です。


注意:

これらの例は、TimesTenのフレッシュ・インストールで事前定義されるサンプルDSNを参照します。

  1. サーバー・システムserver.mycompany.comでは、TimesTen Serverが稼働していること、およびTimesTen Serverによってリスニングが行われているポート番号について、ttStatusユーティリティを使用して確認します。

  2. 「TimesTen ServerシステムでのサーバーDSNの定義」の手順に従って、サーバーDSNのsampledb_1122が、server.mycompany.com上でシステムDSNとして定義されていることを確認します。

  3. クライアント・システムclient.mycompany.comで、リモートTimesTen Server用に論理サーバー名のエントリを作成します。「TimesTen Logical Server Name Setup」ダイアログ・ボックスで、次のように指定します。

    • 「Server Name」フィールドに、LogicalServer_1122と入力します。

    • 「Network Address」フィールドに、server.mycompany.comと入力します。

    • 「Network Port」フィールドに、53397と入力します。これは、TimesTenリリース11.2.2の場合の64ビット・プラットフォームでのTimesTen Serverのデフォルト・ポート番号です。この値は、手順1でttStatusによって表示された値に対応している必要があります。

    「TimesTen Server Name」ダイアログ・ボックスを開く手順および詳細は、「Windowsでの論理サーバー名の作成および構成」を参照してください。

  4. クライアント・システムclient.mycompany.comで、リモートのサーバーDSNであるsampledbCS_1122に対応するクライアントDSNを作成します。「TimesTen Client DSN Setup」ダイアログ・ボックスで、次の値を入力します。

    • 「Client DSN」フィールドに、sampledbCS_1122と入力します。

    • 「Server Name or Network Address」フィールドに、LogicalServer_1122と入力します。

    • 「Description」フィールドにサーバーの説明を入力します。このフィールドにデータを入力するかどうかはオプションです。

    • 「Server DSN」フィールドに、sampledb_1122と入力します。

  5. クライアントDSNのsampledbCS_1122を使用して、システムclient.mycompany.comからクライアント・アプリケーションを実行します。次の例では、TimesTen ClientとともにインストールしたttIsqlプログラムを使用します。

    ttIsql -connStr "DSN=sampledbCS_1122"
    

次の例では、デフォルトのポート番号以外を使用するTimesTen Serverにアクセスする方法について説明します。

TimesTen Serverのネットワーク・アドレスがserver.mycompany.comで、TimesTen Serverがポート53397をリスニングしているとします。この場合は、次の方法を使用してサーバーDSNに接続できます。

  1. ネットワーク・アドレスにserver.mycompany.com、ネットワーク・ポートに53397を指定して論理サーバー名LogicalServer_1122を定義します。LogicalServer_1122をサーバー名、Server_DSNをサーバーDSNとして、Client_DSNをクライアントDSNとして定義します。次に、コマンドを実行します。

    ttIsql -connStr "DSN=Client_DSN"
    
  2. または、ネットワーク・アドレスにserver.mycompany.com、ネットワーク・ポートにデフォルトのポート番号を指定して論理サーバー名LogicalServer_tt1122を定義します。LogicalServer_1122をサーバー名、Server_DSNをサーバーDSNとして、Client_DSNをクライアントDSNとして定義します。コマンドのポート番号を上書きします。

    ttIsql -connStr "DSN=Client_DSN;TCP_Port=53397"
    
接続のテスト

TimesTenデータベースへのクライアント・アプリケーションの接続をテストするには、次の手順を実行します。

  1. Windowsデスクトップで、「スタート」「設定」「コントロール パネル」を選択します。

  2. 「ODBC」をダブルクリックします。「ODBC データソース アドミニストレータ」が開きます。

  3. 「ユーザー DSN」または「システム DSN」をクリックします。

  4. 接続をテストするTimesTen Client DSNを選択し、「構成」をクリックします。「TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。

    setup_adv.gifの説明が続きます
    setup_adv.gifの説明

  5. 「Test Oracle TimesTen Server Connection」をクリックして、TimesTen Serverへの接続をテストします。

    ODBCデータソース・アドミニストレータでTimesTen Serverへの接続が試行され、接続が成功したかどうかを示すメッセージが表示されます。このテスト中、TimesTen Clientによって次のことが検証されます。

    • クライアント・システムにODBC、WindowsソケットおよびTimesTen Clientがインストールされているかどうか。

    • 「TimesTen Client DSN Setup」ダイアログ・ボックスの「Server Name or Network Address」フィールドで指定したサーバーが定義されていて、対応するシステムが存在しているかどうか。

    • TimesTen Serverはサーバー・システムで稼働しています。

  6. 「Test Data Source Connection」をクリックして、サーバーDSNへの接続をテストします。ODBCデータソース・アドミニストレータでサーバーDSNへの接続が試行され、接続が成功したかどうかを示すメッセージが表示されます。

    このテスト中、TimesTen Clientによって次のことが検証されます。

    • 「Server DSN」フィールドで指定したサーバーDSNがサーバー・システムで定義されているかどうか。

    • クライアント・アプリケーションでサーバーDSNに接続できるかどうか。

UNIXでのクライアントDSNの作成および構成

UNIXでは、ttconnect.iniファイルを編集して論理サーバー名を定義し、クライアントDSNは、ユーザーodbc.iniファイル(ユーザーDSN用)またはシステムodbc.iniファイル(システムDSN用)を編集して定義します。ユーザーDSNおよびシステムDSNについては、「TimesTenデータベースを識別するためのデータソース名の指定」を参照してください。


注意:

odbc.iniファイルでクライアントDSNを定義する場合の構文については、「odbc.iniファイル・エントリの説明」を参照してください。

odbc.iniファイルのODBC Data Sourcesセクションに、クライアントDSNのエントリを追加します。クライアントDSNでは、次の属性を使用して、TimesTenデータベースの場所を指定します。

  • 接続に使用するODBCクライアント・ドライバ。

  • データベースが存在するサーバー・システムは、TTC_Server属性で指定します。

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


    注意:

    サーバーDSNは、データベースが存在するサーバー・システム上で定義します。

クライアントが接続されるTimesTenデータベースごとに、次の2つのエントリが必要です。

  • ODBC Data Sourcesセクションに、クライアントDSN名を定義し、使用するODBCクライアント・ドライバの名前を指定します。


    注意:

    使用可能なすべてのODBCクライアント・ドライバについては、「TimesTen ODBCドライバを使用する接続」を参照してください。

  • ODBC Data Sourcesセクションで定義済のクライアントDSNを使用してエントリを作成します。このセクションで、サーバー・システムおよびサーバーDSNを指定します。

使用するクライアントDSN名およびODBCクライアント・ドライバを指定する構文を次に示します。

[ODBC Data Sources]
Client_DSN=Name-of-ODBC-driver

たとえば、クライアントDSNとしてsampbledbCS_1122を定義し、TimesTen Client ODBCドライバに関連付けるには、odbc.iniファイルのODBC Data Sourcesセクションに次のように入力します。

[ODBC Data Sources]
sampledbCS_1122=TimesTen Client 11.2.2

ODBC Data Sourcesセクションの後に、定義した各データソースに対するサーバー・システムおよびサーバーDSNを指定するエントリを追加します。odbc.iniファイルのODBC Data Sourcesセクションに示されるクライアントDSNごとに指定セクションが必要です。

論理サーバー名LogicalServer_1122を使用してTimesTen Serverを構成し、サーバーDSNがsampledb_1122であるTimesTenクライアントDSN sampledbCS_1122を指定する例を次に示します。

[sampledbCS_1122]
TTC_Server=LogicalServer_1122
TTC_Server_DSN=sampledb_1122

TTC_Server*属性が、クライアントDSN定義の主要属性です。クライアント接続属性の数はわずかですが、それぞれがサーバーDSNを識別します。クライアント定義に指定されたサーバー接続属性は無視されます。クライアント定義では、一般的な接続属性を指定できます。odbc.iniファイルで使用できるすべてのクライアントと、一般的な接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する項を参照してください。

自動クライアント・フェイルオーバーの使用

自動クライアント・フェイルオーバーは、TimesTenアクティブ・スタンバイ・ペア・レプリケーション構成での高可用性シナリオで使用されます。アクティブTimesTenノードの障害によって元のスタンバイ・ノードが新しいアクティブ・ノードになるというシナリオを検討します。自動クライアント・フェイルオーバー機能を使用すると、新しいアクティブ(元のスタンバイ)・ノードへのフェイルオーバー(転送)が発生し、アプリケーションは新しいアクティブ・ノードに自動的に再接続されます。TimesTenは自動クライアント・フェイルオーバーが発生したときに、アプリケーションに警告を渡す機能を提供しているため、アプリケーションは適切な処理を行うことができます。


注意:

自動クライアント・フェイルオーバーは、Oracle Clusterwareが使用されている場合のOracle Clusterwareに対する補完機能ですが、この2つの機能は互いに依存しません。Oracle Clusterwareの詳細は、『Oracle TimesTen In-Memory Database開発者および管理者ガイド』の「Oracle Clusterwareを使用したアクティブ・スタンバイ・ペアの管理」に関する説明を参照してください。

次の項では、自動クライアント・フェイルオーバーを使用および有効化する方法について説明します。

自動クライアント・フェイルオーバーの機能

アプリケーションがアクティブ・ノードに接続すると、接続が登録され、この登録はスタンバイ・ノードにレプリケートされます。アクティブ・ノードに障害が発生すると、スタンバイ・ノードがアクティブ・ノードになり、クライアントにフェイルオーバーのことが通知されます。この時点で、クライアントは新しいアクティブ・ノードに新しく接続します。接続ハンドル以外の状態は保持されません。元の接続からのすべてのクライアント文ハンドルは、無効とマークされます。

フェイルオーバーが完了すると、TimesTenは登録されているユーザー定義関数に対してコールバックを行います。この関数は、フェイルオーバーが発生している状況で実行する必要があるカスタム処理を行います。


注意:

C開発者の場合、コールバックの作成方法および自動クライアント・フェイルオーバーの促進方法についての詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』の「アプリケーションでの自動クライアント・フェイルオーバーの使用」に関する説明を参照してください。

Java開発者の場合、詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』の「自動クライアント・フェイルオーバー用のJDBCのサポート」に関する説明を参照してください。


次の項目は、特定の障害シナリオにおける自動クライアント・フェイルオーバーの動作を示しています。

  • クライアント・ライブラリがアクティブ・ノードとの接続を失った場合、フェイルオーバーを実行してスタンバイ・ノードへの切換えを試行します。

  • なんらかの理由でアクティブ・ノードがない場合(サーバー側でフェイルオーバーが発生せず、両方のサーバーがスタンバイかアイドル状態)は、アプリケーションは接続できません。ただし、自動クライアント・フェイルオーバーは、アクティブ・ノードを見つけるか、タイムアウトになるまで、両方のサーバーの切替えを継続します。

  • フェイルオーバーがすでに発生し、クライアントがすでに新しいアクティブ・ノードに接続されている場合、次のフェイルオーバー・リクエストでは、元のアクティブ・ノードへの再接続が試みられます。これが失敗すると、タイムアウトになるまで、2つのサーバーに接続するために切替え試行が行われます。


    注意:

    自動クライアント・フェイルオーバーを使用している場合にTimesTenが障害からリカバリしようとするとき、タイムアウトは、フェイルオーバーのリカバリにおけるすべての試行の期間を指定します。フェイルオーバーが試行されている間は、接続はブロックされることがあります。

    このタイムアウトはデフォルトが60秒で、TTC_Timeout接続属性の値を使用して設定できます。TTC_Timeoutの設定にかかわらず、最小タイムアウトは60秒です。この属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「TTC_Timeout」を参照してください。


  • クライアント登録がスタンバイ・ノードへのレプリケーションによって正常に伝播される前にアクティブ・ノードで障害が発生した場合、クライアントはフェイルオーバー・メッセージを受信せず、接続登録は失われます。ただし、最終的に、クライアント・ライブラリによって、元のアクティブ・ノードへの接続が失われたためにフェイルオーバーの試行を開始することが(TCPを介して)通知されます。


注意:

  • これらの機能は、クライアント/サーバー接続のみに適用されます。直接接続には適用されません。

  • フェイルオーバー接続は、事前に作成されるのではなく、必要に応じてのみ作成されます。

  • 自動クライアント・フェイルオーバーを使用すると、サーバー・プロセスごとに1つのデータベース接続が追加されるため、TimesTenのConnections属性(データベースへの同時接続数の上限)の設定を選択することを考慮する必要があります。サーバー・プロセスの数は、MaxConnsPerServer属性(子サーバー・プロセスによって処理可能な同時接続の最大数)の設定にも影響を受けます。たとえば、接続が12個あり、MaxConnsPerServer=3の場合、サーバー・プロセスは4個になります。したがって、いくつかの接続で自動クライアント・フェイルオーバーを使用する場合、追加の接続は4個になります。


自動クライアント・フェイルオーバーの構成

アクティブ・スタンバイ・ペアのレプリケーション・スキームを使用するデータベースに対して、自動クライアント・フェイルオーバーのみを構成できます。これにより、クライアントは、スタンバイ・データベースが存在するサーバーに自動的にフェイルオーバーできるようになります。


注意:

フェイルオーバー後の接続オプションの永続性の詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』の「アプリケーションでの自動クライアント・フェイルオーバーの使用」に関する説明を参照してください。

Windowsでの自動クライアント・フェイルオーバーの構成

Oracle TimesTenの「Client DSN Setup」ダイアログで、「WindowsでのクライアントDSNの作成および構成」の説明のとおり、残りのクライアントDSN情報を構成した後で、次のフィールドに入力します。

  1. 「Failover Server Name or Network Address」フィールドで、サーバー・システムの論理サーバー名またはネットワーク・アドレスを指定します。

    • この名前には、ホスト名、IPアドレスまたは論理サーバーを指定できます。クライアント・システムで定義した論理サーバー名は、ドロップダウン・リストに表示されます。論理サーバー名を定義するには、「Servers」をクリックします。

    • このフィールドに論理サーバー名を指定しない場合、TimesTen Clientは、TimesTen ServerがデフォルトのTCP/IPポート番号で稼働していると想定します。このため、デフォルトのポート以外でサーバーが稼働しているときにこのフィールドに論理サーバー名を指定しない場合は、TCP_Port属性を使用してODBC接続文字列にポート番号を指定する必要があります。

      論理サーバー名の定義の詳細は、「Windowsでの論理サーバー名の作成および構成」を参照してください。

  2. 「Failover Server DSN」フィールドに、スタンバイ・データベースに対応するサーバーDSNを入力します。

    • サーバーDSNの名前がわからない場合は、「Refresh」をクリックして、「Failover Server Name or Network Address」フィールドに指定したシステムで定義されているサーバーDSNのリストを取得します。ドロップダウン・リストから「Server DSN」を選択します。

    • TimesTen Serverが稼働しているシステムへのネットワーク・接続が必要です。

  3. オプションで、TimesTenがフェイルオーバー通知をリスニングするポートまたはポート範囲に対応した「Failover Port Range」を指定します。サーバー・ホストとクライアント・ホスト間にファイアウォールの問題がある場合、この接続属性は単一ポート番号として指定する必要があります。TimesTenでは、デフォルトで、オペレーティング・システムによって選択されたポートが使用されます。フェイルオーバー通知がサーバー・ホストからクライアント・ホストに発行されます。ポート範囲は、最小値と最大値をハイフンで区切って設定します。

    次の2つの条件が一致する場合は、ポート範囲のみを指定する必要があります。

    • サーバー・ホストとクライアント・ホスト間にファイアウォールの問題がある。

    • 1つのクライアント・ホスト上で複数のクライアント・アプリケーションを使用して自動クライアント・フェイルオーバーを構成している。

    クライアント・ホスト上で自動クライアント・フェイルオーバーを構成している各クライアント・アプリケーションは、フェイルオーバー通知用の個別ポートでリスニングする必要があります。

UNIXでの自動クライアント・フェイルオーバーの構成

クライアントでは、次のように構成します。

  1. クライアントのodbc.iniファイルで、スタンバイ・データベースがあるサーバーに対してTTC_Server2を構成することで、スタンバイ・ノードのクライアントDSNを定義します。TTC_Server_DSN2をスタンバイ・データベースの名前に設定します。

    次に例を示します。

    [MyDSN]
    TTC_Server=LogicalServer_1122
    TTC_Server_DSN=MyDSN
    TTC_Timeout=60
    TTC_Server2=LogicalServer2_1122
    TTC_Server_DSN2=MyDSN_Standby
    
  2. クライアント上のttconnect.iniファイルで、スタンバイ・データベースがあるサーバーに対してNetwork_AddressTCP_Portを構成することによって、スタンバイ・ノードの論理サーバーを定義します。

    [LogicalServer_1122]
    Description=TimesTen Server 11.2.2
    Network_Address=server.mycompany.com
    TCP_Port=53397
    
    [LogicalServer2_1122]
    Description=TimesTen Server 11.2.2
    Network_Address=server2.mycompany.com
    TCP_Port=53397
    

    TTC_Server2TTC_Server_DSN2またはTCP_Port2のいずれかを設定することは、暗黙的に次のことを意味します。

    • ユーザーは、自動クライアント・フェイルオーバーを使用するつもりである。

    • ユーザーは、フェイルオーバー・メカニズムをサポートするためにアプリケーションに新しいスレッドが作成されることを理解している。

  3. オプションで、TTC_FailoverPortRange属性を構成して、フェイルオーバー・スレッドがフェイルオーバー通知をリスニングするポートまたはポート範囲を指定します。サーバー・ホストとクライアント・ホスト間にファイアウォールの問題がある場合、この接続属性は単一ポート番号として指定する必要があります。デフォルトでは、オペレーティング・システムで選択されたポートが使用されます。フェイルオーバー通知がサーバー・ホストからクライアント・ホストに発行されます。ポート範囲は、最小値と最大値をハイフンで区切って設定します。

    次の2つの条件が一致する場合は、ポート範囲のみを指定する必要があります。

    • サーバー・ホストとクライアント・ホスト間にファイアウォールの問題がある。

    • 1つのクライアント・ホスト上で複数のクライアント・アプリケーションを使用して自動クライアント・フェイルオーバーを構成している。

    クライアント・ホスト上で自動クライアント・フェイルオーバーを構成している各クライアント・アプリケーションは、フェイルオーバー通知用の個別ポートでリスニングする必要があります。


注意:

  • 他の接続属性と同様に、TTC_Server2TTC_Server_DSN2およびTCP_Port2は接続文字列で指定でき、この指定はDSNのすべての設定より優先されます。

  • TTC_Server2を指定して、TTC_Server_DSN2およびTCP_Port2を指定しなかった場合、TTC_Server_DSN2TTC_Server_DSNの値に設定され、TCP_Port2TCP_Portの値に設定されます。

  • クライアント・ライブラリがTTC_Server_DSNに接続できない場合、スタンバイであるTTC_Server_DSN2に接続を試みます。

  • 仮想IPアドレスの場合、TTC_ServerTTC_Server2で同じ設定を使用できます。


TimesTen Serverの起動

TimesTen Serverとは、TimesTenデーモンの子プロセスのことです。TimesTen Serverがインストールされていて、TimesTenデーモンまたはData Managerサービスが起動または停止されると、このプロセスは自動的に起動および停止されます。このデーモンまたはサービスは、ttDaemonAdminユーティリティを使用して明示的に起動または停止できます。

TimesTen Serverは、TimesTen Clientドライバとリンクされたアプリケーションからのリクエストを処理します。

TimesTenデーモンおよびTimesTen Serverのデフォルト・ポートの詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の「TimesTenのインストール」に関する説明の章を参照してください。システム管理者は、競合の回避またはセキュリティ上の理由から、インストール時にポート番号を変更できます。ポートの範囲は1から65535です。TimesTen Serverに接続するには、クライアントDSNで、論理サーバー名の定義の一部としてポート番号を指定するか、接続文字列にポート番号を指定する必要があります。

Windowsの場合、TimesTenサービスはSYSTEMユーザーとして実行されます。UNIXの場合、TimesTen Serverはインスタンス管理者として実行されます。

TimesTen Serverオプションの変更方法については、「TimesTen Serverオプションの変更」を参照してください。

サーバー情報メッセージ

TimesTen Serverは、接続、切断、様々な警告、エラーおよび情報エントリをログ・ファイルに記録します。

Windowsの場合、これらのアプリケーション・メッセージはイベント・ビューアで表示できます。

UNIXシステムの場合、TimesTen Serverはデフォルトでinstall_dir/info/ttmesg.logファイルとinstall_dir/info/tterrors.logファイルにメッセージを記録します。オプションで、syslog機能にメッセージを記録するようTimesTenを構成することもできます。

「情報メッセージの変更」を参照してください。

UNIXでのリモート・データベースへのアクセス

この例では、TimesTen Clientアプリケーション・システムは64ビットSolarisシステム、client.mycompany.comです。クライアント・アプリケーションは、リモート・サーバー・システムである、もう1つの64ビットSolarisシステム、server.mycompany.com上のサーバーDSNsampledb_1122にアクセスしています。論理サーバー名はLogicalServer_1122です。TimesTenインストールのインスタンス名はtt1122_64です。

  1. サーバー・システムserver.mycompany.comでは、TimesTen Serverが稼働していること、およびTimesTen Serverによってリスニングが行われているポート番号について、ttStatusユーティリティを使用して確認します。

  2. server.mycompany.com上のシステムodbc.iniファイルに、サーバーDSNであるsampledb_1122が指定されていることを確認します。

    これらは、odbc.iniファイルで次のように指定されている必要があります。

    [sampledb_1122]
    Driver=install_dir/lib/libtten.so
    DataStore=install_dir/server/sampledb_1122
    
  3. client.mycompany.com上のttconnect.iniファイルで、リモートTimesTen Server用に論理サーバー名のエントリを作成します。

    [LogicalServer_1122]
    Network_Address=server.mycompany.com
    TCP_Port=53397
    

    ttconnect.iniファイルの作成方法は、「UNIXでのクライアントDSNの作成および構成」を参照してください。

  4. クライアント・システムclient.mycompany.comで、リモートのサーバーDSNであるsampledb_1122に対応するクライアントDSNを作成します。

    これらは、odbc.iniファイルで次のように指定されている必要があります。

    [sampledbCS_1122]
    TTC_Server=LogicalServer_1122
    TTC_Server_DSN=sampledb_1122
    

    適切なodbc.iniファイルの場所は、「ユーザーDSNおよびシステムDSNの概要」を参照してください。

  5. クライアントDSNのsampledbCS_1122を使用して、システムclient.mycompany.comからクライアント・アプリケーションを実行します。次の例では、TimesTen ClientとともにインストールしたttIsqlプログラムを使用します。

    ttIsqlCS -connStr "DSN=sampledbCS_1122"
    

次の例では、デフォルトのポート番号以外を使用するTimesTen Serverにアクセスする方法について説明します。

TimesTen Serverのネットワーク・アドレスがserver.mycompany.comであり、TimesTen Serverがポート53397をリスニングしているとします。この場合は、次の方法を使用してサーバーDSNに接続できます。

  1. ネットワーク・アドレスにserver.mycompany.com、ネットワーク・ポートに53397を指定して論理サーバー名LogicalServer_1122を定義します。LogicalServer_1122をサーバー名、Server_DSNをサーバーDSNとして、Client_DSNをクライアントDSNとして定義します。次のコマンドを実行します。

    ttIsqlCS -connStr "DSN=Client_DSN"
    
  2. または、ネットワーク・アドレスにserver.mycompany.com、ネットワーク・ポートにデフォルトのポート番号を指定して論理サーバー名logical_serverを定義します。サーバー名にLogicalServer_1122、サーバーDSNにServer_DSNを指定してクライアントDSNを定義します。コマンドのポート番号を上書きします。

    ttIsqlCS -connStr "DSN=Client_DSN;TCP_Port=53397"
    
  3. あるいは、接続文字列にサーバーを定義します。この場合、クライアントDSNや論理サーバー名を定義する必要はありません。

    ttIsqlCS -connStr "TTC_Server=server.mycompany.com;TTC_Server_DSN=Server_DSN;TCP_Port=53397"
    

接続のテスト

TimesTenデータベースへのクライアント・アプリケーションの接続をテストするには、次の手順を実行します。

  1. クライアント・システムがサーバー・システムにアクセスできることを確認します。

  2. サーバー・システムから応答があるかどうかを確認するために、クライアント・システムからpingを実行します。

  3. TimesTen Serverがサーバー・システムで稼働していることを確認します。

    • TimesTen Serverがリスニングを行っているポートにtelnetで接続します。次に例を示します。

      telnet server.mycompany.com 53397
      
    • TimesTen Serverへの接続に成功すると、次のようなメッセージが表示されます。

      Connected to server.mycompany.com
      
    • サーバー・システムはコマンドに応答するが、TimesTen Serverが応答しない場合は、TimesTen Serverが稼働していない可能性があります。接続に失敗した場合、次のようなメッセージが表示されます。

      telnet: Unable to connect to remote host: Connection refused
      
    • サーバー・システム上のttStatusユーティリティを使用して、TimesTen Serverのステータスおよびポート番号を確認します。通常、TimesTen Serverはインストール時に起動されます。TimesTen Serverが稼働していない場合は、起動する必要があります。TimesTen Serverの起動方法は、「TimesTen Serverオプションの変更」を参照してください。

  4. クライアント・アプリケーションがデータベースに接続可能であることを確認します。データベースへの接続を確立できない場合は、ttconnect.iniファイルに正しい情報が指定されていることを確認します。

  5. ttconnect.iniファイルの情報が正しい場合は、データベースが存在し、TimesTen Serverが稼働しているシステムで、データベースに対応するサーバーDSNがシステムのodbc.iniファイルで適切に設定されていることを確認します。