Por qué y cuándo se efectúa esta tarea
Los conceptos básicos de este script pueden utilizarse para comunicarse con cualquier
MBean del sistema. Sólo es necesario el nombre y el tipo del
MBean así como los métodos y atributos disponibles en el MBean. Los mandatos
getAttribute y
setAttribute se utilizan para los atributos. El mandato
invoke se utiliza para los métodos. Siga estos pasos para crear un script
.Jacl que gestione el
JMX Security MBean.
Nota: En cada paso el código tiene un prefijo con una descripción de lo que realiza dicho código.
Pasos para realizar esta tarea
- Determine el nombre de nodo
La primera parte del script que se muestra a continuación determina el nombre de nodo. Si nodeName no se especifica correctamente, se mostrará la sintaxis correcta y el script finalizará.
# leer y validar argumentos
if {{$argc == 1 } && { [lindex $argv $i] == "-nodeName" } {
set nodeName [lindex $argv $i]
- Identifique el MBean
Un MBean se identifica por un tipo y un nombre.
Nota: En este caso, el nombre y el tipo son permanentes puesto que sabe el MBean específico que desea utilizar.
La segunda parte del script identifica el MBean.
# estas dos variables, mbeanName y mbeanType, se utilizan
para identificar de forma exclusiva el mbean.
# para este ejemplo, el mbean que accede a los servicios
de relaciones se utilizará.
set mbeanName"RelService"
set mbeanType"WBIRelServices"
- Localice y establezca la referencia en el MBean.
Utilice el código que se muestra aquí para establecer la referencia para el MBean.
# localizar el bean y establecer una referencia al mismo en la variable "relSvcsMBean"
set relSvcsMBean [$AdminControl queryNames
name=$mbeanName,node=$nodeName,type=$mbeanType,*]
- Llame a la relación utilizando el mandato getAttribute.
La documentación de este MBean específico define un atributo denominado allRelationshipNames.
Solicite al MBean dicho atributo mediante el mandato getAttribute.
El valor de atributo será una lista por la que se desplazará en el siguiente paso que invoque el mandato.
# solicitar la lista de relaciones del mbean
set relationships
[$AdminControl getAttribute $relSvcsMBean allRelationshipNames]
- Invoque el mandato para cada nombre de relación, imprima el nombre y luego vuelva al MBean para obtener información adicional.
Para cada nombre de relación, imprima el nombre y luego vuelva al
MBean para obtener más información. En este ejemplo, el MBean define un método llamado
getAllRoleNames con un solo parámetro para el nombre de relación específico.
Utilice el mandato
invoke para llamar a este método, pasando el nombre de relación actual.
Para cada rol de la relación, se imprime un nombre de rol.
# repetir en bucle la lista de nombres de roles e imprimir nombre
foreach roleName $roles {
puts " Role: $roleName"
}
}
} else {
# algunos argumentos no eran correctos, imprimir sintaxis correcta
puts "Uso: wsadmin -f RelServicesAdmin.jacl -nodeName nombreNodo"
}
Resultado
Acaba de escribir un script para llamar a relaciones.