Oracle TimesTen Data Managerデーモン(Windowsの場合はOracle TimesTen Data Managerサービス)は、TimesTenをインストールすると起動されます。デーモンは、バックグラウンドで常時稼働しています。
共有メモリーのアクセスの管理
プロセス・リカバリの調整
存在するデータベース、使用中のデータベースおよびいずれのアプリケーション・プロセスがいずれのデータベースに接続されているかに関する管理用統計の保持
RAMポリシーの管理
アプリケーション開発者は、デーモンと直接対話しません。デーモンでアプリケーション・コードは実行されないため、通常、アプリケーション開発者がデーモンについて考慮する必要はありません。TimesTenデータベースにアクセスするアプリケーション・プログラムは、TimesTen内部ルーチンを透過的に使用してデーモンと通信します。
この項では、様々なプラットフォームでTimesTenデーモンと対話する方法について説明します。内容は次のとおりです。
Oracle TimesTen Data Managerサービスは、Oracle TimesTen Data ManagerをWindowsシステムにインストールすると自動的に起動されます。Oracle TimesTen Data Managerサービスを手動で起動および停止するには、-start
または-stop
オプションを指定してttDaemonAdmin
ユーティリティを使用するか、またはWindowsの管理ツールを次のように使用します。
管理ツールを開きます。
Windows 2000およびXPでは、「スタート」→「設定」→「コントロール パネル」→「管理ツール」を選択します。
「サービス」をダブルクリックします。現在使用可能なすべてのサービスが表示されます。
「TimesTen Data Manager 11.2.1」を選択し、該当するボタンをクリックしてサービスを停止または起動します。
注意: TimesTenサービスを起動および停止するには、管理権限が必要です。 |
TimesTenデーモンを起動および停止するには、インスタンス管理者である必要があります。
setuproot
スクリプトを実行していないかぎり、システムをリブートするたびにインスタンス管理者が手動でデーモンを起動および停止する必要があります。TimesTenメイン・デーモンを手動で起動および停止するには、-start
または-stop
オプションを指定してttDaemonAdmin
ユーティリティを使用します。
ユーザーroot
は、デーモン起動スクリプトを実行してデーモンを起動できます。次の表に、デーモン起動スクリプトの場所をプラットフォームごとに示します。
環境 | デーモン起動スクリプトの場所 |
---|---|
Linux | /etc/init.d/tt_ instance_name |
Solaris | /etc/init.d/tt_ instance_name |
HP-UX | /sbin/init.d/tt_ instance_name |
AIX | /etc/init.d/tt_ instance_name |
TimesTenアプリケーションは、共有メモリーに割り当てられたデータベース、ユーザー接続、場合によっては他のTimesTenデータベースまたはOracleデータベースと通信するためのレプリケーション・エージェントやキャッシュ・エージェントで構成されています。
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
値。このオプションは、このファイルでは変更できません。
最も一般的に変更されるオプションのttendaemon.options
ファイルに変更を加えるには、ttmodinstall
ユーティリティを使用します。『Oracle TimesTen In-Memory Databaseリファレンス』のttmodinstallに関する説明を参照してください。ttmodinstall
を使用して特定のオプションを変更できず、ttendaemon.options
ファイルを直接変更する必要がある場合は、TimesTenデーモンを停止してからファイルを変更します。ファイルの変更が完了した後、TimesTenデーモンを再起動します。TimesTen Serverオプションを変更する場合、停止する必要があるのはサーバーのみです。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によるリスニングが行われています。
デフォルトでは、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カスタマ・サポートで使用される情報が格納されるサポート・ログ。
次のオプションを使用して、サポート・ログおよびユーザー・ログの場所とサイズ、およびシステム上に保存されるファイルの数を指定します。
オプション | 説明 |
---|---|
-supportlog path -f path |
サポート・ログ・ファイルの場所を指定します。デフォルトのファイルはdaemon_home /ttmesg.log です。 |
-maxsupportlogfiles num |
TimesTenメイン・デーモンは、指定されたサイズに達すると自動的にファイルを入れ替えます。このオプションでは、保存するサポート・ログ・ファイルの数を指定します。デフォルトは10です。 |
-maxsupportlogsize nBytes |
サポート・ログ・ファイルの最大サイズを指定します。デフォルトは10MBです。 |
-userlog logfile
または
|
ユーザー・ログ・ファイルの場所と名前を指定します。デフォルトのファイルはdaemon_home /tterrors.log です。
このパスとして、UNIXシステムでは |
-maxuserlogfiles num |
TimesTenメイン・デーモンは、指定されたサイズに達すると自動的にファイルを入れ替えます。このオプションでは、保存するユーザー・ログ・ファイルの数を指定します。デフォルトは10です。 |
-maxuserlogsize nBytes |
ユーザー・ログの最大サイズを指定します。デフォルトは1MBです。 |
-showdate |
UNIXシステムでのみ、すべてのメッセージの先頭に日付が追加されることを示します。 |
ログ・メッセージの出力場所としてイベント・ログを指定した場合、それらのログを表示するには、次の手順を実行します。
Windowsデスクトップで、「イベント ビューア」ウィンドウを開きます。
「ログ」メニューから、「アプリケーション」を選択します。
アプリケーションで生成されるログ・メッセージのみが表示されるようにこのウィンドウを変更します。「ソース」列に「TimesTen」と記載されているメッセージは、Oracle TimesTen Data Managerサービスによって生成されたものです。
TimesTenメッセージを表示するには、メッセージ・サマリーをダブルクリックします。
メッセージ・ウィンドウが表示されます。「Next」または「Previous」をクリックするか、あるいは上矢印または下矢印をクリックして、追加のメッセージを表示できます(表示方法は、Windowsのバージョンによって異なります)。
注意: ttDaemonLog ユーティリティを使用してメッセージを表示することもできます。 |
UNIXで、TimesTenデーモンおよびサブデーモンのメッセージを記録するために使用するsyslog
機能を指定するには、ttendaemon.options
ファイルの個別の行に、次のオプションを追加します。
-facility name
指定できる名前値は、auth
、cron
、daemon
、local0-local7
、lpr
、mail
、news
、user
またはuucp
です。
詳細なログ・メッセージを無効にするには、ttendaemon.options
ファイルの-verbose
の前に#
を追加します。
TimesTenでは、サブデーモンを使用して次のことを行います。
データベースの管理
ディスクへのトランザクション・ログ・バッファのフラッシュ
定期的なチェックポイントの実行
様々な表のエージング・ポリシーの実装
デッドロックの検出および解消
直接モード・アプリケーションが異常終了した場合のトランザクションのロールバック
データベースに対して必要なバックグラウンド処理の実行
TimesTenメイン・デーモンは、必要に応じてサブデーモンを動的に生成します。最大数および最小数を指定して、デーモンが生成できるサブデーモンの範囲を手動で指定できます。
任意の時点で、リカバリ中の失敗した各アプリケーション・プロセスに対するTimesTenプロセス・リカバリに、1つのサブデーモンが必要な場合があります。
デフォルトでは、サブデーモンの最大数は50です。
デフォルトでは、TimesTenは、4つ(最小数)のサブデーモンを生成します。ただし、ttendaemon.options
ファイルの-minsubs
および-maxsubs
オプションに新しい値を指定して、これらの設定を変更できます。
デフォルトでは、TimesTenシステムは、NFSマウントされたシステムを介してデータにアクセスすることはできません。Linux x86 64ビット・システムの場合は、NFSマウントされたシステム上のチェックポイントおよびトランザクション・ログ・ファイルにアクセスできます。
NFSマウントされたシステムでデータ・アクセスを有効にするには、ttendaemon.options
ファイルに次の個別の行を追加します。
-allowNetworkFiles
注意: TimesTenでは、NFSマウントされたシステムを介したトレース・ファイル、またはユーザー・ログおよびサポート・ログの格納はサポートされていません。 |
TimesTenでLinuxラージ・ページのサポートを有効にするには、ttendaemon.options
ファイルに次の個別の行を追加します。
-linuxLargePageAlignment Size_in_MB
Size_in_MB
は、/proc/meminfo
のHugepagesize
の値をKB単位ではなくMB単位にしたものです。
HP-UX ccNUMAシステムでのメモリー遅延は、データの位置に応じて異なります。リモート・セルにあるデータへのアクセスには、ローカル・セルにあるデータのアクセスより時間がかかります。TimesTenの処理で最適な結果を得るために、IPC_MEM_LOCAL
を設定し、TimesTenプロセスの対象をローカル・セルに限定します。
共有メモリー・セグメントの場所に関するヒントを設定するには、ttendaemon.options
ファイルの個別の行に次を追加します。
-shmLocalityHint locality_hint
locality_hint
の有効な値は、次のとおりです。
IPC_MEM_LOCAL
IPC_MEM_INTERLEAVED
IPC_MEM_FIRST_TOUCH
IPC_MEM_STRIPED
一度に指定できる値文字列は1つのみです。値が指定されている場合、TimesTenは、適切な場所に関するヒントを使用して、インスタンスに含まれるすべてのデータベースに対して共有メモリー・セグメントを作成します。
注意: このオプションは、インスタンス管理者にメモリー・リソースへのアクセス権限がある場合にのみ有効です。 |
ヒントのセマンティクスの詳細は、shmget
のmanページを参照してください。デフォルトの動作では、セグメントはヒントなしで作成されます。デーモン・オプションが指定されていない場合または指定が正しくない場合、デフォルトの動作が実行されます。セグメントの作成にヒントが使用されているかどうかを確認するには、HP-UX pstat
機能を使用します。pstat
の詳細は、HP-UXのmanページを参照してください。
この項の内容は次のとおりです。
TimesTen Serverは、バックグラウンドで常時稼働しているTimesTenデーモンの子プロセスです。TimesTen Serverオプションを変更するには、次の手順を実行します。
TimesTen Serverを停止します。
次の項の説明に従って、ttendaemon.options
ファイル内のオプションを変更します。
TimesTen Serverを再起動します。
ttendaemon.options
ファイルの個別の行に指定する-server
portno
エントリは、TimesTen Serverを起動するようにTimesTenデーモンに指示するとともに、使用するポートも指示します。portno
は、サーバーでリスニングされるポート番号です。
TimesTen Serverがインストールされている場合は、次の方法でTimesTen Serverを有効または無効にできます。
TimesTen Serverを有効にするには、-server
portno
エントリの前のコメント記号#を削除します。
TimesTen Serverを無効にするには、-server
portno
エントリの前にコメント記号#を追加します。
各TimesTen Client接続に、1つのサーバー・プロセスが必要です。デフォルトでは、クライアントが接続をリクエストするとサーバー・プロセスが生成されます。
予約サーバー・プロセスのプールを事前に生成して、クライアント接続ですぐに使用することができます。 これによって、クライアント/サーバー接続のパフォーマンスが向上します。
ttendaemon.options
ファイルの個別の行に指定する-serverpool
number
エントリは、TimesTen Serverでnumber
個のプロセスを作成するようにサーバー・マシンに指示します。このオプションを指定しない場合、プロセスは事前に生成されず、予約プールに保存されます。
新しい接続のリクエスト時に、サーバー・プールにプロセスが存在しない場合は、オペレーティング・システムの制限に達していないかぎり、新しいプロセスが起動されます。
オペレーティング・システムで処理可能な数を超えるプロセスをリクエストすると、警告が戻されます。リクエストしたプロセスの数に関係なく、予約プールにプロセスが残っていなくても、システムで使用可能なプロセスが存在しない場合にクライアントが接続をリクエストしないかぎり、エラーは発生しません。
TimesTen Serverに対する変更は、TimesTen Serverが再起動されると有効になります。
デフォルトでは、TimesTenは、1つのサーバーへの接続は1つの子プロセスにつき1つのみ作成されます。『Oracle TimesTen In-Memory Databaseリファレンス』に示すサーバー接続属性を使用するか、またはこの項で示すTimesTenデーモン・オプションを設定すると、1つのTimesTen Serverに複数の接続を設定できます。これらのオプションでは、TimesTen Serverへの接続数、各DSNに対するサーバー数およびサーバーへのそれぞれの接続のサイズを設定できます。
注意: サーバー接続属性とこれらのデーモン・オプションの両方を設定した場合は、サーバー接続属性の値が優先されます。 |
1つのサーバー・プロセスでデータベースへの複数のクライアント接続に対応できるようにマルチスレッド・モードで子サーバー・プロセスを実行するには、次の行をttendaemon.options
ファイルに追加します。
-maxConnsPerServer NumberOfClientConnections
NumberOfClientConnections
には1から2047の値を指定できます。デフォルト値は1です。 これは、子サーバー・プロセスはマルチプロセス・モードで実行され、1つのクライアント接続にのみ対応することを示します。
特定のサーバーDSNに対して生成される子サーバー・プロセスの数を指定するには、次の行をttendaemon.options
ファイルに追加します。
-serversPerDSN NumberOfChildServerProcesses
NumberOfChildServerProcesses
には1から2047の値を指定できます。デフォルト値は1です。
特定のサーバーDSNに対するクライアント接続は、生成されDSNに割り当てられた子サーバー・プロセスにラウンドロビン方式で均一に配分されます。子サーバー・プロセス当たりのクライアント接続の最大数とサーバーDSNに生成される子サーバー・プロセスの数を掛けた値より、DSNへのクライアント接続数の値の方が大きい場合は、サーバーDSNに割り当てられる子サーバー・プロセスの数はNumberOfChildServerProcesses
より大きくなります。
クライアント接続ごとに子サーバー・プロセスのスレッド・スタック・サイズを設定するには、次の行をttendaemon.options
ファイルに追加します。
-serverStackSize ThreadStackSize
ThreadStackSize
はKB単位で指定します。デフォルトは、32ビットのシステムでは128KB、64ビットのシステムでは256KBです。子サーバー・プロセス当たりのクライアント接続の最大数が1の場合、子サーバー・プロセスのメイン・スレッドは1つのクライアント接続にのみ対応するため、ThreadStackSize
設定は無視されます。
注意: TimesTen Serverへのこれらの変更は、TimesTenデーモンを再起動するまでは有効になりません。 |
デフォルトでは、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機能付きで起動されなくなります。
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によって拒否されるか、または共有メモリー・セグメント内のリソース不足が原因で問合せに失敗する場合があります
ttendaemon.options
ファイルの個別の行に指定する-noserverlog
エントリは、クライアント・アプリケーションとの間の接続および切断のロギングを無効にするようにTimesTenデーモンに指示します。
TimesTen Serverがインストールされている場合は、次の方法で接続および切断に関するメッセージのロギングを有効または無効にできます。
ロギングを有効にするには、-noserverlog
エントリの前にコメント記号#を追加します。
ロギングを無効にするには、-noserverlog
エントリの前のコメント記号#を削除します。