IOS-XR では、Embedded Event Manager(EEM) を使用してイベントモニタを行い、対象となるイベントが発生
した際や、カウンタが閾値を超えた場合にそれを検知しそのイベントと関連付けたアクションが起動できます。
しかし、初期状態でアクション1つ対して動作時間は20秒と設定されている為、実行に20秒以上の時間を
要する場合は以下のログが出力され、アクションは停止されます。
eem_server[XXX]: %HA-HA_EM-6-FMS_POLICY_TIMEOUT : Policy 'XXXXX.tcl' has hit its
maximum execution time of 20.000000000 seconds, and so has been halted.
EEM は、EEM が自ルータに対して Telnet を実施して動作している為、telnet 時に hostname を
DNS へ問い合わせをする実装となっています。
よって、ユーザ設定に合わせた検証において存在しない DNS が設定されている場合、EEM の tclsh
が domain_services の応答待ちで時間がかかることで EEM の最大実行時間の初期値である
default maxrun time(20秒)を超過してしまい、強制終了されることがありますのでご注意ください。
下記例のような場合には EEM タイムアウトが発生します。
-----------------------------------------------------------------------------
・domain list が複数個設定されている
・domain name-server が1つ以上設定されている
・domain name-server に到達可能な Route が存在する
-----------------------------------------------------------------------------
タイムアウトの解決策は以下です。
-----------------------------------------------------------------------------
1. domain 検索を無効にする
(config)#domain lookup disable
2. EEM policy の maxrun time を増やす
20秒から60秒に増やす場合の例: Tcl の定義に "maxrun 60" を追加
::cisco::eem::event_register_syslog pattern "XXXXXX" maxrun 60
3. domain name-server に到達可能なものを設定
-----------------------------------------------------------------------------