ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseエラー・メッセージおよびSNMPトラップ
リリース11.2.1
B56052-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 SNMPトラップによる診断

Simple Network Management Program(SNMP)は、ネットワーク管理サービスのためのプロトコルです。通常、ネットワーク管理ソフトウェアは、SNMPを使用してルーターやスイッチなどのネットワーク・デバイスの状態の問合せまたは制御を行います。また、これらのデバイスはトラップと呼ばれる非同期アラートを生成して、管理システムに問題を通知する場合もあります。

TimesTenとSNMP

TimesTenでは、SNMPを介して問合せや制御を行うことはできません。TimesTenで行うのは、ユーザーのリカバリ・メカニズムを簡素化するため、特定の重大なイベントに対してSNMPトラップを送信することのみです。TimesTenでは、次のイベントに対してトラップを送信できます。

こうしたイベントが発生すると、TimesTenデーモンによってログ・エントリも書き込まれますが、これらのエントリをSNMPトラップを介して公開することで、ネットワーク管理ソフトウェアで迅速な処置を行うことができる場合があります。

SNMPのデータ型

SNMPのデータ型は、INTEGERまたはTEXTです。

ASN_INTEGERデータは、次のとおりです。

残りの変数は、ASN_OCTET_STRING型です。

領域不足メッセージのトラップ

デフォルトでは、PermWarnThreshold属性およびTempWarnThreshold属性のパーティション領域のしきい値に基づいて、データ・ストアの領域が少ないことが記録されます。 永続データ・ストアのメモリー・パーティションしきい値を定義するPermWarnThresholdが90に設定されている場合は、永続データ・ストアのメモリーが一杯であることを示すメッセージが記録されます。 データ・ストアの永続メモリーが設定されたしきい値よりも10%を下回った場合、すなわち、この例では80%を下回ると、データ・ストアの領域が少ない状態ではなくなったことを示す2つ目のメッセージが記録されます。

データ・ストアに接続するときに、PermWarnThresholdおよびTempWarnThreshold属性を設定することによって、領域不足のしきい値を変更できます。 『Oracle TimesTen In-Memory Databaseリファレンス』のPermWarnThresholdおよびTempWarnThresholdに関する説明を参照してください。

TimesTenがSNMPトラップを送信する方法

SNMPトラップは、UDP/IPパケットです。したがって、配信される保証はなく、トラップのサブスクライバがない場合はエラーではありません。TimesTenが送信するのはSNMPv1トラップのみです。これは、すべてのネットワーク管理システムで認識されています。

SNMPトラップの生成

SNMPトラップの生成を有効にするには、snmp.iniファイルの行-enabled 0を削除するか、その行の01に変更します。TimesTenは、デフォルトではSNMPトラップを生成しません。これは、繰り返し発生する障害(一杯になったデータ・ストアに新しい行を挿入しようとし続けるアプリケーションなど)の場合に、SNMPトラップの生成によってアプリケーションのパフォーマンスが低下する場合があるためです。

snmp.iniファイルの構成

ルート・インストールの場合は、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です。

snmp.iniファイルには、最大8つの宛先を指定できます。各宛先は動的に構成できません。

-trapport {portnumber} デフォルト・ポートを使用しない場合にローカル・マシンでSNMPトラップを受信するには、-trapportオプションでポート番号を指定します。 デフォルト・ポート番号は162です。-trapdestも-trapportも指定しない場合、トラップはデフォルト、つまりIPv4ループバック・アドレスにあるlocalhostのポート162に送信されます。

デフォルトのSNMPポート番号にアクセスするには、rootである必要があります。 rootでない場合は、ポート番号をアクセス可能な番号に変更してください。


オプションの環境変数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 0
#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ファイルが欠落している場合は、各オプションのデフォルト値が使用されます。

SNMPトラップの受信

SNMPトラップを受信するには、ネットワーク管理ソフトウェアが必要です。

デモ用に、TimesTenではプログラムinstall_dir/demo/snmp/snmptrapdが配布されています。このプログラムは、SNMPトラップをリスニングし、印刷やファイルへのログ出力を行います。 このプログラムの実行方法の詳細は、install_dir/demo/snmp/READMEを参照してください。

オーバーフロー時のトラップの切捨て

1つのトラップの最大パケット・サイズは、1024バイトです。1024バイトの制限を超えるデータがある場合は、トラップは制限内に切り捨てられます。この場合、トラップのttTrapTruncated OIDが1に設定されます。


注意:

snmptrapdは、NET-SNMPプロジェクトの一部です。 http://net-snmp.sourceforge.net/を参照してください。TimesTenではいかなる方法でもサポートされません。 CPANのhttp://www.cpan.org/ディレクトリにあるUCD-SNMP perlモジュールを使用して、SNMPトラップを受信し、それに従って処理することもできます。

TimesTen MIB

