Environment
Novell eDirectory 8.8 for All Platforms
Novell eDirectory 8.7.3 for All Platforms
Situation
When extending schema, whether adding new attributes or new
classes, it is always best to have a properly assigned OID value
for the definition. However, sometimes, there is no OID value
available for the schema definition. Attempting
to extend schema with an SCH file formatted like this
example:
NDSSchemaExtensions DEFINITIONS ::=
BEGIN
{ "testAttribute" ATTRIBUTE ::=
Operation ADD,
SyntaxID SYN_INTEGER,
Flags {DS_SINGLE_VALUED_ATTR, DS_SYNC_IMMEDIATE}
}
"testIdAux" OBJECT-CLASS ::=
{
Operation ADD,
Flags DS_AUXILIARY_CLASS, DS_AMBIGUOUS_CONTAINMENT, DS_AMBIGUOUS_NAMING},
MayContain {"testAttribute"}
}
END
will fail if run from ICE when invoked either from a command line, or from the ICE Wizard in iManager.
NDSSchemaExtensions DEFINITIONS ::=
BEGIN
{ "testAttribute" ATTRIBUTE ::=
Operation ADD,
SyntaxID SYN_INTEGER,
Flags {DS_SINGLE_VALUED_ATTR, DS_SYNC_IMMEDIATE}
}
"testIdAux" OBJECT-CLASS ::=
{
Operation ADD,
Flags DS_AUXILIARY_CLASS, DS_AMBIGUOUS_CONTAINMENT, DS_AMBIGUOUS_NAMING},
MayContain {"testAttribute"}
}
END
will fail if run from ICE when invoked either from a command line, or from the ICE Wizard in iManager.
Resolution
The best resolution for this is to use a proper OID in the schema
file, but if that is not possible, there are a couple of work
arounds. First, if you are running on NetWare, use the
NWConfig nlm to extend the schema using the same file, which will
succeed.
Alternately, if you have iManager 2.7, it will output an error.ldf file from the original failed attempt with the SCH file converted to LDIF. In this LDIF file, change the field "ErRoNeOuS.OiD" to be "ErRoNeOuS-OiD", and save the file with a new name. Re-run ICE, and selecting LDIF file type, and choose the new file you just created with the strange text OID value, and the schema extension will succeed. The new schema definition will be there, but will not have an OID value in the definition.
Alternately, if you have iManager 2.7, it will output an error.ldf file from the original failed attempt with the SCH file converted to LDIF. In this LDIF file, change the field "ErRoNeOuS.OiD" to be "ErRoNeOuS-OiD", and save the file with a new name. Re-run ICE, and selecting LDIF file type, and choose the new file you just created with the strange text OID value, and the schema extension will succeed. The new schema definition will be there, but will not have an OID value in the definition.
Additional Information
This issue has been resolved in the ICE version included with eDirectory 8.8 SP3 and later.
Change Log
4/5/10 - Removed 'reported to engineering' status, since this was fixed and released back in 8.8 SP3 timeframe.