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

前
 
次
 

3 TimesTen Data Managerデーモンでの処理

TimesTen Data Managerデーモン(Windows上のOracle TimesTen Data Managerサービス)は、TimesTenをインストールすると起動されます。デーモンは、バックグラウンドで常時稼働しています。

TimesTenデーモンは次の機能を実行します。

アプリケーション開発者は、デーモンと直接対話しません。デーモンでアプリケーション・コードは実行されないため、通常、アプリケーション開発者がデーモンについて考慮する必要はありません。TimesTenデータベースにアクセスするアプリケーション・プログラムは、TimesTen内部ルーチンを透過的に使用してデーモンと通信します。

次の項では、様々なプラットフォームでTimesTenデーモンと対話する方法について説明します。

TimesTenデーモンの起動および停止

次の項では、様々なプラットフォームでTimesTenデーモンを起動および停止する方法について説明します。


注意:

デーモンは、デーモンが起動されたディレクトリにtimestend.pidファイルを書き込みます。デフォルトでは、デーモンのホーム・ディレクトリは、UNIXの場合はinstall_dir/info、Windowsの場合はinstall_dir\srv\infoです。このファイルには、デーモンのプロセスIDが含まれています。プロセスが停止すると、timestend.pidは削除されます。

WindowsでのOracle TimesTen Data Managerサービスの起動および停止

Oracle TimesTen Data Managerサービスは、Oracle TimesTen Data ManagerをWindowsシステムにインストールすると自動的に起動されます。Oracle TimesTen Data Managerサービスを手動で起動および停止するには、-startまたは-stopオプションを指定してttDaemonAdminユーティリティを使用するか、またはWindowsの管理ツールを次のように使用します。

  1. Windowsの「管理ツール」を開きます。

  2. 「サービス」をダブルクリックします。現在使用可能なすべてのサービスが表示されます。

  3. 「TimesTen Data Manager 11.2.2」を選択し、該当するボタンをクリックしてサービスを停止または起動します。


注意:

TimesTenサービスを起動および停止するには、管理権限が必要です。

スタートアップ・モードの変更

TimesTen Data Managerをインストールすると、システムを再起動するたびにTimesTen Data Managerサービスが自動的に起動します。また、TimesTen Serverをインストールしている場合、TimesTen Data Managerのサービスを開始すると、TimesTen Serverが自動的に起動されます。TimesTen Data Managerのスタートアップ・モードを手動に変更することもできます。

スタートアップ・モードを変更するには、次の手順を実行します。

  1. Windowsの「管理ツール」を開きます。

  2. 「サービス」をダブルクリックします。現在使用可能なすべてのサービスが表示されます。

  3. 「TimesTen Data Manager 11.2.2」サービスをダブルクリックして、その「プロパティ」ダイアログを調べます。

  4. プロパティ・ダイアログで、「スタートアップの種類」リストに「自動」(デフォルト)が示されます。オプションで、「手動」に変更できます。いずれの場合も、プロパティ・ダイアログで「停止」または「開始」(の適切な方)をクリックして、サービスを停止または起動できます。通常の使用方法では、スタートアップの種類をデフォルトに戻し、一通り確認して「OK」をクリックします。

UNIXでのデーモンの起動および停止

TimesTenデーモンを起動および停止するには、インスタンス管理者である必要があります。

setuprootスクリプトを実行していないかぎり、システムをリブートするたびにインスタンス管理者が手動でデーモンを起動および停止する必要があります。TimesTenメイン・デーモンを手動で起動および停止するには、-startまたは-stopオプションを指定してttDaemonAdminユーティリティを使用します。

rootユーザーは、デーモン起動スクリプトを実行してデーモンを起動できます。次の表に、デーモン起動スクリプトの場所をプラットフォームごとに示します。

環境 デーモン起動スクリプトの場所
Linux /etc/init.d/tt_instance_name
Solaris /etc/init.d/tt_instance_name
AIX /etc/init.d/tt_instance_name

setuprootスクリプトの実行

システムを再起動するたびにTimesTenインスタンスを起動する場合、rootとしてsetuprootスクリプトを実行します。setuprootスクリプトはinstall_dir/binディレクトリにあります。

# cd install_dir/bin
# setuproot -install

TimesTenアプリケーションの停止

