1832736 Members
3271 Online
110043 Solutions
New Discussion

mcompile error

 
Joachim Meyer
Occasional Contributor

mcompile error

Hi,

I tried to compile a MIB file but get the following error from mcompile:

Line: 43: Error defining OBJECT IDENTIFIER: invalid registration for SQLSERVERAGENT
Mib compilation failed.

The lines identified by mcompile as incorrect are the following:

SQLSERVERAGENT OBJECT IDENTIFIER
::= { evntagent 14 83 81 76 83 69 82 86 69 82 65 71 69 78 84 }

Apparently, mcompile does not like several OIDs in one line. However, when reading RFC 1902 the syntax above seems to be correct. For instance, in section 4 the RFC lists the following line:

internet OBJECT IDENTIFIER ::= { iso 3 6 1 }

Now I changed the MIB syntax so that every OID gets its own line. The syntax looks like this:

SQLSERVERAGENT1 OBJECT IDENTIFIER ::= { evntagent 14 }
SQLSERVERAGENT2 OBJECT IDENTIFIER ::= { SQLSERVERAGENT1 83 }
SQLSERVERAGENT3 OBJECT IDENTIFIER ::= { SQLSERVERAGENT2 81 }
SQLSERVERAGENT4 OBJECT IDENTIFIER ::= { SQLSERVERAGENT3 76 }
SQLSERVERAGENT5 OBJECT IDENTIFIER ::= { SQLSERVERAGENT4 83 }
SQLSERVERAGENT6 OBJECT IDENTIFIER ::= { SQLSERVERAGENT5 69 }
SQLSERVERAGENT7 OBJECT IDENTIFIER ::= { SQLSERVERAGENT6 82 }
SQLSERVERAGENT8 OBJECT IDENTIFIER ::= { SQLSERVERAGENT7 86 }
SQLSERVERAGENT9 OBJECT IDENTIFIER ::= { SQLSERVERAGENT8 69 }
SQLSERVERAGENT10 OBJECT IDENTIFIER ::= { SQLSERVERAGENT9 82 }
SQLSERVERAGENT11 OBJECT IDENTIFIER ::= { SQLSERVERAGENT10 65 }
SQLSERVERAGENT12 OBJECT IDENTIFIER ::= { SQLSERVERAGENT11 71 }
SQLSERVERAGENT13 OBJECT IDENTIFIER ::= { SQLSERVERAGENT12 69 }
SQLSERVERAGENT14 OBJECT IDENTIFIER ::= { SQLSERVERAGENT13 78 }
SQLSERVERAGENT OBJECT IDENTIFIER ::= { SQLSERVERAGENT14 84 }

By using the syntax compilation with mcompile succeeds.

Now the question is, is mcompile broken or the first syntax I've used incorrect? Also, since I have have to define a lot of lengthy OIDs the second syntax is pretty ugly which I would like to avoid.

Thank you very much.

Regards,
Joachim