ICE fails to extend schema with SCH file if missing OID

  • 3527432
  • 01-Apr-2008
  • 26-Apr-2012

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.

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.

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.