TimesTenアプリケーションは、共有メモリーに割り当てられたデータベース、ユーザー接続、場合によっては他のTimesTenデータベースまたはOracle Databasesと通信するためのレプリケーション・エージェントやキャッシュ・エージェントで構成されています。

TimesTenアプリケーションを停止するには、次の手順を実行します。

  1. すべてのユーザー接続を正常に切断します。

  2. すべてのレプリケーション・エージェントおよびキャッシュ・エージェントを停止します。

  3. データベースが手動でロードされた場合は、共有メモリーからデータベースをアンロードします。

  4. TimesTenデーモンを停止します。

TimesTenデーモン・オプションの管理

TimesTenデーモン・オプションは、ttendaemon.optionsファイルに格納されています。これらのオプションの一部は、インストール時に、インストール・プロンプトに対するユーザーの応答に応じてインストーラによって設定されます。

Windowsの場合、ttendaemon.optionsファイルは、次のデーモンのホーム・ディレクトリにあります。

install_dir\srv\info

UNIXの場合、ttendaemon.optionsファイルは、次のデーモンのホーム・ディレクトリにあります。

install_dir/info 

ttendaemon.optionsファイルで管理される内容は次のとおりです。

  • デーモンがリスニングを行うネットワーク・インタフェース

  • TimesTenインスタンスに存在可能なTimesTenサブデーモンの最小数および最大数

  • TimesTen Serverが起動されるかどうか

  • クライアント/サーバーのプロセス間通信用に共有メモリー・セグメントを使用するかどうか

  • システムで事前に生成されるサーバー・プロセスの数

  • サポート・ログおよびユーザー・ログの場所とサイズ

  • 下位互換性

  • TimesTenインスタンスの最大ユーザー数

  • NFSマウントされたシステム間のデータ・アクセス。Linuxの場合のみです。

  • Oracle Database用のTNS_ADMIN値。このオプションは、このファイルでは変更できません。

  • 致命的エラーの後のデフォルトのデータベース・リカバリの変更

ttmodinstallユーティリティを使用すると、ttendaemon.optionsファイルの最もよく変更されるオプションを変更できます。『Oracle TimesTen In-Memory Databaseリファレンス』のttmodinstallに関する説明を参照してください。あるオプションをttmodinstallで変更できず、ttendaemon.optionsファイルを直接変更する必要がある場合は、TimesTenデーモンを停止してからファイルを変更してください。ファイルの変更が完了したら、TimesTenデーモンを再起動します。TimesTenサーバー・オプションを変更する場合、停止する必要があるのはサーバーのみです。TimesTenデーモンを停止する必要はありません。

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

アドレスをリスニングするデーモンの決定

デフォルトでは、TimesTenのメイン・デーモン、すべてのサブデーモンおよびエージェントは、使用可能な任意のアドレスを使用してリクエスト用のソケットでリスニングします。すべてのTimesTenユーティリティおよびエージェントは、ループバック・アドレスを使用してメイン・デーモンと通信し、メイン・デーモンはループバック・アドレスを使用しエージェントと通信します。

ttendaemon.optionsファイルに個別の行で指定する-listenaddrエントリは、指定した値で示される特定のアドレスでリスニングするようにTimesTenデーモンに指示します。このオプションが指定されたアドレスには、ホスト名または数値のIPアドレスのいずれかを指定できます。

-listenaddrパラメータは、単一のサーバーに複数のネットワーク・アドレスおよびネットワーク・カードが含まれている場合に存在します。この場合、TimesTenデーモンによってリスニングされるネットワーク・アドレスを、サーバーのネットワーク・アドレスのサブセットに制限できます。これは、デーモンがリスニングする対象となるアドレスを入力することによって行います。次の状態が発生する可能性があります。

  • ローカル・ネットワーク内部と外部の両方でアクセス可能なパブリック・ネットワーク・アドレス、およびローカル・ネットワーク内部でのみアクセス可能なプライベート・アドレスがサーバーに含まれている場合、プライベート・アドレスのみを含む-listenaddrエントリを追加すると、パブリック・アドレスで受信されるTimesTenへのすべての通信がブロックされます。

  • ローカル・ホストのみを指定することによって、TimesTenメイン・デーモンをサーバー外部からのすべての通信から切り離し、TimesTenメイン・デーモンでローカルのクライアントおよびサブデーモンのみと通信できます。

