Предложение INDEX
Предложение INDEX указывает ключ для выбора уникальной строки в скалярной или табличной коллекции. Поставщик SNMP сопоставляется с другим типом класса CIM в зависимости от типа таблицы, используемой устройством SNMP. Так как ключ может быть нескольких типов объектов, поставщик использует различные правила сопоставления в зависимости от типа объекта в ключе. Дополнительные сведения см. в разделе Типы данных предложения INDEX.
Примечание
Дополнительные сведения об установке поставщика см. в разделе Настройка среды SNMP WMI.
Скалярная коллекция сопоставляется с одноэлементным классом CIM, то есть классом, который может иметь только один экземпляр. Так как нет необходимости однозначно идентифицировать один экземпляр из другого, одноэлементный класс не назначает одно или несколько свойств в качестве ключа. Классы, созданные из скалярных коллекций:
- Не содержат квалификаторы свойств Key .
- Содержат стандартный квалификатор класса CIM Singleton, который имеет тип Bool.
Коллекция таблиц сопоставляется с классом CIM, который может иметь несколько экземпляров. В результате определение класса CIM должно содержать по крайней мере одно свойство, определяющее ключ объекта; то есть свойство, однозначно определяющее экземпляр класса . Предложение INDEX макроса OBJECT-TYPE коллекции таблиц указывает набор ключевых свойств коллекции. Применяются следующие правила сопоставления:
Ключ квалификатора CIM типа Bool определяет свойство ключа.
Порядок сведений INDEX в коллекции таблиц определяет порядок ключей в определении класса CIM.
Квалификатор CIM Key_Order определяет порядок ключей. Этот квалификатор представляет собой 32-разрядное целочисленное значение без знака, которое в целях синтаксиса квалификатора MOF должно быть преобразовано в 32-разрядное целочисленное значение со знаком с помощью операции двойного дополнения.
В настоящее время сопоставление предложения SNMPv2C INDEX не обрабатывает использование квалификатора IMPLIED . В этом случае определение класса CIM не создается.
Типы данных предложения INDEX
Из-за гибкости предложения INDEX в макросе OBJECT-TYPE спецификация ключевых свойств не является простой. Вместо этого следует рассмотреть возможность того, что предложение INDEX может содержать один или несколько из следующих типов данных:
Внутренне доступное значение indexobject
Значение indexobject — это именованное значение, которое ссылается на определение объекта MIB, которое отображается в концептуальной строке той же таблицы, содержащей предложение INDEX. Определение объекта MIB, упоминаемое в предложении INDEX, сопоставляется со свойством ключа определения класса CIM.
Значение объекта indexobject , доступного извне
В этом случае indexobject — это именованное значение, которое ссылается на определение объекта MIB, которое отображается в концептуальной строке другой таблицы.
Доступное значение индекса
Значение indextype — это именованный тип, который ссылается на один из следующих типов данных: INTEGER, OCTET STRING, OBJECT IDENTIFIER, NetworkAddress или IpAddress. Если предложение INDEX содержит ссылку типа MIB, применяются следующие правила сопоставления:
- Объект MIB, на который ссылается, сопоставляется со свойством ключа определения класса CIM. Синтаксис его типа основан на указанном значении indextype , которое сопоставляется с квалификаторами свойств CIM с помощью стандартных процедур сопоставления предложений SYNTAX .
- Процесс сопоставления создает уникальное имя свойства путем объединения дескриптора табличного объекта MIB, символа подчеркивания (_) и порядка ранжирования значения indextype предложения INDEX. Например, имя свойства для типа индекса третьего компонента таблицы MIB enterpriseIfTableenterpriseIfTable_3.
- Свойство CIM аннотировано квалификатором Virtual_Key . Этот квалификатор указывает, что поставщик SNMP должен вычислять значение свойства на основе надмножества сведений об экземпляре, связанных со всеми доступными определениями объектов MIB в определении класса.
- Определение класса CIM должно содержать по крайней мере одно свойство, которое не имеет связанного Virtual_Key квалификатора; если не указать это свойство, определение класса является недействительным.
Подтип фиксированной длины
Если предложение INDEX коллекции таблиц SNMP содержит поддерживаемый SNMP тип, который является подтипом строки OCTET фиксированной длины, для указания этого значения необходимо использовать квалификатор свойств CIM Fixed_Length .