対象バージョンレベル
Systemwalker Centric Manager
Windows版:V5.0L10~V13.4.0
Solaris版:5.0~V13.4.0
Linux版:V11.0L10~V13.4.1
対処1
対処方法
Systemwalker技術情報ホームページで公開されているMIB拡張チェックツールを利用して、拡張MIBファイルのチェックを行ってください。MIB拡張チェックツールには以下の機能があります。
MIB名と拡張MIBファイル名が一致するように、拡張MIBファイルを改名・分割します。
コンパイルエラーの詳細と対処方法、MIB拡張を行う順序、不足しているMIB名を出力します。
対処2
エラーメッセージ
line nnn: syntax error |
対処方法1
確認ポイント
識別子の記述は正しいですか。
対処方法
識別子には、以下の規約があります。
任意の文字、数字、または“-”が使用できます。
始まりの文字は小文字です。
最後の文字に、“-”は使用できません。
“-”を続けて使用することはできません。
【例】
《誤》Network OBJECT IDENTIFIER ::= { fujitsu 4 } 《正》network OBJECT IDENTIFIER ::= { fujitsu 4 } |
対処方法2
確認ポイント
型の記述は正しいですか。
対処方法
型は、以下の規約があります。
任意(1個以上)の文字、数字、および“-”が使用できます。
始まりの文字は大文字です。
最後の文字に、“-”は使用できません。
“-”を続けて使用することはできません。
【例】
《誤》grAtmVcStatsEntry OBJECT-TYPE 《正》grAtmVcStatsEntry OBJECT-TYPE |
対処方法3
原因
コンパイル対象がSNMPv2となっていますが、コンパイラがSNMPv1と認識しています。
対処方法
コンパイラは、SNMPv1/SNMPv2の判断を、SNMPv2-SMIがインポートされているかで判断します。コンパイル対象が、SNMPv2で記述されている場合、SNMPv2-SMIをIMPORTSの項目に追加し、拡張する必要があります。
SNMPv1とSNMPv2の詳細な記載方法については、“Systemwalker Centric Manager Q & A集”の“SNMPv2形式の拡張MIBファイルの基本的な文法”と“SNMPv1形式の拡張MIBファイルの基本的な文法”を参照してください。
対処方法4
確認ポイント
1つのファイルに複数のMIB定義が存在していませんか。
対処方法
[DEFINITIONS ::= BEGIN ・・・ END]で囲まれた構文が、1つのファイル中に複数存在する場合、複数のファイルに分割し、[DEFINITIONS ::= BEGIN]の前に記述された文字列(MIB定義)をファイル名として保存(MIB定義.my)後、拡張する必要があります。
【例】
《修正前》 |
対処3
エラーメッセージ
line 999: MODULE-IDENTITY must be invoked at beginning of module |
原因
SNMP-V2形式の場合に、拡張MIBファイル先頭のオブジェクトの定義が、MODULE-IDENTITY句で始まっていません。
対処方法
V2形式には、必ず“MODULE-IDENTITY”が必要です。
対象となる拡張MIBファイルの先頭のオブジェクトを、“MODULE-IDENTITY”で定義してください。
【例:修正前】
<オブジェクト> OBJECT IDENTIFIER ::= { enterprises 10480 } |
【例:修正後】
<オブジェクト> MODULE-IDENTITY |
対処4
エラーメッセージ
USAGE.MOSY -C -D -I -M DIRECTORY -1 <MIBファイル名> コンパイルに失敗しました。 |
原因
MIB拡張操作の対象となるファイルパスに空白が含まれています。
例) C:\Documents and Settings\Administrator\デスクトップ
対処方法
ファイルパスに空白が含まれないディレクトリに対象ファイルを格納しなおした後、MIB拡張操作を行ってください。
Windows版V10.0L10以降、Linux版および、Solaris版10.0以降では発生しません。
対処5
エラーメッセージ
line nnn: unknown token: "_" |
原因
nnn行目の変数名に'_'が含まれています。
対処方法
変数名から'_'を取り除いてください。
対処6
エラーメッセージ
拡張MIBをコンパイルしています。 コンパイルに失敗しました。 |
拡張MIBをコンパイルしています。 |
拡張MIBをコンパイルしています。 |
拡張MIBをコンパイルしています。 |
拡張MIBをコンパイルしています。 (nnnは、1139または1143) |
原因
コンパイル対象の拡張MIBで、使用しているオブジェクトの参照に失敗した場合、メッセージが出力されます。
対処方法
エラーメッセージに、“code = -4 detail = 2 line = nnn”が含まれている場合
(nnnは、134~143)
確認ポイント1
IMPORTS文で参照先としている拡張MIBファイルが見つからない原因が考えられます。以下の項目を確認してください。
IMPORTS文で指定されている拡張MIBファイルがコンパイル済みかを確認します。
以下のファイルが存在することを確認してください。なお、Systemwalkerであらかじめ定義されている拡張MIBファイルであっても、DEFSファイルが入っていないものがあります。その場合は当該拡張MIBファイルをMIB拡張してください。
Systemwalkerインストールディレクトリ\mpwalker.dm\mib\拡張MIBファイル名.DEFS |
原因1
IMPORTS文で参照先としている拡張MIBファイルが見つからない可能性があります。
対処方法1
IMPORTS文で指定されている拡張MIBファイルがコンパイルされていなかった場合は、先にコンパイルしてください。
確認ポイント2
Counter32のオブジェクトMAX-ACCESSがnot-accessible、read-write、read-createになっていないか確認してください。
原因2
オブジェクトで定義されている型に関する原因が考えられます。
対処方法2
Counter32のMAX-ACCESSはread-onlyでなければなりません。変更してください。
エラーメッセージに、“code = -4 detail = 0 line = nnn”が含まれている場合
(nnnは、613~626)
確認ポイント
参照先が明示されていない、または参照先に存在しないオブジェクトが使用されていないか確認してください。
例)testB.my
testB OBJECT IDENTIFIER ::= { testA 10 } |
testB.myの中に上記のようにtestBの定義がある場合、事前にtestAが定義されていないと、このエラーが発生します。また、参照先の拡張MIBファイルにtestAの定義が含まれているか確認してください。
原因
参照先が明示されていないオブジェクトが参照されているか、以前にMIB拡張した拡張MIBファイルが古く、オブジェクトが参照先に存在していない可能性があります。
対処方法
未定義のオブジェクトが登録されている拡張MIBファイルがコンパイル対象のMIBファイルにあった場合は、そのファイルを先にコンパイルしてください。
例)testAの定義がtestA.myにあった場合
testA.myをコンパイルします。
未定義のオブジェクトが登録されている拡張MIBファイルがIMPORTS文で指定されていなければ、IMPORTS文を追加してください。
例:testB.myに以下を追加し、testBをコンパイルします。
IMPORTS |
エラーメッセージに、“code = -4 detail = 0 line = nnn”が含まれている場合
(nnnは、1139または1143)
確認ポイント
Counter64を使用していないか確認してください。
BITSを使用していないか確認してください。
Unsigned32を使用していないか確認してください。
原因
サポートされていないオブジェクトが使用されている可能性があります。
対処方法
Systemwalker Centric Manager V13.0.0以前では、Counter64とBITSをサポートしていません。また、Systemwalker Centric Manager V13.4.0以前では、SEQUENCEの中で BITSを使用することはできません。
Counter64を使用している場合はCounter32に、BITSを使用している場合はINTEGERに、それぞれ変更してください。
Systemwalker Centric Manager V13.0.0以前では、TEXTUAL-CONVENTIONでのUnsigned32をサポートしていません。
Unsigned32を使用している場合はUInteger32/Counter32に置き換えてください。
TEXTUAL-CONVENTIONについては、RFC1443にもとづいています。そのため、SYNTAXに指定できるのは、INTEGER,OCTET STRING,OBJECT IDENTIFER,BIT STRING などの単純タイプの型か、RFC1442にて定義されている応用タイプ(IpAddress,Counter32,Gauge32,TimeTicks,Opaque,NsapAddress,Counter64,UInteger32)、または拡張MIBファイルのどれかでTEXTUAL-CONVENTIONにより、定義している型となります。
注意
“Fail to make the MIB file. code = -4 ・・・”のときの、lineの値は、拡張MIBファイルのエラー発生行と異なりますので、注意してください。
対処7
エラーメッセージ
object <オブジェクト名>: |
原因
ACCESSの属性として、無効なキーワードが指定されました。
対処方法
SMI-v1形式の場合
ACCESSの属性には、以下のどれかを指定してください。
“read-only”
“read-write”
“write-only”
“not-accessible”
SMI-v2形式の場合
ACCESSというキーワードが使用されず、代わりにMAX-ACCESSキーワードが使用されます。MAX-ACCESSの属性を設定する場合は、以下のどれかを指定してください。
“not-accessible”
“accessible-for-notify”
“read-only”
“read-write”
“read-create”
対処8
エラーメッセージ
object <オブジェクト名>: |
原因
STATUSの属性として、無効なキーワードが指定されました。
対処方法
SMI-v1形式の場合
STATUSの属性には、以下のどれかを指定してください。
“mandatory”
“optional”
“obsolete”
SMI-v2形式の場合
以下のどれかを指定してください。
“current”
“deprecated”
“obsolete”
対処9
エラーメッセージ
line nnn: use MAX-ACCESS not ACCESS |
原因
SNMP-V2形式のオブジェクト定義でACCESS節が指定されました。
対処方法
SNMP-V2形式のオブジェクト定義では、ACCESS節の代わりにMAX-ACCESSを使用してください。
対処10
エラーメッセージ
object <オブジェクト名>: |
原因
SYNTAX句に“INTEGER”型を指定する場合は、列挙型の値または範囲を指定する必要があります。
対処方法
以下のように指定値の範囲を指定します。
【例:修正前】
SYNTAX INTEGER |
【例:修正後】
SYNTAX INTEGER(0..65535) |
対処11
エラーメッセージ
object <オブジェクト名>: |
原因
MIBファイルがSNMPv1形式の場合に、INTEGER型の列挙型の値に0が設定されました。
対処方法
INTEGER型の列挙型の値に0以外の値を設定してください。
【例:修正前】
<オブジェクト名> OBJECT-TYPE |
【例:修正後】
<オブジェクト名> OBJECT-TYPE |
対処12
エラーメッセージ
object XXXTable: |
原因
INDEX句が列要素オブジェクトの定義以外でINDEX句が指定されました。
INDEX句は列要素オブジェクトの定義で使用することが許可されます。
[発生例]
XXXTable OBJECT-TYPE |
XXXTable:テーブルオブジェクト
XXXEntry:列要素オブジェクト
上記例では、テーブルオブジェクトXXXTableにINDEX句があるため、以下のコンパイルエラーが発生します。
object XXXTable: |
また、列要素オブジェクトであるXXXEntryオブジェクトには、INDEX句、または、AUGMENTS句を必ず指定してください。
指定しない場合、以下のコンパイルエラーが発生します。
object XXXEntry: |
対処方法
INDEX句は、列要素オブジェクトで定義し、それ以外のオブジェクトではINDEX句を指定しないでください。また、列要素オブジェクトには必ずINDEX句、またはAUGMENTS句を指定します。
[修正例]
XXXXTable OBJECT-TYPE |
対処13
原因
すでにコメントのある行をコメントアウトすると、コンパイルエラーになります。
[例:コメントアウト前]
MAX-ACCESS not-accessible -- Comment1 |
[例:コメントアウト後]
-- MAX-ACCESS not-accessible -- Comment1 |
→コンパイルエラーが発生。
コメントの文法は、“--”で始まり、次の“--”か、行末までの間をコメントとみなします。
[例:コメントアウト後]の場合、“-- MAX-ACCESS not-accessible --”をコメント、“Comment1”を本文とみなしますので、“Comment1”というオブジェクトがないと判断され、コンパイルエラーが発生します。
対処方法
すでにコメントがある場合は、以下のようにコメントを付加してください。
[修正例]
-- MAX-ACCESS not-accessible -- -- Comment1 |
対処14
エラーメッセージ
use "TRAP-DEFINITION" not "TRAP-TYPE" systax error last token read was "{" |
原因
TRAP-TYPEマクロが使用されています。
対処方法
TRAP-TYPEマクロをコメントアウトします。
【例:修正前】
sample TRAP-TYPE |
【例:修正後】 --sample TRAP-TYPE |
対処15
エラーメッセージ
object <オブジェクト名>: |
原因
SEQUENCEの中で使用できない型が指定されました。
対処方法
Systemwalker Centric Manager V13.4.0以前では、SEQUENCEの中で BITSを使用することはできません。
BITSを使用している場合はINTEGERに変更してください。