TimesTenレプリケーションと-listenaddrパラメータ間に関連はなく、レプリケーションを有効にした場合に-listenaddrパラメータを有効にする必要はありません。-listenaddrが有効になっている環境でレプリケーションを使用する場合は、使用可能なネットワーク・アドレスがレプリケーション・ノードで認識される必要があります。ただし、有効になっている-listenaddrパラメータが存在しない場合でも、レプリケーションは機能します。

ttendaemon.optionsファイルの個別の行に対してデーモンがリスニングを行うアドレスを明示的に指定するには、次のように入力します。

-listenaddr address

たとえば、ループバック・アドレスに対してのみリスニングを行うようにデーモンを制限する場合は、次のように入力します。

-listenaddr 127.0.0.1

または

-listenaddr localhost

これは、ローカル・システム上のプロセスのみがデーモンと通信できることを意味します。他のシステムからのプロセスは除外されるため、他のシステムとの間でレプリケーションを行ったり、他のシステムからクライアント・アクセス権を付与することはできません。

異なるサブネットに複数のイーサネット・カードがある場合は、-listenaddrエントリを指定してデーモンに接続できるシステムを制御できます。

ttendaemon.optionsファイル内の最大4行の個別の行にオプションおよび値を指定して、リスニングを行う最大4つのアドレスを入力できます。指定したアドレスに加えて、ループバック・アドレスでも常にTimesTenによるリスニングが行われています。

IPv6のリスニング

デフォルトでは、TimesTenはIPv4プロトコルを使用します。デーモンによるIPv6のリスニングを有効にするには、ttendaemon.optionsファイルに次の行を個別の行に入力する必要があります。

-enableIPv6

および

-listenaddr6 address
  • IPv6アドレスを指定するには、IPv6を有効にする-listenaddr6オプションを指定します。

  • -enableIPv6オプションと1つ以上の-listenaddrオプションまたは-listenaddr6オプションを指定すると、IPv6ループバック・インタフェースがリストに追加されます。

  • -enableIPv6オプションを指定し、-listenaddrまたは-listenaddr6オプションでアドレスを何も指定しなかった場合、デーモンはすべてのIPv6インタフェースおよびすべてのIPv4インタフェースでリスニングを行います。

このオプションが指定されたアドレスには、ホスト名または数値のIPアドレスのいずれかを指定できます。-listenaddrオプションの詳細は、「アドレスをリスニングするデーモンの決定」を参照してください。

1つ以上の-listenaddrオプションが指定されると、デーモンは指定されたIPv4インタフェースに対するリスニングを行い、IPv4ループバック・アドレスがリストに追加されます(ループバック・アドレスが指定されていない場合)。-enableIPv6のみが指定されている場合は、IPv4およびIPv6のすべてのインタフェースに対するリスニングを行います。

-listenaddrオプションと-listenaddr6オプションの両方を指定できます。1つ以上の-listenaddr6オプションが指定されると、デーモンは指定されたIPv4またはIPv6インタフェースに対するリスニングを行い、IPv4とIPv6の両方のループバック・インタフェースが追加されます(ループバック・インタフェースが指定されていない場合)。ネーム・リゾルバが1つの名前に対して複数のIPv4またはIPv6(あるいはその両方)のアドレスを返した場合、デーモンはすべての名前に対するリスニングを行います。

情報メッセージの変更

デーモンは、動作時に、エラー、警告および情報メッセージを生成します。これらのメッセージは、Timestenのシステム管理およびアプリケーションのデバッグに有効です。

デフォルトでは、次の場所に情報メッセージが格納されます。

  • ユーザーが確認する必要がある可能性がある情報が格納されるユーザー・エラー・ログ。通常、これらのメッセージには、実行する必要がある可能性がある処理が含まれています。

  • ユーザー・エラー・ログ内のすべての情報およびTimesTenカスタマ・サポートで使用される情報が格納されるサポート・ログ。

ttDaemonLogユーティリティを使用すると、TimesTenユーザー・ログおよびエラー・ログに対して書込みおよびフェッチを行うイベントのタイプを制御できます。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttDaemonLogに関する説明を参照してください。

ttendaemon.optionsファイルにある次のオプションでは、サポート・ログおよびユーザー・ログの場所とサイズ、およびシステム上に保存されるファイルの数を指定します。