管理情報ベース(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トラップは、重大度レベルによって分類できます。トラップの情報は、次のいずれかです。

次の表に、各トラップとその重大度レベルを示します。

トラップ名 重大度レベル 説明
ttAssertFailTrap エラー TimesTen表明(アサーション)障害
ttCacheAgentDiedTrap エラー TimesTen IMDB Cacheデーモンが停止しました。
ttCacheAgentFailoverTrap 警告 キャッシュ・エージェントで、Oracleへの接続が失われ、接続のリカバリが開始されたことが検出されました。
ttCacheIncAutoRefFailedTrap エラー TimesTen IMDB Cache増分自動リフレッシュが失敗しました。
ttCacheAwtRtReadFailedTrap エラー 非同期WRITETHROUGHキャッシュ・グループの場合、実行時情報はOracleインスタンスに格納されます。Oracleからのこの情報の読取り中は、レプリケーションは実行時データ表(tt_version_reppeers)を検索できないか、または表内の情報を検索できません。
ttCacheAwtRtUpdateFailedTrap エラー 非同期WRITETHROUGHキャッシュ・グループの場合、実行時情報はOracleインスタンスに格納されます。この情報の更新中は、レプリケーションは実行時データ表(tt_version_reppeers)を検索できないか、または表内の情報を検索できません。
ttCacheRecoveryAutorefreshTrap 警告 キャッシュ・エージェントが完全自動リフレッシュを実行しています。これは、キャッシュ管理ユーザー用の表領域の不足のため、Oracleでの変更ログ表が切り捨てられた場合に実行される必要があります。
ttCacheValidationErrorTrap エラー キャッシュ・エージェントが、キャッシュ・グループcache-group-nameでキャッシュ・グループを適切にリフレッシュできない致命的な異常を検出したか、リフレッシュ間隔time-in-ms中に致命的な異常を検出しました。詳細は、ユーザー・エラー・ログを参照してください。
ttCacheValidationWarnTrap 警告 キャッシュ・エージェントが、キャッシュ・グループcache-group-nameでキャッシュ・グループを適切にリフレッシュできない異常を検出しました。詳細は、ユーザー・エラー・ログを参照してください。
ttCacheValidationAbortedTrap エラー キャッシュ・エージェントが、致命的エラーによってキャッシュ・グループの検証を強制終了しました。詳細は、ユーザー・エラー・ログを参照してください。
ttDSCkptFailedTrap エラー チェックポイントに失敗しました。 ユーザー・エラー・ログを参照し、組込みプロシージャttCkptHistoryを使用してチェックポイント履歴を確認してください。
ttDaemonOutOfMemoryTrap エラー TimesTenデーモンでmallocのコールが失敗しました。
ttDSDataCorruptionTrap エラー データ・ストアの破損エラーが発生しました。
ttDSGoingInvalidTrap エラー データ・ストアが無効な状態に設定されています。 データ・ストアの無効化は、通常、データ・ストアに接続されたアプリケーションが、最初にデータ・ストアから切断されないで強制終了(キル)または突然終了した場合に発生します。 データベース操作中にTimesTenがリカバリ不能な内部エラーを検出した場合に、データ・ストアを無効化することもあります。 コミットまたはロールバックして、データ・ストアをリカバリする必要があります。
ttDSThreadCreateFailedTrap エラー データ・ストアへの複数の接続を持つプロセス(通常はマルチスレッド)が異常終了しました。接続をクリーンアップするために割り当てられたサブデーモンは、接続ごとに別々のスレッドを作成します。これらのスレッドの1つの作成が失敗した場合、このトラップがスローされます。スレッドの作成は、メモリーの限界またはシステム内にスレッドが多すぎることによって失敗する場合があります。トラップがスローされた後、スレッドの作成は間隔を長くしながらさらに4回試行されます。最初の試行と最後の試行の間の合計時間は、約30秒です。5回目の試行が失敗した場合、データ・ストアは無効化されます。
ttFileWriteErrorTrap エラー ファイルI/Oの書込み中にエラーが発生しました。
ttMainDaemonExitingTrap 情報 メイン・デーモンまたはサブデーモンが正常に終了しました。
ttMainDaemonDiedTrap エラー メイン・デーモンまたはサブデーモンが異常終了しました。このメッセージは、メイン・デーモンが停止したことがサブデーモンに通知されたときに、サブデーモンによって送信されます。 これはメイン・デーモンが強制終了(キル)されたか、クラッシュしたことを示します。 メイン・デーモンを再起動する必要があります。
ttMainDaemonReadyTrap 情報 メイン・デーモンが起動しました。
ttMsgLogOpenFailedTrap エラー メッセージ・ログを開くことができませんでした。ファイルに対する権限が不足している可能性があります。 ファイルの場所および権限を確認してください。
ttPartitionSpaceExhaustedTrap エラー データ・ストア・パーティションの永続領域または一時領域が使い果たされました。このメッセージは、データ・ストア内の永続的または一時的な空き領域が使い果たされた場合に送信されます。 一般に、このメッセージの前にttPartitionSpaceStateTrap警告メッセージが送信されます。しきい値を設定する方法については、『Oracle TimesTen In-Memory Databaseリファレンス』のPermWarnThresholdまたはTempWarnThresholdに関する説明を参照してください。
ttPartitionSpaceStateTrap 警告 データ・ストア・パーティションの永続領域または一時領域が、OKから不足(またはその逆)に移行しています。このメッセージは、データ・ストア内の永続パーティションまたは一時パーティションの空き領域がしきい値に到達したか、またはしきい値未満になった場合に送信されます。 このメッセージが送信されるのは、初めてデータ・ストアに接続したときに、空き領域がPermWarnThrehold属性またはTempWarnThreshold属性に指定されたしきい値に達した場合にかぎられます。しきい値を設定する方法については、『Oracle TimesTen In-Memory Databaseリファレンス』のPermWarnThresholdまたはTempWarnThresholdに関する説明を参照してください。
ttQueryThresholdWarnTrap 警告 SQL問合せがユーザー指定のしきい値を超えました。 問合せのテキストが、ユーザー・ログ・メッセージにあります。 問合せのトランザクションIDおよび文IDが、トラップとユーザー・ログ・メッセージの両方にあります。 トラップの発行後、問合せの実行が継続されます。
ttRepAgentClockSkewTrap エラー ピアが指定されたレプリケーションで、過度のクロック・スキューのため障害が発生しました。アクティブ・スタンバイ・スキームのノード間のスキューが許容制限の250ミリ秒を超えています。
ttRepAgentDiedTrap エラー レプリケーション・エージェントが異常終了しました。このメッセージは、レプリケーション・エージェントが異常終了したことがTimesTenのメイン・デーモンに通知されたときに送信されます。通常、これはレプリケーション・エージェントが強制終了(キル)されたか、クラッシュしたことを示します。
ttRepAgentExitingTrap 情報 レプリケーション・エージェントが正常に終了しました。
ttRepAgentStartingTrap 情報 レプリケーション・エージェントが起動しています。
ttRepCatchupStartTrap 警告 障害後、TimesTenが、双方向レプリケーションが構成されているサブスクライバからマスターのリストアを開始したことを示します。
ttRepCatchupStopTrap 警告 TimesTenが、双方向レプリケーションが構成されているサブスクライバからマスター・データ・ストアをリストアしたことを示します。
ttRepConflictReportStartingTrap 情報 競合の頻度がレプリケーション・スキームで設定した最低水位標を下回ったため、競合レポートが再開されたことを示します。このトラップは、レポートが一時停止されている期間に未報告となった競合の数も示します。
ttRepConflictReportStoppingTrap 情報 競合の頻度がレプリケーション・スキームで設定した最高水位標を上回ったため、競合レポートが一時停止されたことを示します。
ttRepReturnTransitionTrap 警告 レプリケーションのRETURN RECEIPTが、サブスクライバで有効または無効になりました。
ttRepSubscriberFailedTrap エラー マスターによってサブスクライバのために累積されたログが多すぎるため、サブスクライバがfailedと指定されました。
ttRepTCPFailedTrap エラー レプリケーションのTCP接続が失敗しました。
ttRepUpdateFailedTrap 警告 レプリケーションの挿入、更新または削除の操作が失敗しました。
ttSnmpTrap_AsyncMVFailed 警告 非同期マテリアライズド・ビューのリフレッシュが失敗しました。 SNMPトラップには、dsname、デーモンPIDおよびviewidが含まれています。 エラーがロックなどの一時エラーによるものである場合、リフレッシュは次回のリフレッシュで正常に終了する可能性があります。
ttUnexpectedEndOfLogTrap エラー/警告 データ・ストアのリカバリ中に、ログ・ファイルが早期に終了しました。 アプリケーションがLogAutoTruncate=1(デフォルト)で接続している場合、このトラップは警告を示し、エラー・メッセージを伴ってリカバリが続行されます。 アプリケーションがLogAutoTruncate=0で接続している場合、リカバリはエラー・メッセージを伴って終了します。

一般的なTimesTenトラップをsnmptrapdで出力すると、次のようになります。

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.1.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 = "tptbmdata1121"
enterprises.timesten.ttDataStore.ttDSShmKey = "DBI39775920.0.SHM.12"
enterprises.timesten.ttDataStore.ttDSNConn = 2

このトラップは、Windowsシステムで実行中のTimesTenデーモンから生成されたものです。トラップを送信しているシステムのホスト名は、snmptrapdによって出力されます。Uptimeフィールド(SNMPで必要)には、このトラップを生成したプロセスの起動時からの経過時間が示されます。 この場合、プロセスttsrv1121.exeは、4時間34分16秒実行されています。

このトラップは、無効化されているデータベースのイベントのものです。そのため、データ・ストア名、データ・ストアの共有メモリー・キーおよびデータ・ストアへの現在の接続数も示されています。