O serviço M-SET permite modificações de dados na base de informações de gerenciamento. Ele é usado para mudar o valor ou valores de um ou mais atributos em um ou mais objetos gerenciados.
O serviço M-SET pode ser também um serviço de confirmação ou de não confirmação. A tabela 1, parte (c), lista os parâmetros usados no serviço M-SET.
Os seguintes parâmetros no M-SET-request e primitivas de indicação tem o mesmo significado como o parâmetro correspondente no serviço M-GET: identificador invoke, classe base-object, instância base-object, escopo, filtro, controle de acesso e sincronização. O parâmetro mode especifica se o serviço de confirmação ou não confirmação é requisitado. A modificação da lista contém um conjunto de especificações de attribute-modification, cada um dos quais contém:
Se o operador não é especificado, o operador replace é assumido.
Para o serviço de não confirmação, o objetivo do usuário CMIS tentará simplesmente executar a operação do conjunto request e não reportará tampouco sucesso ou falha.
Para o serviço de confirmação, a operação do serviço M-SET segue o mesmo exemplo do serviço M-GET. Como no serviço M-GET, múltiplas respostas para um M-SET.request podem ser geradas, e estas são retornadas numa série de primitivas M-SET.response usando o parâmetro linked-identifier.
O parâmetro de erro é incluído numa notificação de falha. Os seguintes erros podem ser reportados:
Alguns aspectos de semântica do serviço M-SET terminam com a ação da mesma maneira um caminho como para fazer isto uma operação complexa melhor, e também muito cuidado sendo feito no seu uso. Estes aspectos são:
Se alguns dos valores dos atributos não podem ser modificados, o outro valor do atributo especificado no conjunto de operações são modificados para este objeto.
Para ver a interação entre estes três conceitos, deixe-nos assumir que um conjunto request é emitido especificando um número de diferentes atributos num número de objetos. As seguintes estratégias podem ser adotadas:
É instrutivo comparar o serviço M-SET com o conjunto de operações SNMP. Os dois não são exatamente comparáveis por causa de suas diferentes estruturas MIB, mas podemos fazer as seguintes observações.
O conjunto de operação SNMP é atomic: é somente executado se ele pode ser executado sobre todos os objetos especificados no conjunto request. Entretanto, o conjunto SNMP parece comparável ao M-SET com sincronização atomic. Contudo, lembrar que um objeto no SNMP é mais comparável a um atributo no sistema de gerenciamento OSI que para um objeto no sistema de gerenciamento OSI.
A operação M-SET aplicada para um objeto simples não é atomic: o usuário CMIS que estiver respondendo modificará esses atributos dentro do objeto que lhe é permitido e possivel modificar, igualmente se alguns atributos não podem ser modificados. Por outro lado, a operação M-SET aplicada a múltiplos objetos não é atomic dentro de cada objeto selecionado mas pode ser ambos também objetos atomic ou não atomic cruzados, dependendo sobre qual alternativa de sincronização é selecionada.
Além disso, dentro do CMIS, está o conceito de scoping e filtering, o qual habilita objetos a serem incluídos ou excluídos de um conjunto de operações sobre a base de declarações no parâmetro filtering. Se um objeto é selecionado por um parâmetro de escopo mas filtrado pelo parâmetro de filtering, que objeto não faz contagem como insatisfatorio no caso da sincronização atomic. A operação M-SET é consideravelmente mais flexível e poderosa que o conjunto de operações SNMP.