オプション 説明
-supportlog path -f path サポート・ログ・ファイルの場所を指定します。デフォルトのファイルはdaemon_home/ttmesg.logです。
-maxsupportlogfiles num TimesTenメイン・デーモンは、指定されたサイズに達すると自動的にファイルを入れ替えます。このオプションでは、保存するサポート・ログ・ファイルの数を指定します。デフォルトは10です。
-maxsupportlogsize nBytes サポート・ログ・ファイルの最大サイズを指定します。デフォルトは100MBです。
-userlog logfile

または

-userlog [syslog]

logfile: ユーザー指定のlogfileには、使用するログ・ファイルの場所および名前を指定します。デフォルトのファイルはdaemon_home/tterrors.logです。

syslog: 出力が次のオペレーティング・システム・ファイルのいずれかに送信されるように-userlog [syslog]を指定します。

  • UNIX syslog

  • Windowsイベント・ログ

-maxuserlogfiles num TimesTenメイン・デーモンは、指定されたサイズに達すると自動的にファイルを入れ替えます。このオプションでは、保存するユーザー・ログ・ファイルの数を指定します。デフォルトは10です。
-maxuserlogsize nBytes ユーザー・ログの最大サイズを指定します。デフォルトは10MBです。
-showdate UNIXシステムでのみ、すべてのメッセージの先頭に日付が追加されることを示します。

ログ・メッセージの出力場所としてイベント・ログを指定した場合、それらのログを表示するには、次の手順を実行します。

  1. 「イベント ビューア」ウィンドウを開きます。「スタート」「コントロール パネル」「管理ツール」「イベント ビューア」を選択します。

  2. 「イベント ビューア」リストで、「Applications and Services Logs」を選択します。

    ウィンドウには、アプリケーションで生成されるログ・メッセージが表示されます。「ソース」列に「TimesTen」と記載されているメッセージは、Oracle TimesTen Data Managerサービスによって生成されたものです。

  3. TimesTenメッセージを表示するには、メッセージ・サマリーをダブルクリックします。

    メッセージ・ウィンドウが表示されます。「次へ」または「前へ」をクリックするか、あるいは上矢印または下矢印をクリックして、追加のメッセージを表示できます(表示方法は、Windowsのバージョンによって異なります)。


注意:

ttDaemonLogユーティリティを使用してメッセージを表示することもできます。

TimesTenデーモンおよびサブデーモンのメッセージを記録するために使用するsyslog機能をUNIXで指定するには、ttendaemon.optionsファイルの個別の行に次のオプションを追加します。

-facility name

指定できる名前値は、authcrondaemonlocal0-local7lprmailnewsuserまたはuucpです。

詳細なログ・メッセージを無効にするには、ttendaemon.optionsファイルの-verboseの前に#を追加します。

サブデーモンの生成可能な数の変更

TimesTenでは、サブデーモンを使用して次のことを行います。

  • データベースの管理。

  • ディスクへのトランザクション・ログ・バッファのフラッシュ。

  • 定期的なチェックポイントの実行。

  • 様々な表のエージング・ポリシーの実装。

  • デッドロックの検出および解消。

  • 直接モード・アプリケーションが異常終了した場合のトランザクションのロールバック。

  • データベースに対して必要なバックグラウンド処理の実行。

TimesTenメイン・デーモンは、必要に応じてサブデーモンを動的に生成します。最大数および最小数を指定して、デーモンが生成できるサブデーモンの範囲を手動で指定できます。

任意の時点で、リカバリ中の失敗した各アプリケーション・プロセスに対するTimesTenプロセス・リカバリに、1つのサブデーモンが必要な場合があります。

デフォルトでは、TimesTenは最小で4つのサブデーモンを生成します。サブデーモンのデフォルトの最大数は50です。ただし、ttendaemon.optionsファイルの-minsubsおよび-maxsubsオプションに新しい値を指定して、これらの設定を変更できます。

NFSマウントされたシステムを介したデータベース・アクセスの許可

デフォルトでは、TimesTenシステムは、NFSマウントされたシステムを介してデータにアクセスすることはできません。Linux x86 64ビット・システムの場合は、NFSマウントされたシステム上のチェックポイントおよびトランザクション・ログ・ファイルにアクセスできます。

NFSマウントされたシステムでデータ・アクセスを有効にするには、ttendaemon.optionsファイルに次の個別の行を追加します。

-allowNetworkFiles

Linuxラージ・ページのサポートの有効化

TimesTenでLinuxラージ・ページのサポートを有効にするには、ttendaemon.optionsファイルに次の個別の行を追加します。

