Simple Network Management Program(SNMP)は、ネットワーク管理サービスのためのプロトコルです。通常、ネットワーク管理ソフトウェアは、SNMPを使用してルーターやスイッチなどのネットワーク・デバイスの状態の問合せまたは制御を行います。また、これらのデバイスはトラップと呼ばれる非同期アラートを生成して、管理システムに問題を通知する場合もあります。
次の各項では、TimesTenにおけるSNMPおよびトラップについて説明します。
TimesTenでは、SNMPを介して問合せや制御を行うことはできません。TimesTenで行うのは、ユーザーのリカバリ・メカニズムを簡素化するため、特定の重大なイベントに対してSNMPトラップを送信することのみです。TimesTenでは、次のイベントに対してトラップを送信できます。
表明(アサーション)障害
デーモンの停止
データベースの無効
トランザクションのレプリケーション障害
データベースの領域不足
トランザクションの自動リフレッシュ障害
レプリケーションの競合解消
ファイル書込みエラー
こうしたイベントが発生すると、TimesTenデーモンによってログ・エントリも書き込まれますが、これらのエントリをSNMPトラップを介して公開することで、ネットワーク管理ソフトウェアで迅速な処置を行うことができる場合があります。
SNMPのデータ型は、INTEGER
またはTEXT
です。
ASN_INTEGER
データは、次のとおりです。
ttPid
ttDSNConn
ttDSCurSize
ttDaeInst
ttRepReceiverPort
ttDSReqSize
ttDaePid
ttDSMaxSize
ttCacheAgentPid
残りの変数は、ASN_OCTET_STRING
型です。
デフォルトでは、PermWarnThreshold
属性およびTempWarnThreshold
属性のパーティション領域のしきい値に基づいて、データベースの領域が少ないことが記録されます。永続データベースのメモリー・パーティションしきい値を定義するPermWarnThreshold
が90に設定されている場合は、永続データベースのメモリーが一杯であることを示すメッセージが記録されます。データベースの永続メモリーが設定されたしきい値よりも10%を下回った場合、すなわち、この例では80%を下回ると、データベースの領域が少ない状態ではなくなったことを示す2つ目のメッセージが記録されます。
データベースに接続するときに、PermWarnThreshold
およびTempWarnThreshold
属性を設定することによって、領域不足のしきい値を変更できます。『Oracle TimesTen In-Memory Databaseリファレンス』のPermWarnThresholdに関する説明およびTempWarnThresholdに関する説明を参照してください。
SNMPトラップは、UDP/IPパケットです。したがって、配信される保証はなく、トラップのサブスクライバがない場合はエラーではありません。TimesTenが送信するのはSNMPv1トラップのみであり、これはすべてのネットワーク管理システムで認識されています。
SNMPトラップの生成を有効にするには、snmp.ini
の行-enabled 0
を1
に変更します。SNMPトラップを生成すると、繰り返し発生する障害の場合(一杯になったデータベースにアプリケーションが新しい行を挿入しようとし続ける場合など)にアプリケーションのパフォーマンスが低下する可能性があるため、TimesTenではデフォルトでSNMPトラップが生成されません。
ルート・インストールの場合は、UNIXシステム上の構成ファイル/var/TimesTen/snmp.ini
、およびWindowsシステム上のinstall_dir
\srv\info\snmp.ini
が、トラップの生成を有効または無効にし、SNMPトラップのコミュニティ文字列、ターゲット・ホスト、およびトラップをリスニングするターゲット・ポートを制御します。
注意: ルート以外のインストールの場合、ファイルはinstall_dir /snmp.ini です。install_dir はTimesTenインストールのパスです。 |
ファイルの内容は次のとおりです。
構成要素 | 説明 |
---|---|
enabled {0|1} | SNMPトラップの生成を無効または有効にします。 |
-community {string} | SNMPコミュニティ文字列です。デフォルトはpublicです。 |
-trapdest {host:portnumber} |
SNMPトラップ・メッセージを受信するSNMPエージェントのホスト名およびポート番号です。デフォルト・ホストはlocalhost です。SNMPエージェントがリスニングするデフォルト・ポート番号は162です。
|
-trapport {portnumber} |
デフォルト・ポートを使用しない場合にローカル・マシンでSNMPトラップを受信するには、-trapport オプションでポート番号を指定します。デフォルト・ポート番号は162です。-trapdest も-trapport も指定しない場合、トラップはデフォルト、つまりIPv4ループバック・アドレスにあるlocalhostのポート162に送信されます。 |
オプションの環境変数TT_SNMP_INI
によって、snmp.ini
ファイルの場所を上書きできます。この変数を設定する場合、SNMP送信側構成ファイルのフルパスを指定する必要があります(これには、snmp.ini
以外の名前を指定できます)。
例3-1
メッセージを送信し、1つのターゲット宛先を設定する場合、snmp.ini
ファイルは次のようになります。
#Enable SNMP trap generation -enabled 1 #Default community is "public" -community "public" #Default trap destination is "localhost" and default destination SNMP trap port is 162 -trapdest "localhost:162"
例3-2
メッセージを送信し、複数のターゲット宛先を設定する場合、snmp.ini
ファイルは次のようになります。
#Enable SNMP trap generation -enabled 1 #Default community is "public" -community "public" #Default trap destination is "localhost" and default destination SNMP trap port is 162 -trapdest "localhost:162" -trapdest "pluto:10999" -trapdest "mymachine:189"
例3-3
トラップの生成を無効にする場合、snmp.ini
ファイルは次のようになります。
#Disable SNMP trap generation -enabled 0 #Default community is "public" -community "public" #Default trap destination is "localhost" and default destination SNMP trap port is 162 -trapdest "localhost:162"
1つ以上のオプションを指定しなかった場合、またはsnmp.ini
ファイルが欠落している場合は、各オプションのデフォルト値が使用されます。
1つのトラップの最大パケット・サイズは、1024バイトです。1024バイトの制限を超えるデータがある場合は、トラップは制限内に切り捨てられます。この場合、トラップのttTrapTruncated
OIDが1に設定されます。
管理情報ベース(MIB)は、データベース・スキーマに似ています。これは、SNMPデータの構造について記述しています。一般的なMIBについては、前述したSNMPの概要に関するドキュメントを参照してください。
MIB拡張ファイルinstall_dir
/mibs/TimesTen-MIB.txt
では、TimesTenのSNMP情報の構造について記述しています。
TimesTenのOIDは、Private Enterprise 5549
に基づいています。ルートへの完全なパスは、iso.org.dod.internet.private.enterprise.TimesTen
.*
または数字で1.3.6.1.4.1.5549
.*
です。
すべてのトラップには、トラップ発生時のグリニッジ標準時(GMT)タイムスタンプ、およびプロセスID、プロセスのユーザー名(または、UNIXシステムでのユーザーID)、TimesTenインスタンス名、TimesTenのリリース番号、トラップ固有のメッセージが含まれます。また、ほとんどのトラップには、そのメッセージ固有の追加情報があります。たとえば、ttRepAgentDiedTrap
には、レプリケーション・ストアIDがあります。各トラップの変数のリストについては、TimesTen-MIB.txt
ファイルを参照してください。
TimesTen SNMPトラップは、重大度レベルによって分類できます。トラップの情報は、次のいずれかです。
情報
警告
エラー
表3-1は、各トラップとその重大度レベルを示しています。
表3-1 トラップの説明と重大度レベル
トラップ名 | 重大度レベル | 説明 |
---|---|---|
エラー |
TimesTen表明(アサーション)障害 |
|
警告 |
非同期マテリアライズド・ビューのリフレッシュが失敗しました。SNMPトラップには、dsname、デーモンPIDおよびviewidが含まれています。エラーがロックなどの一時エラーによるものである場合、リフレッシュは次回のリフレッシュで正常に終了する可能性があります。 |
|
エラー |
TimesTen IMDB Cacheデーモンが停止しました。 |
|
警告 |
キャッシュ・エージェントで、Oracleへの接続が失われ、接続のリカバリが開始されたことが検出されました。 |
|
エラー |
TimesTen IMDB Cache増分自動リフレッシュが失敗しました。 |
|
警告 |
TimesTen IMDB Cache増分自動リフレッシュが失敗しました。リモート・データベースのキャッシュ・エージェントが停止したか応答していません。リモート・データベースの自動リフレッシュが無効になっています。 |
|
警告 |
読取り専用キャッシュ・グループ用にOracleに作成されているトリガー・ログ表の一部は断片化しました。ドキュメントに指定されているように、ユーザーは必要な処置を講じることができます。 |
|
エラー |
非同期WRITETHROUGHキャッシュ・グループの場合、実行時情報はOracleインスタンスに格納されます。Oracleからのこの情報の読取り中は、レプリケーションは実行時データ表( |
|
エラー |
非同期WRITETHROUGHキャッシュ・グループの場合、実行時情報はOracleインスタンスに格納されます。この情報の更新中は、レプリケーションは実行時データ表( |
|
警告 |
キャッシュ・グループは自動リフレッシュされません。かわりに、キャッシュ・グループの手動ロードまたは手動リフレッシュを行って、これを手動でリカバリする必要があります。 |
|
警告 |
キャッシュ管理ユーザーが使用している表領域が、最小しきい値を下回っています。 |
|
警告 |
キャッシュ・エージェントが完全自動リフレッシュを実行しています。これは、キャッシュ管理ユーザー用の表領域の不足のため、Oracleでの変更ログ表が切り捨てられた場合に実行される必要があります。 |
|
エラー |
キャッシュ・エージェントが、致命的エラーによってキャッシュ・グループの検証を強制終了しました。詳細は、ユーザー・エラー・ログを参照してください。 |
|
エラー |
キャッシュ・エージェントが、キャッシュ・グループcache-group-nameでキャッシュ・グループを適切にリフレッシュできない致命的な異常を検出したか、リフレッシュ間隔time-in-ms中に致命的な異常を検出しました。詳細は、ユーザー・エラー・ログを参照してください。 |
|
警告 |
キャッシュ・エージェントが、キャッシュ・グループcache-group-nameでキャッシュ・グループを適切にリフレッシュできない異常を検出しました。詳細は、ユーザー・エラー・ログを参照してください。 |
|
エラー |
チェックポイントに失敗しました。ユーザー・エラー・ログを参照し、組込みプロシージャ |
|
エラー |
TimesTenデーモンで |
|
エラー |
データベースの破損エラーが発生しました。 |
|
エラー |
データベースが無効な状態に設定されています。データベースの無効化は、通常、データベースに接続されたアプリケーションが、最初にデータベースから切断されないで強制終了(キル)または突然終了した場合に発生します。データベース操作中にTimesTenがリカバリ不可能な内部エラーを検出した場合に、データベースを無効化することもあります。コミットまたはロールバックして、データベースをリカバリする必要があります。 |
|
エラー |
データベースへの複数の接続を持つプロセス(通常はマルチスレッド)が異常終了しました。接続をクリーンアップするために割り当てられたサブデーモンは、接続ごとに別々のスレッドを作成します。これらのスレッドの1つの作成が失敗した場合、このトラップがスローされます。スレッドの作成は、メモリーの限界またはシステム内にスレッドが多すぎることによって失敗する場合があります。トラップがスローされた後、スレッドの作成は間隔を長くしながらさらに4回試行されます。最初の試行と最後の試行の間の合計時間は、約30秒です。5回目の試行が失敗した場合、データベースは無効化されます。 |
|
エラー |
ファイルI/Oの書込み中にエラーが発生しました。 |
|
エラー |
メイン・デーモンまたはサブデーモンが異常終了しました。このメッセージは、メイン・デーモンが停止したことがサブデーモンに通知されたときに、サブデーモンによって送信されます。これはメイン・デーモンが強制終了(キル)されたか、クラッシュしたことを示します。メイン・デーモンを再起動する必要があります。 |
|
情報 |
メイン・デーモンまたはサブデーモンが正常に終了しました。 |
|
情報 |
メイン・デーモンが起動しました。 |
|
エラー |
メッセージ・ログを開くことができませんでした(ファイルに対する権限が不足している可能性があります)。ファイルの場所および権限を確認してください。 |
|
エラー |
データベース・パーティションの永続領域または一時領域が使い果たされました。このメッセージは、データベース内の永続的または一時的な空き領域が使い果たされた場合に送信されます。一般に、このメッセージの前に |
|
警告 |
データベース・パーティションの永続領域または一時領域が、OKから不足(またはその逆)に移行しています。このメッセージは、データベース内の永続パーティションまたは一時パーティションの空き領域がしきい値に到達したか、またはしきい値未満になった場合に送信されます。このメッセージが送信されるのは、初めてデータベースに接続したときに、空き領域が |
|
警告 |
SQL問合せがユーザー指定のしきい値を超えました。問合せのテキストが、ユーザー・ログ・メッセージにあります。問合せのトランザクションIDおよび文IDが、トラップとユーザー・ログ・メッセージの両方にあります。トラップの発行後、問合せの実行が継続されます。 |
|
エラー |
ピアが指定されたレプリケーションで、過度のクロック・スキューのため障害が発生しました。アクティブ・スタンバイ・スキームのノード間のスキューが許容制限の250ミリ秒を超えています。 |
|
エラー |
レプリケーション・エージェントが異常終了しました。このメッセージは、レプリケーション・エージェントが異常終了したことがTimesTenのメイン・デーモンに通知されたときに送信されます。通常、これはレプリケーション・エージェントが強制終了(キル)されたか、クラッシュしたことを示します。 |
|
情報 |
レプリケーション・エージェントが正常に終了しました。 |
|
情報 |
レプリケーション・エージェントが起動しています。 |
|
警告 |
障害後、TimesTenが、双方向レプリケーションが構成されているサブスクライバからマスターのリストアを開始したことを示します。 |
|
警告 |
TimesTenが、双方向レプリケーションが構成されているサブスクライバからマスター・データベースをリストアしたことを示します。 |
|
情報 |
競合の頻度がレプリケーション・スキームで設定した最低水位標を下回ったため、競合レポートが再開されたことを示します。このトラップは、レポートが一時停止されている期間に未報告となった競合の数も示します。 |
|
情報 |
競合の頻度がレプリケーション・スキームで設定した最高水位標を上回ったため、競合レポートが一時停止されたことを示します。 |
|
警告 |
レプリケーションのRETURN RECEIPTが、サブスクライバで有効または無効になりました。 |
|
エラー |
マスターによってサブスクライバのために累積されたログが多すぎるため、サブスクライバがfailedと指定されました。 |
|
エラー |
レプリケーションのTCP接続が失敗しました。 |
|
警告 |
レプリケーションの挿入、更新または削除の操作が失敗しました。 |
|
エラー/警告 |
データベースのリカバリ中に、ログ・ファイルが早期に終了しました。アプリケーションが |
一般的なTimesTenトラップでは、次の情報が出力されます。
Enterprise Specific Trap (ttDSGoingInvalidTrap) Uptime: 4:34:16 enterprises.timesten.ttSystem.ttTimeStamp = "2002-07-20 22:24:49 (GMT)" enterprises.timesten.ttSystem.ttPid = 127 enterprises.timesten.ttSystem.ttUid = "SYSTEM" enterprises.timesten.ttSystem.ttVersion = "@(#) TimesTen Revision: 11.2.2.0.0 Date: 2008/07/07 18:24:10, instance giraffe" enterprises.timesten.ttMsg, ttMesg "Data store going Invalid (from master daemon)" enterprises.timesten.ttDataStore.ttDSName = "tptbmdata1122" enterprises.timesten.ttDataStore.ttDSShmKey = "DBI39775920.0.SHM.12" enterprises.timesten.ttDataStore.ttDSNConn = 2
このトラップは、Windowsシステムで実行中のTimesTenデーモンから生成されたものです。Uptimeフィールド(SNMPで必要)には、このトラップを生成したプロセスの起動時からの経過時間が示されます。この場合、プロセスttsrv1122.exe
は、4時間34分16秒実行されています。
このトラップは、無効化されているデータベースのイベントのものです。そのため、データベース名、データベースの共有メモリー・キーおよびデータベースへの現在の接続数も示されています。