Atributo idempotent
El atributo [idempotent] especifica que una operación no modifica la información de estado y devuelve los mismos resultados cada vez que se realiza. Realizar la rutina más de una vez tiene el mismo efecto que hacerlo una vez.
[
interface-attribute-list
]
interface interface-name
{
[idempotent [, attribute-list]] returntype function-name(params)
}
-
interface-attribute-list
-
Especifica una lista de cero o más atributos IDL que se aplican a la interfaz en su conjunto. Cuando hay dos o más atributos de interfaz, deben estar separados por comas.
-
interface-name
-
Especifica el nombre de la interfaz.
-
attribute-list
-
Especifica atributos adicionales que se aplicarán a la función. Separe varios atributos con comas.
-
returntype
-
Especifica el tipo de valor devuelto de la función.
-
function-name
-
Especifica el nombre de la función a la que se aplicará el atributo [idempotent].
-
params
-
Lista de parámetros de función.
RPC admite dos tipos de semántica de llamadas remotas: llamadas a operaciones con el atributo [idempotent] y llamadas a operaciones (operaciones idempotentes ) sin el atributo [idempotent] (operaciones no idempotentes ). Una operación idempotente se puede llevar a cabo más de una vez sin ningún efecto grave. Por el contrario, una operación no idempotente no se puede ejecutar más de una vez porque devolverá resultados diferentes cada vez o porque modifica algún estado.
Para asegurarse de que un procedimiento se vuelve a ejecutar automáticamente si la llamada no se completa, use el atributo [idempotent]. Si los atributos [idempotentes],[broadcast]o [tal vez] no están presentes, el procedimiento usará la semántica no idempotente de forma predeterminada. En este caso, la operación solo se ejecuta una vez.