-linuxLargePageAlignment Size_in_MB

Size_in_MBは、/proc/meminfoHugepagesizeの値をKB単位ではなくMB単位にしたものです。

オペレーティング・システム・レベルでのHugePagesの詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のLinuxの前提条件に関する説明を参照してください。

致命的なエラー後の自動データベース・リカバリのデフォルトを変更する

TimesTenデーモンを開始する前に、ttendaemon.optionsファイルの-enablePolicyInactiveオプションを設定して、データベースのリカバリ動作を変更できます。このオプションの詳細については、「自動リカバリ失敗後のRAMポリシーへの変更」を参照してください。

範囲を共有メモリー・キー向けに構成する

TimesTenで-shmkeyrangeデーモン・オプションを使用して、範囲をすべての共有メモリー・キー向けに構成できます。共有メモリーの衝突を防ぐため、共有メモリー・キーを特定の範囲内に制限できます。ただしこのオプションを使用する場合、特定の範囲内の共有メモリー・キーが他の共有メモリー・セグメントによって使用されていないことを確認するのはユーザーの責任になります。


注意:

このオプションはUNIXまたはLinuxプラットフォームでのみ使用できます。このオプションはWindowsプラットフォームには使用できません。

構文は次のとおりです。

-shmkeyrange low-high

次に例を示します。

-shmkeyrange 0x4000000-0x40FFFFFF

low-high句にスペースを含めることはできません。先頭と末尾も範囲に含まれます。したがって前述の例では、0x40000000と0x40FFFFFFはどちらも有効なキーです。また、範囲の最小サイズは16です。

このオプションを使用すると共有メモリー・キーが枯渇することがあります。特に複数の無効化が存在する場合や、当初の想定より多くのTimesTenデータベースが存在する場合に、これが発生することがあります。

共有メモリー・キーに対して次の無効なオプションのいずれかを入力すると、TimesTenデーモンによる起動プロセスは中止されます。

  • 無効な数値文字列

  • 範囲に数字を1つだけ指定

  • 範囲指定で最初の数が2番目の数より大きい

  • 範囲のサイズが16未満。

  • 範囲指定が正しくない。

TimesTen Client/Serverのオプションの管理

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

TimesTen Serverのオプションの変更

TimesTen Serverは、バックグラウンドで常時稼働しているTimesTenデーモンの子プロセスです。TimesTen Serverオプションを変更するには、次の手順を実行する必要があります。

  1. TimesTen Serverを停止します。

  2. 次の項の説明に従って、ttendaemon.optionsファイル内のオプションを変更します。

  3. TimesTen Serverを再起動します。

TimesTen Serverの制御

ttendaemon.optionsファイルの個別の行に指定する-server portnoエントリは、TimesTen Serverを起動するようにTimesTenデーモンに指示するとともに、使用するポートも指示します。portnoは、サーバーでリスニングされるポート番号です。

TimesTen Serverがインストールされている場合は、次の方法でTimesTen Serverを有効または無効にできます。

  • TimesTen Serverを有効にするには、-server portnoエントリの前のコメント記号#を削除します。

  • TimesTen Serverを無効にするには、-server portnoエントリの前にコメント記号#を追加します。

TimesTen Serverプロセスの事前生成

各TimesTen Client接続に、1つのサーバー・プロセスが必要です。デフォルトでは、クライアントが接続をリクエストするとサーバー・プロセスが生成されます。

予約サーバー・プロセスのプールを事前に生成して、クライアント接続ですぐに使用することができます。これによって、クライアント/サーバー接続のパフォーマンスが向上します。

ttendaemon.optionsファイルの個別の行に指定する-serverpool numberエントリは、TimesTen Serverでnumber個のプロセスを作成するようにサーバー・システムに指示します。このオプションを指定しない場合、プロセスは事前に生成されず、予約プールに保存されます。

新しい接続のリクエスト時に、サーバー・プールにプロセスが存在しない場合は、オペレーティング・システムの制限に達していないかぎり、新しいプロセスが起動されます。

オペレーティング・システムで処理可能な数を超えるプロセスをリクエストすると、警告が戻されます。リクエストしたプロセスの数に関係なく、予約プールにプロセスが残っていなくても、システムで使用可能なプロセスが存在しない場合にクライアントが接続をリクエストしないかぎり、エラーは発生しません。

TimesTen Serverに対する変更は、TimesTen Serverが再起動されると有効になります。

