この項の内容は次のとおりです。
「アプリケーションがダイレクト・モードでデータ・ストアに接続できない」の説明も確認してください。
TimesTen Serverが稼働しているシステムが正しく識別されていません。
Windowsクライアント・マシンでは、ODBCデータソース・アドミニストレータの一部として表示される「TimesTen Data Source Setup」ダイアログ・ボックスで「TimesTen Server」を選択します。TimesTen Serverを検証するには、次の手順を実行します。
注意: | 「Oracle TimesTen Client DSN Setup」の「Server Name」フィールドにホスト名またはネットワーク・アドレスを直接入力すると、クライアントは、デフォルトのポートを使用してTimesTen Serverへの接続を試行します。 |
「Network Address」および「Port Number」の値が正しい場合、TimesTen Serverが稼働していない可能性があります。サーバーを手動で起動する方法については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のWindowsでのOracle TimesTen Data Managerサービスの起動および停止に関する説明を参照してください。また、この問題の識別方法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の接続のテストに関する説明を参照してください。
UNIXの場合、クライアント・マシン上のODBC.INIファイルのTTC_Server接続属性でTimesTen Serverを指定します。TTC_Serverに指定する値が実際のホスト名またはIPアドレスの場合、クライアントは、デフォルトのポートを使用してTimesTen Serverに接続を試行します。TimesTenでは、デフォルトのポートはTimesTenのリリース番号と関連付けられています。TTC_Serverに指定する値が論理ServerNameの場合、この論理ServerNameは、TTCONNECT.INIファイルで定義する必要があります。このServerNameをTTCONNECT.INIファイルで定義する場合は、ホスト名、IPアドレス、およびTimesTen Serverがリスニングを行っているポート番号を正しく指定する必要があります。
「Network Address」および「Port Number」の値が正しい場合、TimesTen Serverが稼働していない可能性があります。サーバーを手動で起動する方法については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のUNIXでのデーモンの起動および停止に関する説明を参照してください。また、この問題の識別方法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の接続のテストに関する説明を参照してください。
サーバーのログ・ファイルを確認します。サーバー・ログ・メッセージはttendaemon.options
ファイル内の-userlog
および-supportlog
オプションで指定したファイルに保存されています。詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のUNIXでのクライアントDSNの作成および構成に関する説明と、TimesTenデーモン・オプションの管理に関する説明を参照してください。
特定のTimesTenインスタンスのサーバーに対する同時IPC接続の最大数は24,999です。ただし、単一のDSNへの接続数(直接またはクライアント/サーバー)は2043に制限されます。
クライアント/サーバーのユーザーは、ファイル記述子の制限を変更してより多くの接続数に対応できます。例は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のインストールの前提条件に関する説明を参照してください。
UNIXの場合、TimesTen Serverが稼働しているマシン上のSYS.ODBC.INIファイルでサーバーDSNが正しく定義されていることを確認します。
Windowsの場合、TimesTen Serverが稼働しているマシンのODBCデータソース・アドミニストレータでサーバーDSNがシステムDSNとして定義されていることを確認します。詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の論理サーバー名の作成および構成に関する説明を参照してください。
このエラーは、UNIXプラットフォームでのみ発生します。TimesTen Serverが稼働しているマシンでSYS.ODBC.INIファイルを開き、接続しようとしているサーバーDSNの場所を確認します。サーバーDSNのDRIVER属性に指定した動的ライブラリが存在し、実行可能であることを確認します。
デフォルトのタイムアウト時間は、60秒です。
UNIXでタイムアウト時間を長くするには、ODBC.INIファイルのTTC_Timeout属性の値を変更します。
Windowsでタイムアウト時間を設定するには、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のタイムアウト時間および認証の設定に関する説明を参照してください。
エラーの原因がクライアントのタイムアウトかどうかを確認します。TimesTen Serverのログを確認して、サーバーがクライアントとの接続を切断した原因を調べます。pingを使用してネットワークが機能しているかどうかを確認するか、またはtelnet
を使用してTimesTen Serverのポート番号に接続を試行します。
共有メモリー・セグメント(SHM)をIPCとして使用している際に、TimesTen Client ODBCドライバからの次のエラー・メッセージがアプリケーションに表示される場合があります(アプリケーションがシステムに定義されているプロセス当たりのファイル記述子の制限に達した場合)。
SQLState = S1000,
Native Error = 0,
Message = [TimesTen][TimesTen 6.0 CLIENT]Failed to
attach to shared memory segment for IPC. System error: 24
これは、クライアントDSNへの接続処理中、システムに定義されているプロセス当たりのファイル記述子の制限を超えるオープン・ファイル記述子がアプリケーションに含まれていることが原因でshmat
システム・コールが失敗した場合に発生する可能性があります。この問題を修正するには、プロセス当たりのファイル記述子の制限を増加する必要があります。ファイル記述子の制限の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のシステムの制限に関する説明を参照してください。
Windows XPのデフォルトの設定では、約47の子サーバー・プロセスを使用できます。接続数を増やすには、ttendaemon.options
ファイルまたはDSNのMaxConnsPerServer接続属性を設定します。これによって接続数は、MaxConnsPerServerの値の47倍になります。
Solarisでは、スレッド・スタックのオーバーフローに関するメッセージが、ユーザー・エラー・ログに表示される場合があります。その他のプラットフォームでは、スレッド・スタックのオーバーフローの可能性を示すセグメンテーション障害についてのメッセージが表示される場合があります。
これらのメッセージが表示された場合は、次のいずれかの方法で、サーバー・スタックのサイズを大きくします。
サーバー・スタックのサイズを大きくすると、スワップ領域を使い果たす前に確立可能な同時接続数が減ります。
詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTen ClientおよびTimesTen Serverの使用方法に関する説明を参照してください。
複数のクライアント接続を持つシステムでは、DSNを変更して新しいデータ・ストアを指定する際に、元のデータ・ストアへの接続が確立されたままの場合に、領域不足であることを示すメッセージが表示されることがあります。この問題は、32-bitプラットフォームでいずれかのデータ・ストアが約2GBの場合に発生する可能性があります。
元のデータ・ストアへのすべての接続をクローズします。これにより、DSNで新しく指定したデータ・ストアへの接続用に、新しいサーバー・プロセスが作成されます。ttStatusユーティリティを使用すると、古いデータ・ストアへの接続を表示できます。または、-restartServer
オプションを指定してttDaemonAdminユーティリティを使用すると、サーバーを再起動して、インスタンス内のすべてのDSNですべてのクライアント接続をリセットできます。