Por qué y cuándo realizar esta tarea
Los conceptos básicos de este script pueden utilizarse para
comunicarse con cualquier MBean del sistema.
Todo lo necesario es el nombre y tipo del
MBean y los métodos y atributos disponibles en el MBean. Para los atributos se
utilizan los mandatos
getAttribute y
setAttribute.
El mandato
invoke se utiliza para los métodos.
Siga estos pasos para crear un script
.Jacl que gestiona
el MBean de seguridad JMX.
Nota: El código de cada paso va precedido de una
sentencia que explica lo que realiza el código.
Pasos para realizar esta tarea
- Determine el nombre_nodo
La primera parte del
script que aparece a continuación determina el nombre_nodo. Si el
nombre_nodo no se especifica correctamente, se imprime la
sintaxis correcta y se sale del script.
# leer y validar argumentos
if {{$argc == 1 } && { [lindex $argv $i] == "-nodeName" } {
set nodeName [lindex $argv $i]
- Identifique el MBean
Un MBean se identifica con
un tipo y un nombre.
Nota: El nombre y el tipo están codificados en este caso, ya que sabe el MBean
específico que desea utilizar.
La segunda parte del
script identifica el MBean.
# se utilizan estas dos variables, mbeanName y mbeanType,
para identificar el mbean de manera exclusiva.
# para este ejemplo, se utilizará el mbean que accede
a los servicios de relaciones.
set mbeanName"RelService"
set mbeanType"WBIRelServices"
- Localice y establezca la referencia en el MBean.
Debe
utilizar el código que aparece aquí para establecer la referencia para el
MBean.
# localizar el mbean y establecer una referencia en 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 llamado
allRelationshipNames.
Solicite este atributo al MBean mediante el mandato
getAttribute.
El valor de atributo será una lista que se recorre en el paso siguiente que
invoca el mandato.
# solicitar la lista de relaciones del mbean
set relationships
[$AdminControl getAttribute $relSvcsMBean allRelationshipNames]
- Invoque el mandato de 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 información adicional. En este ejemplo, el MBean define
un método denominado
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.
# recorrer en bucle la lista de nombres de rol e imprimir nombre
foreach roleName $roles {
puts " Role: $roleName"
}
}
} else {
# argumentos incorrectos, imprimir sintaxis correcto
puts "Usage: wsadmin -f RelServicesAdmin.jacl -nodeName nombre_nodo"
}
Resultado
Ya ha escrito un script para llamar a relaciones.