TimesTen Serverに対する複数の接続の指定

デフォルトでは、TimesTenは、1つのサーバーへの接続は1つの子プロセスにつき1つのみ作成されます。『Oracle TimesTen In-Memory Databaseリファレンス』のサーバー接続属性に関する説明に記載されているサーバー接続属性を使用するか、この項で説明するTimesTenデーモン・オプションを設定することで、1つのTimesTen Serverに複数の接続を設定できます。これらのオプションでは、TimesTen Serverへの接続数、各DSNに対するサーバー数およびサーバーへのそれぞれの接続のサイズを設定できます。

TimesTen Serverを再起動するまで、TimesTen Serverの設定変更は有効になりません。サーバーを再起動するには、次のコマンドを使用します。

ttDaemonAdmin -restartserver

注意:

サーバー接続属性とこれらのデーモン・オプションの両方を設定した場合は、サーバー接続属性の値が優先されます。

子サーバー・プロセス当たりのクライアント接続の最大数の構成

1つのサーバー・プロセスでデータベースへの複数のクライアント接続に対応できるようにマルチスレッド・モードで子サーバー・プロセスを実行するには、次の行をttendaemon.optionsファイルに追加します。

-maxConnsPerServer NumberOfClientConnections

注意:

サーバーをマルチスレッド・モードで実行している場合にサーバー・プロセスが失敗すると、そのプロセスが処理するすべてのクライアント接続が終了します。サーバーをマルチスレッド・モードで構成する場合はこの点を考慮して、信頼性と可用性の要件に対してマルチスレッド・モードでのより効果的なリソース使用率のバランスを保つようなmaxConnsPerServer属性の値を選択してください。

NumberOfClientConnectionsには1から2047の値を指定できます。デフォルトの値は1で、これは子サーバー・プロセスがマルチプロセス・モードで実行され、したがって1つのクライアント接続にしかサービスを提供できないことを意味します。

サーバーDSNに生成された子サーバー・プロセス間に接続を分散する方法の構成

ラウンドロビン接続分散を使用する特定のサーバーDSN (-maxConnsPerServer >1の場合)に対して子サーバー・プロセスの数を指定するには、次の行をttendaemon.optionsファイルに追加します。

-serversPerDSN NumberOfChildServerProcesses

NumberOfChildServerProcessesには1から2047の値を指定できます。デフォルト値は1です。

デフォルトでは(value=1)、サーバーDSNへの最初のmaxConnsPerServerクライアント接続は1つの子サーバー・プロセスに割り当てられ、次のmaxConnsPerServer接続は2つ目の子サーバー・プロセスに割り当てられるといったようになります。

-serversPerDSNN (N > 1)に設定された場合、サーバーDSNへの最初のN * maxConnsPerServerクライアント接続は、N個の子サーバー・プロセスにラウンドロビン方式で分散されます。N * maxConnsPerServerを超える追加のクライアント接続が同じサーバーDSNに対して開かれている場合、それらの接続は-serversPerDSN=1の場合のように新しい子サーバー・プロセスに順次割り当てられます。

子サーバー・プロセスのスレッド・スタック・サイズの構成

通常、ServerStackSize属性を設定する必要はありません。ただし、ttcserverプロセスでアクセス違反(Windows)またはコア・ダンプ(Unix)が繰返し発生する場合は、ServerStackSize属性を増やすことを考慮する必要があります。

クライアント接続ごとに子サーバー・プロセスのスレッド・スタック・サイズを設定するには、次の行をttendaemon.optionsファイルに追加します。

-ServerStackSize ThreadStackSize

ThreadStackSizeはKB単位で指定します。デフォルトは、32ビットのシステムでは128KB、64ビットのシステムでは256KBです。子サーバー・プロセス当たりのクライアント接続の最大数が1の場合、子サーバー・プロセスのメイン・スレッドは1つのクライアント接続にのみ対応するため、ServerStackSize属性は無視されます。SQLの複雑な問合せをクライアント接続で実行している場合は、ServerStackSize属性を1024KBに設定することを検討してください。


注意:

TimesTen Serverへのこれらの変更は、TimesTenデーモンを再起動するまでは有効になりません。

クライアント/サーバーIPCでの共有メモリーの使用方法

デフォルトでは、TimesTenは、TimesTen ClientドライバにリンクされたアプリケーションとTimesTen Server間でTCP/IP通信を使用します。

