対象バージョンレベル
Systemwalker Centric Manager
Windows版:V5.0L10以降
Solaris版:5.0以降
Linux版:V11.0L10以降
A
エラーメッセージ1
line nnn: syntax error |
識別子には、以下の規約があります。
任意の文字、数字、またはハイフン(-)が使用できます。
始まりの文字は小文字です。
最後の文字に、ハイフン(-)は使用できません。
ハイフン(-)を続けて使用することはできません。
【例】
《誤》SampleObject OBJECT IDENTIFIER ::= { fujitsu 4 } |
型は、以下の規約があります。
任意(1個以上)の文字、数字、およびハイフン(-)が使用できます。
始まりの文字は大文字です。
最後の文字に、ハイフン(-)は使用できません。
ハイフン(-)を続けて使用することはできません。
【例】
《誤》sampleStatsEntry OBJECT-TYPE |
[DEFINITIONS ::= BEGIN ・・・ END]で囲まれた構文が、1つのファイル中に複数存在する場合、複数のファイルに分割し、[DEFINITIONS ::= BEGIN]の前に記述された文字列(MIB定義)をファイル名として保存(MIB定義.my)後、拡張する必要があります。
【例】
《修正前》 |
MIBコンパイラでは、コンパイル対象のMIB拡張ファイルが、SNMPv1形式であるかSNMPv2形式であるかを自動で判断し、それぞれの文法に合わせてコンパイルを行います。
そのため、SNMPv2形式のMIB拡張ファイルであるにも関わらず、SNMPv1形式であるとMIBコンパイラによって判断された場合、コンパイルエラーとなってしまいます。
MIBコンパイラでは、MIB拡張ファイル内のIMPORT句でSNMPv2-SMIがインポートされている場合、そのMIB拡張ファイルはSNMPv2形式であると判断し、そうでない場合はSNMPv1形式であると判断します。
コンパイル対象のMIB拡張ファイルがSNMPv2で記述されている場合、IMPORTS句でSNMPv2-SMIが指定されていることを確認し、指定がなければ追加の上、MIB拡張を再度行う必要があります。
エラーメッセージ2
line 999: MODULE-IDENTITY must be invoked at beginning of module |
SNMPv2形式の拡張MIBファイルの場合、必ず、対象となる拡張MIBファイル内で一番初めに定義されるオブジェクトは、MODULE-IDENTITY句で定義する必要があります。
【例】
<オブジェクト> OBJECT IDENTIFIER ::= { enterprises 10480 } |
エラーメッセージ3
line nnn: unknown token: "_" |
変数名に'_'は使用できません。
変数名から'_'を取り除いてください。
エラーメッセージ4
拡張MIBをコンパイルしています。 |
拡張MIBをコンパイルしています。 |
拡張MIBをコンパイルしています。 |
拡張MIBをコンパイルしています。 |
MIBコンパイラは、V13.0.0以前では、Counter64型およびBITS型を正しく認識することができません。
SNMPv2形式の場合は、バージョンにかかわらずBITSをサポートしていません。
あらかじめ、コンパイル対象となるMIB拡張ファイル内で、「Counter64」を「Counter32」に、「BITS」を「INTEGER」に、それぞれ置換えを行った後でコンパイルを行ってください。
コンパイル対象の拡張MIBファイルで使用しているオブジェクトの参照に失敗した場合、これらのメッセージが出力されます。
エラーメッセージに、"code = -4 detail = 2 line = 134"が含まれている場合は、IMPORTS文で参照先としている拡張MIBファイルが見つからないケースが考えられます。
このときの確認事項は、
IMPORTS文で指定されている拡張MIBファイルがコンパイル済みで、かつ、Systemwalkerインストールディレクトリ¥mpwalker.dm¥mib配下に"拡張MIBファイル名.DEF"というファイルが存在するか
IMPORTS文で指定されている拡張MIBファイルの名前が拡張MIB名と一致しているか(コンパイルするときに、ファイル名を"拡張MIB名.my"にしたか)
エラーメッセージに、"code = -4 detail = 0 line = 613"が含まれている場合は、参照先が明示されていないオブジェクトが参照されているケースが考えられます。
【例】
testB.myの中にtestB OBJECT IDENTIFIER ::= { enterprises testA }というtestBの定義がある場合、事前にtestAが定義されていない場合、"code = -4 detail = 0 line = 613"となります。 |
なお、"Fail to make the MIB file. code = -4 ・・・"のときの、lineの値は、実際のエラー発生行と異なりますので、注意してください。
エラーメッセージ5
object <オブジェクト名>: |
ACCESS句の属性には、次のどれかを指定してください。
"read-only" "read-write" "write-only" "not-accessible" |
上記の説明はSMI-v1形式のときのみの対応です。
SMI-v2形式では、ACCESSというキーワードが使われず、代わりにMAX-ACCESSキーワードが使用されます。
MAX-ACCESS句の属性を設定する場合は、次のどれかを使用してください。
"not-accessible" "accessible-for-notify" "read-only" "read-write" "read-create" |
エラーメッセージ6
object <オブジェクト名>: |
STATUS句の属性には、次のどれかを指定してください。
"mandatory" "optinal" "obsolete" |
上記の説明はSMI-v1形式のときのみの対応です。
SMI-v2形式では、次のどれかを指定してください。
"current" "deprecated" "obsolete" |
エラーメッセージ7
line nnn: use MAX-ACCESS not ACCESS |
SNMPv2形式でオブジェクトを定義する場合のアクセス権限の指定は、ACCESS句の代わりにMAX-ACCESS句を使用してください。
エラーメッセージ8
object <オブジェクト名>: |
SYNTAX句に"INTEGER"を指定する際はとり得るサイズを明示的に指定する必要があります。
【例】
≪誤≫ SYNTAX INTEGER |
エラーメッセージ9
エラーメッセージ1. |
INDEX句は列要素オブジェクトの定義のみで使用されることが許されます。
【例】
XXXXTable OBJECT-TYPE |
この場合、XXXTableはテーブルオブジェクトとなり、XXXEntryが列要素オブジェクトとなります。
上記例ではテーブルオブジェクトXXXTableにINDEX句がありますので、次のコンパイルエラーが発生します。
object XXXTable: |
また、列要素オブジェクトであるXXXEntryオブジェクトにはINDEX句か、もしくは、AUGMENTS句が必ず指定されなければなりません。
そのため、次のコンパイルエラーが発生します。
object XXXEntry: |
対処方法としては、INDEX句は列要素オブジェクトでのみ定義するようにし、それ以外のオブジェクトではINDEX句を指定しないようにします。
また、列要素オブジェクトには必ずINDEX句か、もしくは、AUGMENTS句を指定します。
修正例は以下のようになります。
XXXXTable OBJECT-TYPE |
コメントを追加した行でコンパイルエラーが発生する場合は、以下のポイントを確認してください。
確認ポイント: コメントを追加した行に、すでにコメントがありませんか
すでにコメントのある行にコメントを追加するとコンパイルエラーが発生する場合があります。
次の場合にコメントをつけると、コメント追加後でコンパイルエラーが発生します。
コメント追加前: MAX-ACCESS not-accessible -- Comment1 |
これは、コメントの文法が
--と--で囲まれた範囲をコメントとする
--から行末までをコメントとする
という仕様であるためです。
上記例ですと、行末に"-- Comment1"とすでにコメントがあるため、コメントアウトを行いますと-- MAX-ACCESS not-accessible -- をコメントとみなしComment1 が本文となってしまいますので、"Commnent1"というオブジェクトがないと判断され、コンパイルエラーが発生します。
コメントアウトを行いたい行にすでにコメントがある場合は、以下のようにコメントを付加してください。
修正例1: -- MAX-ACCESS not-accessible -- -- Comment1 |
エラーメッセージ10
定義されたタイプが解決できません |
問題が発生していることが確認された場合は、対処方法に従って対処を行ってください。
[問題]
MIBコンパイラとして、SNMPv1、SNMPv2の2種類のコンパイラを使用しています。
MIB拡張時には、まず、SNMPv2でコンパイルを行い、コンパイルに失敗した場合、SNMP-V1でのコンパイルを行います。
本現象は、SNMPv2 コンパイラでのコンパイルが正常に終了するにも関わらず、正しくコンパイルされていないために発生しています。なお、SNMPv1 コンパイラでのコンパイルは正しくコンパイルされます。
*:ASN.1とは、通信プロトコルなどのデータ構造を抽象的にするための規格です。CCITT(ITU-T) 勧告のX.208で定義されています。
[対処方法]
以下の手順を実施して対処してください。
Systemwalkerインストールディレクトリ¥mpwalker.dm¥mpnetmgr¥bin配下のmosy_v1.exeとmosy.exeのファイルに対して以下の操作をします。
mosy_v1 .exeを任意の名前に変更します。
例:mv mosy_v1.exe → mosy_v1_bak.exe
mosy.ex eをmosy_v1.exeに変更します。
例:mv mosy.exe → mosy_v1.exe
1.で変名した任意の名前をmosy.exeに変更します。
例:mv mosy_v1_bak.exe → mosy.exe
MIB拡張画面よりMIB拡張を実行します。
MIB拡張後は、ファイル名を元に戻してください。