TimesTenデータベースへのネットワーク経由のクライアント/サーバー接続は、TimesTen ClientおよびTimesTen Serverを使用してオープンできます。
次の項では、TimesTen Client/TimesTen Serverおよびそれらを使用した接続方法について説明します。
TimesTen Serverは、サーバー・マシン上で実行されるプロセスであり、TimesTen Clientからネットワーク・リクエストを受け付け、サーバー・マシン上にあるデータベースでの処理に変換します。これにより、クライアントは、異なるプラットフォームおよびオペレーティング・システムのビット・レベルを実行している可能性のある様々なマシンに格納されているデータベースに接続できます。
TimesTen Clientのインストール先は、TimesTen Serverと異なるマシンであっても、同じマシンであってもかまいません。TimesTen Clientのインストール先をTimesTen Serverと同じマシンとすると、それらを使用してローカル・マシン上のTimesTenデータベースにアクセスできます。たとえば、32ビット・アプリケーションと64ビット・アプリケーションの両方をサポートするプラットフォームで、32ビット・アプリケーションを使用して同じマシン上の64ビット・データベースにアクセスできます。
注意: クライアント/サーバー接続は、TimesTenがサポートするプラットフォーム間のいずれの組合せに対しても作成できます。 |
図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のクイック・スタートのサンプル・アプリケーションには、Windows対応のドライバ・マネージャが含まれています。ドライバ・マネージャを使用する場合には、パフォーマンス上の考慮事項があります。
TimesTen Server: サーバー・マシン上で、 TimesTen ServerはTimesTen Data Manager ODBCドライバにリンクされています。サーバーで実行する処理は、クライアント・アプリケーションからのリクエストをリスニングし、Data Manager ODBCドライバを介してリクエストを処理した後、結果およびエラーがあればその情報をクライアント・アプリケーションに戻すことです。
注意: TimesTenアプリケーションのコンパイル方法の詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』または『Oracle TimesTen In-Memory Database C開発者ガイド』を参照してください。 |
次の項では、クライアント/サーバー通信の制限および通信プロトコルについて説明します。
クライアント/サーバー通信に対する制限は、次のとおりです。
クライアント/サーバー接続にXLAを使用することはできません。
UNIXの場合、ttAdmin
、ttRepAdmin
、ttBackup
などの一部のTimesTenユーティリティは、直接接続経由でのみ動作します。UNIXプラットフォームのクライアント/サーバー接続経由で実行可能なユーティリティの名前には、ttIsqlCS
、ttBulkCpCS
、ttMigrateCS
、ttSchemaCS
など、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との間で使用できる通信プロトコルについて説明します。
デフォルトでは、TimesTen Clientは、TCP/IPソケットを使用してTimesTen Serverと通信します。これは、TimesTen ClientとTimesTen Serverが異なるマシンにインストールされている場合に使用可能な唯一の通信形式です。
TimesTen ClientおよびTimesTen Serverの両方が同じマシンにインストールされている場合、TimesTen Client ODBCドライバを使用しているアプリケーションでは、プロセス間通信(IPC)用の共有メモリー・セグメントを使用することで、パフォーマンスを向上できます。ただし、共有メモリー・セグメントを使用すると、パフォーマンスは向上しますが、消費されるメモリーが増大します。共有メモリー・セグメントを通信に使用するには、次の操作を行う必要があります。
共有メモリー通信を使用するように、ttendaemon.options
ファイルでサーバー・オプションを構成します。詳細は、「クライアント/サーバーIPCでの共有メモリーの使用方法」を参照してください。
論理サーバー名で、ネットワーク・アドレスをttShmHost
と定義します。詳細は、「論理サーバー名の定義」を参照してください。
注意: TimesTenでは、共有メモリーのIPC対応サーバーの最大16の異なるインスタンスがサポートされています。アプリケーションで16を超えて異なる共有メモリー・セグメントに接続しようとすると、エラーが戻されます。 |
UNIXプラットフォームでは、TimesTen ClientとTimesTen Serverが同一のマシンにインストールされている場合、通信用にUNIXドメイン・ソケットを使用できます。共有メモリー・セグメントを使用すると、パフォーマンスは向上しますが、消費されるメモリーが増大します。UNIXドメイン・ソケットを使用すると、共有メモリー・セグメントの接続より少ないメモリーの消費でTCP/IPのパフォーマンスを向上させることができます。ドメイン・ソケットを使用するには、論理サーバーのネットワーク・アドレスとしてttLocalHost
を定義する必要があります。詳細は、「論理サーバー名の定義」を参照してください。
注意: TimesTen ClientおよびTimesTen Serverを構成する前に、「ODBCおよびJDBCドライバを使用したTimesTenへの接続」および「TimesTenデータベース識別のためのデータソース名の指定」を参照してください。 |
次の項では、TimesTen ClientおよびTimesTen Serverを使用してTimesTenアプリケーションをTimesTenデータベースに接続する方法について説明します。
クライアント・アプリケーションをTimesTenデータベースに接続するには、「図2-2」に示すように、クライアントDSN(オプションとして論理サーバー名)およびサーバーDSNを構成して、目的のTimesTenデータベースを一意に識別する必要があります。
クライアント・アプリケーションは、接続の開始時にクライアントDSNを参照します。次の詳細情報により、接続リクエストが解決され、目的のTimesTenデータベースへの接続が可能になります。
論理サーバー名は、クライアントでのオプションの構成です。使用すると、TimesTenデータベースがインストールされているサーバー・ホスト名が指定されます。サーバー・ホスト名を隠したり、簡略化する場合に使用します。論理サーバー名は、共有メモリーIPCまたはUNIXドメイン・ソケットを使用する場合に必ず使用します。
クライアントDSNは、サーバー・ホスト名、論理サーバー名または実際のサーバー・マシン名、およびサーバー上のTimesTenデータベースを識別するサーバーDSNを使用して、ユーザー・ファイルまたはシステム・ファイルのODBC.INI
で構成されます。
サーバーDSNは、TimesTenデータベース名およびその接続属性を使用して、システム・ファイルのODBC.INI
で構成されます。接続属性では、TimesTenデータベースのロードおよび構成方法と、TimesTenデータベースへの接続の制御または管理方法が指定されます。
したがって、これらの情報が正しく構成されると、クライアント・アプリケーションでは、クライアントDSNを使用してTimesTenデータベースを特定し、接続することが可能になります。クライアントDSNによって、サーバー・マシンおよびサーバーDSNが定義されます。サーバーDSNでは、サーバー上のTimesTenデータベース、そのロード方法および接続の管理方法が指定されます。
次の項では、クライアント/サーバー接続のためにどのノードに何をインストールする必要があるかについて説明します。
次の項では、TimesTen ClientとTimesTen Serverが同じリリースのTimesTenの場合のTimesTenのインストールおよび構成方法について説明します。
TimesTenデータベースが格納されているマシンで、次のタスクを実行します。このマシンはサーバー・マシンと呼ばれます。
TimesTen Serverをインストールします。TimesTen Serverのインストール方法については、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。
TimesTenデータベースに対応するサーバーDSNを作成および構成します。詳細は、「サーバーDSNの定義」を参照してください。サーバーDSNでTimesTen接続属性を設定します。『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。
クライアント・アプリケーションが格納されているマシンで、次のタスクを実行します。このマシンはクライアント・マシンと呼ばれます。
TimesTen Clientをインストールします。TimesTen Clientのインストール方法については、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。
データベースとの接続にJDBCを使用している場合は、Javaアプリケーションの稼働箇所にJava Development Kit(JDK)をインストールした後、CLASSPATH
や共有ライブラ検索パスなどの環境変数を設定します。詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』のJava環境変数の設定に関する説明を参照してください。
サーバーDSNに対応するクライアントDSNを作成および構成します。詳細は、「UNIXでのクライアントDSNの作成および構成」および「WindowsでのクライアントDSNの作成および構成」を参照してください。
OCIおよびPro*C/C++クライアント/サーバー接続の場合は、『Oracle TimesTen In-Memory Database C開発者ガイド』のOCIからのTimesTenデータベースへの接続に関する説明に従って、tnsnames.ora
または簡易接続を使用するようにアプリケーションを構成します。
クライアント/サーバー・アプリケーションをリンクするには、次の手順を実行します。
『Oracle TimesTen In-Memory Database C開発者ガイド』のオプションのリンクに関する説明に従って、CおよびC++クライアント/サーバー・アプリケーションをリンクします。
他のOCIまたはPro*C/C++直接モード・アプリケーションのリンクの場合と同じ方法で、OCIまたはPro*C/C++アプリケーションをリンクします。このリンク方法については、『Oracle TimesTen In-Memory Database C開発者ガイド』のOracle Call InterfaceのTimesTenサポートに関する説明およびOracle Pro*C/C++プリコンパイラのTimesTenサポートに関する説明を参照してください。
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のいずれでもかまいません。ビット・レベルは、クライアント・ホストとサーバー・ホストで異なっている可能性があります。
サーバー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は、1つのサーバーへの接続は1つの子プロセスにつき1つのみ作成されます。ただし、次のTimesTen Server接続属性を使用すると、単一のTimesTen Serverに対して複数のクライアント/サーバー接続を指定できます。
注意: 次の属性は、初期接続で読み込まれます。 |
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がサーバーに接続されます。ServersPerDSN
とMaxConnsPerServer
の両方の値に到達したため、接続11を処理するためにサーバー・プロセス6が起動されます。
サーバーDSNを使用して接続を複数作成する場合は、必要に応じてサーバーDSN属性に適切な値を指定します。WindowsのODBCデータソース・アドミニストレータの場合は、「Server」タブで指定します。
論理サーバー名は、TimesTen Client上のサーバー・システムに対する定義です。ローカル・クライアント/サーバーに対して、TCP/IP以外の通信プロトコルを使用したり、TimesTen Serverプロセスが、デフォルトのTCP/IPポートをリスニングしないなどの場合は、クライアント・システムで論理サーバー名を定義する必要があります。このような場合、クライアントDSNは、論理サーバー名を参照する必要があります。ただし、使用されている通信プロトコルがTCP/IPである場合、クライアントDSNが、サーバー・ホスト名を直接参照でき、論理サーバー名を定義する必要がないのが一般的です。
次の項では、WindowsプラットフォームまたはUNIXプラットフォームでの論理サーバー名の定義方法の例を示します。
論理サーバー名の作成および構成を行うには、次の手順を実行します。
Windowsのデスクトップで、「スタート」→「コントロール パネル」→「管理ツール」→「データ ソース(ODBC)」を選択します。
「ODBC データソース アドミニストレータ」が開きます。
「ユーザー DSN」または「システム DSN」をクリックします。
「TimesTen Client DSN」を選択して「構成」をクリックします。クライアントDSNが存在しない場合は「追加」をクリックし、「TimesTen Client 11.2.1」を選択して「完了」をクリックします。「TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。
「Servers」をクリックします。「TimesTen Logical Server List」ダイアログ・ボックスが開きます。
「追加」をクリックします。「TimesTen Logical Server Name Setup」ダイアログ・ボックスが開きます。
「Server Name」フィールドに、論理サーバー名を入力します。
必要に応じて、「Description」フィールドにサーバーの説明を入力します。
「Network Address」フィールドに、サーバー・マシンのホスト名またはIPアドレスを入力します。ネットワーク・アドレスは、次のいずれかである必要があります。
接続のタイプ | ネットワーク・アドレス |
---|---|
プロセス間通信に共有メモリーを使用する、ローカルのクライアント/サーバー接続 | ttShmHost |
リモートのクライアント/サーバー接続 | TimesTen Serverが稼働しているマシンの名前。server.mycompany.com など。 |
「Network Port」フィールドには、TimesTen Logical Serverがデフォルトでリスニングを行うポート番号が表示されます。TimesTen Serverが別のポートでリスニングしている場合は、「Network Port」フィールドにそのポート番号を入力します。
次に例を示します。
「OK」をクリックした後、「TimesTen Logical Server List」ダイアログ・ボックスの「Close」をクリックして、論理サーバー名の作成を終了します。
クライアント・マシンのWindowsデスクトップ上で、「スタート」→「設定」→「コントロール パネル」を選択します。
「ODBC」をダブルクリックします。「ODBC データソース アドミニストレータ」が開きます。
「TimesTen Client DSN」を選択して「構成」をクリックします。「TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。
「Servers」をクリックします。「TimesTen Logical Server List」ダイアログ・ボックスが開きます。
「TimesTen Servers」リストからサーバー名を削除します。
「Delete」をクリックします。
論理サーバー名を、SYSTTCONNECTINI
環境変数で指定されているファイルに定義します。このファイルは、TTCONNECT.INI
ファイルと呼ばれます。このファイルには、説明、ネットワーク・アドレスおよびポート番号が含まれています。
ネットワーク・アドレスは、次のいずれかである必要があります。
接続のタイプ | ネットワーク・アドレス |
---|---|
UNIXドメイン・ソケットを使用する、ローカルのクライアント/サーバー接続 | ttLocalHost |
プロセス間通信に共有メモリーを使用する、ローカルのクライアント/サーバー接続 | ttShmHost |
リモートのクライアント/サーバー接続 | TimesTen Serverが稼働しているマシンの名前。server.mycompany.com など。 |
TimesTenは、論理サーバーを次の順序で検索します。
SYSTTCONNECTINI
環境変数によって指定されたファイル内(設定されている場合)
daemon_home_dir
/sys.ttconnect.ini
ファイル内
例2-1 論理サーバー名の定義
この例はTTCONNECT.INI
ファイルの一部を示しており、マシンserver.mycompany.com
で稼働し、ポート53385
をリスニングするTimesTen Serverの論理サーバー名ttserver_logical
を定義しています。TimesTenインストールのインスタンス名はtt1121
です。
[ttserver_logical] Description=TimesTen Server 11.2.1 Network_Address=server.mycompany.com TCP_Port=53385
例2-2 通信におけるUNIXドメイン・ソケットの使用
クライアントとサーバーが同じUNIXマシン上にある場合、TimesTen Client ODBCドライバを使用するアプリケーションで、通信にUNIXドメイン・ソケットを使用すると、パフォーマンスが向上する場合があります。
また、同じバージョンのTimesTen Serverの複数のインスタンスを同じマシン上で実行できるように、TimesTen Serverがリスニングを行うポート番号を論理サーバー名に定義する必要もあります。これには、TTCONNECT.INI
ファイルで論理サーバー名を次のように定義します。
[LocalHost_tt1121_32] Description=Local TimesTen Server TimesTen release 11.2.1 through domain sockets Network_Address=ttLocalHost TCP_PORT=53385
例2-3 プロセス間通信用の共有メモリーの構成
クライアントとサーバーが同じマシン上にある場合、アプリケーションでプロセス間通信に共有メモリーを使用できます。これによって、パフォーマンスが向上する場合があります。
また、TimesTen Serverが初期接続を行うためにリスニングを行っているポート番号を論理サーバー名に定義する必要もあります。これには、TTCONNECT.INI
ファイルで論理サーバー名を次のように定義します。
[ShmHost_tt1121] Description= Local TimesTen Server TimesTen release 11.2.1 through shared memory Network_Address=ttShmHost TCP_PORT=53385
TimesTenでは、TTCONNECT.INI
ファイルを使用して、サーバーの名前と属性、および論理サーバー名とそれらのネットワーク・アドレスとの間のマッピングを定義します。この情報は、TimesTen Clientがインストールされているマシンに保存されます。デフォルトでは、TTCONNECT.INI
ファイルは、install_dir/sys.ttconnect.ini
です。
実行時にこのファイルの名前および場所を上書きするには、TimesTenアプリケーションを起動する前に、SYSTTCONNECTINI
環境変数にTTCONNECT.INI
ファイルの名前および場所を設定します。
UNIXでは、TTCONNECT.INI
ファイルにTimesTen Serverの短縮名を定義できます。表2-1に、TTCONNECT.INI
ファイルでのTimesTen Server指定の形式を示します。
表2-1 TTCONNECT.INIファイルでのTimesTen Serverの形式
コンポーネント | 説明 |
---|---|
[ |
TimesTen Serverマシンの論理サーバー名 |
|
TimesTen Serverの説明。 |
|
TimesTen Serverが実行されているマシンのDNS名、ホスト名またはIPアドレス。 |
|
TimesTen Serverが実行されているTCP/IPポート番号。TimesTenリリース11.2.1のデフォルトは、53385(32ビットのプラットフォーム用)および53389(64ビットのプラットフォーム用)です。 |
たとえば、リモートTimesTen Serverのサーバー指定は、次のようになります。
[ttserver] Description=TimesTen Client/Server Network_Address=server.company.com TCP_Port=53385
UNIXドメイン・ソケットを使用しているローカルTimesTen Client/Serverアプリケーションの場合、ネットワーク・アドレスをttLocalHost
として定義する必要があります。サーバー指定は次のようになります。
[LocalHost1121] Description=Shm TimesTen Client/Server Network_Address=ttLocalHost TCP_Port=53385
共有メモリー・セグメントをプロセス間通信に使用しているTimesTen Client/Serverアプリケーションの場合、ネットワーク・アドレスをttShmHost
と定義する必要があります。サーバー指定は次のようになります。
[ShmHost1121] Description=Shm TimesTen Client/Server Network_Address=ttShmHost TCP_Port=53385
クライアントDSNは、リモート・データベースを指定し、TimesTen Clientを使用します。クライアントDSNは、ユーザーDSNとしても、システムDSNとしても定義できます。クライアントDSNは、hostname, DSN
ペアを指定して間接的にTimesTenデータベースを参照します。ここで、hostnameはTimesTen Serverが稼働しているサーバー・マシンを表し、DSNはそのホスト上で定義されているサーバーDSNを指します。これらは、クライアントDSN接続属性内で構成されます。
また、実行時に接続属性を、ODBCのSQLDriverConnect
関数に渡されるconnection
文字列として構成したり、JDBCのDriverManager.getConnection()
メソッドに渡されるURL
文字列として構成することもできます。たとえば、サーバー上でクライアントが使用するDSNを指定するには、クライアントの接続文字列またはクライアントDSNでTTC_SERVER_DSN
属性を使用できます。
注意: クライアントDSNの定義内で構成されたサーバーDSN接続属性はいずれも無視されます。ただし、TimesTen Clientでは、接続文字列またはURL文字列の一部として、ほとんどのサーバーDSN属性(DataStore接続属性を除く)を渡すことができます。それらは、サーバーに透過的に渡され、サーバーDSNの構成が上書きされます。 |
次の項では、WindowsプラットフォームまたはUNIXプラットフォームでのクライアントDSNとその属性の作成方法については説明します。
Windowsの場合、ODBCデータソース・アドミニストレータを使用して、論理サーバー名の構成およびクライアントDSNの定義を行います。
この項の内容は次のとおりです。
TimesTen Client DSNを定義するには、次の手順を実行します。
Windowsのデスクトップで、「スタート」→「コントロール パネル」→「管理ツール」→「データ ソース(ODBC)」を選択します。「ODBC データソース アドミニストレータ」が開きます。
「ユーザー DSN」または「システム DSN」をクリックします。ユーザーDSNおよびシステムDSNについては、「TimesTenデータベースを識別するためのデータソース名の指定」を参照してください。
「追加」をクリックします。「データソースの新規作成」ダイアログ・ボックスが開きます。
「TimesTen Client 11.2.1」を選択します。「完了」をクリックします。「Oracle TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。
「Client DSN」フィールドに、クライアントDSNの名前を入力します。
クライアント・アプリケーションがインストールされているマシンでは、定義したDSNの現行のリストでこの名前が一意である必要があります。また、この名前には、最大32文字を使用できます。名前の競合を回避するには、論理サーバー名とサーバーDSNの名前を組み合せる一貫したネーミング規則を使用します。たとえば、Boston
およびChicago
が論理サーバー名で、Accounts
がサーバーDSNの名前の場合、クライアントDSNの名前はBoston_Accounts
およびChicago_Accounts
にします。
必要に応じて、「Description」フィールドにクライアントDSNの説明を入力します。
「Server Name or Network Address」フィールドで、サーバー・マシンの論理サーバー名またはネットワーク・アドレスを指定します。
この名前には、ホスト名、IPアドレスまたは論理サーバー名を指定できます。クライアント・マシンで定義した論理サーバー名は、ドロップダウン・リストに表示されます。論理サーバー名を定義するには、「Servers」をクリックします。
このフィールドに論理サーバー名を指定しない場合、TimesTen Clientは、TimesTen ServerがデフォルトのTCP/IPポート番号で稼働していると想定します。このため、デフォルトのポート以外でサーバーが稼働しているときにこのフィールドに論理サーバー名を指定しない場合は、TCP_Port
属性を使用してODBC接続文字列にポート番号を指定する必要があります。
論理サーバー名の定義の詳細は、「Windowsでの論理サーバー名の作成および構成」を参照してください。
「Server DSN」フィールドに、クライアント・アプリケーションがアクセスするデータベースに対応するサーバーDSNを入力します。
サーバーDSNの名前がわからない場合は、「Refresh」をクリックして、「Server Name or Network Address」フィールドに指定したマシンで定義されているサーバーDSNのリストを取得します。ドロップダウン・リストから「Server DSN」を選択します。
TimesTen Serverが稼働しているマシンにネットワーク接続します。
このリストに表示するサーバーDSNのカスタマイズ方法については、「ODBCデータソース」を参照してください。
「Connection Character Set」フィールドで、ターミナル設定またはデータソースと一致しているキャラクタ・セットを選択します。デフォルトの接続キャラクタ・セットはUS7ASCII
です。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のConnectionCharacterSetに関する説明を参照してください。
アクティブ・スタンバイ・ペアのレプリケーション・スキームを使用するデータベースに対して、自動クライアント・フェイルオーバーを構成できます。これにより、クライアントは、スタンバイ・データベースが存在するサーバーに自動的にフェイルオーバーできるようになります。
注意: フェイルオーバー後の接続オプションの永続性の詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』の自動クライアント・フェイルオーバーの使用に関する説明を参照してください。 |
「Oracle TimesTen Client DSN Setup」ダイアログ・ボックスで、次のフィールドに入力を行います。
「Failover Server Name or Network Address」フィールドで、サーバー・マシンの論理サーバー名またはネットワーク・アドレスを指定します。
この名前には、ホスト名、IPアドレスまたは論理サーバーを指定できます。クライアント・マシンで定義した論理サーバー名は、ドロップダウン・リストに表示されます。論理サーバー名を定義するには、「Servers」をクリックします。
このフィールドに論理サーバー名を指定しない場合、TimesTen Clientは、TimesTen ServerがデフォルトのTCP/IPポート番号で稼働していると想定します。このため、デフォルトのポート以外でサーバーが稼働しているときにこのフィールドに論理サーバー名を指定しない場合は、TCP_Port
属性を使用してODBC接続文字列にポート番号を指定する必要があります。
論理サーバー名の定義の詳細は、「Windowsでの論理サーバー名の作成および構成」を参照してください。
「Failover Server DSN」フィールドに、スタンバイ・データベースに対応するサーバーDSNを入力します。
サーバーDSNの名前がわからない場合は、「Refresh」をクリックして、「Failover Server Name or Network Address」フィールドに指定したマシンで定義されているサーバーDSNのリストを取得します。ドロップダウン・リストから「Server DSN」を選択します。
TimesTen Serverが稼働しているマシンにネットワーク接続します。
オプションで、「Failover Port Range」にフェイルオーバー通知用のポートを指定します。TimesTenでは、デフォルトで、オペレーティング・システムによって選択されたポートが使用されます。クライアント・システムとサーバー・システムの間のファイアウォールに対応するため、ポート番号の値またはポート番号の範囲を指定できます。
クライアント/サーバー接続のユーザー名、パスワードおよびタイムアウト時間は、UID
、PWD
およびTimeout
の各属性を使用して、クライアントDSNで定義できます。ただし、接続時にユーザー名およびパスワードを指定できるため、クライアントDSNでの認証の構成はオプションです。クライアントDSNにユーザー名およびパスワードを指定しない場合、パスワードは暗号化されずにクライアントに格納されます。
UID
、PWD
およびTimeout
の各属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。
タイムアウト時間および認証を設定するには、次の手順を実行します。
「Oracle TimesTen Client DSN Setup」ダイアログ・ボックスの「User ID」フィールドには、サーバー・マシンで定義されているユーザー名を入力します。
「Password」フィールドには、ユーザーIDに対応するパスワードを入力します。「PwdCrypt」フィールドに、暗号化されたパスワードを入力することもできます。
「Timeout Interval」フィールドに、間隔を秒単位で入力します。負の整数以外を入力できます。0を指定すると、クライアント/サーバー処理でタイムアウトは設定されません。デフォルトは60秒です。最大値は99,999秒です。
「OK」をクリックして、設定を保存します。
この例では、TimesTen Clientマシンはclient.mycompany.com
です。クライアント・アプリケーションは、リモート・サーバー・マシンserver.mycompany.com
上のサーバーDSNにアクセスしています。論理サーバー名はttserver_logical
です。
注意: ここに示す例では、32ビットのサンプルDSNを使用しています。拡張子_32 がこれを示しています。64ビットのプラットフォームの場合は、_64 が付加されているサンプルDSNを使用します。 |
サーバー・マシンserver.mycompany.com
では、TimesTen Serverが稼働していること、およびTimesTen Serverによってリスニングが行われているポート番号について、ttStatus
ユーティリティを使用して確認します。
「サーバーDSNの定義」の手順に従って、サーバーDSNであるRunData1121_32
がシステムDSNとしてserver.mycompany.com
で定義されているかどうかを確認します。
クライアント・マシンclient.mycompany.com
で、リモートTimesTen Server用に論理サーバー名のエントリを作成します。「TimesTen Logical Server Name Setup」ダイアログ・ボックスで、次のように指定します。
「Server Name」フィールドに、ttserver_logical
と入力します。
「Network Address」フィールドに、server.mycompany.com
と入力します。
「Network Port」フィールドに、53385
と入力します。これは、TimesTenリリース11.2.1の場合の32ビット・プラットフォームでのTimesTen Serverのデフォルト・ポート番号です。この値は、手順1でttStatus
によって表示された値に対応している必要があります。
「TimesTen Server Name」ダイアログ・ボックスを開く手順および詳細は、「Windowsでの論理サーバー名の作成および構成」を参照してください。
クライアント・マシンclient.mycompany.com
で、リモートのサーバーDSNであるRunData_tt1121_32
に対応するクライアントDSNを作成します。「TimesTen Client DSN Setup」ダイアログ・ボックスで、次の値を入力します。
「Client DSN」フィールドに、RunDataCS_tt1121_32
と入力します。
「Server Name or Network Address」フィールドに、ttserver_logical
と入力します。
「Description」フィールドにサーバーの説明を入力します。このフィールドにデータを入力するかどうかはオプションです。
「Server DSN」フィールドに、RunData1121_32
と入力します。
クライアントDSNであるRunDataCS_tt1121
を使用して、マシンclient.mycompany.com
からクライアント・アプリケーションを実行します。次の例では、TimesTen ClientとともにインストールしたttIsqlCS
プログラムを使用します。
ttIsqlCS connStr "DSN=RunDataCS_tt1121_32"
この例では、デフォルトのポート番号以外を使用するTimesTen Serverにアクセスする方法について説明します。
TimesTen Serverのネットワーク・アドレスがserver.mycompany.com
で、TimesTen Serverがポート53385をリスニングしているとします。この場合は、次の方法を使用してサーバーDSNに接続できます。
ネットワーク・アドレスにserver.mycompany.com
、ネットワーク・ポートに53385
を指定して論理サーバー名logical_server
を定義します。サーバー名にlogical_server
、サーバーDSNにServer_DSN
を指定してクライアントDSNを定義します。その後、次のコマンドを実行します。
ttIsqlCS -connStr "DSN=Client_DSN"
または、ネットワーク・アドレスにserver.mycompany.com
、ネットワーク・ポートにデフォルトのポート番号
を指定して論理サーバー名logical_server
を定義します。サーバー名にlogical_server
、サーバーDSNにServer_DSN
を指定してクライアントDSNを定義します。コマンドのポート番号を上書きします。
ttIsqlCS -connStr "DSN=Client_DSN; TCP_Port=53385"
あるいは、接続文字列にサーバーを定義します。この場合、クライアントDSNや論理サーバー名を定義する必要はありません。
ttIsqlCS -connStr "TTC_Server=server.mycompany.com; TTC_Server_DSN=Server_DSN; TCP_Port=53385"
TimesTenデータベースへのクライアント・アプリケーションの接続をテストするには、次の手順を実行します。
Windowsデスクトップで、「スタート」→「設定」→「コントロール パネル」を選択します。
「ODBC」をダブルクリックします。「ODBC データソース アドミニストレータ」が開きます。
接続をテストするTimesTen Client DSNを選択し、「構成」をクリックします。「TimesTen Client DSN Setup」ダイアログ・ボックスが開きます。
「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がサーバー・マシンで稼働しているかどうか。
「Test Data Source Connection」をクリックして、サーバーDSNへの接続をテストします。ODBCデータソース・アドミニストレータでサーバーDSNへの接続が試行され、接続が成功したかどうかを示すメッセージが表示されます。
このテスト中、TimesTen Clientによって次のことが検証されます。
「Server DSN」フィールドで指定したサーバーDSNがサーバー・マシンで指定されているかどうか。
クライアント・アプリケーションでサーバー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 Data Sourcesセクションで定義済のクライアントDSNを使用してエントリを作成します。このセクションで、サーバー・マシンおよびサーバーDSNを指定します。
使用するクライアントDSN名およびODBCクライアント・ドライバを指定する構文を次に示します。
[ODBC Data Sources] Client_DSN=name-of-ODBC-driver
たとえば、クライアントDSNとしてRunDataCS_tt1121_32
を定義し、TimesTen Client ODBCドライバに関連付けるには、ODBC.INI
ファイルのODBC Data Sourcesセクションに次のように入力します。
[ODBC Data Sources] RunDataCS_tt1121_32=TimesTen Client 11.2.1
ODBC Data Sourcesセクションの後に、定義した各データソースに対するサーバー・マシンおよびサーバーDSNを指定するエントリを追加します。ODBC.INI
ファイルのODBC Data Sourcesセクションに示されるクライアントDSNごとに指定セクションが必要です。
論理サーバー名ttserver_logical
を使用してTimesTen Serverを構成し、サーバーDSNがRunData_tt1121_32
であるTimesTen Client DSN RunData_tt1121_32
を指定する例を次に示します。
[RunDataCS_tt1121_32] TTC_Server=ttserver_logical TTC_Server_DSN=RunData_tt1121_32
TTC_SERVER*
属性が、クライアントDSN定義の主要属性です。クライアント属性の数はわずかですが、それぞれがサーバーを識別します。クライアント定義に指定されたサーバー属性は無視されます。ODBC.INI
ファイルで使用されるクライアントDSN属性については、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。
アクティブ・スタンバイ・ペアのレプリケーション・スキームを使用するデータベースに対して、自動クライアント・フェイルオーバーを構成できます。これにより、クライアントは、スタンバイ・データベースが存在するサーバーに自動的にフェイルオーバーできるようになります。
ODBC.INI
ファイルで、TTC_SERVER2
をスタンバイ・データベースが存在するサーバーに設定します。TTC_SERVER_DSN2
をスタンバイ・データベースの名前に設定します。
次に例を示します。
[MYDSN FAILOVER] TTC_SERVER=localhost TTC_SERVER_DSN=MYDSN TTC_Timeout=60000 ConnectionCharacterSet=AL32UTF8 TTC_SERVER2=localhost TTC_SERVER_DSN2=MYDSNSTANDBY
TimesTen Serverとは、TimesTenデーモンの子プロセスのことです。TimesTen Serverがインストールされていて、TimesTenデーモンまたはData Managerサービスが起動または停止されると、このプロセスは自動的に起動および停止されます。このデーモンまたはサービスは、ttDaemonAdmin
ユーティリティを使用して明示的に起動または停止できます。
TimesTen Serverは、TimesTen Clientドライバとリンクされたアプリケーションからのリクエストを処理します。
32ビットおよび64ビット・バージョンの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はsyslog
機能にメッセージを記録します。
「情報メッセージの変更」を参照してください。
この例では、TimesTen Clientアプリケーション・マシンは32ビットのSolarisマシンclient.mycompany.com
です。このクライアント・アプリケーションは、リモート・サーバー・マシンserver.mycompany.com
(別の32ビットSolarisマシン)上のサーバーDSNであるRunData_
tt1121_32
にアクセスします。論理サーバー名はttserver_logical
です。TimesTenインストールのインスタンス名はtt1121
_32
です。
サーバー・マシンserver.mycompany.com
では、TimesTen Serverが稼働していること、およびTimesTen Serverによってリスニングが行われているポート番号について、ttStatus
ユーティリティを使用して確認します。
server.mycompany.com
上のシステムODBC.INI
ファイルに、サーバーDSNであるRunData_tt1121_32
が指定されていることを確認します。
これらは、ODBC.INI
ファイルで次のように指定されている必要があります。
[RunData_tt1121_32]
Driver=install_dir/lib/libtten.so
DataStore=install_dir/server/RunData_tt1121_32
client.mycompany.com
上のTTCONNECT.INI
ファイルで、リモートTimesTen Server用に論理サーバー名のエントリを作成します。
[ttserver_logical] # This value for TCP_Port should correspond to the # value reported by ttStatus when verifying that the # server is running Network_Address=server.mycompany.com TCP_Port=53385
TTCONNECT.INI
ファイルの作成方法は、「UNIXでのクライアントDSNの作成および構成」を参照してください。
クライアント・マシンclient.mycompany.comで、リモートのサーバーDSNであるRunData_tt1121_32に対応するクライアントDSNを作成します。
これらは、ODBC.INI
ファイルで次のように指定されている必要があります。
[RunDataCS_tt1121_32] TTC_SERVER=ttserver_logical TTC_SERVER_DSN=RunData_tt1121_32
適切なODBC.INI
ファイルの場所は、「ユーザーDSNおよびシステムDSNの概要」を参照してください。
クライアントDSNであるRunDataCS_tt1121_32
を使用して、マシンclient.mycompany.com
からクライアント・アプリケーションを実行します。次の例では、TimesTen ClientとともにインストールしたttIsql
プログラムを使用します。
ttIsqlCS -connStr "DSN=RunDataCS_tt1121_32"
次の例では、デフォルトのポート番号以外を使用するTimesTen Serverにアクセスする方法について説明します。
TimesTen Serverのネットワーク・アドレスがserver.mycompany.com
であり、TimesTen Serverがポート53385
をリスニングしているとします。この場合は、次の方法を使用してサーバーDSNに接続できます。
ネットワーク・アドレスにserver.mycompany.com
、ネットワーク・ポートに53385
を指定して論理サーバー名logical_server
を定義します。サーバー名にlogical_server
、サーバーDSNにServer_DSN
を指定してクライアントDSNを定義します。次のコマンドを実行します。
ttIsqlCS -connStr "DSN=Client_DSN"
または、ネットワーク・アドレスにserver.mycompany.com
、ネットワーク・ポートにデフォルトのポート番号
を指定して論理サーバー名logical_server
を定義します。サーバー名にlogical_server
、サーバーDSNにServer_DSN
を指定してクライアントDSNを定義します。コマンドのポート番号を上書きします。
ttIsqlCS -connStr "DSN=Client_DSN; TCP_Port=53385"
あるいは、接続文字列にサーバーを定義します。この場合、クライアントDSNや論理サーバー名を定義する必要はありません。
ttIsqlCS -connStr "TTC_Server=server.mycompany.com; TTC_Server_DSN=Server_DSN; TCP_Port=53385"
TimesTenデータベースへのクライアント・アプリケーションの接続をテストするには、次の手順を実行します。
クライアント・マシンでサーバー・マシンにアクセスできることを確認します。
サーバー・マシンから応答があるかどうかを確認するために、クライアント・マシンからping
を実行します。
TimesTen Serverがサーバー・マシンで稼働していることを確認します。
TimesTen Serverがリスニングを行っているポートにtelnet
で接続します。次に例を示します。
telnet server.mycompany.com 53385
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オプションの変更」を参照してください。
クライアント・アプリケーションがデータベースに接続可能であることを確認します。データベースへの接続を確立できない場合は、TTCONNECT.INI
ファイルに正しい情報が指定されていることを確認します。
TTCONNECT.INI
ファイルの情報が正しい場合は、データベースが存在し、TimesTen Serverが稼働しているマシンで、データベースに対応するサーバーDSNがシステムのODBC.INI
ファイルで適切に設定されていることを確認します。