クライアント・アプリケーションがTimesTen Serverと同じシステム上にある場合は、プロセス間通信(IPC)に共有メモリーを使用することもできます。

これは、パフォーマンスの向上、または32ビットのクライアント・アプリケーションとサーバー上の64ビットのデータベースの通信を可能にする点で有効な場合があります。共有メモリーをIPCとして使用する前に、システムが正しく構成されていることを検証します。『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のインストールの前提条件に関する説明を参照してください。

ttendaemon.optionsファイルの個別の行に指定する-serverShmIpcエントリは、IPCの共有メモリー・セグメントを使用するクライアント接続を受け入れるようにTimesTen Serverに指示します。

このエントリがない場合は、この行をttendaemon.optionsファイルに追加します。TimesTenデーモンを再起動すると、共有メモリーのIPC機能付きでTimesTen Serverが起動されます。

このエントリがある場合は、ttendaemon.optionsファイルの行の前に#記号を追加してコメント・アウトします。これで、TimesTenデーモンの起動時に、TimesTen Serverが共有メモリーのIPC機能付きで起動されなくなります。


注意:

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

共有メモリー・セグメントのサイズの管理

ttendaemon.optionsファイルの個別の行に指定する-serverShmSize sizeエントリは、指定したサイズ(MB)の共有メモリー・セグメントを作成するようにTimesTen Serverに指示します。

このエントリがない場合、TimesTen Serverは64MBの共有メモリー・セグメントを作成します。

共有メモリー・セグメントの適切な値は、次の要因によって異なります。

  • TimesTen Serverのインスタンスに属するすべてデータベースへの同時クライアント/サーバー接続の推定数。

  • このような接続ごとに同時に割り当てられる文の数。

  • 問合せに対して送信されるデータの量。

共有メモリー・セグメントのサイズを決定するためのガイドラインには、次の内容が含まれます。

  • 許可される最大サイズは1GBです。

  • TimesTenには、内部的に使用する1MBのメモリーが必要です。

  • 接続ごとに、16KBの固定ブロックが必要です。

  • 各文は、IPC用の16KBのブロックで始まります。ただし、このサイズは、問合せに対して送信されるデータのサイズに応じて増減されます。文のバッファ・サイズは、TimesTenによって2倍に増加されたり、半分に減少されます。

たとえば、ユーザー・アプリケーションで最大100の同時共有メモリー対応のクライアント/サーバー接続が想定される場合、および各接続に最大50の文があると想定され、最大の問合せによって128KBのデータが戻される場合は、次の計算式を使用してserverShmSizeを設定します。

serverShmSize = 1 MB + (100 * 16) KB + (100 * 50 * 128) KB
              = 1 MB + 2 MB + 625 MB = 628 MB

これは、この例に必要な最大のメモリーです。100すべての接続のそれぞれに50文が含まれ、それらの各文に、結果行に128KBのデータを戻す問合せが含まれている場合にのみ、メモリー・セグメント全体が使用されます。

この例で、serverShmSizeを128MBに設定した場合、新しい共有メモリー対応クライアント/サーバー接続がTimesTen Serverによって拒否されるか、または共有メモリー・セグメント内のリソース不足が原因で問合せに失敗する場合があります。

共有メモリー・セグメントのサイズの変更

設定した共有メモリー・セグメントの値を変更するには、TimesTen Serverを停止する必要があります。サーバーを停止すると、TimesTen Serverのインスタンスに関連付けられているすべてのデータベースへの既存のクライアント/サーバー接続が切断されます。-serverShmSizeオプションの値を変更するには、次の手順を実行します。

  1. ttendaemon.optionsファイルの-serverShmSizeの値を変更します。

  2. ttDaemonAdminユーティリティを使用して、TimesTen Serverを再起動します。TimesTen Serverを再起動できるのは、インスタンス管理者のみです。

TimesTen Serverログ・メッセージの制御

ttendaemon.optionsファイルの個別の行に指定する-noserverlogエントリは、クライアント・アプリケーションとの間の接続および切断のロギングを無効にするようにTimesTenデーモンに指示します。

TimesTen Serverがインストールされている場合は、次の方法で接続および切断に関するメッセージのロギングを有効または無効にできます。

  • ロギングを有効にするには、-noserverlogエントリの前にコメント記号#を追加します。

  • ロギングを無効にするには、-noserverlogエントリの前のコメント記号#を削除します。