...

Cisco CallManager がクラッシュまたはサービス シャットダウンのどちら

by user

on
Category: Documents
19

views

Report

Comments

Transcript

Cisco CallManager がクラッシュまたはサービス シャットダウンのどちら
Cisco CallManager がクラッシュまたはサービス シャットダウンのどちらによ
って再起動したかを判別する方法
目次
概要
前提条件
要件
使用するコンポーネント
表記法
Cisco CallManager のクラッシュとシャットダウンの違い
クラッシュ
シャットダウン
Cisco CallManager のクラッシュを Cisco TAC に報告する方法
関連情報
概要
この文書では、Cisco CallManager のクラッシュとサービス シャットダウンとの違いに
ついて説明します。 また、問題のトラブルシューティングのために、Cisco
CallManager のクラッシュを報告する手順と、Cisco Technical Assistance Center
(TAC) に連絡する方法についても説明します。
前提条件
要件
この文書に関する特別な要件はありません。
使用するコンポーネント
この文書の情報は、次のソフトウェアのバージョンに基づいています。
•
Cisco CallManager 3.1、3.2、3.3
この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。こ
の文書で使用するすべてのデバイスは、クリアな状態(デフォルト)から設定作業を始
めています。対象のネットワークが実稼動中である場合には、すべてのコマンドによ
る潜在的な影響について確実に理解しておく必要があります。
表記法
文書表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
Cisco CallManager のクラッシュとシャットダウンの違い
クラッシュ
Cisco CallManager のクラッシュは、CallManager のコードのバグが原因で発生します。
クラッシュには、主に次の 3 つのタイプがあります。
•
•
•
アクセス違反
ゼロによる除算
不明の例外
クラッシュが発生すると、ワトソン博士のエントリが作成され、既存のワトソン博士ファ
イルの末尾に追加されます。 また、クラッシュの際には user.dmp ファイルも作成され
ます。 これらのファイルは、C:\Documents and Settings\All
Users\Documents\DrWatson に作成されます。
ワトソン博士ファイルは、drwtsn32.log という名前のテキスト ファイルです。
設定を行うには、Run ウィンドウから drwtsn32 を選択します。
ワトソン博士ファイルの読み方
ワトソン博士ファイルを読むには、次の手順に従ってください。
1. 「when」(小文字)という単語を検索し、問題が発生したときの日時を探します。
ワトソン博士ファイルには、すべてのアプリケーションのクラッシュが記録され
るため、Cisco CallManager のクラッシュではないクラッシュが記録されている
場合もあります(たとえば、RisDC.exe や aupair.exe など)。
2. 問題が発生した日時の場所が分かったら、process identifier(PID; プロセス識
別子)番号を調べ、その番号を下のタスク リストから探して、クラッシュしたア
プリケーションを調べます。
下の例では、クラッシュしたアプリケーションの PID は 752 で、アプリケーショ
ン名は SCAN32.exe です。
Application exception occurred:
App: (pid=752)
When: 9/1/2000 @ 10:23:40.836
Exception number: c0000005 (access
violation)
*----> System Information <----*
Computer Name: CISCO-8VCUWBLUJ
User Name: SYSTEM
Number of Processors: 1
Processor Type: x86 Family 6 Model 8
Stepping 3
Windows 2000 Version: 5.0
Current Build: 2195
Service Pack: None
Current Type: Uniprocessor Free
Registered Organization: Cisco Systems Inc.
Registered Owner: Cisco User
*----> Task List <----*
0 Idle.exe
8 System.exe
144 smss.exe
168 csrss.exe
164 winlogon.exe
216 services.exe
228 lsass.exe
336 ibmpmsvc.exe
380 svchost.exe
424 svchost.exe
576 regsvc.exe
592 MSTask.exe
924 Explorer.exe
992 cmd.exe
972 msiexec.exe
928 tp4mon.exe
856 ibmpmsvc.exe
852 ltmsg.exe
408 RunDll32.exe
428 RunDll32.exe
328 PDirect.exe
620 TP98.exe
968 tphkmgr.exe
948 PRPCUI.exe
668 AUTOCHK.exe
744 tponscr.exe
868 KIX32.exe
520 spoolsv.exe
1164 Avsynmgr.exe
1136 VsStat.exe
1192 Vshwin32.exe
1224 Mcshield.exe
1024 MCUPDATE.exe
752 SCAN32.exe
1292 drwtsn32.exe
0 _Total.exe
3. クラッシュしたアプリケーションが Cisco CallManager の場合は、例外番号をメ
モして、クラッシュのタイプを判別します。
注: Cisco CallManager 以外のアプリケーションのクラッシュの場合は、当該の
開発チームへの問い合せが必要になる場合があります。
Application exception occurred:
App: (pid=752)
When: 9/1/2000 @ 10:23:40.836
Exception number: c0000005 (access
violation)
この例では、例外番号は「c0000005」で、「access violation」(アクセス違
反)であると示されています。 これは、このアプリケーションが、オペレーティン
グ システムから割り当てられたアプリケーション メモリの範囲外の領域にアク
セスしようとしたことを意味しています。
他に可能性のあるクラッシュ タイプは、ゼロによる除算です。 次の例に示すよ
うに、ゼロによる除算の例外番号は「c0000094」です。
Application exception occurred:
App: (pid=1564)
When: 1/7/2003 @ 13:16:15.051
Exception number: c0000094 (divide by zero)
クラッシュ タイプが不明の例外である場合もあります。 次の例に示すように、
不明の例外の例外番号は「e06d7363」です。
Application exception occurred:
App: (pid=2784)
When: 12/10/2002 @ 09:02:58.202
Exception number: e06d7363
クラッシュが、アクセス違反、ゼロによる除算、または不明の例外であるかを
判別すれば、そのクラッシュを既存の Cisco Distributed Defect Tracking
System(DDTS)と照合できます。適合するものがない場合は、開発エンジニア
にその原因を特定する手がかりを問い合せることになります。
4. ファイルの when セクションの下で「FAULT」(大文字)という単語を探し、クラッ
シュの「シグニチャ」を定義します。
このファイルの「FAULT」セクションには、次の 6 つの重要な情報が含まれてい
ます。
o
o
o
o
o
o
問題が生じたスレッドの番号
クラッシュ発生時のこのスレッドのレジスタの内容
クラッシュ発生時に実行されていた関数
クラッシュによって生成されたアセンブリ コード文
クラッシュの発生直前に実行されていた関数のアドレスを順に示すスタ
ック バック トレース
クラッシュ発生時のランタイム スタックの内容に関する詳細情報を示す、
ロウ スタック ダンプ
次に示すコードは、Cisco CallManager のアクセス違反によるクラッシュの例を
示しています。上記の 6 つの重要な要素は「FAULT」という単語と一緒に強調
表示されており、ファイル内のセクションをあらわしています。
State Dump for Thread Id 0x998
!--- 問題が生じたスレッドの番号
eax=00cae82c ebx=02070000 ecx=00e95da0 edx=346984d8
esi=34698970 edi=346984d8
eip=77fcb9b3 esp=05cef34c ebp=05cef358
iopl=0
nv up ei ng nz na pe cy
cs=001b
ss=0023 ds=0023
efl=00000283
es=0023
fs=003b
gs=0000
!--- クラッシュ発生時のレジスタの内容
function: RtlSizeHeap
!--- クラッシュ発生時に実行されていた関数
77fcb992
0f87aafeffff
jnbe
RtlFreeHeap+0x20f
(77fcb842)
77fcb998 807d1400
cmp
byte ptr
[ebp+0x14],0x0
ss:0650c92a=
??
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb99c
0f8586300000
jne
RtlZeroHeap+0x327
(77fcea28)
77fcb9a2 57
push
edi
77fcb9a3 53
push
ebx
77fcb9a4 e8646cfbff
call
RtlConsoleMultiByteToUnicodeN+0x348
(77f8260d)
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9a9
8b4f0c
4eb5aaa=
mov
ecx,[edi+0xc]
ds:3
00003781
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9ac
8b4708
4eb5aaa=
mov
eax,[edi+0x8]
ds:3
00003781
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9af 3bc1
cmp
eax,ecx
77fcb9b1
8901
0e95da0=
mov
[ecx],eax
ds:0
00cae82c
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
FAULT ->77fcb9b3
894804
mov
14cbdfe=
ec810000
[eax+0x4],ecx
ds:0
!--- クラッシュによって生成されたアセンブリ コード
文
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9b6 744d
77fcb9b8
8a4705
mov
ds:34eb5aaa=
81
jz
77fd4405
al,[edi+0x5]
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9bb a804
77fcb9bd
0f8521310000
jne
(77fceae4)
77fcb9c3
8a4605
mov
ds:34eb5f42=
d5
test
al,0x4
RtlZeroHeap+0x3e3
al,[esi+0x5]
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9c6 2410
77fcb9c8 a810
and
test
al,0x10
al,0x10
77fcb9ca
884705
ds:34eb5aaa=
81
mov
[edi+0x5],al
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9cd
0f8555030000
jne
RtlSizeHeap+0x3ef
(77fcbd28)
77fcb9d3 0fb70f
movzx
ecx,word
ptr [edi]
ds:346984d8=
0093
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
77fcb9d6
8b4510
650c92a=
mov
eax,[ebp+0x10]
ss:0
????????
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
*----> Stack Back Trace <----*
!--- ここでは、クラッシュの直前に実行されていた関数
のアドレスを
!--- 順番に表示しています。
FramePtr ReturnAd
Param#1 Param#2 Param#3 Param#4 Function Name
05CEF358 77FCB733 02070000 34698970 05CEF3D0
00000000 ntdll!RtlSizeHeap
05CEF400 7800115C 02070000 00000000 34698978
05CEF454 ntdll!RtlFreeHeap
05CEF448 00C0304F 34698978 00545EC2 34698978
34698978 !free
05CEF460 00B66F85 00000001 00B6626C 033B3D58
025A6720 !<nosymbols>
05CEFF34 018E736B 025A6720 77E964CB 033C6B20
033C6B20 !<nosymbols>
05CEFF80 780060CE 033B3D58 77E964CB 00000018
033C6B20 !ACE_OS_Thread_Adapter::
invoke
!--- 注: 上記の値は、スペースの制限上 2 行で表示さ
れています。
05CEFFB4 77E96523 033C6B20 77E964CB 00000018
033C6B20 !beginthreadex
05CEFFEC 00000000 00000000 00000000 00000000
00000000 kernel32!TlsSetValue
*----> Raw Stack Dump <----*
!--- ここでは、クラッシュの発生時のランタイム スタ
ックの詳細な
!--- 情報を示しています。
05cef34c
f4 ce 05
05cef35c
f3 ce 05
05cef36c
67 5a 02
05cef37c
f3 ce 05
05cef38c
e5 b5 00
05cef39c
f3 ce 05
05cef3ac
50 5b 00
05cef3bc
f3 ce 05
05cef3cc
2b cf 21
05cef3dc
f3 ce 05
05cef3ec
26 f8 77
05cef3fc
00 07 02
00 00 07 02 70 89
....p.i4........
33 b7 fc 77 00 00
3..w....p.i4....
00 00 00 00 54 f4
....T...x.i4 gZ.
44 5b e3 09 94 f3
D[......0.......
38 29 6a 09 40 5b
8)j.@[......e...
fc f3 ce 05 38 29
....8)j.@[......
39 e2 b5 00 57 92
9...W...0.U..P[.
e0 f3 ce 05 cc f3
.........O[.....
00 00 07 02 19 00
.............+.!
f8 2b cf 21 01 f1
.+.!....(...p...
98 ef ce 05 38 f4
....8......w.&.w
01 00 00 00 48 f4
....H...\..x....
69 34 - 00 00 00 00 00
07 02 - 70 89 69 34 d0
ce 05 - 78 89 69 34 20
ce 05 - 30 e6 b5 00 fc
e3 09 - a8 f3 ce 05 65
6a 09 - 40 5b e3 09 c4
89 01 - 30 db 55 02 f5
ce 05 - 0f 4f 5b 00 e0
00 00 - 01 f4 ce 05 f8
ce 05 - 28 ff ce 05 70
ce 05 - a7 9d fb 77 90
ce 05 - 5c 11 00 78 00
05cef40c
fa ce 05
05cef41c
00 00 00
05cef42c
ff ce 05
05cef43c
f4 ce 05
05cef44c
89 69 34
05cef45c
00 00 00
05cef46c
f6 e6 36
05cef47c
00 00 00
00 00 00 00 78 89
....x.i4T.......
20 67 5a 02 02 00
gZ.....d...\...
fe 08 00 00 00 00
............(...
b8 ff 00 78 50 32
...xP2.x....`...
4f 30 c0 00 78 89
O0..x.i4.^T.x.i4
78 89 69 34 34 ff
x.i44....o......
6c 62 b6 00 58 3d
lb..X=;. gZ....6
98 f6 e6 36 00 00
...6............
69 34 - 54 f4 ce 05 04
00 00 - 64 00 00 00 5c
00 00 - 98 ef ce 05 28
03 78 - ff ff ff ff 60
69 34 - c2 5e 54 00 78
ce 05 - 85 6f b6 00 01
3b 03 - 20 67 5a 02 98
00 00 - 00 00 00 00 00
これらの 6 つの箇所の情報は、クラッシュのシグニチャの一部(全部ではな
い)を表しています。シグニチャを決める残りの情報は、次のものです。
クラッシュのタイプ(アクセス違反、ゼロによる除算、不明の例外)
o クラッシュの直前に実行されていた Signal Distribution Layer(SDL)の
トレース文
o
注: クラッシュの前に使用されていた直前の SDL ファイルは、ワトソン
博士ファイルと同様に、あらゆるクラッシュのバグに対応付けられてい
ます。
新しいクラッシュ DDTS ファイルを作成したときには、このシグニチャ情報(直
前の SDL ファイル、直前の Cisco CallManager ファイル、およびワトソン博士
ファイル)を、DDTS レコードに対応付けます。
この新たなクラッシュが同じ原因を持つ既存の DDTS と一致する場合は、次
の情報が同じになります。
o
o
o
o
o
例外のタイプ
クラッシュ発生時に実行されていた関数の名前
スタック バック トレースの中の関数名(これらの名前は、ワトソン博士
ファイルには表示されない場合もあります)
FAULT マーカーの次に表示されるアセンブリ コード文
直前の SDL トレース行(非常に類似)
クラッシュの原因が既存の DDTS と同じ場合でも、レジスタの内容、メモリ アド
レス、および他の情報は異なる場合があります。実行している Cisco
CallManager のバージョンが異なると、アドレスも変わります。実行している
Cisco CallManager のバージョンが同じ場合は、アセンブリ コード セクションや
スタック トレース セクションのアドレスは同じになります。
5. クラッシュをデバッグするために、次のファイルを収集します。
o drwtsn32.log
o user.dmp
o 直前の SDL ファイルと Cisco CallManager のトレース ファイル(クラッ
シュの前の約 5 分間と、再始動の後の約 5 分間)
o proglog ファイル(Cisco CallManager バージョン 3.2 と 3.3 を使用してい
る場合のみ)
o イベント ログ(システムとアプリケーション)(存在する場合)
o パフォーマンス モニタ(perfmon)のログ(存在する場合)
シャットダウン
Cisco CallManager の再始動のもう 1 つのタイプは、シャットダウンです。これは、
CallManager が効果的に動作できなくなり、自身をシャットダウンするものです。シャッ
トダウンは次の 2 つのカテゴリに分かれます。
•
•
初期化タイムアウト
SDL タイマーと SDL ルータ スレッドの停止
Cisco CallManager が自身をシャットダウンすると、CallManager のトレースの最後の
数行に、シャットダウンの Reason code が表示されます。その例を次に示します。
03/22/2003 14:32:16.562 Cisco
CallManager|CallManagerFailure - Indicates
some failure in the Cisco CallManager system. Host name
of hosting
node.:NEROCM1 IP address of hosting node.:172.27.27.224
Reason code.:4
Additional Text [Optional]: App ID:Cisco CallManager
Cluster
ID:NEROCM1-Cluster Node
ID:172.27.27.224|<CLID::NEROCM1Cluster><NID::172.27.27.224><CT::Alarm>
上の例では、原因コードが「4」になっています。シャットダウンの原因コードのリスト
(Cisco CallManager のコードから抜粋)は、次のとおりです。
class CallManagerFailureAlarm : public
CallManagerAlarmCatalog {
public:
enum Reason {
Unknown = 1,
HeartBeatStopped = 2,
RouterThreadDied =3 ,
TimerThreadDied = 4,
CriticalThreadDied = 5,
DeviceMgrInitFailed = 6,
DigitAnalysisInitFailed = 7,
CallControlInitFailed = 8,
LinkMgrInitFailed = 9,
DbMgrInitFailed = 10,
MsgTranslationInitFailed = 11,
SupServiceInitFailed = 12,
DirectoryInitFailed = 13
};
Reason 1 と Reason 2 は、内部シャットダウンの珍しいケースですが、他は一般的な
ものです。 Reason 3 は、SDL ルータ スレッドから応答がなくなったことを示していま
す。Reason 4 は、SDL タイマー スレッドから応答がなくなったことを示しています。ま
た、Reasons 5 から 13 は、初期化タイマーが切れたこと示しています。
初期化タイムアウト
Cisco CallManager のサービスが最初に開始されるときには、CallManager Process
Monitor(CMProcMon)スレッドが起動します。また、MmmanInit スレッドが起動し、こ
れによって他のすべてのプロセスが生成されます。さらに SDL ルータ スレッドが起動
し、このスレッドはあるプロセスから他のプロセスへ送られたシグナルを処理します。
これらの 3 つスレッドは、基本的には同時に起動します。 MmmanInit スレッドが他の
プロセスを起動させる際には、CMProcMon スレッドと SDL ルータ スレッドが起動して
実行中である必要があります。
MmmanInit スレッドは、次のプロセスを、この順番に起動します。
1. データベース(ProcessDb。Cisco CallManager の DBL コードに対するインター
フェイス)
MmmanInit は、これと同時に、H225Handler、MGCPBhHandler、LineManager
など、他の CallManager 内部の別個のプロセスを複数起動します。
2. リージョン
3. ロケーション
4. リンク サービス
5. ディジット解析
6. ルート計画
7. コール制御
8. 補足サービス(コール パーク、自動転送、会議、転送などの機能)
9. メッセージ変換(ゲートウェイから来る H.323 シグナルのデコードに使用)
10. ディレクトリ
11. デバイス
これらのタスクは連続して実行されます。これらの 11 のタスクには、それぞれタイマ
ーがあり、タスクの起動時に開始されます。 タスクが完了する前にタイマーが切れる
と、Cisco CallManager によって実行が停止され、次のような SDL トレースが出力され
ます。
Critical thread death: name of the timer which fired
各タイマーと、そのタイマーを開始する SDL シグナル、および、停止する SDL シグナ
ルを次に示します。 「InitDone」シグナルは、トレース レベルが適切に設定
(SdlTraceTypeFlags を 0x8000CB15 に設定)されていると、SDL トレースに書き込ま
れます。 次の情報により、CallManager の初期化プロセスが明らかになります。
タイマー
SDL 開始シグナル
SDL 停止シグナル
MmmanInit プロセス
データベースの
に送られる「開始」シ
初期化時間(デ
DbInitDone(タイマー
グナル。SDL トレー
フォルトは 180
をオフにします)
スに書き込まれま
秒)
す。
リージョンの初
期化時間(デフ DbInitDone
ォルトは 90 秒)
RegionsInitDone
ロケーションの
初期化時間(デ
RegionsInitDone
フォルトは 30
秒)
LocationsInitDone
ロケーションの
初期化時間(デ
LocationsInitDone
フォルトは 60
秒)
LinkInitDone
ディジット解析
の初期化時間
(デフォルトは
30 秒)
DaInitDone
LocationsInitDone
ルート計画の初
期化時間(デフ DaInitDone
ォルトは 30 秒)
RoutePlanInitDone
コール制御の初
期化時間(デフ RoutePlanInitDone
ォルトは 30 秒)
CcInitDone
補足サービスの
初期化時間(デ
CcInitDone
フォルトは 180
秒)
SsInitDone
メディアの初期
化時間(1)(デフォ SsInitDone
ルトは 30 秒)
MtInitDone
ディレクトリの初
期化時間(デフ MtInitDone
ォルトは 30 秒)
DirectoryInitDone
デバイスの初期
化時間(デフォ DirectoryInitDone
ルトは 180 秒)
DeviceInitDone
•
(1)
メディアの初期化時間という名称は、誤解を招きやすいものです。 これはメ
ディアとは関係がなく、実際にはメッセージ変換の初期化タイマーのことです。
すべてのタスクが完了すると、Cisco CallManager によって、ネットワーク上の他のノ
ードで実行されている CallManager サービスや、ネットワーク上の同じノードや別のノ
ードで実行されている Computer Telephony Integration(CTI)Manager サービスへの
SDL リンクが開かれます。
次に、MmmanInit から CMInitComplete シグナルが CMProcMon スレッドへ返されま
す。CMProcMon を最初に開始したときには、Cisco CallManager の初期化のために、
60 分のハードコードされたタイマー(CMInitComplete_WaitTime)が開始されます(これ
はサービス パラメータではありません。また、設定変更はできませ
ん)。 CMInitComplete シグナルを MmmanInit から 60 分以内に受信できなかった
場合は、CallManager が停止し、次のようなトレース文が出力されます。
Timed out waiting for CMInitComplete signal
11 の初期化タスクのいずれかが失敗するか、これらのタスクすべてを含めた処理時
間が 60 分を超過した場合は、CallManager が停止します。
注: CMInitComplete_WaitTime タイマーは、かつては 10 分にハードコードされていま
したが、Cisco bug ID CSCdx31622(登録ユーザのみ)の一環で 60 分に変更されました。
この変更は、3.1(3) Extended Services(ES; 拡張サービス)トレインの ES 38 から、そ
して、3.2(2) ES トレインでは ES 11 から適用されています。また、Seaview 3.3 でも適
用されています。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますこ
とを、ご了承ください。
初期化のタイマーが切れるという問題がある場合には、単にそのタイマー設定の数
値を増やすだけで、起動の問題は解決します。解決しない場合は、データベースの応
答時間が長すぎて、それによって処理がタイムアウトになっている可能性がありま
す。 この場合は、SDL トレースおよび Cisco CallManager トレースの他に、詳細な
DBL トレースの収集も必要になることがあります。
初期化の問題をデバッグするためには、次のファイルを収集します。
•
•
•
詳細な Cisco CallManager のトレース
SdlTraceTypeFlags を 0x8000CB15 に設定した状態での SDL トレース
詳細な DBL トレース
SDL タイマーと SDL ルータ スレッドの停止
SDL ルータ スレッドは、Cisco CallManager のアプリケーション内で実行されるスレッ
ドの中でも、最も重要なスレッドです。 このスレッドは、コール処理シグナルの送信を
制御します。CMProcMon スレッドは、SDL ルータ スレッドの稼動状態を 2 秒ごとに
確認します。これは Cisco CallManager のトレースに次のように表示されます。
02/05/2003 00:30:32.790 Cisco CallManager|CMProcMon - -----Entered Router
Verification|<CLID::USNYTSVOIPPB01Cluster><NID::10.2.40.11>
02/05/2003 00:30:32.790 Cisco CallManager|CMProcMon - ---Exited Router
Verification|<CLID::USNYTSVOIPPB01Cluster><NID::10.2.40.11>
CMProcMon スレッドは、ルータの検証を開始(enter)および終了(exit)し、SDL ルー
タ スレッドはこの確認に対して正常であると応答します。
しかし、SDL ルータ スレッドから応答がない場合は、Cisco CallManager のトレースに、
次のように While loop と出力されます。
CMProcMon - ----Entered While loop ++++ TimeAtWhileEntry:
[some number here],
TimeBeforeSleep: [another number], TimeAfterSleep: [a
third number], sleepTimeWas : [4th
number"
この「緊急事態」の際には、SDL ルータ スレッドは 20 秒間にわたって 1 秒ごとに確
認されます。この 20 秒間に応答があった場合には、通常の処理が再開され、SDL ル
ータ スレッドの状態は再度 2 秒ごとに確認されるようになります。ただし、この 20 秒
間に SDL ルータ スレッドから応答がなかった場合には、Cisco CallManager アプリケ
ーションはシャットダウンし、次のような文が SDL トレースに出力されます。
000177508| 01/12/31 07:28:40.389| 001| AlarmErr |
|
|
|
|
| AlarmClass: CallManager, AlarmName: CallManagerFailure,
AlarmSeverity: Error
AlarmMessage: , AlarmDescription: Indicates some failure
in the Cisco CallManager system.,
AlarmParameters: HostName:CCM-PUB,
IPAddress:10.5.162.180, Reason:3, Text:,
AppID:Cisco CallManager, ClusterID:CCM-PUB-Cluster,
NodeID:10.5.162.180,
このトレース文の原因コード「3」に注目してください。このコードは、SDL ルータ スレッ
ドが応答を止めたために、Cisco CallManager が自身をシャットダウンさせたことを意
味しています。
SDL ルータ スレッドのシャットダウンについて、最も可能性の高い原因は、システム
リソースの不足です。これは、他のアプリケーションが長時間(最低 20 秒間)にわた
って CPU をほとんど、またはすべて使用していたことを意味します。このため、このよ
うなタイプのシャットダウンのデバッグに対しては、パフォーマンス モニタが必須となり
ます。
説明が必要な他のタイプのシャットダウンとしては、SDL タイマー スレッド シャットダ
ウンです。SDL タイマー スレッド シャットダウンは、内部の Cisco CallManager クロッ
クと、外部のオペレーティング システムのクロックとの差が 16 秒を超えたときに発生
します。この現象が発生すると、Cisco CallManager のトレースに次のトレース情報が
出力されます。
03/22/2003 14:32:16.562 Cisco
CallManager|CallManagerFailure - Indicates
some failure in the Cisco CallManager system. Host name
of hosting
node.:NEROCM1 IP address of hosting node.:172.27.27.224
Reason code.:4
Additional Text [Optional]: App ID:Cisco CallManager
Cluster
ID:NEROCM1-Cluster Node
ID:172.27.27.224|<CLID::NEROCM1Cluster><NID::172.27.27.224><CT::Alarm>
Cisco CallManager では、通常は自身のタイマー スレッドを 1 秒ごとに確認します。現
在のオペレーティング システムの時間に 1 秒を加えて、その値を「予測時間」として
保存します。その後、1 秒間スリープ状態になります。スリープ状態が終わった後、新
しくオペレーティング システムの時間を確認し、予測時間との差を求めます。この 2
つの時間の差が 1 秒を超えている場合は、Cisco CallManager のトレースに次の警
告文が出力されます。
CMProcMon::star_sdlVerification - Test Timer exceeded
minimum timer latency
threshold of 1000 milliseconds, Actual latency: 1630
milliseconds
この Actual latency 文では、内部の Cisco CallManager SDL タイマー スレッドの実
行が遅いことを意味しています。ここでは、CallManager の予測時間と実際のオペレ
ーティング システムの時間の差が 1.63 秒になっています。
この差が 16 秒を超えると、Cisco CallManager が自身をシャットダウンします。シャッ
トダウンの理由コードが 4 になります。
SDL タイマー スレッドのシャットダウンが起きる可能性が最も高い原因は、
CallManager に対する CPU タイムの不足です。VirusScan または STI Backup などの
他のアプリケーションが、直前の 16 秒間に CPU リソースのほとんどを使用していた
ことによります。Perfmon ログは、このタイプのシャットダウンの原因を識別するため
に必須です。
SDL ルータ スレッドまたは SDL タイマー スレッドのシャットダウンが起きた場合には、
次のファイルを収集してください。
•
•
•
詳細な Cisco CallManager のトレース
SdlTraceTypeFlags を 0x8000CB15 に設定した状態での SDL トレース
可能であれば、そのボックス上で実行されていたすべてのプロセスの CPU 使
用率を示す perfmon トレース(これは、Cisco CallManager の CPU のパフォー
マンスへの影響を減らすために、リモートから取得することもできます)
Cisco CallManager のクラッシュを Cisco TAC に報告する方法
Cisco CallManager のクラッシュの真の原因を診断するのは、難しいことです。 Cisco
TAC では、原因を突き止めて迅速に解決するために、トレースとワトソン博士のログ
を収集して、Cisco TAC のサービス リクエスト ノートへアップロードしていただくことを
必要とします。 サービス リクエスト ノートは、メールの件名にサービス リクエスト番号
を添えて、[email protected] に送ります。 手順は次のとおりです。
1. Cisco CallManager のトレース ファイルを、クラッシュの 30 前から 15 分後ま
で収集します。
このトレースは、C:\Program Files\Cisco\Trace\CCM にあります。
2. SDL のトレース ファイルを、クラッシュの 30 前から 15 分後まで収集します。
このトレースは、C:\Program Files\Cisco\Trace\SDL\CCM にあります。
3. user.dmp ファイルと drwtsn32.log ファイルを収集します。
これらのファイルは、C:\Documents and Settings\All
Users\Documents\DrWatson にあります。
4. システムとアプリケーションのイベント ログ ファイルを収集します。
このイベント ログ データは、場合によっては必要ではありません。ただし、シ
ステムとアプリケーションのイベントをダンプし、クラッシュの直前約 30 分間の
イベントだけを抽出しておく必要があります。 Cisco TAC に送る前に、これら
のイベントを詳しく調べてください。より重要なイベントが見つかる可能性があ
ります。
注意: 利用率の高いシステムでは、Event Viewer(組み込みの
Microsoft のユーティリティ)を使用して、これらのイベントをテキスト ファイル
にダンプして、他のすべてのプロセス(電話の登録を管理するために使用され
ている CallManager KeepAlive プロセスなど)を CPU から容易に排除できます。
elogdmp.exe という名前のシェアウェア ユーティリティを使用すると、個々のロ
グファイルのすべてのエントリをテキスト ファイルにダンプできます。
elogdmp.exe ツールを使用する際の CPU への影響は、無視できる程度のも
のです。 DOS プロンプトから、次のように実行します。
elogdmp COMPUTER_NAME Application > AppEvents.txt
elogdmp COMPUTER_NAME System > SysEvents.txt
5. すべてのファイルを次に示す順に zip ファイルに圧縮した後に、メールに添付
およびコピーしてください。
ファイルの圧縮には、WinZip バージョン 8 を使用してください(Cisco はこのユ
ーティリティのサイト ライセンスを所有しています)。通常は、より迅速に評価
するために、ファイルはローカルのマシンにコピーされます。圧縮されたファイ
ルは容量が小さく、元のファイル形式よりも短い時間で移動できます。
a. user.dmp ファイルと drwtsn32.log ファイルを一緒に圧縮します。
すぐにこの zip ファイルを送信し、コピーします。 症状の説明と、Cisco
CallManager の正確なバージョン、当該デバイスの負荷、および Cisco
IOS(R) ソフトウェア バージョンをお知らせください 特別なパッチを使用し
ている場合は、そのことについても明確に伝えてください。
b. Cisco CallManager のトレースと SDL トレースのファイルを一緒に圧縮
します。
この zip ファイルを送信およびコピーし、連絡があるまで保存しておい
てください。
c. perfmon ログをすべて一緒に圧縮します。
この zip ファイルを送信およびコピーし、連絡があるまで保存しておい
てください。
d. イベント ログのエントリをすべて一緒に圧縮します。
この zip ファイルを送信およびコピーし、連絡があるまで保存しておい
てください。
6. すべてのトレースとログを収集したら、これらのファイルを圧縮し、その zip ファ
イルを [email protected] 宛てに、メールの件名にサービス リクエスト番号を
付けて送信してください。
関連情報
•
•
•
•
•
•
•
製品サポート:Cisco CallManager
Cisco CallManager サービスのクラッシュ
ボイス テクノロジー
ボイス、テレフォニー、およびメッセージング デバイス
ボイス ソフトウェア
ボイス、テレフォニー、およびメッセージングに関する TAC eLearning
Solutions
*推奨文献:「Troubleshooting Cisco IP Telephony」 , Cisco Press 発行、
ISBN 1587050757
テクニカルサポートトップへ
All contents copyright (C) 1992--2003 Cisco Systems K.K.
Updated: Oct 21, 2004
Document ID: 46806
Fly UP