Netcool/Impact: Guía de soluciones

Anuncio
Netcool/Impact
Versión 6.1.1.1
Guía de soluciones
SC43-0010-00
Netcool/Impact
Versión 6.1.1.1
Guía de soluciones
SC43-0010-00
Nota
Antes de utilizar esta información y el producto al que da soporte, lea la información del “Avisos”.
Nota de edición
Esta edición se aplica a la versión 6.1.1.1 de IBM Tivoli Netcool/Impact y a todos los releases y modificaciones
subsiguientes hasta que se indique lo contrario en nuevas ediciones.
© Copyright IBM Corporation 2006, 2014.
Contenido
Guía de soluciones . . . . . . . . . vii
A quién va dirigida . . . . . . . . . . . vii
Publicaciones. . . . . . . . . . . . . . vii
Biblioteca de Netcool/Impact . . . . . . . vii
Acceso a terminología en línea . . . . . . . vii
Acceso a las publicaciones en línea . . . . . viii
Cómo realizar el pedido de publicaciones . . . viii
Accesibilidad . . . . . . . . . . . . . viii
Formación técnica de Tivoli . . . . . . . . . ix
Soporte para la resolución de problemas . . . . . ix
Obtención de arreglos . . . . . . . . . . ix
Recepción semanal de actualizaciones de soporte ix
Cómo ponerse en contacto con el soporte técnico
de software de IBM . . . . . . . . . . . x
Convenios utilizados en esta publicación . . . . xii
Convenios de tipo de letra . . . . . . . . xii
Variables y vías de acceso dependientes del
sistema operativo . . . . . . . . . . . xiii
Capítulo 1. Visión general de las
soluciones . . . . . . . . . . . . . 1
Componentes de una solución . . . .
Modelos de datos. . . . . . . .
Trabajar con servicios . . . . . .
Políticas . . . . . . . . . . .
Tipos de soluciones . . . . . . . .
Solución de enriquecimiento de sucesos
Solución X sucesos en Y tiempo . . .
Solución de notificación de sucesos . .
Solución de pasarela de sucesos . . .
Configuración de una solución . . . .
Creación de un modelo de datos. . .
Configuración de servicios. . . . .
Creación de políticas. . . . . . .
Ejecución de una solución . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
2
2
2
3
3
3
3
4
4
Capítulo 2. Trabajar con modelos de
datos . . . . . . . . . . . . . . . . 5
Componentes del modelo de datos . . .
Orígenes de datos . . . . . . .
Configuración de tipos de datos . . .
Cómo trabajar con elementos de datos .
Utilización de enlaces . . . . . .
Configurar un modelo de datos . . . .
Arquitectura de un modelo de datos . .
Ejemplos de un modelo de datos . . .
Modelo de servicio empresarial . . .
Modelo de web hosting. . . . . .
Utilización de orígenes de datos . . .
Visión general de orígenes de datos .
Categorías de orígenes de datos . .
Arquitectura de un origen de datos .
Configuración de los orígenes de datos
Utilización de tipos de datos . . . .
Visión general de tipos de datos . .
© Copyright IBM Corp. 2006, 2014
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 5
. 5
. 5
. 6
. 6
. 6
. 7
. 7
. 8
. 9
. 10
. 10
. 11
. 12
. 13
. 14
. 14
Categorías de tipos de datos. . . . . . . .
Campos de tipos de datos . . . . . . . .
Claves de tipo de datos . . . . . . . . .
Configuración de tipos de datos . . . . . .
Almacenamiento en memoria caché de tipos de
datos . . . . . . . . . . . . . . .
Utilización de enlaces . . . . . . . . . . .
Visión general de enlaces . . . . . . . . .
Categorías de enlaces . . . . . . . . . .
Enlaces estáticos . . . . . . . . . . . .
Enlaces dinámicos . . . . . . . . . . .
Configuración de enlaces estáticos . . . . . .
Configuración de enlaces dinámicos . . . . .
Utilización de orígenes de datos . . . . . . .
Visión general de los orígenes de sucesos . . .
Orígenes de sucesos del ObjectServer . . . . .
Orígenes de sucesos que no son del ObjectServer
Arquitectura de un origen de sucesos. . . . .
Configuración de orígenes de sucesos
ObjectServer . . . . . . . . . . . . .
14
17
19
19
35
37
37
37
37
37
39
39
40
40
40
41
41
42
Capítulo 3. Trabajar con servicios . . . 43
Visión general de servicios . . . . . . . . .
Servicios predefinidos . . . . . . . . . . .
Servicios definidos por el usuario . . . . . . .
servicio del lector de sucesos de OMNIbus . . . .
Arquitectura del lector de sucesos de OMINbus
Proceso del lector de sucesos de OMNIbus . . .
Configuración del lector de sucesos de OMNIbus
Servicio de escucha de sucesos de base de datos . .
Configuración del servidor de bases de datos . .
Ventana de configuración del servicio de escucha
de sucesos de base de datos . . . . . . . .
Envío de sucesos de base de datos. . . . . .
Utilización de políticas de suceso de base de
datos . . . . . . . . . . . . . . .
servicio de escucha de sucesos de OMNIbus . . .
Configurar el servicio de escucha de sucesos de
OMNIbus . . . . . . . . . . . . . .
Cómo comprobar los registros de servicio del
escucha de sucesos de OMNIbus . . . . . .
Creación de desencadenantes . . . . . . .
Utilización de la función ReturnEvent . . . .
Suscripción a canales individuales . . . . . .
Cómo controlar qué sucesos se envían de
OMNIbus a Netcool/Impact mediante Spid . .
Utilización de otros servicios . . . . . . . .
Servicio activador de políticas . . . . . . .
Servicio del registrador de políticas . . . . .
Servicio de activador de políticas en hibernación
Servicio del gestor de ejecución de mandatos . .
Servicio del gestor de línea de mandatos . . .
43
43
44
44
45
45
46
53
53
57
58
71
73
74
74
74
76
76
77
78
78
78
81
81
82
iii
Capítulo 4. Trabajar con políticas . . . 83
Comprensión de los componentes del lenguaje de
políticas . . . . . . . . . . . . . .
Registro de política . . . . . . . . . . .
Contexto de política . . . . . . . . . .
Ámbito de política . . . . . . . . . . .
Impresión en el registro de política . . . . .
Variables definidas por el usuario . . . . . .
Matriz . . . . . . . . . . . . . . .
Contexto . . . . . . . . . . . . . .
Sentencias If . . . . . . . . . . . . .
Sentencias While . . . . . . . . . . .
Funciones definidas por el usuario . . . . .
Planificación de políticas . . . . . . . . .
Ejecución de políticas utilizando el activador de
política . . . . . . . . . . . . . .
Ejecución de políticas utilizando planificaciones
.
.
.
.
.
.
.
.
.
.
.
.
83
83
83
83
84
84
85
88
89
90
92
94
. 94
94
Capítulo 5. Gestión de sucesos . . . . 99
Visión general de sucesos. . . . . . . . . . 99
Contenedores de sucesos . . . . . . . . . . 99
Variable EventContainer . . . . . . . . . . 99
Variables de campos de suceso . . . . . . . . 99
Variables de estado de suceso . . . . . . . . 100
Variables de contenedor de sucesos definidas por el
usuario . . . . . . . . . . . . . . . 100
Acceso a los campos de sucesos . . . . . . . 100
Utilización de la notación por puntos . . . . 100
Utilización de la notación @ . . . . . . . 100
Actualización de los campos de sucesos . . . . 100
Adición de entradas de diario a los sucesos . . . 101
Asignación de la variable JournalEntry . . . . 101
Envío de sucesos nuevos . . . . . . . . . 102
Supresión de sucesos . . . . . . . . . . . 103
Ejemplos de supresión de un suceso entrante
del origen de sucesos. . . . . . . . . . 103
Capítulo 6. Gestión de datos . . . . . 105
Cómo trabajar con elementos de datos . . . . .
Variables de campos . . . . . . . . . .
Variables DataItem y DataItems . . . . . .
Recuperación de datos por filtro . . . . . . .
Cómo trabajar con filtros . . . . . . . .
Recuperación de datos por filtro en una política
Recuperación de datos por clave . . . . . . .
Claves . . . . . . . . . . . . . . .
Expresiones de clave . . . . . . . . . .
Recuperación de datos por clave en una política
Recuperación de datos por enlace . . . . . .
Visión general de enlaces . . . . . . . .
Recuperación de datos por enlace en una
política . . . . . . . . . . . . . .
Adición de datos . . . . . . . . . . . .
Ejemplo de adición de un elemento de datos a
un tipo de datos . . . . . . . . . . .
Actualización de datos . . . . . . . . . .
Ejemplo de actualización de elementos de datos
individuales . . . . . . . . . . . . .
Ejemplo de actualización de varios elementos de
datos . . . . . . . . . . . . . . .
iv
Netcool/Impact: Guía de soluciones
105
105
105
105
106
109
111
111
111
112
113
113
113
115
115
116
116
117
Supresión de datos . . . . . . . . .
Ejemplo de supresión de elementos de datos
individuales . . . . . . . . . . .
Ejemplo de supresión de elementos de datos
filtro . . . . . . . . . . . . .
Ejemplo de supresión de elementos de datos
elemento . . . . . . . . . . . .
Cómo llamar a funciones de base de datos .
.
. 117
. .
por
. .
por
. .
. .
118
118
118
119
Capítulo 7. Gestión de las
hibernaciones . . . . . . . . . . . 121
Visión general de las hibernaciones . . . . . .
Hibernación de una política . . . . . . . .
Ejemplos de hibernación de una política . . .
Recuperación de hibernaciones . . . . . . .
Recuperación de hibernaciones por búsqueda de
clave de acción . . . . . . . . . . . .
Recuperación de hibernaciones por filtro . . .
Activación de una hibernación . . . . . . .
Recuperación de la hibernación . . . . . .
Llamada a ActivateHibernation . . . . . .
Ejemplo . . . . . . . . . . . . . .
Eliminación de hibernaciones . . . . . . . .
121
121
122
122
122
123
123
124
124
124
124
Capítulo 8. Envío de correo
electrónico . . . . . . . . . . . . 125
Visión general de envío de correo electrónico.
Enviando un correo electrónico . . . . .
.
.
. 125
. 125
Capítulo 9. Configuración de
mensajería instantánea . . . . . . . 127
Mensajería instantánea de Netcool/Impact . .
Componentes de mensajería instantánea de
Netcool/Impact . . . . . . . . . . .
Proceso de la mensajería instantánea de
Netcool/Impact . . . . . . . . . . .
Escucha de mensajes . . . . . . . . .
Envío de mensajes. . . . . . . . . .
Configuración de la mensajería instantánea de
Netcool/Impact . . . . . . . . . . .
Utilización de políticas de mensajería instantánea
Gestión de mensajes entrantes . . . . . .
Envío de mensajes. . . . . . . . . .
Ejemplo . . . . . . . . . . . . .
. 127
. 127
. 127
. 127
. 128
. 128
128
. 128
. 128
. 129
Capítulo 10. Ejecución de mandatos
externos . . . . . . . . . . . . . 131
Visión general de la ejecución de mandatos
externos . . . . . . . . . . . . . .
Gestión del servidor JRExec . . . . . . .
Visión general del servidor JRExec . . . .
Inicio del servidor JRExec . . . . . . .
Detención del servidor JRExec . . . . . .
Propiedades de configuración del servidor
JRExec. . . . . . . . . . . . . .
Registro cronológico del servidor JRExec . .
Ejecutar de mandatos con el servidor JRExec
Utilización de CommandResponse . . . . .
.
.
.
.
.
131
131
131
131
132
. 132
. 133
133
. 133
Capítulo 11. Gestión de series y
matrices . . . . . . . . . . . . . 135
Gestión de series . . . . . . . . . . . .
Concatenación de series . . . . . . . . .
Búsqueda de la longitud de una serie . . . .
División de una serie en subseries . . . . .
Extracción de una subserie de otra serie . . .
Sustitución de una subserie en una serie . . .
Eliminación de una subserie de una serie . . .
Eliminación de los espacios en blanco iniciales y
finales de una serie . . . . . . . . . .
Modificación de las mayúsculas/minúsculas de
una serie . . . . . . . . . . . . . .
Cifrado y descifrado de series . . . . . . .
Gestión de matrices . . . . . . . . . . .
Búsqueda de la longitud de una matriz. . . .
Búsqueda de valores distintivos en una matriz
135
135
135
136
136
137
137
137
138
138
139
139
139
Capítulo 12. Guía de aprendizaje de
enriquecimiento de sucesos . . . . . 141
Visión general de tutorial . . . . . . . .
Comprensión de la instalación de Netcool/Impact
Comprensión de los datos empresariales . . .
Análisis del flujo de trabajo . . . . . . .
Creación del proyecto . . . . . . . . .
Configuración del modelo de datos . . . . .
Creación del origen de sucesos . . . . .
Creación de los orígenes de datos . . . .
Creación de los tipos de datos . . . . . .
Creación de un enlace dinámico . . . . .
Revisión del modelo de datos . . . . . .
Configuración de servicios . . . . . . . .
Creación del lector de sucesos . . . . . .
Revisión de los servicios. . . . . . . .
Escritura de la política . . . . . . . . .
Búsqueda de información de dispositivo . .
Búsqueda de departamentos de la empresa .
Incremento de la gravedad de una alerta . .
Revisión de la política . . . . . . . .
Ejecución de la solución . . . . . . . . .
. 141
141
. 142
. 142
. 143
. 143
. 144
. 144
. 145
. 146
. 147
. 147
. 147
. 148
. 148
. 148
. 149
. 150
. 151
. 151
Capítulo 13. Configurar la política de
Impact PasstoTBSM . . . . . . . . 153
Visión general . . . . . . . . . . . . .
Configuración . . . . . . . . . . . . .
Exportación e importación del proyecto
ForImpactMigration . . . . . . . . . . .
Creación de una política. . . . . . . . . .
Creación de un servicio activador de políticas . .
Crear una plantilla y regla nueva para reunir datos
sobre el clima . . . . . . . . . . . . .
Crear la regla CityHumidity para la plantilla
CityWeather . . . . . . . . . . . . . .
Crear un servicio city. . . . . . . . . . .
Personalizar un portlet del árbol de servicios . . .
Añadir un portlet de servicios personalizados a
una página de forma libre . . . . . . . . .
153
153
154
154
156
157
158
160
160
162
Capítulo 14. Utilización de
Netcool/Impact Proveedor de datos de
interfaz de usuario . . . . . . . . . 165
Iniciación a Proveedor de datos de interfaz de
usuario . . . . . . . . . . . . . . .
Componentes de Proveedor de datos de interfaz
de usuario . . . . . . . . . . . . .
Configuración de la autenticación de usuario
Tipos de datos y Proveedor de datos de interfaz
de usuario . . . . . . . . . . . . .
Integración de widgets de gráfica y Proveedor
de datos de interfaz de usuario . . . . . .
Nombres reservados para Proveedor de datos
de interfaz de usuario . . . . . . . . .
Pasos generales para integrar Proveedor de
datos de interfaz de usuario y la consola . . .
Acceso a datos desde políticas de Netcool/Impact
Configuración de parámetros de usuario . . .
Acceso a variables de objeto de Netcool/Impact
en una política . . . . . . . . . . . .
Acceso a tipos de datos generados por la
función GetByFilter . . . . . . . . . .
Acceso a tipos de datos mediante la función
DirectSQL . . . . . . . . . . . . .
Acceso a una matriz de objetos de Impact con
Proveedor de datos de interfaz de usuario . .
Proveedor de datos de interfaz de usuario e IBM
Dashboard Application Services Hub . . . . .
Filtrado de datos en la consola . . . . . .
Integración del widget de árbol con un objeto
de Impact o una matriz de objetos de Impact. .
Integración de datos de una política con el
widget de topología . . . . . . . . . .
Visualización del estado y el porcentaje en un
widget . . . . . . . . . . . . . .
Visualización de datos del proveedor de datos de
interfaz de usuario en la consola . . . . . . .
Descripción general del escenario de ejemplo
Visualización de datos de los paneles de
instrumentos de autoservicio de Netcool/Impact .
Instalación de widgets de paneles de
instrumentos de autoservicio de Netcool/Impact
Edición de un widget Formulario de entrada
Edición de un widget Botón . . . . . . .
Temas de referencia . . . . . . . . . . .
Soporte de modelos de datos grandes para
Proveedor de datos de interfaz de usuario . .
Personalización de Proveedor de datos de
interfaz de usuario . . . . . . . . . .
Acceso a Netcool/Impact Proveedor de datos de
interfaz de usuario . . . . . . . . . .
Acceso a orígenes de datos desde un Proveedor
de datos de interfaz de usuario . . . . . .
Acceso a conjuntos de datos desde un
Proveedor de datos de interfaz de usuario . .
Problemas conocidos con JavaScript y Proveedor
de datos de interfaz de usuario . . . . . .
Ejecución de políticas y acceso a parámetros de
salida . . . . . . . . . . . . . . .
221
Contenido
v
165
166
168
168
169
169
170
173
173
174
175
176
178
180
180
181
184
186
189
189
209
209
211
212
214
214
217
218
219
219
220
URL de Proveedor de datos de interfaz de
usuario . . . . . . . . . . . .
.
Configure la política MWM_Properties . . .
Configurar las propiedades del servicio
MWMActivator. . . . . . . . . . .
Inicio de sesión en Maintenance Window
Management . . . . . . . . . . .
Acerca de las ventanas de mantenimiento de
MWM . . . . . . . . . . . . . .
. 221
Capítulo 15. Utilización de OSLC para
Netcool/Impact . . . . . . . . . . . 223
Introducción a OSLC . . . . . . . . . . .
Recursos e identificadores OSLC . . . . . .
Roles de OSLC . . . . . . . . . . . .
Utilización de tipos de datos y OSLC . . . . .
Acceso a tipos de datos de Netcool/Impact
como recursos OSLC . . . . . . . . . .
Recuperación de recursos OSLC que representan
elementos de datos de Netcool/Impact . . . .
Visualización de resultados para identificador
de clave exclusiva . . . . . . . . . . .
Formas de recursos OSLC para tipos de datos
Configuración de URI personalizados para tipos
de datos y parámetros de salida de usuario . .
Utilización del proveedor de servicios OSLC . . .
Creación de proveedores de servicios OSLC en
Netcool/Impact . . . . . . . . . . .
Registro de proveedores de servicios OSLC en
Netcool/Impact . . . . . . . . . . .
Registro de recursos OSLC . . . . . . . .
Utilización de políticas de Netcool/Impact y OSLC
Acceso a parámetros de usuario de salida como
recursos OSLC . . . . . . . . . . . .
Configuración de URI personalizados para
variables y resultados de política . . . . . .
Cómo pasar valores de argumentos a una
política . . . . . . . . . . . . . .
Configuración de vistas previas contextuales para
recursos OSLC . . . . . . . . . . . . .
Propiedades de vista previa contextual para
recursos OSLC . . . . . . . . . . . .
Escenario de ejemplo: utilización de OSLC con
políticas de Netcool/Impact . . . . . . . .
Temas de consulta de OSLC . . . . . . . .
URL de OSLC . . . . . . . . . . . .
Paginación de OSLC . . . . . . . . . .
Seguridad de OSLC . . . . . . . . . .
Soporte de la sintaxis de consulta de OSLC . .
Funciones de RDF . . . . . . . . . . .
224
225
225
226
226
228
229
229
232
234
234
236
238
247
247
258
259
260
262
263
265
265
265
266
267
273
Capítulo 16. Notificación de objetivo
de nivel de servicio (SLO) . . . . . . 289
Instalación y habilitación del paquete Notificación
de SLO . . . . . . . . . . . . . .
Definición de definiciones de servicios . . . .
Calendarios laborales . . . . . . . . .
Registro de métricas de SLA . . . . . .
Pasos de ejemplo de política de métrica . . .
Utilización de la política de ejemplo
getDataFromTBSMAvailability. . . . . . .
Informes . . . . . . . . . . . . . .
.
.
.
.
.
289
291
293
294
297
. 298
. 298
Capítulo 17. Configuración de
Maintenance Window Management . . 299
Activación de MWM en un clúster de
Netcool/Impact . . . . . . . .
vi
Netcool/Impact: Guía de soluciones
.
.
.
. 299
. 300
. 301
. 301
. 301
Capítulo 18. Configuración de la
correlación y el aislamiento de
sucesos. . . . . . . . . . . . . . 305
Visión general . . . . . . . . . . . . .
Instalación de Netcool/Impact y la base de datos
DB2 . . . . . . . . . . . . . . . .
Instalación del kit de herramientas de la biblioteca
de descubrimiento. . . . . . . . . . . .
Políticas de Aislamiento y correlación de sucesos
Vistas de operador de Aislamiento y correlación de
sucesos . . . . . . . . . . . . . . .
Configurar orígenes de datos de Aislamiento y
correlación de sucesos . . . . . . . . . .
Configurar tipos de datos de Aislamiento y
correlación de sucesos . . . . . . . . . .
Crear, editar y suprimir reglas de suceso . . . .
Crear una regla de suceso . . . . . . . .
Configurar WebGUI para añadir un punto de
lanzamiento nuevo . . . . . . . . . . .
Lanzar la página de análisis de Aislamiento y
correlación de sucesos . . . . . . . . . .
Visualizar el análisis de sucesos . . . . . . .
305
306
306
307
307
308
308
309
309
311
311
312
Apéndice. Accesibilidad . . . . . . . 313
Glosario
A
B
C
D
E
F
G
I.
J.
L
M
O
P
R
S
T
V
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . . 315
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
315
315
316
316
316
317
318
318
318
318
319
319
320
320
320
321
321
Índice. . . . . . . . . . . . . . . 323
Guía de soluciones
La publicación Guía de soluciones contiene completa información sobre la utilización
de las características de Netcool/Impact.
A quién va dirigida
Esta publicación se dirige a los usuarios responsables de crear modelos de datos de
Netcool/Impact, escribir políticas de Netcool/Impact y ejecutar servicios de
Netcool/Impact.
Publicaciones
En esta sección se listan las publicaciones de la biblioteca de Netcool/Impact y los
documentos relacionados. En la sección se describe también cómo acceder a las
publicaciones de Tivoli en línea y cómo solicitar publicaciones de Tivoli.
Biblioteca de Netcool/Impact
v Guía de inicio rápido, CF39PML
Proporciona breve información para instalar y ejecutar Netcool/Impact por
primera vez.
v Guía de administración, SC43001400(SC14755900)
Proporciona información sobre la instalación, ejecución y supervisión del
producto.
v Guía de la interfaz de usuario, SC43000900(SC27485100)
Proporciona instrucciones para utilizar la interfaz gráfica de usuario (GUI).
v Guía de consulta de políticas, SC43000800(SC14756100)
Contiene una completa descripción e información de consulta del lenguaje de
política de Impact (IPL).
v Guía de consulta de DSA, SC43001500(SC27485200)
Proporciona información sobre los adaptadores de orígenes de datos (DSA).
v Guía de vistas de operador, SC43001600(SC27485300)
Proporciona información sobre la creación de vistas de operador.
v Guía de soluciones, SC43001000(SC14756000)
Proporciona completa información sobre la utilización de las características de
Netcool/Impact.
v Guía de integraciones, SC43001200(SC27485400)
Contiene instrucciones para la integración de Netcool/Impact con otro software
de IBM® y de otros proveedores.
v Guía de resolución de problemas, GC43001100(SC27485500)
Proporciona información sobre la resolución de problemas de la instalación,
personalización, inicio y mantenimiento de Netcool/Impact.
Acceso a terminología en línea
El sitio web de terminología de IBM unifica la terminología de las bibliotecas de
productos de IBM en una única y cómo ubicación. Puede acceder al sitio web de
terminología en la siguiente dirección web:
© Copyright IBM Corp. 2006, 2014
vii
http://www.ibm.com/software/globalization/terminology
Acceso a las publicaciones en línea
Hay publicaciones disponibles en las ubicaciones siguientes:
v El DVD Inicio rápido contiene la Guía de inicio rápido. Consulte el archivo léame
del DVD para ver instrucciones acerca de cómo acceder a la documentación.
v Sitio web de Tivoli Information Center en http://publib.boulder.ibm.com/
infocenter/tivihelp/v8r1/topic/com.ibm.netcoolimpact.doc6.1.1/welcome.html.
IBM publica las publicaciones para todos los productos Tivoli, cuando pasan a
estar disponibles y siempre que se actualizan en el sitio web de Tivoli
Information Center.
Nota: Si imprime los documentos PDF en un papel que no sea de tamaño
Letter, establezca la opción de la ventana Archivo → Imprimir que permite a
Adobe Reader imprimir páginas con tamaño Letter en su papel local.
v Tivoli Documentation Central en http://www.ibm.com/tivoli/documentation.
Puede acceder a publicaciones de las versiones anteriores y actuales de
Netcool/Impact desde Tivoli Documentation Central.
v La wiki de Netcool/Impact contiene más documentos breves, y hay información
adicional en https://www.ibm.com/developerworks/mydeveloperworks/wikis/
home?lang=en#/wiki/Tivoli%20Netcool%20Impact.
Cómo realizar el pedido de publicaciones
Puede realizar el pedido de muchas publicaciones de Tivoli en línea en
http://www.elink.ibmlink.ibm.com/publications/servlet/pbi.wss.
También puede realizar el pedido telefónicamente llamando a uno de estos
números:
v En los Estados Unidos: 800-879-2755
v En Canadá: 800-426-4968
En otros países, póngase en contacto con el representante de cuentas de software
de IBM para solicitar publicaciones de Tivoli. Para localizar el número de teléfono
de su representante local, realice los pasos siguientes:
1. Vaya a http://www.elink.ibmlink.ibm.com/publications/servlet/pbi.wss.
2. Seleccione el país en la lista y pulse Go.
3. Pulse About this site en el panel principal para ver una página de información
que incluye el número de teléfono de su representante local.
Accesibilidad
Las características de accesibilidad ayudan a los usuarios con discapacidades
físicas, como por ejemplo movilidad restringida o visión limitada, a utilizar
satisfactoriamente los productos de software. Con este producto, puede utilizar
tecnologías de asistencia para oír y navegar por la interfaz. También puede utilizar
el teclado en lugar del ratón para utilizar todas las características de la interfaz
gráfica de usuario.
Para obtener información adicional, consulte “Accesibilidad”, en la página 313.
viii
Netcool/Impact: Guía de soluciones
Formación técnica de Tivoli
Para obtener información sobre la formación técnica de Tivoli, consulte el siguiente
sitio web sobre formación de IBM Tivoli en http://www.ibm.com/software/tivoli/
education.
Soporte para la resolución de problemas
Si tiene un problema con el software de IBM, deseará resolverlo rápidamente. En
esta sección se describen las opciones siguientes para obtener soporte para los
productos de software de IBM:
v “Obtención de arreglos”
v “Recepción semanal de actualizaciones de soporte”
v “Cómo ponerse en contacto con el soporte técnico de software de IBM” en la
página x
Obtención de arreglos
Es posible que haya un arreglo del producto disponible para solucionar el
problema. Para determinar los arreglos que están disponibles para el producto de
software Tivoli, siga estos pasos:
1. Vaya al sitio web de soporte técnico de IBM en http://www.ibm.com/
software/support.
2. Vaya hasta la página Descargas.
3. Siga las instrucciones para ubicar el arreglo que desea descargar.
4. Si no hay ninguna cabecera Download para el producto, proporcione un
término de búsqueda, código de error o número de informe autorizado de
análisis de programa en el campo de búsqueda.
Para obtener más información sobre los tipos de arreglos disponibles, consulte la
publicación IBM Software Support Handbook en http://www14.software.ibm.com/
webapp/set2/sas/f/handbook/home.html.
Recepción semanal de actualizaciones de soporte
Para recibir semanalmente notificaciones de correo electrónico sobre arreglos y
otras noticias de soporte de software, siga estos pasos:
1. Vaya al sitio web de soporte técnico de IBM en http://www.ibm.com/
software/support.
2. Pulse el botón My IBM de la barra de herramientas. Pulse My technical
support.
3. Si ya se ha registrado en My technical support, inicie sesión y salte al paso
siguiente. Si no se ha registrado, pulse register now. Complete el formulario
de registro utilizando la dirección de correo electrónico como su ID de IBM y
pulse Submit.
4. Se visualizará el separador Edit profile.
5. En la primera lista, en Products, seleccione Software. En la segunda lista,
seleccione una categoría de productos (por ejemplo, Systems and Asset
Management). En la tercera lista, seleccione una subcategoría de productos
(por ejemplo, Application Performance & Availability o Systems
Performance). Se visualizará una lista de productos aplicables.
6. Seleccione los productos para los que desea recibir actualizaciones.
7. Pulse Add products.
Guía de soluciones
ix
8. Después de seleccionar todos los productos que le interesen, pulse Subscribe
to email en el separador Edit profile.
9. En la lista Documents, seleccione Software.
10. Seleccione Please send these documents by weekly email.
11. Actualice la dirección de correo electrónico según sea necesario.
12. Seleccione los tipos de documentos que desea recibir.
13. Pulse Update.
Si experimenta problemas con la característica My technical support, puede
obtener ayuda de una de las maneras siguientes:
En línea
Envíe un mensaje de correo electrónico a erchelp@u.ibm.com, describiendo
el problema.
Mediante teléfono
Llame al 1-800-IBM-4You (1-800-426-4409).
World Wide Registration Help desk
Para obtener información de soporte en todo el mundo, compruebe los
detalles del enlace siguiente: https://www.ibm.com/account/profile/
us?page=reghelpdesk
Cómo ponerse en contacto con el soporte técnico de software
de IBM
Antes de ponerse en contacto con el soporte técnico de software de IBM, la
empresa debe tener un contrato de mantenimiento de software de IBM activo y el
usuario debe estar autorizado a enviar problemas a IBM. El tipo de contrato de
mantenimiento de software que necesite dependerá del tipo de producto que
tenga:
v Para productos de software distribuido de IBM (incluidos, pero sin limitarse a,
productos Tivoli, Lotus y Rational, y productos DB2 y WebSphere que se
ejecuten en los sistemas operativos Windows o UNIX), regístrese en Passport
Advantage de una de las maneras siguientes:
En línea
Vaya al sitio web de Passport Advantage en http://www-306.ibm.com/
software/howtobuy/passportadvantage/pao_customers.htm.
Mediante teléfono
Para obtener el número de teléfono para llamar en su país, vaya al sitio
web de IBM Worldwide IBM Registration Helpdesk en
https://www.ibm.com/account/profile/us?page=reghelpdesk.
v Para clientes con contratos de suscripción y soporte (S & S), vaya al sitio web de
solicitud de servicio de software en https://techsupport.services.ibm.com/ssr/
login.
v Para clientes con IBMLink, CATIA, Linux, OS/390, iSeries, pSeries, zSeries, y
otros contratos de soporte, vaya al sitio Web de línea de soporte técnico de IBM
en http://www.ibm.com/services/us/index.wss/so/its/a1000030/dt006.
v Para los productos de software IBM eServer (que incluyen, pero no se limitan a,
los productos DB2 y WebSphere que se ejecutan en entornos zSeries, pSeries y
iSeries), puede adquirir un acuerdo de mantenimiento de software trabajando
directamente con un representante de ventas de IBM o un IBM Business Partner.
Para obtener más información sobre el soporte para los productos de software
x
Netcool/Impact: Guía de soluciones
eServer, vaya al sitio web de IBM Technical Support Advantage en
http://www.ibm.com/servers/eserver/techsupport.html.
Si no está seguro del tipo de contrato de mantenimiento de software que necesita,
llame a 1-800-IBMSERV (1-800-426-7378) en los Estados Unidos. Para otros países,
vaya a la página de contactos de la publicación IBM Software Support Handbook en
la Web en http://www14.software.ibm.com/webapp/set2/sas/f/handbook/
home.html y pulse el nombre de su región geográfica para ver los números de
teléfono de las personas que proporcionan soporte técnico en su ubicación.
Para ponerse en contacto con el soporte técnico de software de IBM, siga estos
pasos:
1. “Determinación del impacto empresarial”
2. “Descripción de problemas y recopilación de información”
3. “Envío de problemas” en la página xii
Determinación del impacto empresarial
Cuando notifique un problema a IBM, se le solicitará que proporcione un nivel de
gravedad. Utilice los criterios siguientes para comprender y evaluar el impacto
empresarial del problema que está notificando:
Gravedad 1
El problema tiene un impacto empresarial crítico. No puede utilizar el
programa, lo que produce un impacto crítico en las operaciones. Esta
condición requiere una solución inmediata.
Gravedad 2
El problema tiene un impacto empresarial considerable. El programa se
puede utilizar, pero está gravemente limitado.
Gravedad 3
El problema tiene cierto impacto empresarial. El programa se puede
utilizar, pero las características menos importantes (que no son críticas para
las operaciones) no están disponibles.
Gravedad 4
El problema tiene un impacto empresarial mínimo. El problema no tiene
gran impacto sobre las operaciones, o se ha implementado una solución
alternativa al problema.
Descripción de problemas y recopilación de información
Cuando describa un problema a IBM, sea lo más específico posible. Incluya toda la
información previa relevante de forma que los especialistas de soporte técnico de
software de IBM puedan ayudarle a solucionar el problema eficazmente. Para
ahorrar tiempo, conozca las respuestas a estas preguntas:
v ¿Qué versiones de software estaba ejecutando cuando se produjo el problema?
v ¿Tiene registros, rastreos y mensajes relacionados con los síntomas del problema?
Es probable que el soporte técnico de software de IBM le solicite esta
información.
v ¿Puede recrear el problema? Si es así, ¿qué pasos se han realizado para recrear el
problema?
v ¿Ha realizado cambios en el sistema? Por ejemplo, ¿ha realizado cambios en el
hardware, sistema operativo, software de red, etc.?
v ¿Utiliza actualmente un método alternativo para el problema? Si es así, esté
preparado para explicar el método alternativo al notificar el problema.
Guía de soluciones
xi
Envío de problemas
Puede enviar el problema al soporte técnico de software de IBM de una de estas
dos maneras:
En línea
Pulse Submit and track problems en el sitio del Soporte de IBM en
http://www.ibm.com/software/support/probsub.html. Especifique la
información en el formulario de envío de problemas adecuado.
Mediante teléfono
Para ver el número de teléfono al que llamar en su país, vaya a la página
de contactos del manual IBM Software Support Handbook
enhttp://www14.software.ibm.com/webapp/set2/sas/f/handbook/
home.html y pulse el nombre de su región geográfica.
Si el problema que envía corresponde a un defecto de software o a documentación
inexacta o que falta, el soporte técnico de software de IBM crea un informe
autorizado de análisis de programa (APAR). El APAR describe detalladamente el
problema. Siempre que es posible, el soporte técnico de software de IBM
proporciona un método alternativo que se puede implementar hasta que se
resuelva el APAR y se proporcione un arreglo. IBM publica diariamente los APAR
resueltos en el sitio web de soporte de software, de forma que otros usuarios que
experimenten el mismo problema puedan beneficiarse de la misma resolución.
Convenios utilizados en esta publicación
Esta publicación utiliza diversos convenios para términos y acciones especiales,
mandatos y vías de acceso dependientes del sistema operativo y gráficos de
margen.
Convenios de tipo de letra
En esta publicación se utilizan los siguientes convenios de tipo de letra:
Negrita
v Mandatos en minúsculas y los mandatos en mayúsculas y minúsculas
que son de otra forma difíciles de distinguir del texto circundante.
v Controles de interfaz (recuadros de selección, pulsadores, botones de
selección, selectores cíclicos, campos, carpetas, iconos, recuadros de lista,
elementos de recuadros de lista, listas de varias columnas, contenedores,
selecciones de menú, nombres de menú, separadores, hojas de
propiedades), etiquetas (por ejemplo, Sugerencia: y Consideraciones del
sistema operativo:)
v Palabras clave y parámetros en texto
Cursiva
v Citas (ejemplos: títulos de publicaciones, disquetes y CD
v Palabras definidas en texto (por ejemplo: una línea no conmutada se
denomina una línea punto a punto)
v Énfasis de palabras y letras (palabras como palabras, por ejemplo:
"Utilizar la palabra que para introducir una cláusula restrictiva."; letras
como letras, por ejemplo: "La dirección LUN debe empezar por la letra
L.")
v Nuevos términos en texto (excepción de una lista de definiciones): una
vista es un marco de un espacio de trabajo que contiene datos.
xii
Netcool/Impact: Guía de soluciones
v Variables y valores que debe proporcionar: ... donde mi_nombre
representa....
Monoespaciado
v Ejemplos y ejemplos de código
v Nombres de archivo, palabras clave de programación y otros elementos
difíciles de distinguir del texto circundante
v Texto de mensajes y solicitudes dirigidas al usuario
v Texto que el usuario debe especificar
v Valores de argumentos u opciones de mandato
Variables y vías de acceso dependientes del sistema
operativo
En esta publicación se utiliza el convenio de UNIX para especificar variables de
entorno y para la notación de directorios.
Cuando utilice la línea de mandatos de Windows, sustituya $variable por %
variable% para las variables de entorno y sustituya cada barra inclinada (/) por una
barra inclinada invertida (\) en las vías de acceso de directorio. Los nombres de las
variables de entorno no son siempre los mismos en los entornos Windows y UNIX.
Por ejemplo, %TEMP% en entornos Windows es equivalente a $TMPDIR en
entornos UNIX.
Nota: Si utiliza el shell bash en un sistema Windows, puede utilizar los convenios
de UNIX.
Guía de soluciones
xiii
xiv
Netcool/Impact: Guía de soluciones
Capítulo 1. Visión general de las soluciones
Una solución es una implementación de Netcool/Impact que proporciona un tipo
específico de funcionalidad de gestión de sucesos.
Esta sección contiene información sobre cómo crear orígenes de datos, tipos de
datos, servicios y políticas para configurar la gestión de sucesos. También contiene
completa información sobre las siguientes características de Netcool/Impact:
v Enriquecimiento de sucesos
v Netcool/Impact que utiliza la función PassToTBSM para mostrar datos en TBSM
recopilados de una política de Netcool/Impact.
v Netcool/Impact como Proveedor de datos de interfaz de usuario .
v Visualización de datos de Proveedor de datos de interfaz de usuario en IBM
Dashboard Application Services Hub en Jazz for Service Management.
v Visualización de datos de los paneles de instrumentos de autoservicio de
Netcool/Impact en IBM Dashboard Application Services Hub en Jazz for Service
Management.
v Utilización de OSLC e Netcool/Impact.
v Configuración de Notificación de objetivo de nivel de servicio (SLO).
v Configuración de Aislamiento y correlación de sucesos.
v Configuración de Maintenance Window Management.
v Notificación de SLO.
Componentes de una solución
Los componentes de una solución son un modelo de datos, servicios y políticas.
La mayoría de soluciones utilizan una combinación de estos tres componentes.
Modelos de datos
Un modelo de datos es un modelo del negocio y de los metadatos utilizados en
una solución Netcool/Impact.
Un modelo de datos consta de orígenes de datos, tipos de datos, elementos de
datos, enlaces y orígenes de sucesos.
Trabajar con servicios
Los servicios son componentes ejecutables del Servidor Impact que puede iniciar y
detener desde la GUI y la CLI.
Políticas
Una política es un conjunto de operaciones que desea que realice Netcool/Impact.
Estas operaciones se especifican utilizando uno de los siguientes lenguajes de
programación, JavaScript o un lenguaje denominado lenguaje de políticas de
Netcool/Impact o IPL.
© Copyright IBM Corp. 2006, 2014
1
Tipos de soluciones
Netcool/Impact permite implementar una amplia gama de tipos de soluciones.
Algunos tipos comunes son enriquecimiento de sucesos, X sucesos en Y tiempo,
notificación de sucesos y pasarelas de sucesos.
Solución de enriquecimiento de sucesos
El enriquecimiento de suceso es el proceso mediante el cual Netcool/Impact
supervisa los sucesos nuevos de un origen de sucesos, busca información
relacionada con ellos en un origen de sucesos externo y luego les añade la
información.
Una solución de enriquecimiento de sucesos consta de los componentes siguientes:
v Un modelo de datos que representa los datos que desea agregar a los sucesos
v Un servicio de lector de sucesos de OMNIbus que supervisa el origen de sucesos
v Una o más políticas de enriquecimiento de sucesos que buscan información
relacionada con los sucesos y les agrega la información
Para ver una solución de enriquecimiento de sucesos de ejemplo, consulte el
Capítulo 12, “Guía de aprendizaje de enriquecimiento de sucesos”, en la página
141.
Solución X sucesos en Y tiempo
X sucesos en Y tiempo es el proceso en el que Netcool/Impact supervisa un origen
de sucesos para localizar los grupos de sucesos que se producen conjuntamente y
realiza la acción adecuada en función de la información de sucesos.
Una solución X sucesos en Y tiempo consta de los componentes siguientes:
v Un modelo de datos que contiene los tipos de datos internos utilizados para
almacenar metadatos para la solución
v Un servicio de lector de sucesos de OMNIbus que supervisa el origen de sucesos
v El servicio de activador de políticas en hibernación, que activa las políticas en
hibernación a intervalos planificados
v Una o más políticas que comprueban el origen de sucesos para ver si se produce
un grupo especificado de sucesos y a continuación realiza la acción adecuada
Para obtener información sobre cómo eliminar los archivos desasociados que
resultan de la política XinY, consulte la Guía de resolución de problemas.
Solución de notificación de sucesos
La notificación de suceso es el proceso mediante el cual Netcool/Impact supervisa
los sucesos nuevos de un origen de sucesos y luego informa a un administrador o
a los usuarios cuando se produce un suceso o una combinación de sucesos
determinada.
La notificación de sucesos a menudo forma parte de una automatización de gestión
de sucesos más complicada que incluye aspectos de funcionalidad de
Netcool/Impact.
Una solución de notificación de sucesos tiene los componentes siguientes:
v Un servicio de lector de sucesos que supervisa el origen de sucesos
2
Netcool/Impact: Guía de soluciones
v Un servicio de remitente de correo electrónico que envía correo electrónico a los
administradores o usuarios o al servidor JRExec utilizado para iniciar un
programa de notificación externo
v Una o más políticas que realizan la notificación de sucesos
Solución de pasarela de sucesos
Una pasarela de sucesos es una implementación de Netcool/Impact en la que
envía información de sucesos del ObjectServer a una aplicación de terceros para su
proceso.
Una solución de pasarela de sucesos tiene los componentes siguientes
v Un modelo de datos que incluye un origen de datos y un tipo de datos que
representa la aplicación de terceros
v Un servicio de lector de sucesos de OMNIbus que supervisa el origen de sucesos
v Una o más políticas que envían información de sucesos a la aplicación de
terceros
Configuración de una solución
Para configurar una solución de Netcool/Impact, debe crear un modelo de datos,
configurar servicios y crear políticas.
Para obtener más información, consulte “Configuración de una solución”.
Creación de un modelo de datos
Aunque es posible diseñar una solución que no requiere un modelo de datos, casi
todos los usos de Netcool/Impact requieren la capacidad de gestionar datos
internos o externos de alguna clase.
Para crear un modelo de datos, cree un origen de datos para cada origen del
mundo real de datos que desee utilizar.A continuación, debe crear un tipo de datos
para cada elemento estructural (por ejemplo, una tabla de base de datos) que
contenga los datos que desea utilizar.
De forma opcional, puede crear enlaces dinámicos entre tipos de datos o enlaces
estáticos entre elementos de datos que faciliten atravesar los datos
programáticamente desde una política.
Configuración de servicios
Distintos tipos de soluciones requieren distintos conjuntos de servicios, pero la
mayoría de soluciones requieren un lector de sucesos de OMNIbus.
Las soluciones que utilizan hibernación también requieren el activador de políticas
en hibernación. Las soluciones que reciben o envían correo electrónico requieren un
servicio de lector de correo electrónico y de remitente de correo electrónico.
La primera categoría de servicios corresponde a servicios incorporados como el
procesador de sucesos y el gestor de servicios de línea de mandatos. Puede tener
solo una instancia de este tipo de servicio en Netcool/Impact. La segunda
categoría corresponde a servicios como el lector de sucesos o el activador de
política. Puede crear y configurar varias instancias de este tipo de servicio.
Capítulo 1. Visión general de las soluciones
3
Creación de políticas
Las políticas que crea en Servidor GUI contienen un editor de políticas, un
comprobador de sintaxis y otras herramientas que necesita para escribir, ejecutar,
probar y depurar las políticas.
Para obtener más información, consulte el Capítulo 4, “Trabajar con políticas”, en la
página 83.
Ejecución de una solución
Para iniciar una solución, debe iniciar cada uno de los componentes del servicio.
Inicie los componentes en el orden siguiente:
v Activador de políticas en hibernación, remitente de correo electrónico y gestor
de ejecución de mandatos.
v Procesador de sucesos
v Lector de sucesos, escucha de sucesos, lector de correo electrónico o activador de
política
Puede configurar los servicios para que se ejecuten automáticamente durante el
inicio, o bien puede iniciarlos manualmente utilizando la GUI y CLI de Tivoli
Integrated Portal. De manera predeterminada, los servicios que se ejecutan
automáticamente durante el inicio se ejecutan en el orden correcto.Si todos los
demás servicios ya están en ejecución, al iniciarse servicios como el procesador de
sucesos que desencadena políticas se inicia realmente la solución.
Para detener una solución, debe detener los servicios, como el procesador de
sucesos, que desencadenen las políticas.
4
Netcool/Impact: Guía de soluciones
Capítulo 2. Trabajar con modelos de datos
Un modelo de datos se configura una vez, al diseñar por primera vez la solución
de Netcool/Impact.
Una vez hecho esto, no necesitará gestionar activamente el modelo de datos a
menos que cambie el diseño de la solución. Puede ver, crear, editar y suprimir los
componentes de un modelo de datos en Servidor GUI.
Componentes del modelo de datos
Un modelo de datos está formado por componentes que representan orígenes del
mundo real de datos y los datos reales que contienen.
Orígenes de datos
Los orígenes de datos son elementos del modelo de datos que representan
orígenes de datos del mundo real en su entorno.
Tipos de datos
Los tipos de datos son elementos de un modelo de datos que representan
conjuntos de datos almacenados en un origen de datos.
Elementos de datos
Los elementos de datos son elementos del modelo de datos que representa
unidades reales de datos almacenadas en un origen de datos.
Enlaces
Los enlaces son elementos del modelo de datos que definen relaciones
entre tipos de datos y elementos de datos.
Orígenes de sucesos
Los orígenes de sucesos son tipos especiales de orígenes de datos. Cada
origen de suceso representa una aplicación que almacena y gestiona
sucesos.
Orígenes de datos
Los orígenes de datos son elementos del modelo de datos que representan orígenes
de datos del mundo real en su entorno.
Estos orígenes de datos incluyen bases de datos SQL de terceros, servidores de
directorios LDAP u otras aplicaciones como, por ejemplo, sistemas de mensajería y
aplicaciones de inventario de red.
Los orígenes de datos contienen la información que necesita para conectar con los
datos externos. Cree un origen de datos para cada origen físico de datos que desee
utilizar en su solución Netcool/Impact. Cuando crea un tipo de datos de
Mediador, LDAP o base de datos SQL, lo asocia con el origen de datos que ha
creado. Todos los tipos de datos asociados se listarán bajo el origen de datos en el
panel de tareas Orígenes de datos y tipos.
Configuración de tipos de datos
Los tipos de datos son elementos de un modelo de datos que representan
conjuntos de datos almacenados en un origen de datos.
© Copyright IBM Corp. 2006, 2014
5
La estructura de los tipos de datos depende de la categoría de origen de datos en
la que se almacenen. Por ejemplo, si el origen de datos es una base de datos SQL,
cada tipo de datos corresponde a una tabla de base de datos. Si el origen de datos
es un servidor LDAP, cada tipo de datos corresponde a un tipo de nodo de la
jerarquía de LDAP.
Cómo trabajar con elementos de datos
Los elementos de datos son elementos del modelo de datos que representa
unidades reales de datos almacenadas en un origen de datos.
La estructura de esta unidad de datos depende de la categoría del origen de datos
asociada. Por ejemplo, si el origen de datos es un tipo de datos de la base de datos
SQL, cada elemento de datos corresponde a una fila de una tabla de la base de
datos. Si el origen de datos es un servidor LDAP, cada elemento de datos
corresponde a un nodo de la jerarquía de LDAP.
Utilización de enlaces
Los enlaces son elementos del modelo de datos que definen relaciones entre tipos
de datos y elementos de datos.
Los enlaces estáticos definen relaciones entre los elementos de datos, y los enlaces
dinámicos definen relaciones entre los tipos de datos. Los enlaces son un
componente opcional del modelo de datos de Netcool/Impact.
Configurar un modelo de datos
Para configurar un modelo de datos, en primer lugar debe determinar los datos
que necesita utilizar en la solución y dónde se almacenan estos datos. A
continuación, debe crear un origen de datos para cada origen de datos del mundo
real y crear un tipo de datos para cada elemento estructural que contenga los datos
que necesite.
Procedimiento
1. Crear orígenes de datos
Identifique los datos que desea utilizar y dónde se almacenan. A continuación,
cree un origen de datos para cada origen de datos real. Por ejemplo, si los
datos se almacenan en una base de datos MySQL y en un servidor LDAP, debe
crear un origen de datos MySQL y uno LDAP.
2. Crear tipos de datos
Después de configurar los orígenes de datos, debe crear los tipos de datos
necesarios. Debe crear un tipo de datos para cada tabla de base de datos (u
otro elemento de datos, dependiendo del origen de datos) que contenga datos
que desea utilizar. Por ejemplo, si los datos se almacenan en dos tablas de una
base de datos Oracle, debe crear un tipo de datos para cada tabla.
3. Opcional: Crear elementos de datos
Para la mayoría de tipos de datos, la mejor práctica es crear elementos de datos
utilizando las herramientas nativas proporcionadas por el origen de datos. Por
ejemplo, si el origen de datos es una base de datos Oracle, puede añadir los
datos necesarios a la base de datos mediante las herramientas nativas de
Oracle. Si el origen de datos es el repositorio de datos internos, debe crear
elementos de datos mediante la GUI.
4. Opcional: Crear enlaces
6
Netcool/Impact: Guía de soluciones
Después de crear los tipos de datos, puede definir relaciones de enlace entre
ellos mediante enlaces dinámicos. También puede definir relaciones de enlace
entre datos internos mediante enlaces estáticos. Esto hace más sencillo atravesar
los datos programáticamente desde dentro de una política. El uso de enlaces es
opcional.
5. Crear orígenes de sucesos
La mayoría de sucesos de proceso se recuperan de un ObjectServer de
Netcool/OMNIbus. El ObjectServer se representa en el modelo de datos como
un origen de sucesos.
Arquitectura de un modelo de datos
Este diagrama muestra la relación entre orígenes de datos, tipos de datos y
elementos de datos en una solución de Netcool/Impact.
Figura 1. Arquitectura de un modelo de datos
Ejemplos de un modelo de datos
Los ejemplos que se proporcionan aquí son, muy probablemente, versiones en
escala reducida de modelos de datos que es posible que necesite implementar en el
mundo real.
Están diseñados para darle una idea de cómo funcionan conjuntamente todas las
diversas partes de un modelo de datos, más que para proporcionar una muestra
realista de cada uno de los tipos de datos a los que puede acceder con
Netcool/Impact.
Capítulo 2. Trabajar con modelos de datos
7
Si no está seguro de la definición de los conceptos principales mencionados en
estos ejemplos, como por ejemplo los orígenes de datos o los tipos de datos, puede
ir a los cuatro capítulos siguientes de esta publicación, que proporcionan
información detallada sobre los diversos componentes del modelo de datos.
Cuando haya entendido mejor estos conceptos, puede volver a esta sección.
Modelo de servicio empresarial
El modelo de servicio empresarial es un modelo de datos diseñado para utilizar en
un entorno de servicio empresarial.
El entorno de servicio empresarial es uno de los escenarios de gestión de red más
habituales de la suite de productos de Netcool. Mientras que el modelo de datos
que se describe en esta sección es relativamente simple, los entornos empresariales
del mundo real pueden con frecuencia rivalizar en complejidad con entornos
pequeños de telecomunicaciones o de proveedores de servicio de Internet.
El objetivo del modelo de datos de este ejemplo es proporcionar la manera de
acceder a un conjunto de datos empresariales que se han recopilado y almacenado
anteriormente en una base de datos externa. Los datos empresariales contienen
información sobre los usuarios, departamentos, ubicaciones y servidores de la
empresa. Si está diseñando una completa solución de para este entorno, debe
conectarse a este modelo de datos desde las políticas cada vez que necesite acceder
a estos datos.
El entorno de servicio empresarial de este ejemplo consta de 125 usuarios en cinco
departamentos empresariales, divididos en tres ubicaciones. Cada usuario del
entorno tiene un sistema de escritorio y lo utiliza para conectarse al servidor de
archivos y a un servidor de correo electrónico.
La solución propuesta para gestionar este entorno está diseñada para supervisar el
tiempo de actividad de los servidores de archivos y de los servidores de correo
electrónico. Cuando un servidor de archivos deja de estar activo, se notifica al
administrador de servicio mediante un correo electrónico con un mensaje de
solicitud de servicio. También describe qué unidades empresariales reciben servicio
del servidor de archivos y envía un correo electrónico a cada usuario de la unidad
con un mensaje de interrupción de servicio. Cuando un servicio de correo
electrónico deja de estar activo, se notifica al administrador de servicio mediante
un dispositivo buscapersonas.
Todos los datos que utiliza esta solución se almacenan en una base de datos
MySQL. Esta base de datos consta de seis tablas, denominadas USER, ADMIN, DEPT,
LOC, FILESERVER y EMAILSERVER.
Elementos de modelo de servicio empresarial
El modelo de servicio empresarial consta de orígenes de datos, tipos de datos,
elementos de datos, enlaces y orígenes de sucesos.
Orígenes de datos
Debido a que es necesario que todos los datos se almacenen en una única
base de datos MySQL, este modelo de datos sólo requiere un origen de
datos. Para este ejemplo, el origen de datos se denomina MYSQL_01.
Tipos de datos
Cada tabla de la base de datos MYSQL se representa mediante un único
tipo de datos de base de datos SQL. Para este ejemplo, los tipos de datos
8
Netcool/Impact: Guía de soluciones
se denominan User, Admin, Department, Location, Fileserver y
Emailserver. En este caso, los nombres de los tipos de datos son los
mismos que los nombres de tabla.
Elementos de datos
Debido a que los datos se almacenan en una base de datos SQL, los
elementos de datos del modelo son filas de las tablas de base de datos
correspondientes.
Enlaces
La relación entre los tipos de datos de este modelo de datos se puede
describir como un conjunto de los enlaces dinámicos siguientes:
v User -> Department
v User -> Location
v Location -> Emailserver
v
v
v
v
Department -> Fileserver
Emailserver -> Location.
Fileserver -> Departments
Administrator -> Location
Orígenes de sucesos
Este modelo de datos tiene un único origen de datos, que representa el
ObjectServer de Netcool/OMNIbus que almacena sucesos relacionados con
actividad del entorno.
Modelo de web hosting
El modelo de alojamiento web es un modelo de datos diseñado para su utilización
en un entorno de web hosting.
El entorno de web hosting es otro escenario de gestión de red habitual de la suite
de productos de Netcool. La gestión de un entorno de web hosting presenta
algunos retos exclusivos. Esto se debe a que requiere que se asegure de que los
servicios estén activos, como por ejemplo la disponibilidad de los sitios web de los
clientes, que constan de grupos de dispositivos de hardware y software
interrelacionados, además de asegurarse de que los propios dispositivos estén en
funcionamiento. Como con los otros ejemplos de este capítulo, el entorno de
hosting de servicios web que se describe aquí es una muestra en escala reducida
de lo que podría encontrar en el mundo real.
El objetivo del modelo de datos de este ejemplo es proporcionar la manera de
acceder a un conjunto de datos de gestión de servicios e inventario de dispositivos
que genera y actualiza en tiempo real un conjunto de aplicaciones de terceros.
Estos datos contienen información sobre el hardware de servidor ubicado en
bastidores en el recurso de hosting y diversos otros datos que describen cómo se
instalan y configuran en el hardware instancias de software de servidor HTTP y de
correo electrónico. Como en el ejemplo anterior, las políticas desarrolladas para
utilizar con esta información se conectarían a este modelo de datos cada vez que
necesitaran acceder a estos datos.
El modelo de hosting de servicios web de este ejemplo consta de 10 clústeres de
servidores HTTP y de tres clústeres de servidores de correo electrónico, repartidos
en 20 máquinas. Cada clúster HTTP y cada clúster de correo electrónico consta de
un servidor primario y de un servidor de copia de seguridad. Este entorno da
servicio a 15 clientes cuyo uso se distribuye entre uno o más clústeres dependiendo
de su acuerdo de servicio.
Capítulo 2. Trabajar con modelos de datos
9
La solución que gestiona este entorno está diseñada para supervisar el tiempo de
actividad de los servicios HTTP y de correo electrónico. Cuando se produce un
problema con uno de estos servicios, ésta determina la identidad del clúster que
causa el problema y el hardware donde están instaladas las instancias de servidor
del componente. A continuación, modifica los datos originales de la alerta en
Netcool/OMNIbus para que reflejen esta información. Esta solución determina
también el cliente que está asociado con la anomalía de servicio y establece la
prioridad de la alerta para que refleje el acuerdo de servicio del cliente.
Los datos de este modelo se almacenan en dos bases de datos Oracle distintas. La
primera base de datos tiene cinco tablas denominadas Node, HTTPInstance,
HTTPCluster, EmailInstance y EmailCluster. La segunda base de datos es una base
de datos de servicios al cliente que tiene, entre otras tablas, una denominada
Customer.
Elementos de modelo de web hosting
El modelo de web hosting consta de orígenes de datos, tipos de datos, elementos
de datos y enlaces.
Orígenes de datos
Debido a que este modelo tiene dos orígenes de datos en el mundo real,
requiere dos orígenes de datos. Para este ejemplo, estos orígenes se
denominan ORACLE_01 y ORACLE_02.
Tipos de datos
Cada tabla de la base de datos MySQL se representa mediante un único
tipo de datos de base de datos SQL. Para este ejemplo, los tipos de datos
se denominan Node, HTTPInstance, HTTPCluster, EmailInstance,
EmailCluster y Customer.
Elementos de datos
Debido a que los datos se almacenan en una base de datos SQL, los
elementos de datos del modelo son filas de las tablas de base de datos
correspondientes.
Enlaces
La relación entre los tipos de datos de este modelo de datos se puede
describir como un conjunto de los enlaces dinámicos siguientes:
v HTTPServer -> Node
v EmailServer -> Node
v HTTPServer -> HTTPCluster
v EmailServer -> EmailCluster
v Customer -> HTTPCluster
v Customer -> HTTPServer
Utilización de orígenes de datos
Un origen de datos es un elemento del modelo de datos que representa un origen
de datos del mundo real en su entorno.
Visión general de orígenes de datos
Los orígenes de datos proporcionan una capa abstracta entre Netcool/Impact y los
orígenes de datos reales.
10
Netcool/Impact: Guía de soluciones
Internamente, los orígenes de datos proporcionan información de conexión y de
otro tipo que Netcool/Impact utiliza para acceder a los datos. Al crear un modelo
de datos, debe crear un origen de datos para cada origen de datos real al que
desea acceder en una política.
El repositorio de datos interno de Netcool/Impact también puede utilizarse como
origen de datos.
Categorías de orígenes de datos
Netcool/Impact da soporte a cuatro categorías de orígenes de datos.
Orígenes de datos de base de datos SQL
Un origen de datos de base de datos SQL representa una base de datos
relacional u otro origen de datos al que pueda accederse mediante un DSA
de bases de datos SQL.
Orígenes de datos LDAP
El origen de datos Lightweight Directory Access Protocol (LDAP)
representa los servidores de directorios LDAP.
Orígenes de datos de mediador
Los orígenes de datos de mediador representan aplicaciones de terceros
que están integradas en Netcool/Impact mediante el Mediador de DSA.
Orígenes de datos JMS
Un origen de datos Java™ Message Service (JMS) resume la información
necesaria para conectarse a una implementación JMS.
Orígenes de datos de base de datos SQL
Un origen de datos de base de datos SQL representa una base de datos relacional u
otro origen de datos al que pueda accederse mediante un DSA de bases de datos
SQL.
Se da soporte a una amplia variedad de bases de datos relacionales comerciales,
como por ejemplo Oracle, Sybase y Microsoft SQL Server. Además, también se da
soporta a bases de datos gratuitas como por ejemplo MySQL y PostgreSQL. El
ObjectServer de Netcool/OMNIbus también está soportado como origen de datos
SQL.
Las propiedades de configuración del origen de datos especifican información de
conexión para el origen de datos subyacente. Algunos ejemplos de orígenes de
datos de base de datos SQL son:
v Una base de datos DB2
v Una base de datos MySQL
v Una aplicación que suministra una interfaz ODBC genérica
v Un archivo de texto delimitado por caracteres
Puede crear orígenes de datos de base de datos SQL mediante la GUI. Debe crear
un origen de datos de este tipo para cada base de datos a la que desee acceder.Al
crear un origen de datos de base de datos SQL, debe especificar propiedades tales
como el nombre de host y el puerto donde se ejecuta el servidor de bases de datos
y el nombre de la base de datos. Para el DSA de archivo plano y otros DSA de
bases de datos SQL que no se conectan a un servidor de bases de datos, debe
especificar propiedades de configuración adicionales.
Tenga en cuenta que los orígenes de datos de base de datos SQL están asociados
con bases de datos en lugar de servidores de bases de datos. Por ejemplo, un
Capítulo 2. Trabajar con modelos de datos
11
servidor de bases de datos Oracle puede alojar una o una docena de bases de
datos individuales. Cada origen de datos de base de datos SQL puede asociarse
con una base de datos, y sólo con una.
Orígenes de datos LDAP
El origen de datos Lightweight Directory Access Protocol (LDAP) representa los
servidores de directorios LDAP.
Netcool/Impact da soporte a los servidores OpenLDAP y Microsoft Active
Directory.
Puede crear orígenes de datos LDAP en Servidor GUI. Debe crear un origen de
datos para cada servidor LDAP al que desee acceder. Las propiedades de
configuración para el origen de datos especifican información de conexión para el
servidor LDAP, así como cualquier información de seguridad o autenticación
necesaria.
Orígenes de datos de mediador
Los orígenes de datos de mediador representan aplicaciones de terceros que están
integradas en Netcool/Impact mediante el Mediador de DSA.
Estos orígenes de datos incluyen una amplia variedad de software de inventario de
red, suministro de red y sistemas de mensajería. Además, también pueden
utilizarse proveedores de datos XML y SNMP como orígenes de datos de
mediador.
Generalmente los orígenes de datos de DSA de mediador y sus tipos de datos se
instalan cuando instala un DSA de mediador. Los orígenes de datos están
disponibles para visualizarlos y, si es necesario, para crearlos o editarlos.
Atención: para obtener una lista completa de los orígenes de datos soportados,
consulte al gestor de la cuenta IBM.
Repositorio de datos interno
El repositorio de datos interno es un origen de datos incorporado de
Netcool/Impact.
La responsabilidad principal del repositorio de datos interno es almacenar datos
del sistema.
Restricción: Debe utilizar tipos de datos internos sólo para fines de pruebas y de
demostración de Netcool/Impact, o para tareas de poca carga.
Origen de datos JMS
Un origen de datos Java Message Service (JMS) resume la información necesaria
para conectarse a una implementación JMS.
Este origen de datos lo utiliza el servicio JMSMessageListener, las funciones
SendJMSMessage y ReceiveJMSMessage.
Arquitectura de un origen de datos
En este diagrama se muestra la relación entre Netcool/Impact, orígenes de datos y
el origen de datos del mundo real en el entorno.
12
Netcool/Impact: Guía de soluciones
Figura 2. Arquitectura de un origen de datos
Configuración de los orígenes de datos
Al crear un modelo de datos de Netcool/Impact, debe configurar un origen de
datos para cada origen de datos del mundo real del entorno.
Puede configurar los orígenes de datos utilizando la GUI de Tivoli Integrated
Portal. Para configurar un origen de datos, debe obtener la información de
conexión para el origen de datos y a continuación utilizar la interfaz gráfica de
usuario para crear y configurar el origen de datos.
Obtención de la información de conexión
Antes de crear un origen de sucesos, debe obtener la información de conexión para
la aplicación subyacente.
La información de conexión que necesita varía en función del tipo de origen de
sucesos. Para la mayoría de orígenes de datos de base de datos SQL, esta
información es el nombre de host y el puerto donde se ejecuta la aplicación, y un
nombre de usuario y contraseña válidos. Para los orígenes de datos de mediador y
LDAP, consulte la publicación Guía de consulta de DSA para obtener la información
de conexión necesaria.
Cuando tenga la información de conexión para la aplicación subyacente, puede
crear el origen de datos mediante la interfaz gráfica de usuario de Tivoli Integrated
Portal.
Capítulo 2. Trabajar con modelos de datos
13
Crear orígenes de datos
Utilice este procedimiento para crear un origen de datos definido por el usuario.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Desde las listas Clúster y Proyecto, seleccione el clúster y el proyecto que desee
utilizar.
3. En el separador Modelo de datos, pulse el icono Origen de datos nuevo de la
barra de herramientas. Seleccione una plantilla para el origen de datos que
desea crear. Se abrirá el separador correspondiente al origen de datos.
4. Complete la información necesaria y pulse Guardar para crear el origen de
datos.
Utilización de tipos de datos
Los tipos de datos son un elemento del modelo de datos que representa unidades
reales de datos almacenadas en un origen de datos.
Visión general de tipos de datos
Los tipos de datos describen el contenido y la estructura de los datos de la tabla de
orígenes de datos y resumen esta información, de modo que se pueda acceder a la
misma durante la ejecución de una política.
Los tipos de datos proporcionan una capa abstracta entre Netcool/Impact y el
conjunto de datos asociado de un origen de datos. Los tipos de datos se utilizan
para localizar los datos que se desea utilizar en una política. Para cada tabla u otra
estructura de datos del origen de datos que contenga información que desee
utilizar en una política, debe crear un tipo de datos. Para poder utilizar un origen
de datos en las políticas, debe crear los tipos de datos para el mismo.
Atención: Algunos tipos de datos de sistema no se visualizan en la GUI. Puede
gestionar estos tipos de datos utilizando la interfaz de línea de mandatos (CLI).
La estructura de los datos almacenados en un origen de datos depende de la
categoría del origen de datos donde están almacenados. Por ejemplo, si el origen
de datos es una base de datos SQL, cada tipo de datos corresponde a una tabla de
base de datos. Si el origen de datos es un servidor LDAP, cada tipo de datos
corresponde a un tipo de nodo de la jerarquía de LDAP.
Una definición de tipo de datos contiene la información siguiente:
v El nombre de la tabla subyacente u otro elemento estructural del origen de datos
v Una lista de campos que representan columnas de la tabla subyacente u otro
elemento estructural (por ejemplo, un tipo de atributo de un nodo LDAP)
v Valores que definen el modo en que Netcool/Impact almacena en memoria
caché los datos del tipo de datos.
Categorías de tipos de datos
Netcool/Impact da soporte a cuatro categorías de tipos de datos.
14
Netcool/Impact: Guía de soluciones
Tipos de datos de base de datos SQL
Los tipos de datos de base de datos SQL representan datos almacenados en
una tabla de base de datos.
Tipos de datos LDAP
Los tipos de datos LDAP representan datos almacenados en un
determinado nivel de contexto base de una jerarquía de LDAP.
Tipos de datos de mediador
Los tipos de datos de mediador representan datos gestionados por
aplicaciones de terceros, como por ejemplo un gestor de inventario de red
o un servicio de mensajería.
Tipos de datos internos
Utilice los tipos de datos almacenados para modelar los datos que no
existen o que no se pueden crear fácilmente en las bases de datos externas.
Tipos de datos de base de datos SQL
Los tipos de datos de base de datos SQL representan datos almacenados en una
tabla de base de datos.
Cada elemento de datos en un tipo de datos de base de datos SQL corresponde a
una fila de la tabla. Cada campo del elemento de datos corresponde a una
columna. Un tipo de datos de la base de datos SQL puede incluir todas las
columnas de una tabla o sólo un subconjunto de las columnas.
Tipos de datos LDAP
Los tipos de datos LDAP representan datos almacenados en un determinado nivel
de contexto base de una jerarquía de LDAP.
Cada elemento de datos en un tipo de datos LDAP corresponde a un nodo LDAP
que existe en ese nivel, y cada campo corresponde a un atributo LDAP. Los tipos
de datos LDAP son de sólo lectura, lo cual significa que no se puede añadir,
actualizar o suprimir elementos de datos en un tipo de datos LDAP.
Tipos de datos de mediador
Los tipos de datos de mediador representan datos gestionados por aplicaciones de
terceros, como por ejemplo un gestor de inventario de red o un servicio de
mensajería.
Normalmente, los tipos de datos de mediador no representan datos almacenados
en tablas de bases de datos. Más bien, representan conjuntos de datos almacenados
y proporcionados por el origen de datos en otros diversos formatos. Por ejemplo,
conjuntos de objetos de datos o como mensajes.
Estos tipos de datos suelen crearse utilizando scripts u otras herramientas
proporcionadas por el DSA correspondiente. Para obtener más información sobre
los tipos de datos de mediador utilizados con un DSA concreto, consulte la
publicación Guía de consulta de DSA.
Tipos de datos internos
Utilice los tipos de datos almacenados para modelar los datos que no existen o que
no se pueden crear fácilmente en las bases de datos externas.
Esto incluye los datos de trabajo que utilizan las políticas, que pueden contener
copias de datos externos o valores de datos intermedios. Estos datos se almacenan
directamente en un repositorio de datos y puede utilizarlos como un origen de
datos. Para crear y acceder a estos datos puede definir tipos de datos internos.
Capítulo 2. Trabajar con modelos de datos
15
Netcool/Impact proporciona las categorías siguientes de tipos de datos internos:
Tipos de datos del sistema
Los tipos de datos del sistema se utilizan para almacenar y gestionar datos
que utiliza internamente Netcool/Impact.
Tipos de datos internos predefinidos
Los tipos de datos predefinidos son tipos de datos especiales que se
almacenan en el repositorio global.
Tipos de datos internos definidos por el usuario
Los tipos de datos internos que se crean son tipos de datos internos
definidos por el usuario.
Restricción: Utilice tipos de datos internos sólo para realizar prototipos y
demostraciones de Netcool/Impact.
Tipos de datos del sistema:
Los tipos de datos del sistema se utilizan para almacenar y gestionar datos que
utiliza internamente Netcool/Impact..
Estos tipos incluyen Política, Servicio e Hibernación. En la mayoría de los casos,
no se accede directamente a los datos de estos tipos de datos. Sin embargo, en
algunas ocasiones puede utilizarlos en una política. Por ejemplo, cuando inicia una
política desde otra política o trabaja con políticas en hibernación.
Tipos de datos internos predefinidos:
Los tipos de datos predefinidos son tipos de datos especiales que se almacenan en
el repositorio global.
Se proporcionan los tipos de datos internos predefinidos siguientes:
v Schedule
v TimeRangeGroup
v Document
Puede utilizar los tipos de datos Schedule y TimeRangeGroup para gestionar la
planificación de Netcool/Impact. Puede utilizar el tipo de datos Document para
almacenar información sobre los URL ubicados en la intranet.
Los tipos de datos predefinidos son tipos de datos especiales que se almacenan en
Netcool/Impact. Los tipos de datos predefinidos no editables son:
v TimeRangeGroup
v LinkType
v Hibernation
Los tipos de datos predefinidos siguientes pueden editarse para añadir campos
nuevos:
v Schedule
v Document
v FailedEvent
v ITNM
16
Netcool/Impact: Guía de soluciones
Restricción: No se puede editar o suprimir los campos existentes.No se puede
suprimir ninguno de los tipos de datos predefinidos.
Tipos de datos internos definidos por el usuario:
Los tipos de datos internos que se crean son tipos de datos internos definidos por
el usuario.
Los elementos de datos en estos tipos de datos se almacenan en el repositorio de
datos interno en lugar de en un origen de datos externo. Los tipos de datos
definidos por el usuario funcionan de forma muy similar a los tipos de datos de
base de datos SQL. Debe utilizar tipos de datos internos sólo para fines de pruebas
y de demostración de Netcool/Impact, o para tareas de poca carga. Los tipos de
datos internos definidos por el usuario son más lentos que los tipos de datos de
base de datos SQL externos.
Campos de tipos de datos
Un campo es una unidad de datos tal como está definida en un tipo de datos. La
naturaleza de esta unidad de datos depende de la categoría del tipo de datos que
la contiene.
Si el tipo de datos corresponde a una tabla en una base de datos SQL, cada campo
corresponde a una columna de la tabla. Si el tipo de datos corresponde a un
contexto base de un servidor LDAP, cada campo corresponde a un tipo de atributo
LDAP.
Cuando configura un tipo de datos de base de datos SQL, Netcool/Impact llena
automáticamente los campos a partir de la tabla subyacente. Para otros tipos de
datos, debe definir manualmente los campos al crear el tipo de datos.
ID
El atributo ID especifica el nombre interno utilizado por Netcool/Impact para
hacer referencia al campo.
De manera predeterminada, el ID de campo es el mismo que el nombre del
elemento de datos que corresponde al campo del origen de datos subyacente. Por
ejemplo, si el tipo de datos es un tipo de datos de base de datos SQL, el campo
subyacente corresponde a una columna de la tabla. De manera predeterminada, el
ID de campo es el mismo que el nombre de columna en la base de datos.
Puede cambiar el ID de campo a cualquier otro nombre exclusivo. Por ejemplo, si
los nombres de columna subyacentes en el origen de datos no son legibles por
personas, o son difíciles de especificar y recuperar, puede utilizar el campo de ID
para proporcionar un alias para el campo que sea más fácil de utilizar.
El ID de campo sustituye los atributos de nombre real y nombre de visualización
para el campo en todos los casos.
Nombre de campo
El atributo de nombre de campo es el nombre del elemento de datos
correspondiente en el origen de datos subyacente.
Aunque puede utilizar la GUI Tivoli Integrated Portal para editar libremente este
campo, debe ser idéntica a cómo se visualiza en el origen de datos. Si estos campos
no son idénticos, se produce un error cuando se accede al tipo de datos.
Capítulo 2. Trabajar con modelos de datos
17
Formato
El formato es el formato de datos del campo.
Para los tipos de datos de base de datos SQL, Netcool/Impact descubre
automáticamente las columnas de la tabla subyacente y deduce automáticamente el
formato de datos de cada campo cuando configura el tipo de datos. Para otros
tipos de datos, debe especificar manualmente el formato de cada campo que cree.
En la Tabla 1 se muestran los formatos de datos soportados:
Tabla 1. Formatos de datos soportados
Formato
Descripción
STRING
Representa las series de texto hasta 4 KB de longitud.
INTEGER
Representa números enteros.
LONG
Representa números enteros largos.
FLOAT
Representa números decimales de coma flotante.
DOUBLE
Representa números decimales de coma flotante de precisión
doble.
DATE
Representa series de fecha/hora con formato.
TIMESTAMP
Representa una indicación de fecha y hora con el formato
siguiente, AAAA-MM-DD HH:MM:SS.
Restricción: La tabla de Microsoft SQL Server trata el campo
TIMESTAMP como un campo que no sea de fecha y hora. El
controlador JDBC devuelve el campo TIMESTAMP como un
tipo de datos binario de versión de fila, que se descubre como
STRING en el tipo de datos de Microsoft SQL Server. Para
resolver este problema, en la tabla de Microsoft SQL server
utilice DATEITEM para visualizar el formato de hora de la
propiedad en lugar de TIMESTAMP.
BOOLEAN
Representa valores booleanos de true y false.
CLOB
Representa datos binarios de formato largo.
LONG_STRING
Representa series de texto de hasta 16 KB de longitud (sólo
tipos de datos internos).
PASSWORD_STRING
Representa valores de contraseña (sólo tipos de datos
internos). La contraseña se muestra en la GUI como una serie
de asteriscos, en lugar de cómo el propio texto de la
contraseña.
Nombre a mostrar
El atributo de nombre de visualización permite especificar una etiqueta para el
campo que se visualiza sólo al examinar los elementos de datos en la interfaz
gráfica de usuario. Este atributo no afecta de otro modo a las funciones del tipo de
datos.
Puede utilizar este campo para seleccionar un campo del menú para etiquetar
elementos de datos según el valor de campo. Elija un campo que contenga un
valor exclusivo que se pueda utilizar para identificar el elemento de datos, por
ejemplo, ID. Para ver los valores en el elemento de datos tendrá que ir a Ver
elementos de datos para el tipo de datos y seleccione el icono Enlaces. Pulse el
elemento de datos para visualizar los detalles.
18
Netcool/Impact: Guía de soluciones
Descripción
Puede utilizar el atributo de descripción para especificar una breve descripción del
campo.
Esta descripción sólo está visible cuando utiliza la GUI para editar el tipo de datos.
Como el nombre de visualización, no afecta de otra forma a las funciones del tipo
de datos.
Claves de tipo de datos
Los campos de clave son campos cuyo valor o combinación de valores se puede
utilizar para identificar elementos de datos exclusivos en un tipo de datos.
Para tipos de datos de base de datos SQL, debe especificar como mínimo un
campo de clave para cada tipo de datos que cree. Habitualmente el campo de clave
que especifique es un campo de clave del origen de datos subyacente. Los
elementos de datos internos contienen un campo predeterminado denominado KEY
que se utiliza automáticamente como clave de tipo de datos.
Puede utilizar la función de política denominada GetByKey para recuperar datos
del tipo de datos utilizando el valor de campo de clave como condición de
consulta. Las claves también se utilizan al crear enlaces dinámicos GetByKey entre
tipos de datos.
Configuración de tipos de datos
Al crear un modelo de datos, debe configurar un tipo de datos para cada elemento
estructural en un origen de datos cuyos datos desee utilizar.
Por ejemplo, si utiliza un origen de datos de base de datos SQL, debe configurar
un tipo de datos para cada tabla que contenga los datos. Si utiliza un origen de
datos LDAP, debe configurar un tipo de datos para cada contexto base en el
directorio LDAP que contenga los nodos a los que desea acceder. Puede configurar
los tipos de datos utilizando la GUI de Tivoli Integrated Portal.
Para configurar un tipo de datos, puede obtener el nombre del elemento
estructural (por ejemplo, la tabla) en el que están ubicados los datos y a
continuación utilizar la interfaz gráfica de usuario para configurar el tipo de datos.
Obtención del nombre del elemento estructural
Si el tipo de datos es un tipo de datos de base de datos SQL, debe conocer el
nombre completo de la tabla subyacente de la base de datos para poder
configurarlo.
Este nombre consta del nombre de base de datos y del nombre de tabla. Algunas
bases de datos utilizan nombres de tablas que distinguen entre mayúsculas y
minúsculas, de forma que al obtener esta información asegúrese de anotar
correctamente las mayúsculas y minúsculas.Si el tipo de datos es un tipo de datos
LDAP, debe conocer el nombre del nivel de contexto base de la jerarquía LDAP
donde se encuentran los nodos a los que desea acceder.
Configuración de tipos de datos internos predefinidos
Este procedimiento utiliza un tipo de datos interno Administrator como ejemplo.
Capítulo 2. Trabajar con modelos de datos
19
Acerca de esta tarea
Para definir el tipo de datos para Administrator, especifique los atributos (campos)
que desee mostrar para cada administrador, quizás un nombre, un número de
buscapersonas y una dirección de correo electrónico. A continuación cree elementos
de datos: los nombres, los números de buscapersonas y las direcciones de correo
electrónico de los administradores. Para los tipos de datos internos, estos atributos
son los elementos de datos reales para los tipos de datos.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos > Modelo de datos, para abrir el separador
Modelo de datos.
Dado que los datos internos se almacenan en Netcool/Impact, no es necesario
configurar primero una conexión de origen de datos.
2. Seleccione el origen de datos para el que desea crear un tipo de datos, pulse el
botón derecho del ratón en el origen de datos y pulse Tipo de datos nuevo.
3. Entre la información en la sección Valores generales del separador Campos
personalizados.
Pulse Guardar.
4. Para añadir más campos al tipo de datos:
a. En la sección Campos adicionales del separador, pulse el botón Nuevo.
b. Escriba la información en la ventana.
c. Continúe para añadir campos a la tabla según corresponda.
d. En la lista Campo de nombre de visualización situada bajo la tabla
Campos adicionales, puede seleccionar un nombre de campo que desee
utilizar para dar nombre a un elemento de datos en cualquier otro lugar de
la GUI.
e. Cuando acabe, pulse Guardar de la barra de herramientas del editor.
5. En el separador Enlaces dinámicos, configure los enlaces dinámicos. Para
obtener información sobre el separador de enlaces dinámicos, consulte la
sección sobre “Utilización de enlaces” en la página 6.
20
Netcool/Impact: Guía de soluciones
Ventana de configuración de tipos de datos internos:
Utilice esta información para configurar un tipo de datos interno.
Tabla 2. Valores generales en la pestaña Campos personalizados del editor de tipos de
datos internos nuevos
Elemento del editor
Descripción
Nombre de tipo de datos
Escriba un nombre exclusivo para identificar
el tipo de datos. Sólo se deben utilizar letras,
números y el carácter de subrayado en el
nombre de tipo de datos. Si utiliza caracteres
UTF-8, asegúrese de que el entorno local del
Servidor Impact en el que se guarda el tipo
de datos se establezca en la codificación de
caracteres de UTF-8.
Si recibe un mensaje de error cuando guarda
un tipo de datos, seleccione el separador
Global para obtener una lista completa de
los nombres de tipos de datos para el
servidor. Si encuentra el nombre que ha
intentado guardar, deberá modificarlo.
Estado: Persistente
Deje el recuadro seleccionado como
Persistente (permanente) para almacenar de
forma permanente los elementos de daos
creados para este tipo de datos. Cuando se
reinicia el servidor, se restauran los datos. Si
no selecciona el recuadro, los datos se
guardan en la memoria pero sólo mientras el
servidor se está ejecutando. Cuando se
reinicia el servidor, los datos se perderán
porque no se ha realizado una copia de
seguridad en un archivo. Esta característica
resulta práctica si sólo necesita datos de
forma temporal y luego desea descartarlos.
Los tipos de datos persistentes siempre se
graban en un archivo. Por lo tanto, hacer
que los tipos de datos internos sean
temporal resulta más rápido.
Campo nuevo
Pulse para añadir un campo a la tabla.
Acceder a los datos a través del proveedor
de datos de la interfaz de usuario:
Habilitado
Para asegurarse de que Proveedor de datos
de interfaz de usuario puede acceder a los
datos de este tipo de datos, seleccione el
recuadro de selección Acceder a los datos a
través del proveedor de datos de la interfaz
de usuario. Cuando habilite el recuadro de
selección, el tipo de datos envía datos a
Proveedor de datos de interfaz de usuario .
Cuando se renueva el modelo de datos, el
tipo de datos está disponible como un
origen de proveedor de datos. La velocidad
de renovación predeterminada es 5 minutos.
Si desea más información sobre los
proveedores de datos de interfaz de usuario,
consulte Guía de soluciones.
Capítulo 2. Trabajar con modelos de datos
21
Tabla 3. Valores adicionales en la pestaña Campos personalizados del editor de tipos
de datos internos nuevos
Elemento del editor
Descripción
ID
Escriba un ID exclusivo para el campo.
Nombre de campo
Escriba el nombre real del campo. Puede ser
el mismo que el ID. Puede hacer referencia
al campo ID y al campo Nombre de campo
en las políticas.
Si no escribe un nombre para mostrar,
Netcool/Impact utiliza el nombre del campo
ID de forma predeterminada.
Formato
Seleccione un formato para el campo en la
lista Formato:
Campo de nombre de visualización:
Puede utilizar este campo para seleccionar
un campo del menú para etiquetar
elementos de datos según el valor de campo.
Elija un campo que contenga un valor
exclusivo que se pueda utilizar para
identificar el elemento de datos, por
ejemplo, ID. Para ver los valores en el
elemento de datos tendrá que ir a Ver
elementos de datos para el tipo de datos y
seleccione el icono Enlaces. Pulse el
elemento de datos para visualizar los
detalles.
Descripción
Escriba algún texto que describa el campo.
Tabla 4. Valores de proveedor de datos de interfaz de usuario en la pestaña Campos
personalizados del editor de tipos de datos internos nuevos
Elemento del editor
Descripción
Definir tipos personalizados y valores
(JavaScript)
Para mostrar porcentajes y estado en un
widget, debe crear un script en formato
JavaScript. El script utiliza la siguiente
sintaxis.
ImpactUICustomValues.put
("FieldName,Type",VariableName);
Añada el script al área Definir valores y
tipos personalizados (JavaScript).
Vista previa del resultado de la muestra de
script
Pulse el botón Vista previa del resultado de
la muestra de script para obtener una vista
previa de los resultados y comprobar las
sintaxis del script. La vista previa muestra
un ejemplo de 10 filas de datos en la tabla.
tipos de datos SQL
Los tipos de datos SQL definen el acceso dinámico en tiempo real a los datos de
las tablas de una base de datos SQL especificada.
Cuando se accede a la base de datos, los campos del esquema de base de datos se
asignan al tipo de datos. Algunos orígenes de datos SQL descubren
automáticamente los campos de la tabla. Otros no dan soporte al descubrimiento
22
Netcool/Impact: Guía de soluciones
automático de tablas; para estos orígenes de datos, debe especificar el nombre de
tabla para poder ver los nombres de los campos.
El editor contiene tres separadores.
Tabla 5. Separadores del editor de tipos de datos externos
Separador
Descripción
Descripción de
tabla
Asigne un nombre al tipo de datos, cambie el origen de datos si es
necesario y añada cualquier número de campos del origen de datos para
crear una tabla de base de datos.
Enlaces
dinámicos
En este separador puede crear enlaces con otros tipos de datos, tanto
externos como internos, para establecer conexiones entre la información.
Los enlaces entre los elementos de datos individuales pueden representar
cualquier relación entre los elementos que las políticas deben poder
buscar. Por ejemplo, un nodo enlazado a un operador permite que una
política busque al operador responsable del nodo.
Para obtener más información acerca del separador de enlaces dinámicos,
consulte “Utilización de enlaces” en la página 6.
Valores de
memoria caché
En este separador puede configurar los parámetros de memoria caché
para regular el flujo de datos entre Netcool/Impact y el origen de datos
externo.
Utilice las directrices de “Ventana de configuración del tipo de datos SQL
- Separador Valores de memoria caché” en la página 29, además de los
parámetros del informe de rendimiento del tipo de datos, para configurar
el almacenamiento en memoria caché de consultas y datos.
Importante: los tipos de datos SQL de Netcool/Impact requieren que todas las
columnas de una tabla de base de datos tengan habilitado el permiso Select para
permitir el descubrimiento y para permitir la opción de guardar al crear tipos de
datos.
Configuración de tipos de datos SQL:
Utilice este procedimiento para configurar un tipo de datos SQL.
Procedimiento
v Especifique un nombre exclusivo para el tipo de datos.
v Especifique el nombre del origen de datos subyacente para el tipo de datos.
v Especifique el nombre de la base de datos y la tabla en la que se almacenan los
datos subyacentes.
v Rellene automáticamente los campos del tipo de datos
v Seleccione un nombre de visualización para el tipo de datos.
v Especifique campos de clave para el tipo de datos.
v Opcional: Especifique un filtro de elementos de datos.
v Opcional: Especifique el campo del tipo de datos que debe utilizarse para
ordenar los elementos de datos.
v Opcional: Especifique la dirección que debe utilizarse al ordenar los elementos
de datos.
Capítulo 2. Trabajar con modelos de datos
23
Qué hacer a continuación
Después de guardar el tipo de datos, puede cerrar el editor de tipos de datos o
configurar el almacenamiento en memoria caché y los enlaces dinámicos para el
tipo de datos.
Ventana de configuración de tipos de datos SQL - separador Descripción de
tabla:
Utilice esta información para configurar el tipo de datos SQL.
Tabla 6. Valores generales para la pestaña Descripciones de la tabla de la ventana de
configuración de tipos de datos SQL
Elemento del editor
Descripción
Nombre de tipo de datos
Escriba un nombre exclusivo para identificar
el tipo de datos. Sólo se deben utilizar letras,
números y el carácter de subrayado en el
nombre de tipo de datos. Si utiliza caracteres
UTF-8, asegúrese de que el entorno local del
Servidor Impact en el que se guarda el tipo
de datos se establezca en la codificación de
caracteres de UTF-8.
Los nombres de tipos de datos deben ser
exclusivos globalmente y no únicamente
dentro de un proyecto. Si recibe un mensaje
de error cuando guarda un tipo de datos,
seleccione el separador de proyecto Global
para obtener una lista completa de los
nombres de tipos de datos para el servidor.
Si encuentra el nombre que ha intentado
guardar, debe cambiarlo.
Origen de datos: Nombre
Este campo se llena automáticamente,
basándose en el origen de datos que ha
seleccionado en el separador de orígenes de
datos. Si tiene otros orígenes de datos SQL
configurados para utilizar con
Netcool/Impact, puede cambiar el nombre
por cualquier origen de datos SQL de la
lista, si es necesario.
Si escribe un nombre nuevo, se muestra una
ventana de mensaje donde se le solicita que
confirme el cambio.
Pulse Aceptar para confirmar el cambio. Si
cambia de opinión acerca de seleccionar un
origen de dato diferente, pulse Cancelar.
Estado: Habilitado
24
Netcool/Impact: Guía de soluciones
Deje el recuadro de selección Estado
marcado para activar el tipo de datos, de
forma que esté disponible para ser utilizado
en las políticas.
Tabla 6. Valores generales para la pestaña Descripciones de la tabla de la ventana de
configuración de tipos de datos SQL (continuación)
Elemento del editor
Descripción
Acceder a los datos a través del proveedor
de datos de la interfaz de usuario:
Habilitado
Para asegurarse de que Proveedor de datos
de interfaz de usuario puede acceder a los
datos de este tipo de datos, seleccione el
recuadro de selección Acceder a los datos a
través del proveedor de datos de la interfaz
de usuario. Cuando se habilita el recuadro
de selección, el tipo de datos envía datos a
Proveedor de datos de interfaz de usuario .
Cuando se renueva el modelo de datos, el
tipo de datos está disponible como un
origen de proveedor de datos. La velocidad
de renovación predeterminada es 5 minutos.
Si desea más información sobre los
proveedores de datos de interfaz de usuario,
consulte Guía de soluciones.
Tabla 7. Valores de descripción de tabla para la pestaña Descripciones de la tabla de la
ventana de configuración de tipos de datos SQL
Elemento de ventana
Descripción
Tabla base
Especifique la base de datos y la tabla
subyacentes en las que se almacenan los
datos del tipo de datos.
Los nombres de todas las bases de datos y
las tablas se recuperan automáticamente del
origen de datos de forma que puede
elegirlos en una lista.
Escriba el nombre de la base de datos y la
tabla en las listas Tabla base. La primera
lista contiene las bases de datos del origen
de datos. La segunda lista contiene las tablas
de la base de datos seleccionada, por
ejemplo, alerts, status.
Renovar
Pulse Renovar para llenar la tabla.
Las columnas de tabla se muestran como
campos de una tabla. Para que el acceso a la
base de datos sea lo más eficaz posible,
suprima los campos que no se utilizan en
políticas.
Añadir campos suprimidos
Si ha suprimido campos del tipo de datos
que siguen existiendo en la base de datos
SQL, dichos campos no se muestran en la
interfaz de usuario. Para restaurar los
campos en el tipo de datos, marque el
recuadro de selección Añadir campos
suprimidos y pulse Renovar.
Capítulo 2. Trabajar con modelos de datos
25
Tabla 7. Valores de descripción de tabla para la pestaña Descripciones de la tabla de la
ventana de configuración de tipos de datos SQL (continuación)
Elemento de ventana
Descripción
Nuevo campo
Utilice esta opción si tiene que añadir un
campo a la tabla desde la base de datos del
origen de datos. Por ejemplo, en el caso
donde se añadió el archivo a la base de
datos después de haber credo el tipo de
datos.
Asegúrese de que el nombre de campo que
añade tiene el mismo nombre que el nombre
del campo en el origen de datos.
Importante: los campos nuevos añadidos a
esta tabla no se añaden automáticamente a
la tabla de orígenes de datos. No puede
añadir campos a la tabla de base de datos de
esta forma.
Para obtener más información, consulte
“Ventana de configuración de tipos de datos
SQL - Añadir y editar campos de la tabla”
en la página 28.
Campo de clave
Los campos de clave se utilizan cuando
recupera datos del tipo de datos en una
política que utiliza la función GetByKey.
También se utilizan al definir un enlace
dinámico GetByKey.
Importante: Debe definir, como mínimo, un
campo de clave para el tipo de datos,
aunque no tenga previsto utilizar la función
GetByKey en su política. Si no lo hace,
Netcool/Impact no funciona correctamente.
Generalmente, los campos de clave que se
definen corresponden a los campos de clave
de la tabla de base de datos subyacente.
Para especificar un campo clave, marque el
recuadro de selección de la fila adecuada de
la columna Campo de clave. Puede añadir
varios campos clave.
Campo de nombre de visualización
26
Netcool/Impact: Guía de soluciones
Puede utilizar este campo para seleccionar
un campo del menú para etiquetar
elementos de datos según el valor de campo.
Elija un campo que contenga un valor
exclusivo que se pueda utilizar para
identificar el elemento de datos, por
ejemplo, ID. Para ver los valores en el
elemento de datos tendrá que ir a Ver
elementos de datos para el tipo de datos y
seleccione el icono Enlaces. Pulse el
elemento de datos para visualizar los
detalles.
Tabla 7. Valores de descripción de tabla para la pestaña Descripciones de la tabla de la
ventana de configuración de tipos de datos SQL (continuación)
Elemento de ventana
Descripción
Eliminar automáticamente campos
suprimidos
Marque el recuadro de selección Eliminar
automáticamente campos suprimidos para
eliminar los campos del tipo de datos que ya
se han eliminado de la base de datos SQL.
Esto se produce automáticamente cuando se
ejecuta una política que utiliza este tipo de
datos.
Tabla 8. Valores de ordenación y filtrado de datos para la pestaña Descripciones de la tabla
de la ventana de configuración de tipos de datos SQL
Elemento de ventana
Descripciones
Filtro
Escriba una cláusula de restricción para
limitar los tipos de elementos de datos que
se visualizarán para el tipo de datos. Por
ejemplo, para limitar las filas de un campo
denominado Ciudad a Nueva York, debe
especificar:
Ciudad = "Nueva York"
Por ejemplo, para limitar las filas a Nueva
York o Atenas, escriba:
Ciudad = "Nueva York" OR Ciudad = "Atenas"
Puede utilizar cualquier sintaxis de cláusula
Where de SQL.
Ordenar por
Especifique los nombres de uno o más
campos para utilizar al ordenar los
elementos de datos recuperados del origen
de datos.
Tabla 9. Valores de proveedor de datos de interfaz de usuario para la pestaña
Descripciones de la tabla de la ventana de configuración de tipos de datos SQL.
Elemento del editor
Descripción
Definir tipos personalizados y valores
(JavaScript)
Para mostrar porcentajes y estado en un
widget, debe crear un script en formato
JavaScript. El script utiliza la siguiente
sintaxis.
ImpactUICustomValues.put
("FieldName,Type",VariableName);
Añada el script al área Definir valores y
tipos personalizados (JavaScript).
Vista previa del resultado de la muestra de
script
Pulse el botón Vista previa del resultado de
la muestra de script para obtener una vista
previa de los resultados y comprobar las
sintaxis del script. La vista previa muestra
un ejemplo de 10 filas de datos en la tabla.
Capítulo 2. Trabajar con modelos de datos
27
Ventana de configuración de tipos de datos SQL - Añadir y editar campos de la
tabla:
Utilice esta información para añadir a la tabla un campo correspondiente a un tipo
de datos SQL o para editarlo.
separador Tabla, en el área Campo nuevo, pulse Nuevo para añadir un campo al
tipo de datos o seleccione el icono de edición situado junto a un campo existente
que desee editar.
Tabla 10. Editor de tipos de datos externos - Ventana Campo nuevo
Elemento de ventana Descripción
ID
De forma predeterminada, el ID de campo es el mismo que el
nombre de columna de la base de datos. Puede modificarlo por
cualquier otro nombre exclusivo. Por ejemplo, si los nombres de
columnas subyacentes del origen de datos son difíciles de utilizar,
utilice el campo ID para proporcionar un alias más fácil para el
campo.
Nombre de campo
Escriba un nombre de campo que se pueda utilizar en las políticas.
Representa el nombre de la columna SQL. Escriba el nombre de
forma que sea idéntico a como aparece en el origen de datos. De lo
contrario, Netcool/Impact notifica un error cuando intenta acceder
al tipo de datos.
Formato
Para los tipos de datos de base de datos SQL, Netcool/Impact
descubre automáticamente las columnas en la tabla subyacente y
detecta automáticamente el formato de datos para cada campo
cuando configure el tipo de datos. Para otros tipos de datos, debe
especificar manualmente el formato de cada campo que crea. Si
desea más información sobre los formatos, consulte el capítulo
Cómo trabajar con tipos de datos en Guía de soluciones.
Restricción: La tabla de Microsoft SQL Server trata el campo
TIMESTAMP como un campo que no sea de fecha y hora. El
controlador JDBC devuelve el campo TIMESTAMP como un tipo de
datos binario de versión de fila, que se descubre como STRING en
el tipo de datos de Microsoft SQL Server. Para resolver este
problema, en la tabla de Microsoft SQL Server utilice DATEITEM
para visualizar el formato de hora de la propiedad en lugar de
TIMESTAMP.
Seleccione un formato de la lista siguiente:
v STRING
v LONG_STRING
v INTEGER
v PASSWORD_STRING
v LONG
v FLOAT
v DOUBLE
v DATE
v TIMESTAMP
v BOOLEAN
v CLOB
28
Netcool/Impact: Guía de soluciones
Tabla 10. Editor de tipos de datos externos - Ventana Campo nuevo (continuación)
Elemento de ventana Descripción
Nombre para
mostrar
Puede utilizar este campo para seleccionar un campo del menú
para etiquetar elementos de datos según el valor de campo. Elija un
campo que contenga un valor exclusivo que se pueda utilizar para
identificar el elemento de datos, por ejemplo, ID. Para ver los
valores en el elemento de datos tendrá que ir a Ver elementos de
datos para el tipo de datos y seleccione el icono Enlaces. Pulse el
elemento de datos para visualizar los detalles.
Si no escribe un nombre para mostrar, Netcool/Impact utiliza el
nombre del campo ID de forma predeterminada.
Descripción
Escriba algún texto que describa el campo. Esta descripción sólo
está visible cuando edite el tipo de datos en la GUI.
Valor
predeterminado
Escriba una expresión predeterminada para el campo. Puede
adoptar cualquier valor del formato especificado (consulte la fila
del formato), o puede ser un identificador específico de la base de
datos como, por ejemplo, un pseudónimo Oracle; sequence.NEXTVAL.
Insertar sentencias:
Excluir este campo
Cuando selecciona el recuadro de selección Excluir este campo,
Netcool/Impact no establece el valor del campo cuando inserta y
actualiza un elemento de datos nuevo en la base de datos. Este
campo se utiliza sólo para sentencias de inserción y actualización,
no para sentencias de selección.
Tipos de datos de Sybase:
Debe seleccionar esta opción al correlacionar un campo con un
campo Identidad o un campo con un valor predeterminado en una
base de datos Sybase. De lo contrario, Netcool/Impact sobrescribirá
el campo al insertar con el valor especificado o con un carácter de
espacio si no se ha especificado ningún valor.
Tipos de datos de ObjectServer:
El campo Tally selecciona automáticamente el recuadro de selección
Excluir este campo para que se excluya de inserciones y
actualizaciones para el tipo de datos del servidor de objetos, ya que
este campo es definido automáticamente por Netcool/OMNIbus
para controlar la optimización de almacenamiento de sucesos.
El campo Serie selecciona automáticamente el recuadro de selección
Excluir este campo para excluirlo de inserciones y actualizaciones
cuando un tipo de datos de ObjectServer apunta a alerts.status.
Comprobación de
tipo: Estricto
Pulse para habilitar la comprobación de tipo estricto en el campo.
Netcool/Impact comprueba el formato del valor del campo en la
inserción o la actualización para asegurarse de que sea del mismo
formato que el campo correspondiente en el origen de datos. Si no
es el mismo, Netcool/Impact no comprueba el valor en la inserción
o actualización y se visualiza un mensaje con dicho efecto en el
registro del servidor. Si no habilita la comprobación de tipo estricto,
se realizan todas las conversiones de formato y comprobación de
tipo en el nivel de origen de datos.
Ventana de configuración del tipo de datos SQL - Separador Valores de memoria
caché:
Utilice esta información para configurar la memoria caché para un tipo de datos
SQL.
Capítulo 2. Trabajar con modelos de datos
29
Tabla 11. Separador Valores de memoria caché de tipos de datos externos - tipos de
almacenamientos en memoria caché
Tipo de almacenamiento en memoria
caché
Descripción
Habilitar almacenamiento de datos en
memoria caché
Este recuadro de selección habilita e inhabilita el
almacenamiento de datos en memoria caché.
Número máximo de elementos de datos Establezca el número total de elementos de datos
que se almacenarán en la memoria caché durante
la ejecución de la política.
Invalidar elementos de datos en
memoria caché tras
Se establece para invalidar los elementos
almacenados en la memoria caché después de los
períodos de tiempo seleccionados.
Habilitar almacenamiento de consultas
en memoria caché
Este recuadro de selección habilita e inhabilita el
almacenamiento de consultas en memoria caché.
Número máximo de consultas
Establezca el número máximo de consultas de
base de datos que se almacenarán en la memoria
caché.
Invalidar consultas en memoria caché
tras
Se establece para invalidar los elementos
almacenados en la memoria caché después de los
períodos de tiempo seleccionados.
Habilitar almacenamiento de recuentos
en memoria caché
No lo establezca. Está disponible únicamente
para la compatibilidad con versiones anteriores.
Intervalos de medidas de rendimiento
Utilice esta opción para configurar los
parámetros de informes para medir la velocidad
con la que se ejecutan las consultas de un tipo de
datos.
Intervalo de sondeo
Seleccione un intervalo de sondeo para medir las
estadísticas de rendimiento para el tipo de datos.
Intervalo de consulta
Seleccione el intervalo de consulta para la
comprobación de rendimiento.
Llenado automático de los campos de tipos de datos:
Después de haber especificado el nombre de la base de datos y tabla, el paso
siguiente es llenar automáticamente los campos de tipo de datos.
También puede especificar los campos manualmente de la misma forma que lo
hace para los tipos de datos internos, pero en la mayoría de los casos la utilización
de la característica de llenado automático ahorra tiempo y asegura que los nombres
de los campos son precisos.
Cuando llena automáticamente los campos de tipo de datos, la descripción de tabla
se recupera del origen de datos subyacente y se crea un campo en el tipo de datos
para cada columna de la tabla. El ID, nombre real y nombre a mostrar para los
campos se definen utilizando el nombre de columna exacto tal como aparece en la
tabla.
Un conjunto de reglas incorporadas se utiliza para determinar el formato de datos
para cada uno de los campos que se han llenado automáticamente. Las columnas
de la base de datos que contienen datos de texto, como por ejemplo varchar, se
representan como campos de serie. Las columnas que contienen números enteros,
como por ejemplo int y integer, se representan como campos enteros. Las
columnas que contienen números decimales se representan como campos flotantes.
30
Netcool/Impact: Guía de soluciones
Normalmente, puede asignar automáticamente los formatos para los campos de
tipo de datos sin tener que intentar volver a crear manualmente los formatos de
datos de base de datos en el tipo de datos.
Si sólo desea que estén representados un subconjunto de los campos de una tabla
en el tipo de datos, puede eliminar manualmente los campos que no desee después
del llenado automático. La eliminación de los campos no deseados puede acelerar
el rendimiento de un tipo de datos.
Para llenar automáticamente campos de tipo de datos, pulse el botón Renovar en
el área Descripción de tabla del separador Tipo de datos. La descripción de tabla
se recupera del origen de datos y los campos se llenan. Los campos se visualizan
en el área Descripción de tabla.
Después de haber llenado automáticamente los campos de tipo de datos, puede
cambiar manualmente los atributos de cualquier definición de campo. No cambie
el valor del atributo de nombre real. Si no cambia este valor, se informará de los
errores al intentar recuperar datos del tipo de datos.
Especificación de un filtro de elementos de datos:
El filtro de elementos de datos especifica a qué filas de la tabla de base de datos
subyacente se puede acceder como elementos de datos del tipo de datos.
Este filtro es un valor opcional. La sintaxis del filtro de elementos de datos es la
misma que el contenido de la cláusula WHERE de la sentencia SQL SELECT soportada
por la base de datos subyacente.
Por ejemplo, si desea especificar que sólo las filas donde el campo Ubicación sea
New York sean accesibles mediante este tipo de datos, puede utilizar el siguiente
filtro de elementos de datos:
Location = ’New York’
Si desea especificar que sólo las filas donde el campo Ubicación sea New York o New
Jersey, puede utilizar la expresión siguiente:
Location = ’New York’ OR Location = ’New Jersey’
Asegúrese de colocar las series entre comillas.
Para especificar el filtro de elementos de datos, especifique la serie del filtro en el
recuadro de texto Filtro del área Filtro y ordenación de elementos de datos del
editor de tipo de datos.
Especificación de la ordenación de los elementos de datos:
La ordenación de los elementos de datos define el orden en el que los elementos
de datos se recuperan del tipo de datos.
Los valores de orden se utilizan al recuperar elementos de datos utilizando la
función GetByFilter de una política o al examinar elementos de datos utilizando la
interfaz gráfica de usuario. Puede ordenar los elementos de datos en orden
alfanumérico ascendente o descendente por cualquier campo de tipo de datos. La
ordenación de los elementos de datos es un parte opcional de la configuración del
tipo de datos.
Capítulo 2. Trabajar con modelos de datos
31
Puede especificar la ordenación de los elementos de datos en la configuración del
tipo de datos como una lista de campos separados por coma, donde cada campo
va acompañado por la palabra clave ASC o DESC.
Por ejemplo, para recuperar elementos de datos en orden ascendente por el campo
Nombre, debe utilizar la siguiente serie de ordenación:
Nombre ASC
Para recuperar elementos de datos en orden descendente por el campo Ubicación
y, a continuación, en orden ascendente por Nombre, debe utilizar la serie siguiente:
Location DESC,Nombre ASC
Para especificar la ordenación de los elementos de datos:
1. En el Editor de tipo de datos, desplácese hasta que se visualice el área Filtrado
y ordenación de datos.
2. Especifique la serie de ordenación de los elementos de datos en el campo
Ordenar por.
Tipos de datos LDAP
Un tipo de datos LDAP representa un conjunto de entidades de un árbol de
directorios LDAP.
El DSA de LDAP determina qué entidades forman parte de este conjunto en
tiempo real, buscando de forma dinámica en el árbol LDAP las que coinciden con
un filtro LDAP especificado dentro de un ámbito concreto. El DSA realiza esta
búsqueda en relación con una ubicación del árbol, conocida como el contexto base.
El editor de Tipo de datos LDAP contiene tres separadores.
Tabla 12. Separadores del editor de Tipos de datos LDAP
Separador
Descripción
Información
de LDAP
En este separador se configuran los atributos del tipo de datos. Para obtener
más información acerca de estos atributos, consulte “Pestaña Información
de LDAP de la ventana Configuración de tipo de datos LDAP” en la
página 33.
Enlaces
dinámicos
En este separador puede crear enlaces con otros tipos de datos, tanto
externos como internos, para establecer conexiones entre la información. Los
enlaces entre los elementos de datos individuales pueden representar
cualquier relación entre los elementos que las políticas necesitan poder
buscar. Por ejemplo, un nodo enlazado a un operador permite que una
política busque al operador responsable del nodo.
Para obtener más información acerca de cómo crear tipos de datos, consulte
el “Utilización de enlaces” en la página 6.
Valores de
memoria
caché
En este separador puede configurar los parámetros de memoria caché para
regular el flujo de datos entre Netcool/Impact y el origen de datos externo.
Para obtener más información sobre la configuración de la memoria cache,
consulte “Ventana de configuración del tipo de datos SQL - Separador
Valores de memoria caché” en la página 29.
Importante: Debe crear un tipo de datos LDAP para cada conjunto de entidades al
que desea acceder. El tipo de datos LDAP es un tipo de datos de sólo lectura, lo
que significa que no puede editar ni suprimir elementos de datos LDAP en la GUI.
32
Netcool/Impact: Guía de soluciones
Configuración de tipos de datos LDAP:
Utilice este procedimiento para configurar un tipo de datos LDAP.
Procedimiento
v Especifique un nombre exclusivo para el tipo de datos.
v Especifique el nombre del origen de datos subyacente para el tipo de datos.
v Especifique el nivel de contexto base de la jerarquía de LDAP donde se
encuentran los elementos a los que desea acceder.
v Especifique un campo de nombre de visualización.
v Opcional: Especifique un filtro de restricción.
Pestaña Información de LDAP de la ventana Configuración de tipo de datos
LDAP:
Utilice esta información para configurar la información de LDAP para un tipo de
datos LDAP.
Tabla 13. Valores generales en la Pestaña Información de LDAP, en el editor Tipos de
datos LDAP
Elemento del editor
Descripción
Nombre de tipo de datos
Escriba un nombre exclusivo para identificar
el tipo de datos. Sólo se deben utilizar letras,
números y el carácter de subrayado en el
nombre de tipo de datos. Si utiliza caracteres
UTF-8, asegúrese de que el entorno local del
Servidor Impact en el que se guarda el tipo
de datos se establezca en la codificación de
caracteres de UTF-8.
Estado: Habilitado
Déjelo sin seleccionar para habilitar el tipo
de datos, de modo que esté disponible para
utilizarlo en las políticas.
Tabla 14. Valores de LDAP en la Pestaña Información de LDAP, en el editor Tipos de
datos LDAP
Elemento del editor
Descripción
Nombre de origen de datos
Escriba el nombre del origen de datos
subyacente.
Este campo se rellena automáticamente, en
función del origen de datos que haya
seleccionado en el panel de tareas Tipos de
datos del panel Navegación. No obstante, si
ha configurado más de un origen de datos
LDAP para utilizarlo con Netcool/Impact,
puede seleccionar cualquier origen de datos
LDAP de la lista, si es necesario.
Si escribe un nombre nuevo, el sistema
muestra una ventana de mensaje donde se le
solicita que confirme el cambio.
Capítulo 2. Trabajar con modelos de datos
33
Tabla 14. Valores de LDAP en la Pestaña Información de LDAP, en el editor Tipos de
datos LDAP (continuación)
Elemento del editor
Descripción
Ámbito de búsqueda
Seleccione el ámbito de búsqueda:
v OBJECT_SCOPE
v ONLEVEL_SCOPE
v SUBTREE_SCOPE
Contexto base
Escriba el contexto base que desea que se
utilice al buscar entidades LDAP. Por
ejemplo:ou=people, o=companyname.com.
Campo de búsqueda clave
Escriba el nombre de un campo clave, por
ejemplo, dn.
Campo de nombre para mostrar
Puede utilizar este campo para seleccionar
un campo del menú para etiquetar
elementos de datos según el valor de campo.
Elija un campo que contenga un valor
exclusivo que se pueda utilizar para
identificar el elemento de datos, por
ejemplo, ID. Para ver los valores en el
elemento de datos tendrá que ir a Ver
elementos de datos para el tipo de datos y
seleccione el icono Enlaces. Pulse el
elemento de datos para visualizar los
detalles.
Filtro de restricción
Opcionalmente, especifique un filtro de
restricción. El filtro de restricción es un filtro
de búsqueda LDAP como se define en
Internet RFC 2254. Este filtro consta de una
o varias expresiones booleanas con
operadores lógicos que tienen el prefijo de la
lista de expresiones. Para obtener más
información, consulte la información de
Filtro de LDAP en la publicación Guía de
consulta de políticas.
Tabla 15. Configuración de atributos en la Pestaña Información de LDAP, en el editor
Tipos de datos LDAP
Elemento del editor
Descripción
Campo nuevo
Para cada campo que desee añadir al tipo de
datos, pulse Nuevo.
Tipos de datos Mediador DSA
Los tipos de datos de DSA de mediador se crean generalmente mediante scripts u
otras herramientas suministradas por el DSA correspondiente.
Generalmente, los tipos de datos y sus orígenes de datos asociados se instalan
cuando se instala el DSA de mediador (CORBA o Direct) y, por tanto, no es
necesario crearlos. Los tipos de datos instalados están disponibles para su
visualización y, si es necesario, para editarlos.
Para obtener más información acerca de los tipos de datos de mediador utilizados
con un DSA determinado, consulte la documentación del DSA.
34
Netcool/Impact: Guía de soluciones
Almacenamiento en memoria caché de tipos de datos
Puede utilizar el almacenamiento en memoria caché para reducir el número total
de consultas que se realizan en un origen de datos por motivos de rendimiento o
por otros motivos.
El almacenamiento en memoria caché ayuda a disminuir la carga de las bases de
datos externas que utiliza Netcool/Impact. El almacenamiento en memoria caché
también aumenta el rendimiento del sistema al permitirle almacenar
temporalmente elementos de datos que se han recuperado de un origen de datos.
Importante: El almacenamiento en memoria caché funciona mejor con orígenes de
datos estáticos y con orígenes de datos en los que los datos no cambian con
frecuencia.
El almacenamiento en memoria caché funciona cuando se recuperan los datos
durante el proceso de una política. Al visualizar los elementos de datos en la GUI,
se recuperan los datos almacenados en la memoria caché en lugar de recuperar los
datos directamente del origen de datos.
Puede especificar el almacenamiento en memoria caché de tipos de datos externos
para controlar el número de elementos de datos que se almacenan temporalmente
mientras las políticas procesan datos. Un gran número de elementos de datos de la
memoria caché utilizan una gran cantidad de memoria pero puede ahorrar ancho
de banda y tiempo si hace referencia a los mismos datos con frecuencia.
Importante: El almacenamiento en memoria caché funciona con los tipos de datos
de base de datos SQL y LDAP. Los tipos de datos internos no requieren
almacenamiento en memoria caché.
El almacenamiento en memoria caché se configura en función del tipo de datos
dentro de la GUI. Si no especifica el almacenamiento en memoria caché del tipo de
datos, cada elemento de datos se vuelve a cargar desde el origen de datos externo,
cada vez que se accede al mismo.
Configurar el almacenamiento en memoria caché de datos
Utilice este procedimiento para configurar el almacenamiento en memoria caché de
datos.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Expanda el Origen de datos que contenga el tipo de datos que desee editar.
3. Efectúe una doble pulsaciónen el tipo de datos o pulse el icono Editar en la
barra de herramientas para abrir la ficha Valores de memoria caché.
4. Marque el recuadro de selección Habilitar almacenamiento de datos en
memoria caché.
5. Escriba un número en el campo Número máximo de elementos de datos para
establecer el número máximo de elementos de datos en la memoria caché.
6. Especifique la cantidad de tiempo que se debe almacenar en la memoria caché
cada elemento de datos en los campos Invalidar elementos en memoria caché
tras para establecer la hora de caducidad para los elementos de datos de la
memoria caché.
Capítulo 2. Trabajar con modelos de datos
35
Netcool/Impact calcula la hora de caducidad por separado para cada elemento
de datos de la memoria caché.
7. Pulse Guardar para implementar los cambios en el tipo de datos.
Importante: Para que el almacenamiento de datos en memoria caché funcione,
los campos de clave del tipo de datos deben ser exclusivos.
Configurar el almacenamiento en memoria caché de consultas
Utilice este procedimiento para configurar el almacenamiento en memoria caché de
consultas.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Expanda el Origen de datos que contenga el tipo de datos que desee editar.
3. Efectúe una doble pulsaciónen el tipo de datos o pulse el icono Editar en la
barra de herramientas para abrir la ficha Valores de memoria caché.
4. Desplácese hacia abajo hasta se visualice el área Habilitar almacenamiento de
consultas en memoria caché.
5. Seleccione el recuadro de selección Habilitar almacenamiento de consultas en
memoria caché.
6. Escriba un número en el campo Número máximo de elementos de datos para
establecer el número máximo de consultas en la memoria caché.
7. Especifique la cantidad de tiempo que se debe almacenar en la memoria caché
cada elemento de datos en los campos Invalidar elementos en memoria caché
tras para establecer la hora de caducidad para los resultados de consultas de la
memoria caché.
La fecha de caducidad se calcula por separado para cada consulta de la
memoria caché.
8. Pulse Guardar para implementar los cambios en el tipo de datos.
Importante: También debe habilitar el almacenamiento en memoria caché de
datos para que el almacenamiento en memoria caché de consultas funcione.
Almacenamiento en memoria caché de recuentos
Utilice este procedimiento para configurar el almacenamiento en memoria caché de
recuentos.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Expanda el Origen de datos que contenga el tipo de datos que desee editar.
3. Efectúe una doble pulsaciónen el tipo de datos o pulse el icono Editar en la
barra de herramientas para abrir la ficha Valores de memoria caché.
4. Desplácese hacia abajo hasta que se visualice el área Habilitar almacenamiento
de recuentos en memoria caché.
5. Marque el recuadro de selección Habilitar almacenamiento de recuentos en
memoria caché.
36
Netcool/Impact: Guía de soluciones
6. Especifique la cantidad de tiempo que se debe almacenar en la memoria caché
cada elemento de datos en los campos Invalidar elementos en memoria caché
tras.
Puede configurar la hora de caducidad de los elementos contados utilizando
esta característica.
7. Pulse Guardar para implementar los cambios en el tipo de datos.
Utilización de enlaces
Los enlaces se configuran después de crear los tipos de datos necesarios para la
solución y de llenar con información los tipos de datos internos del modelo.
Al escribir políticas, se utiliza la función GetByLinks para atravesar los enlaces y
recuperar los elementos de datos enlazados con otros elementos de datos.
Visión general de enlaces
Los enlaces son elementos del modelo de datos que definen relaciones entre
elementos de datos y entre tipos de datos.
Pueden ahorrar tiempo durante el desarrollo de políticas porque permiten definir
una relación de datos una vez y a continuación reutilizarla varias veces cuando
necesite encontrar datos relacionados con otros datos en una política.Los enlaces
son un componente opcional de un modelo de datos. Los enlaces dinámicos y
estáticos están soportados.
Categorías de enlaces
Netcool/Impact proporciona dos categorías de enlaces.
Enlaces estáticos
Los enlaces estáticos definen una relación entre elementos de datos en los
tipos de datos internos.
Enlaces dinámicos
Los enlaces dinámicos definen una relación entre tipos de datos.
Enlaces estáticos
Los enlaces estáticos definen una relación entre elementos de datos en los tipos de
datos internos.
Los enlaces estáticos están soportados únicamente para los tipos de datos internos.
Los enlaces estáticos no se soportan para otras categorías de tipos de datos, como
los tipos de base de datos SQL y LDAP, porque la persistencia de los elementos de
datos que se almacenan externamente no se puede asegurar.
Un enlace estático se crea manualmente entre dos elementos de datos cuando no
existen relaciones en el nivel de base de datos.
Con los enlaces estáticos, la relación entre los elementos de datos es estática y no
cambia nunca después de que se hayan creado. Puede cruzar los enlaces dinámicos
de una política o en la interfaz de usuario cuando examina los elementos de datos
enlazados. Los enlaces estáticos son bidireccionales.
Enlaces dinámicos
Los enlaces dinámicos definen una relación entre tipos de datos.
Capítulo 2. Trabajar con modelos de datos
37
Esta relación se especifica al crear el enlace y se evalúa en tiempo real cuando se
encuentra una llamada a la función GetByLinks en una política. Los enlaces
dinámicos están soportados para tipos de datos internos, de base de datos SQL y
LDAP.
Las relaciones entre los tipos de datos se resuelven dinámicamente durante la
ejecución cuando cruza el enlace de una política o cuando examina los enlaces
entre elementos de datos. Se crean y mantienen dinámicamente a partir de los
datos de la base de datos.
El concepto de enlaces es similar a la función JOIN de una base de datos SQL. Por
ejemplo, es posible que exista una "Tabla 1" que contiene información de clientes
(nombre, número de teléfono, dirección, etc.) con una clave de ID de cliente
exclusiva. También puede haber una "Tabla 2" con una lista de servidores. En esta
tabla, se incluye el ID de cliente del cliente propietario del servidor. Cuando estos
elementos de datos se mantienen en diferentes bases de datos, Netcool/Impact
permite crear un enlace entre la Tabla 1 y la Tabla 2 mediante el campo ID de
cliente, de modo que puede ver todos los servidores propiedad de un cliente
concreto.
Puede utilizar enlaces dinámicos únicamente a nivel de base de datos. Cuando las
relaciones no existen en el nivel de base de datos, deberá crear enlaces estáticos.
Puede crear enlaces dinámicos para todos los tipos de datos (internos, externos y
predefinidos). Consulte “Configuración de tipos de datos” en la página 5 para
obtener información sobre las clases del tipo de datos.
Los enlaces dinámicos son enlaces unidireccionales que se configuran a partir del
origen en el tipo de datos de destino.
Enlace por filtro
Un enlace por filtro es un tipo de enlace dinámico donde la relación entre dos
tipos de datos se especifica utilizando la sintaxis de filtro de enlace. La sintaxis de
filtro de enlace es la siguiente:
campo_destino = %campo_origen% [AND (campo_destino = %campo_origen%) ...]
Donde campo_destino es el nombre de un campo del tipo de datos de destino y
campo_origen es el nombre del campo en el tipo de datos de origen. Cuando se
llama a la función GetByLinks en una política, Netcool/Impact evalúa los
elementos de datos en el tipo de datos de destino y devuelve aquellos datos cuyo
valor de campo_destino sea igual al campo_origen especificado.
Si el valor de campo_origen es una serie, debe colocarlo entre comillas.
En los ejemplos siguientes se muestran los filtros de enlace válidos:
Location = ’%Name%’
(NodeID = %ID%) AND (Location = ’%Name%’)
Enlace por clave
Un enlace por clave es un tipo de enlace dinámico donde la relación entre dos
tipos de datos la especifica una expresión de clave foránea.
La expresión de clave foránea es el valor que debe tener el campo de clave en los
elementos de datos del tipo de datos de destino para que se consideren enlazados
al origen. La sintaxis de la expresión de clave foránea es el nombre o nombres de
los campos del tipo de datos de origen cuyo valor debe ser igual al campo de
clave del destino. Puede concatenar campos utilizando el operador de suma (+).
38
Netcool/Impact: Guía de soluciones
Cuando se llama a la función GetByLinks en una política, Netcool/Impact evalúa
los elementos de datos del tipo de datos de destino y devuelve estos elementos de
datos cuyos valores de campos de clave coinciden con la expresión de clave
especificada.
En los ejemplos siguientes se muestran las expresiones de clave válidas:
LastName
FirstName + " " + LastName
LastName + ", " + FirstName
Enlace por política
Un enlace por política es un tipo de enlace dinámico donde la relación entre dos
tipos de datos la especifica una política.
La política contiene la lógica que se utiliza para recuperar elementos de datos del
tipo de datos de destino. La política de enlaces especifica qué elementos de datos
se deben devolver estableciendo el valor de la variable DataItems.
Configuración de enlaces estáticos
Utilice este procedimiento para configurar un enlace estático.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Expanda el Origen de datos que contenga el tipo de datos interno que desee
enlazar.
3. Efectúe una doble pulsaciónen el tipo de datos o pulse el icono Editar de la
barra de herramientas para abrir el elemento de datos de origen que desee
enlazar.
Se abre un separador Editor de tipo de datos en el panel de trabajo principal.
4. Pulse el botón Enlaces para el elemento de datos con el que desea enlazar.
5. En la ventana Enlaces estáticos que se abre, seleccione el tipo de datos que
contiene los elementos de datos con los que desea enlazar.
6. Seleccione el elemento de datos con el que desea enlazar desde la lista de
elementos de datos que aparece.
Configuración de enlaces dinámicos
Puede configurar un enlace dinámico por filtro, por clave y por política.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Expanda el Origen de datos que contenga el tipo de datos interno que desee
enlazar.
3. Efectúe una doble pulsaciónen el tipo de datos o pulse el icono Editar de la
barra de herramientas para abrir el tipo de datos que desee utilizar como
origen del enlace.
4. En el separador del Editor de tipo de datos, seleccione Enlaces dinámicos en el
Editor de tipo de datos.
Capítulo 2. Trabajar con modelos de datos
39
5. En función del tipo de enlace que desee crear, pulse el botón Nuevo enlace por
filtro, Nuevo enlace por clave o Enlace por política.
Con ello se abrirá una ventana de editor de enlaces nueva.
Consejo: Para crear un enlace por política nuevo, deberá desplazarse hasta
que se visualice el área Enlace por política.
6. Seleccione el tipo de datos de la lista Tipos de datos de destino.
7. Seleccione el tipo de enlace expuesto en la lista Tipo de enlace expuesto.
8. En función del tipo de enlace que está creando, teclee el filtro, la expresión de
clave o seleccione una política.
v Para un enlace por filtro, especifique la sintaxis de filtro para el enlace en el
campo Filtrar en tipo de datos de destino. Por ejemplo: Location =
’%Facility%’.
v Para un enlace por clave, especifique la expresión de clave en el campo
Expresión de clave foránea. Por ejemplo: FirstName + ’ ’ + LastName.
v Para un enlace por política, seleccione la política de enlace en la lista Política
que se ejecutará para buscar enlaces.
9. Pulse Aceptar.
Utilización de orígenes de datos
Cuando diseñe la solución, debe crear un origen de sucesos para cada una de las
aplicaciones en las que desee realizar la supervisión de sucesos y puede crear
servicios de lector de sucesos y asociarlos con el origen del suceso.
Normalmente, una solución utiliza un único origen de sucesos. Este origen de
sucesos es con mucha frecuencia una base de datos de ObjectServer.
Visión general de los orígenes de sucesos
Un origen de sucesos es un tipo especial de origen de datos que representa una
aplicación que almacena y gestiona sucesos, siendo la aplicación más común la
base de datos ObjectServer.
Un suceso es un conjunto de datos que representa un estado o una actividad de
una red. La estructura y el contenido de un suceso varían en función del
dispositivo, sistema o aplicación que ha generado el suceso pero en la mayoría de
casos, los sucesos son alertas de Netcool/OMNIbus.
El instalador crea automáticamente un origen de sucesos de ObjectServer
predeterminado, defaultobjectserver. Este origen de sucesos se configura utilizando
la información que proporciona durante la instalación. También puede utilizar
otras aplicaciones como orígenes de sucesos no de ObjectServer.
Después de establecer un origen de sucesos, no es necesario gestionarlo
activamente a menos que cambie el diseño de la solución pero, si es necesario,
puede utilizar la interfaz gráfica de usuario para modificar o suprimir orígenes de
sucesos.
Orígenes de sucesos del ObjectServer
Los orígenes de sucesos más comunes son orígenes de sucesos de ObjectServer que
representan instancias de la base de datos del ObjectServer de Netcool/OMNIbus.
40
Netcool/Impact: Guía de soluciones
Los sucesos del ObjectServer son alertas almacenadas en la tabla alerts.status de
la base de datos. Estas alertas tienen un conjunto predefinido de campos de alertas
que se pueden complementar mediante los campos adicionales que defina.
Los orígenes de sucesos de ObjectServer se supervisan mediante un servicio de
lector de sucesos de OMNIbus. El servicio de lector de sucesos consulta el
ObjectServer a intervalos y recupera los sucesos nuevos, actualizados o suprimidos
que coinciden con sus condiciones de filtro predefinidas. El lector de sucesos pasa
cada suceso al motor de política para su proceso.
Orígenes de sucesos que no son del ObjectServer
Los orígenes de sucesos que no son ObjectServer representan instancias de otras
aplicaciones, como por ejemplo bases de datos externas o sistemas de mensajería,
que proporcionan sucesos a Netcool/Impact.
Los sucesos que no son ObjectServer pueden adoptar una gran variedad de
formas, en función de la naturaleza del origen de sucesos. Para orígenes de sucesos
de bases de datos SQL, un suceso puede ser el contenido de una fila de una tabla.
Para un origen de sucesos del sistema de mensajería, un suceso puede ser el
contenido de un mensaje.
Los orígenes de sucesos no de ObjectServer se supervisan mediante un servicio de
escucha de sucesos. El servicio de escucha de sucesos recibe de manera pasiva
sucesos del origen de sucesos y a continuación los pasa al motor de política para
su proceso.
El servicio DatabaseEventReader supervisa orígenes de datos que no son de
ObjectServer. El servicio de lector de sucesos de base de datos consulta el origen
de datos SQL a intervalos y recupera los sucesos nuevos o actualizados que
coinciden con sus condiciones de filtro predefinidas. El lector de sucesos de base
de datos pasa cada suceso al motor de política para su proceso.
Arquitectura de un origen de sucesos
En este diagrama se muestra cómo los orígenes de sucesos interactúan con
orígenes de sucesos y escuchas de sucesos con sus aplicaciones de gestión de
sucesos subyacentes.
Capítulo 2. Trabajar con modelos de datos
41
Figura 3. Arquitectura de un origen de sucesos
Configuración de orígenes de sucesos ObjectServer
Utilice este procedimiento para configurar un origen de sucesos de ObjectServer.
Procedimiento
v Obtener la información de conexión del ObjectServer
Esta información es el nombre de host o dirección IP del sistema host y el
número de puerto del ObjectServer. El número de puerto predeterminado del
ObjectServer es 4100.
v Cree y configure el origen de sucesos.
Para obtener más información, consulte “Configuración del origen de datos de
ObjectServer predeterminado” en la publicación Guía de administración.
v Después de crear el origen de sucesos, puede crear y configurar un servicio de
lector de sucesos asociado.
Para obtener más información sobre cómo crear y configurar un servicio de
lector de sucesos, consulte la publicación Guía de la interfaz de usuario.
42
Netcool/Impact: Guía de soluciones
Capítulo 3. Trabajar con servicios
Trabajar con servicios significa configurar servicios predefinidos y crear y
configurar servicios definidos por el usuario.
Visión general de servicios
Los servicios realizan muchas de las funciones asociadas con Servidor Impact,
incluidas la supervisión de orígenes de sucesos, el envío y recepción de correo
electrónico y la activación de políticas.
El servicio más importante es el lector de sucesos de OMNIbus, que puede
utilizarse para supervisar un ObjectServer con respecto a los sucesos nuevos,
actualizados o suprimidos. El procesador de sucesos, que procesa los sucesos
recuperados de los lectores y escuchas, también es importante para el
funcionamiento de Netcool/Impact.
Los servicios internos controlan los procesos estándar de la aplicación y coordinan
controlan las tareas realizadas, por ejemplo:
v Recibir sucesos del ObjectServer y otras bases de datos externas
v Ejecutar políticas
v Responder y dar prioridad a las alertas
v Enviar y recibir correos electrónicos y mensajes instantáneos
v Manejar errores
Algunos servicios internos tienen valores predeterminados, que puede habilitar en
lugar de configurar sus propios servicios o además de crear sus propios servicios.
Para algunos de los servicios internos básicos, sólo es necesario especificar si desea
grabar el registro del servicio en un archivo. Para otros servicios, debe añadir
información como, por ejemplo, el puerto, host y los datos de inicio.
Los servicios definidos por el usuario son servicios que el usuario puede crear para
utilizarlos con una política específica.
Generalmente, los servicios se configuran una sola vez, al diseñar la solución.
Después de ello, no es necesario gestionar activamente los servicios a menos que
modifique el diseño de la solución.
Para configurar servicios, primero debe determinar que funcionalidad de servicio
necesita utilizar en la solución. A continuación, cree u configure los servicios
necesarios mediante la GUI. Después de configurar los servicios, puede iniciarlos y
detenerlos y gestionar los registros de servicio.
Servicios predefinidos
Los servicios predefinidos son servicios que se crean automáticamente al instalar
Netcool/Impact. Puede configurar los servicios predefinidos, pero no puede crear
nuevas instancias de los servicios predefinidos y no puede suprimir las existentes.
Estos servicios están predefinidos:
v Procesador de sucesos
© Copyright IBM Corp. 2006, 2014
43
v
v
v
v
Remitente de correo electrónico
Activador de políticas en hibernación
Registrador de política
Gestor de línea de mandatos
Servicios definidos por el usuario
Los servicios definidos por el usuario son servicios que puede crear, modificar y
suprimir. También puede utilizar la instancia predeterminada de estos servicios que
se crea durante la instalación.
Puede crear servicios definidos por el usuario utilizando los valores
predeterminados que se almacenan en el repositorio global o seleccionarlos de una
lista en el panel de tareas de servicios del panel de navegación. Todos los servicios
definidos por el usuario se listan en el panel de servicios, donde puede iniciar y
detenerlos, del mismo modo que con los servicios internos. Puede añadir estos
servicios a un proyecto como miembros del proyecto.
Estos servicios están definidos por el usuario:
v Lectores de sucesos
v Escuchas de sucesos
v Lectores de correo electrónico
v Activadores de política
servicio del lector de sucesos de OMNIbus
Los lectores de sucesos de OMNIbus son servicios que supervisan un origen de
sucesos ObjectServer de Netcool/OMNIbus con respecto a las alertas nuevas,
actualizadas y suprimidas y luego ejecutan políticas cuando la información de las
alertas coincide con las condiciones de filtro que el usuario ha definido.
El servicio del lector de sucesos utiliza la información del host y de puerto de un
origen de datos de ObjectServer especificado, de modo que pueda conectarse con
un ObjectServer para sondear sucesos nuevos y actualizados y almacenarlos en
una cola. El servicio de procesador de sucesos solicita los sucesos del lector de
sucesos. Cuando un lector de sucesos descubre alertas nuevas, actualizadas o
suprimidas en ObjectServer, las recupera y las envía a una cola de sucesos. Allí, el
suceso espera a que lo maneje el procesador de sucesos.
Este servicio se configura definiendo un número de filtros de restricción que
coinciden los sucesos de entrada y pasa los sucesos coincidentes a las políticas
adecuadas. El servicio puede contener varios filtros de restricción, cada uno de los
cuales desencadena una política diferente desde la misma corriente de sucesos o
puede desencadenar una sola política.
Puede configurar un servicio de lector de sucesos para encadenar varias políticas
conjuntamente de modo que se ejecuten de forma secuencial cuando las
desencadena un suceso del lector de sucesos.
Importante: antes de crear un servicio de lector de sucesos de OMNIbus, debe
disponer de un origen de datos ObjectServer válido al que se conectará el lector de
sucesos para sondear los sucesos nuevos y actualizados.
44
Netcool/Impact: Guía de soluciones
Arquitectura del lector de sucesos de OMINbus
Este diagrama muestra la relación entre Netcool/Impact, un lector de sucesos de
OMNIbus y un ObjectServer.
Figura 4. Arquitectura de lector de sucesos
Proceso del lector de sucesos de OMNIbus
Las fases del proceso de lector de sucesos de OMNIbus son inicio, sondeo de
sucesos, consulta de sucesos, notificación de sucesos suprimidos y colocación en
cola de sucesos.
Inicio Cuando se inicia el lector de sucesos, éste lee sucesos utilizando el valor de
Serial o StateChange utilizado antes de concluirse. Para leer todos los
sucesos durante el inicio, pulse Borrar estado.
Sondeo de sucesos
Durante la fase de sondeo de sucesos, el lector de sucesos de OMNIbus
consulta el ObjectServer a intervalos para ver si hay sucesos nuevos y no
procesados. Puede establecer el intervalo de sondeo al configurar el lector
de sucesos.
Consulta de sucesos
Cuando el lector de sucesos de OMNIbus consulta ObjectServer, ya sea
durante el inicio o a intervalos, al realizar sondeos en busca de sucesos, lee
el archivo de estado, recupera sucesos nuevos o actualizados y registra el
archivo de estado.. Para obtener más información, consulte “Consulta de
sucesos” en la página 46.
Notificación de sucesos suprimidos
Si el lector de sucesos de OMNIbus está configurado para ejecutar una
política cuando se suprima un suceso del ObjectServer, estará a la escucha
del ObjectServer mediante la interfaz IDUC para ver si hay notificación de
alertas suprimidas. La notificación de supresión IDUC incluye los datos de
campos de sucesos para la alerta suprimida.
Colocación en cola de sucesos
Una vez que el lector de sucesos de OMNIbus ha recuperado los sucesos
nuevos o actualizados, o ha recibido los sucesos mediante la notificación
de supresión, compara los datos de los campos de los sucesos con su
conjunto de filtros. Para obtener más información, consulte “Colocación en
cola de sucesos” en la página 46.
Capítulo 3. Trabajar con servicios
45
Consulta de sucesos
Cuando el lector de sucesos de OMNIbus consulta ObjectServer, ya sea durante el
inicio o a intervalos, al realizar sondeos en busca de sucesos, lee el archivo de
estado, recupera sucesos nuevos o actualizados y registra el archivo de estado.
Lectura del archivo de estado
El archivo de estado es un archivo de texto que utiliza el lector de sucesos
de OMNIbus para copiar en la memoria caché información de estado sobre
el último suceso leído en el ObjectServer. El lector de sucesos lee el archivo
de estado para buscar el valor de Serial o StateChange del último suceso
de lectura. Para obtener más información, consulte “Lectura del archivo de
estado”.
Recuperación de sucesos nuevos o actualizados
El lector de sucesos se conecta al ObjectServer y recupera sucesos nuevos o
actualizados que se han producido durante el último suceso de lectura.
Durante esta fase, el lector de sucesos recupera todos los sucesos nuevos o
actualizados del ObjectServer, utilizando información del archivo de estado
para especificar el subconjunto correcto de sucesos.
Grabación del archivo de estado
Después de que el lector de sucesos recupere los sucesos del ObjectServer,
copiará en memoria caché el valor de Serial o StateChange del último
suceso procesado.
Lectura del archivo de estado:
El archivo de estado es un archivo de texto que utiliza el lector de sucesos de
OMNIbus para copiar en la memoria caché información de estado sobre el último
suceso leído en el ObjectServer.
Si el lector de sucesos está configurado para obtener sólo nuevos sucesos del
ObjectServer, el archivo de estado contiene el valor Serial del último suceso leído
en el ObjectServer. Si el lector de sucesos está configurado para obtener los sucesos
nuevos y actualizados del ObjectServer, el archivo contiene el valor StateChange
del último suceso leído.
El lector de sucesos lee el contenido del archivo de estado siempre que sondea el
ObjectServer y pasa el valor de Serial o StateChange como parte de la consulta.
Colocación en cola de sucesos
Una vez que el lector de sucesos de OMNIbus ha recuperado los sucesos nuevos o
actualizados, o ha recibido los sucesos mediante la notificación de supresión,
compara los datos de los campos de los sucesos con su conjunto de filtros.
Si el suceso coincide con uno o más filtros, el lector de sucesos coloca el suceso en
la cola de sucesos con un puntero que apunta a la política correspondiente. Una
vez que los sucesos se encuentran en la cola de sucesos, pueden ser seleccionados
por el servicio de procesador de sucesos. El procesador de sucesos pasa los sucesos
a las políticas correspondientes al motor de política para su proceso.
Configuración del lector de sucesos de OMNIbus
Puede configurar las propiedades siguientes de un lector de sucesos de OMNIbus.
v Nombre del lector de sucesos
v Origen de sucesos ObjectServer que el lector de sucesos debe supervisar
v Intervalo con el que el lector de sucesos sondeará ObjectServer
46
Netcool/Impact: Guía de soluciones
v
v
v
v
v
Campos de suceso que desea recuperar de ObjectServer
Correlación de sucesos
Bloqueo de sucesos
Orden en el que el lector de sucesos recupera los sucesos de ObjectServer
Opciones de inicio, registro de servicio e informes
Separador Valores generales del servicio de lector de sucesos
de OMNIbus
Utilice esta información para configurar los valores generales del servicio de lector
de sucesos de OMNIbus.
Tabla 16. Servicio de lector de sucesos - separador Valores generales
Elemento de tabla
Descripción
Nombre de servicio
Escriba un nombre exclusivo para identificar el servicio.
Origen de datos
Seleccione un origen de datos OMNIbusObjectServer. El origen
de datos ObjectServer representa la instancia del ObjectServer de
Netcool/OMNIbus ObjectServer que el usuario supervisa
mediante este servicio. Puede utilizar el origen de datos de
ObjectServer predeterminado que se crea durante la instalación,
defaultobjectserver.
Intervalo de sondeo
El intervalo de sondeo en milisegundos con el que el lector de
sucesos sondea ObjectServer para saber si existen sucesos nuevos
o actualizados.
Seleccione o especifique la frecuencia con la que el servicio debe
sondear los sucesos del origen de sucesos. Si deja vacío este
campo, el lector de sucesos sondeará ObjectServer cada 3
segundos (3000 milisegundos).
Restringir campos:
Campos
Puede realizar este paso después de guardar el servicio
OMNIbusEventReader. Puede especificar los campos de suceso
que desea recuperar de ObjectServer. De forma predeterminada,
en las alertas se recuperan todos los campos. Para mejorar el
rendimiento del lector de sucesos de OMNIbus y reducir el
impacto sobre el rendimiento de ObjectServer, configure el lector
de sucesos de modo que recupere sólo los campos utilizados en
las políticas correspondientes.
Pulse el botón Campos para acceder a una lista con todos los
campos disponibles en el origen de datos de ObjectServer
seleccionado.
Puede disminuir el tamaño de la consulta seleccionando
únicamente los campos a los que necesita acceder en su política.
Pulse el botón Optimizar lista para implementar los cambios. El
botón Optimizar lista sólo se habilitará una vez guardado el
servicio OMNIbusEventReader.
Inicio: Automáticamente .Seleccione esta opción para iniciar automáticamente el servicio
al iniciarse el servidor
cuando se inicia el servidor. También puede iniciar y detener el
servicio desde la GUI.
Registro de servicio:
Escribir en archivo
Selecciónelo para escribir información de registro en un archivo.
Recopilar informes:
Habilitar
Selecciónelo para habilitar la recopilación de datos para los
informes de políticas.
Capítulo 3. Trabajar con servicios
47
Tabla 16. Servicio de lector de sucesos - separador Valores generales (continuación)
Elemento de tabla
Descripción
Borrar estado: Borrar
Al pulsar el botón Borrar estado, la información de Serial y
StateChange almacenada en el lector de sucesos se restablece en
0. El lector de sucesos recupera todos los sucesos de ObjectServer
durante el inicio y los coloca en la cola de sucesos para su
proceso. Si el lector de sucesos se configura para obtener los
sucesos actualizados, consulta ObjectServer para conocer todos
los sucesos donde StateChange >= 0. De lo contrario, consulta en
ObjectServer los sucesos en los que Serial > 0.
Sólo puede utilizar el botón Borrar estado sólo para borrar el
estado del lector de sucesos cuando se detiene el servicio. Al
pulsar en el botón cuando se está ejecutando el servicio no se
cambia el estado del lector de sucesos.
Borrar cola: Borrar
Pulse para borrar los sucesos no procesados.
Separador Correlación de sucesos del servicio de lector de
sucesos de OMNIbus
En el separador Correlación de sucesos se establecen los sucesos para activar
políticas cuando coinciden con un filtro.
Tabla 17. Pestaña Correlación de sucesos
Elemento de ventana
Descripción
Probar sucesos con todos los filtros
Seleccione esta opción para probar los
sucesos con todos los filtros y ejecutar las
políticas coincidentes.
Si un suceso coincide con más de un filtro,
se activarán todas las políticas que coincidan
con los criterios de filtro.
Detener la prueba tras la primera
coincidencia
48
Netcool/Impact: Guía de soluciones
Seleccione esta opción para detener la
prueba después de la primera política
coincidente y activar sólo la primera política
coincidente.
Tabla 18. Acciones en la pestaña Correlación de sucesos
Elemento de ventana
Descripción
Obtener sucesos actualizados
Seleccione esta opción para recibir sucesos
actualizados y nuevos sucesos de
ObjectServer. Todos los nuevos sucesos se
envían automáticamente. Consulte la
descripción del campo Ordenar por para
obtener más información.
Si no selecciona Obtener sucesos
actualizados, Netcool/Impact utiliza en su
lugar Serial. Puede configurar el servicio
OMNIbusEventReader para captar sólo
nuevos sucesos y para trabajar con un par
de migración tras error/restablecimiento de
ObjectServer en el archivo eventreader
.props.
Importante: Si se añaden propiedades al
archivo eventreader .props, se altera
temporalmente la selección o deselección del
recuadro de selección Obtener sucesos
actualizados.
v Si tiene previsto utilizar este enfoque en
un escenario de migración tras error de
ObjectServer, consulte la sección Gestión de
OMNIbusEventReader con un par de
ObjectServer para nuevos sucesos o
inserciones de la sección Resolución de
problemas.
v Si no selecciona Obtener sucesos
actualizados, Netcool/Impact utiliza el
campo Serie para realizar una consulta a
Netcool/OMNIbus. Serie es un campo de
incremento automático en
Netcool/OMNIbus y tiene un límite
máximo antes de cambiar al pasar el
puntero por encima y restablecerse. Para
obtener información sobre cómo
configurar Netcool/Impact para manejar
cambios al pasar el ratón de Serie,
consulte la sección Gestión de cambios al
pasar el ratón de Serie en la sección
Resolución de problemas.
Obtener sucesos de estado
Seleccione esta opción para recibir los
sucesos de estado que el servicio
Autosupervisión inserta en ObjectServer.
Ejecutar política en supresiones
Seleccione esta opción si desea que el lector
de sucesos reciba notificación cuando se
supriman alertas de ObjectServer. A
continuación, seleccione en la lista Política la
política que desea ejecutar cuando se
produzca la notificación.
Política
Seleccione una política para que se ejecute
cuando se borren sucesos de ObjectServer.
Capítulo 3. Trabajar con servicios
49
Tabla 18. Acciones en la pestaña Correlación de sucesos (continuación)
Elemento de ventana
Descripción
Bloqueo de sucesos: habilitar
Seleccione esta opción si desea utilizar el
bloqueo de orden de sucesos y especifique la
expresión de bloqueo en el campo
Expresión.
El bloqueo de sucesos permite a un
procesador de sucesos de varias hebras
clasificar las alertas de entrada en función de
los valores de los campos de alertas
especificados y luego procesarlas
individualmente.
Con el bloqueo de sucesos habilitado, si
existe más de un suceso dentro de un valor
de bloqueo determinado, estos sucesos no se
procesan al mismo tiempo. Estos sucesos se
procesan en un orden específico en la cola.
Utilice el bloqueo de sucesos en las
situaciones en las que desee impedir que un
procesador de sucesos de varias hebras
intente acceder a un recurso individual
desde más de una instancia de una política
que se ejecutan simultáneamente.
Expresión
La expresión de bloqueo consta de uno o
más nombres de campos de alertas.
Para bloquear un solo campo, especifique el
nombre de campo, por ejemplo:
Node
Para bloquear más de un campo,
concaténelos con el signo +, por ejemplo:
Node+Severity
Si el valor de este campo es igual en los dos
sucesos, entonces se bloqueará un suceso y
la segunda hebra tendrá que esperar hasta
que haya finalizado la primera.
Correlación nueva
50
Netcool/Impact: Guía de soluciones
Pulse para añadir un filtro nuevo.
Tabla 18. Acciones en la pestaña Correlación de sucesos (continuación)
Elemento de ventana
Descripción
Ordenar por
Si desea ordenar los sucesos de entrada
recuperados de ObjectServer, especifique el
nombre de un campo de alerta o una lista
de campos separados por comas. El lector de
sucesos ordenará los sucesos entrantes en
orden ascendente según el contenido de este
campo.
Este campo o lista de campos es idéntico al
contenido de una cláusula ORDER BY de
una sentencia SQL. Si especifica un solo
campo, el lector de sucesos ordena los
sucesos de entrada por el valor del campo
especificado. Si especifica varios campos, los
sucesos se agrupan por contenido del primer
campo y luego se clasifican dentro de cada
grupo por contenido del segundo campo,
etc.
Por ejemplo, para clasificar los sucesos de
entrada por el contenido del campo Node,
especifique Node.
Para clasificar los sucesos por el contenido
del campo Node y luego por el contenido
del campo Summary, especifique Node,
Summary.
También puede especificar que el orden de
clasificación sea ascendente o descendente
utilizando las palabras clave ASC o DESC.
Por ejemplo, para clasificar los sucesos de
entrada por el contenido del campo Node
por orden ascendente, especifique lo
siguiente, Node ASC.
Tenga en cuenta que todos los sucesos
recuperados del servidor de objetos se
ordenan inicialmente por el campo Serial o
StateChange antes de que se realice
cualquier operación de clasificación
adicional. Si selecciona la opción Obtener
sucesos actualizados, consulte los recuadros
de selección Acciones de la sección
Correlación de sucesos de la ventana; los
sucesos se clasifican por el campo
StateChange. Si no se especifica esta opción,
los sucesos de entrada se clasifican por el
campo Serial.
Analizar tabla de correlación de sucesos
Pulse para analizar los filtros de la tabla
Correlación de sucesos.
Correlaciones
Las correlaciones de sucesos permiten especificar qué políticas desea ejecutar
cuando se recuperan determinados sucesos.
Capítulo 3. Trabajar con servicios
51
Cada correlación consta de un filtro que especifica el tipo de suceso y un nombre
de política. Debe especificar cómo mínimo una correlación de sucesos para que el
lector de sucesos funcione.
La sintaxis del filtro es la misma que la cláusula WHERE de una sentencia SQL
SELECT. Esta cláusula consta de una o más comparaciones que deben ser true a fin
de que se ejecute la política especificada. Para obtener más información sobre la
sintaxis de filtro SQL, consulte Guía de consulta de políticas.
En los ejemplos siguientes se muestran los filtros de correlaciones de sucesos.
AlertKey = ’El nodo no responde’
AlertKey = ’El nodo no responde al ping de red’ AND Node = ’ORA_Host_01’
Coincidencia de sucesos
Puede especificar si desea ejecutar sólo la primera política coincidente de las
correlaciones de sucesos o si desea ejecutar cada una de las políticas coincidentes.
Si selecciona ejecutar cada una de las políticas coincidentes, el lector de sucesos de
OMNIbus colocará un duplicado del suceso en la cola de sucesos para cada una de
las políticas coincidentes. El suceso se procesará tantas veces como filtros
coincidentes haya en el lector de sucesos.
Acciones
De forma predeterminada, el intermediario de sucesos supervisa la existencia de
nuevas alertas en ObjectServer, pero también puede configurarlo para que
supervise si hay alertas actualizadas y para que se le notifique cuando se suprima
una alerta.
Además, puede configurarlo para obtener todas las alertas no procesadas del
ObjectServer durante el inicio.
Bloqueo de sucesos
El bloqueo de sucesos permite categorizar un intermediario de sucesos de varias
hebras basado en los valores de los campos de alerta especificados y después
procesarlos en una categoría, uno por uno, según el orden en el que se enviaron a
ObjectServer.
El bloqueo de sucesos bloquea el orden en el que el intermediario de sucesos
procesa las alertas de cada categoría.
Recuerde: Cuando el bloqueo de sucesos está habilitado en el lector, los sucesos
que éste lee sólo se procesan en el servidor primario del clúster.
Puede utilizar el bloqueo de sucesos en situaciones donde desee conservar el orden
en el que se procesan los sucesos entrantes, o en situaciones en que desea evitar
que un procesador de sucesos multi-hebra intente acceder a un único recurso
desde más de una instancia de una política que estén simultáneamente en
ejecución.
Puede especificar la forma en la que el lector de sucesos categoriza las alertas
entrantes utilizando una expresión denominada expresión de bloqueo. La
expresión de bloqueo consta de uno o más nombres de campo de alerta
concatenados con un signo de suma (+) de la forma siguiente:
campo[+campo...]
52
Netcool/Impact: Guía de soluciones
Donde campo es el nombre de un campo de alerta de la tabla alerts.status de
ObjectServer.
Cuando un lector de sucesos recupera alertas del ObjectServer, evalúa la expresión
de bloqueo para cada alerta entrante y la categoriza según el contenido de los
campos de la alerta de la expresión.
Por ejemplo, cuando se utiliza la expresión de bloqueo Nodo, el intermediario de
sucesos categoriza todas las alertas entrantes en función del valor del campo Nodo
de la alerta y, a continuación, los procesa individualmente en una categoría a fin
de que se envíen al ObjectServer.
En el ejemplo siguiente:
Nodo+ClaveAlerta
El intermediario de sucesos categoriza todas las alertas entrantes en función de los
valores concatenados en los campos Nodo y ClaveAlerta. En este ejemplo, una
alerta cuyo valor de Nodo es Nodo1 y cuyo valor de ClaveAlerta es 123456 se
categorizan por separado.
Orden de sucesos
En primer lugar el lector realiza la ordenación en función del valor de StateChange
o Serial, dependiendo de si se utiliza o no Obtener actualizaciones.
Cada suceso tiene un valor de Serial exclusivo, de forma que el campo Ordenar
por se ignora. En instancias donde haya más de un suceso con el mismo
StateChange, el lector utiliza el campo Ordenar por para ordenar los sucesos
después de que se hayan ordenado en orden ascendente por StateChange.
Servicio de escucha de sucesos de base de datos
El servicio de escucha de sucesos de base de datos supervisa un origen de sucesos
Oracle para ver si hay sucesos nuevos, actualizados y suprimidos.
Este servicio únicamente funciona con las bases de datos Oracle. Cuando el
servicio recibe los datos, evalúa el suceso con los filtros y políticas especificados
para el servicio y envía el suceso a las políticas coincidentes. El servicio escucha
asíncronamente los sucesos generados por un servidor de bases de datos Oracle y
luego ejecuta una o varias políticas en respuesta.
El servicio se configura mediante la GUI. Las propiedades de configuración
permiten especificar una o varias políticas que deben ejecutarse cuando el escucha
recibe sucesos entrantes del servidor de bases de datos.
Configuración del servidor de bases de datos
Para poder utilizar el escucha de sucesos de base de datos, debe configurar el
cliente de bases de datos e instalarlo en el servidor de bases de datos Oracle.
Acerca de esta tarea
El cliente de bases de datos es el componente que envía los sucesos desde el
servidor de bases de datos a Netcool/Impact. Constan de un conjunto de objetos
de esquema Java de Oracle y archivos de propiedades relacionados. Cuando instala
el Servidor Impact, el instalador copia un archivo tar que contiene los archivos de
programa cliente en el sistema local.
Capítulo 3. Trabajar con servicios
53
Siga estos pasos para configurar el servidor de base de datos:
Procedimiento
1. Copiar el archivo tar de cliente en el sistema donde Oracle está en ejecución y
extraer su contenido.
a. Copie el archivo tar de cliente, $IMPACT_HOME/install/agents/
oracleclient.tar, de Netcool/Impact en un directorio temporal en el
sistema en el que Oracle se está ejecutando.
b. Extraiga el contenido del tar mediante el mandato tar de UNIX o mediante
un programa de utilidad de archivado de Windows, como por ejemplo
WinZip.
2. Edite el archivo propiedades nameserver en el lado del cliente de la base de
datos.
El archivo tar de cliente contiene el archivo nameserver.props que el cliente de
base de datos utiliza para determinar los detalles de conexión de NameServer.
Para obtener información sobre cómo configurar este archivo, consulte “Edición
del archivo nameserver.props para el cliente de base de datos”.
3. Opcional: Edite el archivo de propiedades de escucha.
El archivo tar de cliente contiene impactdblistener.props con valores
adicionales para el cliente de base de datos. Para obtener información sobre
cómo configurar este archivo, consulte “Edición de archivo de propiedades de
escucha” en la página 55.
4. Instalar los archivos de cliente en el servidor de bases de datos utilizando el
programa de utilidad loadjava de Oracle.
Oracle proporciona el programa de utilidad $ORACLE_HOME/bin/loadjava que
puede utilizar para instalar los archivos de cliente en el servidor de base de
datos. Para obtener información sobre cómo instalar los archivos de cliente en
el servidor de base de datos, consulte “Instalación de los archivos cliente en
Oracle” en la página 56.
5. Otorgar permisos de base de datos.
Para que el escucha de sucesos de base de datos funcione, debe otorgar un
determinado conjunto de permisos en el servidor de bases de datos Oracle..
Para obtener más información sobre cómo otorgar permisos de base de datos,
consulte “Cómo otorgar permisos de base de datos” en la página 56.
Edición del archivo nameserver.props para el cliente de base de
datos
El archivo tar de cliente contiene el archivo nameserver.props que el cliente de
base de datos utiliza para determinar los detalles de conexión de NameServer.
El cliente de bases de datos utiliza el servidor de nombres para buscar la instancia
primaria del Servidor Impact y conectarse a ella.
Restricción: En las configuraciones en clúster de Netcool/Impact, el escucha de
sucesos de base de datos se ejecuta sólo en el servidor primario.
En el ejemplo siguiente se muestra un ejemplo del archivo nameserver.props que
el cliente de base de datos puede utilizar para conectarse a una configuración de
un único servidor de NameServer.
nameserver.0.host=NCI1
nameserver.0.port=9080
nameserver.0.location=/nameserver/services
54
Netcool/Impact: Guía de soluciones
nameserver.userid=tipadmin
nameserver.password=tippass
nameserver.count=1
En este ejemplo, NameServer está ubicado en NCI1 Servidor Impact y se está
ejecutando en el puerto predeterminado, 9080. El usuario y la contraseña de
NameServer tienen los valores predeterminados tipadmin y tippass.
En el ejemplo siguiente se muestra un ejemplo del archivo nameserver.props que
el cliente de base de datos puede utilizar para conectar con un clúster que consta
de dos instancias de NameServer.
nameserver.0.host=NCI1
nameserver.0.port=9080
nameserver.0.location=/nameserver/services
nameserver.1.host=NCI2
nameserver.1.port=9080
nameserver.1.location=/nameserver/services
nameserver.userid=tipadmin
nameserver.password=tippass
nameserver.count=2
En este ejemplo, los NameServers están ubicados en sistemas llamados Servidores
Impact NCI1 y NCI2 y se ejecutan en el puerto predeterminado, 9080.
Edición de archivo de propiedades de escucha
El archivo tar de cliente contiene impactdblistener.props con valores adicionales
para el cliente de base de datos.
Edite este archivo de forma que contenga el nombre correcto del clúster de
Servidor Impact. Además, puede cambiar las propiedades de depuración y
delimitador.
En la Tabla 19 se muestran las propiedades del archivo de propiedades del
escucha:
Tabla 19. Archivo de propiedades de escucha de cliente de base de datos
Propiedad
Descripción
impact.cluster.name
Nombre del clúster de Servidor Impact
donde se ejecuta el escucha de sucesos de
base de datos. El valor predeterminado de
esta propiedad es NCICLUSTER.
impact.dblistener.debug
Especifica si se debe ejecutar el cliente de
bases de datos en modalidad de depuración.
El valor predeterminado de esta propiedad
es true.
impact.dblistener.delim
Especifica el carácter de delimitador que
separa pares nombre/valor en el elemento
VARRAY enviado por procedimientos
almacenados Java al cliente de bases de
datos. El valor predeterminado de esta
propiedad es el carácter de barra vertical (|).
No puede utilizar los dos puntos (:) como
delimitador.
Capítulo 3. Trabajar con servicios
55
Instalación de los archivos cliente en Oracle
Oracle proporciona el programa de utilidad $ORACLE_HOME/bin/loadjava que puede
utilizar para instalar los archivos de cliente en el servidor de base de datos.
Antes de empezar
Si está migrando a Netcool/Impact 6.1.1, elimine los archivos Java y de
propiedades existentes. Para eliminar los archivos existentes, utilice el mandato
siguiente:
dropjava
-user nombre_usuario/contraseña <archivo>
nombre_usuario, y contraseña son un nombre de usuario y una contraseña válidos
para un usuario cuyo esquema contiene los recursos de base de datos en los que se
ejecutan los procedimientos almacenados Java.
Procedimiento
1. Navegue al directorio ORACLE_HOME/bin.
2. Instale los archivos de propiedades y jar de cliente.
a. Utilice el mandato siguiente para instalar el archivo nameserver.jar:
loadjava -user nombre_usuario/contraseña -resolve nameserver.jar
b. Utilice el mandato siguiente para instalar el archivo impactdblistener.jar:
loadjava -user nombre_usuario/contraseña -resolve impactdblistener.jar
c. Utilice el mandato siguiente para instalar el archivo nameserver.props:
loadjava -user nombre_usuario/contraseña -resolve nameserver.props
d. Utilice el mandato siguiente para instalar el archivo
impactdblistener.props:
loadjava -user nombre_usuario/contraseña -resolve impactdblistener.props
Importante: Debe seguir este orden de instalación, de lo contrario loadjava no
podrá resolver referencias externas entre archivos e informará de errores
durante la instalación.
Cómo otorgar permisos de base de datos
Para que el escucha de sucesos de base de datos funcione, debe otorgar un
determinado conjunto de permisos en el servidor de bases de datos Oracle.
Procedimiento
1. Otorgue los permisos entrando los mandatos siguientes en un indicador de
mandatos de Oracle:
exec dbms_java.grant_permission( ’SCHEMA’,’SYS:java.net.SocketPermission’,
’nombre_host:puerto’,’connect,resolve’ )
/
exec dbms_java.grant_permission( ’SCHEMA’,’SYS:java.net.SocketPermission’,
’nombre_host:puerto_escucha’,’connect,resolve’ )
/
exec dbms_java.grant_permission( ’SCHEMA’, ’SYS:java.lang.RuntimePermission’,
’shutdownHooks’ , ’’);
/
exec dbms_java.grant_permission( ’SCHEMA’,’SYS:java.util.logging.LoggingPermission’
,’control’, ’’ );
/
exec dbms_java.grant_permission(’SCHEMA’, ’SYS:java.util.PropertyPermission’,
’*’, ’read, write’)
/
exec dbms_java.grant_permission( ’SCHEMA’, ’SYS:java.lang.RuntimePermission’,
56
Netcool/Impact: Guía de soluciones
’getClassLoader’, ’’ )
/
exec dbms_java.grant_permission( ’SCHEMA’,’SYS:java.net.SocketPermission’,
’nombre_host:40000’,’connect,resolve’ );
SCHEMA es el nombre del esquema de base de datos, nombre_host es el nombre
del host en el que está ejecutando el Servidor Impact, puerto es el puerto HTTP
del servidor y puerto_escucha es el puerto utilizado por el escucha de sucesos de
base de datos.
2. Opcional: Es posible que deba otorgar permisos de socket a puertos adicionales
para Oracle.
Por ejemplo, los dos números de puerto siguientes en la secuencia de
asignación para utilizarlos al conectarse al servicio de escucha de sucesos de
base de datos. Puede ajustar el puerto de comunicación en Servidor Impact
para que el cliente de Oracle pueda otorgar permisos para conectar con
Servidor Impact en ese puerto utilizando la propiedad impact.server.rmiport.
Por ejemplo:
IMPACT_HOME/etc/<servername>_server.props
impact.server.rmiport=50000
Otorgue el permiso para conectar con este puerto en la base de datos de Oracle
(puerto 50000 en el ejemplo), de lo contrario Servidor Impact se inicia en un
puerto aleatorio. Debe otorgar permisos para un puerto diferente cada vez que
se reinicie el Servidor Impact.
Ventana de configuración del servicio de escucha de sucesos
de base de datos
El escucha de sucesos de base de datos se configura estableciendo sucesos para
desencadenar políticas cuando coinciden con un filtro.
Tabla 20. Valores de correlación de sucesos para la ventana de configuración de servicio
de escucha de sucesos de base de datos
Elemento de ventana
Descripción
Probar sucesos con todos los filtros
Pulse este icono si, cuando un suceso
coincide con más de un filtro, desea activar
todas las políticas que coinciden con los
criterios de filtro.
Detener la prueba tras la primera
coincidencia
Pulse este icono si desea activar sólo la
primera política coincidente.
Puede elegir probar los sucesos con todos
los filtros y ejecutar las políticas coincidentes
o detener la prueba después de la primera
política coincidente.
Correlación nueva: Nueva
Pulse este icono para crear un filtro de
sucesos.
Analizar tabla de correlación de sucesos
Pulse este icono para visualizar los conflictos
en las correlaciones de filtros que ha
establecido para este servicio.
Inicio: Automáticamente al iniciarse el
servidor
.Seleccione esta opción para iniciar
automáticamente el servicio cuando se inicia
el servidor. También puede iniciar y detener
el servicio desde la GUI.
Registro de servicio: Escribir en archivo
Selecciónelo para escribir información de
registro en un archivo.
Capítulo 3. Trabajar con servicios
57
Envío de sucesos de base de datos
Realice estas tareas para configurar la base de datos para que envíe sucesos.
v Crear una especificación de llamada que publique la función sendEvent() desde
la biblioteca de cliente de bases de datos.
v Crear desencadenantes que llamen al procedimiento almacenado resultante.
Antes de crear estos objetos en la base de datos, debe comprender qué clases de
sucesos de base de datos desea enviar y qué condiciones harán que se envíen. Por
ejemplo, si desea enviar un suceso a Netcool/Impact cada vez que se inserta una
fila en una tabla, debe conocer la identidad de la tabla, el subconjunto de
información de fila que se debe enviar como parte del suceso y el nombre de la
condición (por ejemplo, After insert) que desencadena la operación.
Para obtener más información sobre los procedimientos almacenados Java,
especificaciones de llamada y desencadenantes, consulte la publicación Oracle Java
Stored Procedure Developer's Guide.
Creación de la especificación de llamada
El cliente de bases de datos expone una función denominada sendEvent() que
permite a los objetos de esquema de Oracle (en este caso, desencadenantes) enviar
sucesos a Netcool/Impact.
La función sendEvent() se encuentra en la clase
com.micromuse.response.service.listener.database. DatabaseListenerClient,
que ha compilado y cargado al instalar el cliente en el servidor de bases de datos.
La función tiene la sintaxis siguiente:
sendEvent(java.sql.Array x)
Donde cada elemento de la matriz x es una serie que contiene un par
nombre/valor en el suceso.
Para que los objetos de Oracle llamen a esta función, debe crear una especificación
de llamada que la publique en la base de datos como procedimiento almacenado.
En el ejemplo siguiente se muestra una especificación de llamada que publica
sendEvent() como un procedimiento denominado test_varray_proc:
CREATE OR REPLACE PROCEDURE test_varray_proc(v_array_inp db_varray_type)
AS LANGUAGE JAVA
NAME
’com.micromuse.response.service.listener.database.DatabaseListenerClient.
sendEvent(java.sql.Array)’;
/
En este ejemplo, db_varray_type es un elemento VARRAY definido por el usuario
que se puede describir utilizando la sentencia siguiente:
CREATE TYPE db_varray_type AS VARRAY(30) OF VARCHAR2(100);
Esta especificación de llamada y el tipo VARRAY se utilizan en ejemplos en otros
lugares de este capítulo.
Cuando se llama el procedimiento publicado con esta especificación de llamada, se
le pasa un VARRAY de Oracle en el que cada elemento es una serie que contiene una
pareja de nombre/valor en el suceso. El nombre y valor en la serie se separan
mediante un carácter de barra vertical (|) u otro carácter según se haya
especificado al configurar el cliente de bases de datos.
58
Netcool/Impact: Guía de soluciones
Creación de desencadenantes
Puede crear desencadenantes para sucesos DML, sucesos DDL, sucesos del sistema
y sucesos de usuario.
Desencadenantes de sucesos DML:
Los sucesos DML se envían a Netcool/Impact cuando la base de datos realiza
operaciones que cambian filas en una tabla.
Estos incluyen los mandatos SQL INSERT, UPDATE y DELETE.
Puede configurar la base de datos para enviar sucesos DML creando
desencadenantes que estén asociados con estas operaciones. Con mucha frecuencia
estos desencadenantes toman datos de campos de las filas que se están cambiando
en ese momento y los pasan al cliente de bases de datos utilizando la
especificación de llamada que ha creado anteriormente. De esta forma, la base de
datos notifica las inserciones, actualizaciones y supresiones a Netcool/Impact para
que se procesen como sucesos.
Cuando el cliente de bases de datos recibe los datos de los campos del
desencadenante, realiza una operación SELECT de la tabla para determinar el tipo
de datos subyacente de cada campo. Debido a que la fila correspondiente se está
cambiando en ese momento, es probable que Oracle notifique un error de tabla en
mutación (ORA-04091) cuando el cliente de bases de datos realice SELECT.
Para evitar recibir este error, los desencadenantes DML deben crear en primer
lugar una copia de los datos de fila y a continuación utilizar esta copia al enviar el
suceso.
El ejemplo siguiente contiene declaraciones de tipo de tabla, declaraciones de
variable y definiciones de desencadenante que crean una copia temporal de datos
de fila. Puede modificar este ejemplo para su propio uso. Este ejemplo utiliza el
tipo db_varray_type que se describe en la sección anterior. Los desencadenantes de
este ejemplo se ejecutan en respuesta a una tabla denominada dept.
Este ejemplo contiene:
v Declaración de tipo para deptTable, que es una tabla anidada de
db_varray_type.
v Declaración de variable para dept1, que es una tabla de tipo deptTable. Esta
tabla almacena la copia de los datos de fila.
v Declaración de variable de emptyDept, que es una segunda tabla de tipo
deptTable. Esta tabla está vacía y se utiliza para restablecer dept1.
v Definición de desencadenante para dept_reset, que se utiliza para restablecer
dept1.
v Definición de desencadenante para dept_after_row, que llena dept1 con datos de
campo de las filas cambiadas.
v Definición de desencadenante para dept_after_stmt, que realiza un bucle a
través de las filas copiadas y envía los datos de campos al cliente de bases de
datos utilizando la especificación de llamada definida en la sección anterior.
La definición de desencadenante de dept_after_row está intencionadamente
incompleta en este ejemplo, porque varía en función de si gestiona operaciones
INSERT, UPDATE o DELETE.
Capítulo 3. Trabajar con servicios
59
Esto es una definición de ejemplo para este desencadenante:
CREATE OR REPLACE PACKAGE dept_pkg AS
/* deptTable es una tabla anidada de VARRAY que se enviará */
/* al cliente de bases de datos */
TYPE deptTable IS TABLE OF db_varray_type INDEX BY BINARY_INTEGER;
/* dept1 almacenará el VARRAY real
dept1 deptTable;
/* emptyDept se utiliza para inicializar dept1 */
emptyDept deptTable;
end;
/
CREATE OR REPLACE TRIGGER dept_reset
BEFORE INSERT OR UPDATE OR DELETE ON dept
BEGIN
/* Inicializar dept1 */
dept_pkg.dept1 := dept_pkg.emptyDept;
end;
/
/*
/*
/*
/*
CREATE OR REPLACE TRIGGER dept_after_row
AFTER INSERT OR UPDATE OR DELETE ON dept
FOR EACH ROW
BEGIN
/* Este desencadenante ha quedado intencionadamente incompleto. */
/* Consulte los ejemplos de las secciones siguientes de este capítulo. */
end;
/
CREATE OR REPLACE TRIGGER dept_after_stmt
AFTER INSERT OR UPDATE OR DELETE ON dept
BEGIN
/* Realizar bucle a través de las filas de dept1 y enviar datos de campos */
/* a cliente de bases de datos utilizando proc. de llamada definido en */
/* sección anterior de este capítulo */
for i in 1 .. dept_pkg.dept1.count loop
test_varray_proc(dept_pkg.dept1(i));
end loop;
end;
/
Desencadenantes de sucesos de inserción:
Para enviar un suceso a Netcool/Impact cuando Oracle realice una operación
INSERT, en primer lugar debe crear un desencadenante que copie los datos de fila
insertados en una tabla temporal.
A continuación, debe utilizar otro desencadenante tal como se muestra en el
ejemplo para realizar un bucle a través de la tabla temporal y enviar los datos de
fila al cliente de bases de datos para su proceso.
Un desencadenante de inserción típico contiene una sentencia que llena un
elemento VARRAY con los datos de campos que se desean y a continuación asigna el
elemento VARRAY como una fila de la tabla temporal. Cada elemento de VARRAY
60
Netcool/Impact: Guía de soluciones
debe contener un conjunto de pares nombre/valor delimitados por caracteres que
el cliente de bases de datos convierte a formato de suceso antes de enviarlo a
Netcool/Impact. El carácter de delimitador predeterminado es el símbolo de barra
vertical (|).
La VARRAY debe contener un elemento para un campo denominado EVENTSOURCE.
Este campo lo utiliza el cliente de bases de datos para determinar la tabla donde se
ha originado el suceso de base de datos.
En el ejemplo siguiente se muestra una VARRAY típica para sucesos de inserción:
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’,
’DEPTNO | ’||:NEW.DEPTNO, ’LOC | ’||:NEW.LOC,
’DNAME | ’||:NEW.DNAME, ’IMPACTED | ’||:NEW.IMPACTED);
En este ejemplo, la VARRAY contiene un campo EVENTSOURCE y campos que contienen
valores derivados de la fila insertada, tal como están contenidos en el
pseudoregistro NEW pasado al desencadenante. El valor del campo EVENTSOURCE en
este ejemplo es la tabla dept del esquema SCOTT de Oracle.
En el ejemplo siguiente se muestra un desencadenante completo que copia nuevos
datos de fila en la tabla temporal dept1 en el paquete dept_pkg.
CREATE OR REPLACE TRIGGER dept_after_row
AFTER INSERT ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’, ’DEPTNO | ’||:NEW.DEPTNO,
’LOC | ’||:NEW.LOC, ’DNAME | ’||:NEW.DNAME,
’IMPACTED | ’||:NEW.IMPACTED);
end;
/
Para obtener un ejemplo completo que muestre cómo enviar un suceso de
inserción, consulte “Ejemplo de desencadenante de suceso de inserción” en la
página 64.
Desencadenantes de sucesos de actualización y supresión:
Puede enviar sucesos de actualización y supresión utilizando la misma técnica que
utiliza para enviar sucesos de inserción.
Sin embargo, al enviar sucesos de actualización y supresión debe obtener los
valores de fila utilizando el pseudoregistro OLD en lugar de NEW.
En el ejemplo siguiente se muestra un desencadenante que copia los datos de filas
actualizados en la tabla temporal dept1 del paquete dept_pkg.
CREATE OR REPLACE TRIGGER dept_after_row
AFTER UPDATE ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’,
’DEPTNO | ’||:OLD.DEPTNO, ’LOC | ’||:OLD.LOC,
’DNAME | ’||:OLD.DNAME, ’IMPACTED | ’||:OLD.IMPACTED);
end;
/
Capítulo 3. Trabajar con servicios
61
En el ejemplo siguiente se muestra un desencadenante que copia los datos de filas
suprimidos en la tabla temporal dept1.
CREATE OR REPLACE TRIGGER dept_after_row
AFTER DELETE ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’,
’DEPTNO | ’||:OLD.DEPTNO, ’LOC | ’||:OLD.LOC,
’DNAME | ’||:OLD.DNAME, ’IMPACTED | ’||:OLD.IMPACTED);
end;
/
Desencadenantes de sucesos DDL:
Los sucesos DDL se envían a Netcool/Impact cuando la base de datos realiza una
acción que cambia un objeto de esquema.
Estas acciones incluyen los mandatos SQL CREATE, ALTER y DROP.
Para enviar sucesos DDL, debe crear un desencadenante que llene un elemento
VARRAY con datos que describan la acción DDL y el objeto de base de datos
cambiado por la operación. A continuación, debe pasar el elemento VARRAY al
cliente de bases de datos para su proceso. Como con los sucesos DML, VARRAY
contiene un conjunto delimitado por caracteres de pares nombre/valor que el
cliente de bases de datos convierte a formato de suceso antes de enviarlo a
Netcool/Impact.
Los sucesos DDL requieren dos elementos VARRAY: EVENTSOURCE, como se describe
en la sección anterior, y TRIGGEREVENT. Normalmente, se llena el elemento
TRIGGEREVENT con el valor actual de Sys.sysevent.
En el ejemplo siguiente se muestra un VARRAY típico para sucesos DDL.
db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
En el ejemplo siguiente se muestra un desencadenante completo que envía un
suceso a Netcool/Impact antes de que Oracle ejecute un mandato CREATE.
CREATE OR REPLACE TRIGGER ddl_before_create
BEFORE CREATE
ON SCOTT.schema
DECLARE
my_before_create_varray db_varray_type;
BEGIN
my_before_create_varray :=
db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name,
’USERNAME | ’||Sys.login_user,’INSTANCENUM | ’||Sys.instancenum,
’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_before_create_varray);
end;
/
62
Netcool/Impact: Guía de soluciones
Desencadenantes de sucesos de sistema:
Se envían a Netcool/Impact sucesos del sistema cuando el servidor Oracle se
inicia, concluye o notifica un error a nivel del sistema.
Los sucesos del sistema sólo funcionan si el usuario que es propietario de los
desencadenantes correspondientes tiene privilegios SYSDBA (por ejemplo, el usuario
SYS).
Para enviar sucesos DDL, debe crear un desencadenante que llene un elemento
VARRAY con datos que describan la acción del sistema. A continuación, debe pasar el
elemento VARRAY al cliente de bases de datos para su proceso. Como con los
sucesos DDL, los sucesos del sistema requieren que se llene el elemento
TRIGGEREVENT, normalmente con el valor de Sys.sysevent.
En el ejemplo siguiente se muestra un elemento VARRAY típico para sucesos del
sistema.
db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’ OBJECTNAME | ’||Sys.database_name,
’ USER_NAME | ’||Sys.login_user,
’ INSTANCE_NUM | ’||Sys.instance_num);
En el ejemplo siguiente se muestra un desencadenante completo que envía un
suceso a Netcool/Impact cuando se inicia Oracle.
CREATE OR REPLACE TRIGGER desencadenanteiniciobasedatos
AFTER STARTUP
ON basedatos
BEGIN
v_array_inp := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’ OBJECTNAME | ’||Sys.database_name,
’ USER_NAME | ’||Sys.login_user, ’ INSTANCE_NUM | ’||Sys.instance_num);
test_varray_proc(v_array_inp);
Desencadenantes de sucesos de usuario:
Se envían a Netcool/Impact sucesos del usuario cuando un usuario inicia o cierra
la sesión en Oracle.
Para enviar sucesos de usuario, debe crear un desencadenante que llene un
elemento VARRAY con datos que describen la acción del usuario. A continuación,
debe pasar el elemento VARRAY al cliente de bases de datos para su proceso. Como
con los sucesos del sistema, los sucesos de usuario requieren que se llene el
elemento TRIGGEREVENT, normalmente con el valor de Sys.sysevent. Si no especifica
un valor para el elemento EVENTSOURCE, el cliente de bases de datos utilizará el
nombre de la base de datos.
En el ejemplo siguiente se muestra un elemento VARRAY típico para sucesos de
usuario.
db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE |’||Sys.database_name, ’LOGINUSER | ’ ||Sys.login_user,
’INSTANCENUM | ’||Sys.instance_num, ’TRIGGERNAME | USER_LOGIN’);
En el ejemplo siguiente se muestra un desencadenante completo que envía un
suceso a Netcool/Impact cuando un usuario inicia sesión.
CREATE OR REPLACE TRIGGER inicio_sesión_usuario
AFTER logon
on schema
Capítulo 3. Trabajar con servicios
63
DECLARE
my_login_varray db_varray_type;
BEGIN
my_login_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE |’||Sys.database_name, ’LOGINUSER | ’ ||Sys.login_user,
’INSTANCENUM | ’||Sys.instance_num, ’TRIGGERNAME | USER_LOGIN’);
test_varray_proc(my_login_varray);
end;
/
Ejemplo de desencadenante de suceso de inserción:
Este ejemplo muestra cómo crear un conjunto de desencadenantes de Oracle que
envían un suceso de inserción al Netcool/Impact.
CREATE OR REPLACE PACKAGE dept_pkg AS
TYPE deptTable IS TABLE OF db_varray_type INDEX BY BINARY_INTEGER;
dept1 deptTable;
emptyDept deptTable;
end;
/
CREATE OR REPLACE TRIGGER dept_reset
BEFORE INSERT OR UPDATE OR DELETE ON dept
BEGIN
dept_pkg.dept1 := dept_pkg.emptyDept;
end;
/
CREATE OR REPLACE TRIGGER dept_after_row
AFTER INSERT ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’, ’DEPTNO | ’||:NEW.DEPTNO,
’LOC | ’||:NEW.LOC, ’DNAME | ’||:NEW.DNAME, ’IMPACTED | ’||:NEW.IMPACTED);
end;
/
CREATE OR REPLACE TRIGGER dept_after_stmt
AFTER INSERT OR UPDATE OR DELETE ON dept
BEGIN
for i in 1 .. dept_pkg.dept1.count loop
test_varray_proc(dept_pkg.dept1(i));
end loop;
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
64
Netcool/Impact: Guía de soluciones
Ejemplo de desencadenante de suceso de actualización:
Este ejemplo muestra cómo crear un conjunto de desencadenantes de Oracle que
envían un suceso de actualización a Netcool/Impact.
CREATE OR REPLACE PACKAGE dept_pkg AS
TYPE deptTable IS TABLE OF db_varray_type INDEX BY BINARY_INTEGER;
dept1 deptTable;
emptyDept deptTable;
end;
/
CREATE OR REPLACE TRIGGER dept_reset
BEFORE INSERT OR UPDATE OR DELETE ON dept
BEGIN
dept_pkg.dept1 := dept_pkg.emptyDept;
end;
/
CREATE OR REPLACE TRIGGER dept_after_row
AFTER UPDATE ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’, ’DEPTNO | ’||:OLD.DEPTNO,
’LOC | ’||:OLD.LOC, ’DNAME | ’||:OLD.DNAME, ’IMPACTED | ’||:OLD.IMPACTED);
end;
/
CREATE OR REPLACE TRIGGER dept_after_stmt
AFTER INSERT OR UPDATE OR DELETE ON dept
BEGIN
for i in 1 .. dept_pkg.dept1.count loop
test_varray_proc(dept_pkg.dept1(i));
end loop;
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso de supresión:
Este ejemplo muestra cómo crear un conjunto de desencadenantes de Oracle que
envían un suceso de supresión al Netcool/Impact.
CREATE OR REPLACE PACKAGE dept_pkg AS
TYPE deptTable IS TABLE OF db_varray_type INDEX BY BINARY_INTEGER;
dept1 deptTable;
emptyDept deptTable;
end;
/
Capítulo 3. Trabajar con servicios
65
CREATE OR REPLACE TRIGGER dept_reset
BEFORE INSERT OR UPDATE OR DELETE ON dept
BEGIN
dept_pkg.dept1 := dept_pkg.emptyDept;
end;
/
CREATE OR REPLACE TRIGGER dept_after_row
AFTER DELETE ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’, ’DEPTNO | ’||:OLD.DEPTNO,
’LOC | ’||:OLD.LOC, ’DNAME | ’||:OLD.DNAME, ’IMPACTED | ’||:OLD.IMPACTED);
end;
/
CREATE OR REPLACE TRIGGER dept_after_stmt
AFTER INSERT OR UPDATE OR DELETE ON dept
BEGIN
for i in 1 .. dept_pkg.dept1.count loop
test_varray_proc(dept_pkg.dept1(i));
end loop;
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso anterior a CREATE:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso antes de
que Oracle ejecute un mandato CREATE.
CREATE OR REPLACE TRIGGER ddl_before_create
BEFORE CREATE
ON SCOTT.schema
DECLARE
my_before_create_varray db_varray_type;
BEGIN
my_before_create_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_before_create_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
66
Netcool/Impact: Guía de soluciones
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso posterior a CREATE:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso después
de que Oracle ejecute un mandato CREATE.
CREATE OR REPLACE TRIGGER ddl_after_create
AFTER CREATE
ON SCOTT.schema
DECLARE
my_after_create_varray db_varray_type;
BEGIN
my_after_create_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_after_create_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso anterior a ALTER:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso antes de
que Oracle ejecute un mandato ALTER.
CREATE OR REPLACE TRIGGER ddl_before_alter
BEFORE ALTER
ON SCOTT.schema
DECLARE
my_before_alter_varray db_varray_type;
BEGIN
my_before_alter_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_before_alter_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Capítulo 3. Trabajar con servicios
67
Ejemplo de desencadenante de suceso posterior a ALTER:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso después
de que Oracle ejecute un mandato ALTER.
CREATE OR REPLACE TRIGGER ddl_after_alter
AFTER ALTER
ON SCOTT.schema
DECLARE
my_after_alter_varray db_varray_type;
BEGIN
my_after_alter_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_after_alter_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso anterior a DROP:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso antes de
que Oracle ejecute un mandato DROP.
CREATE OR REPLACE TRIGGER ddl_before_drop
BEFORE DROP
ON SCOTT.schema
DECLARE
my_before_drop_varray db_varray_type;
BEGIN
my_before_drop_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_before_drop_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso posterior a DROP:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso después
de que Oracle ejecute un mandato DROP.
CREATE OR REPLACE TRIGGER ddl_after_drop
AFTER DROP
ON SCOTT.schema
68
Netcool/Impact: Guía de soluciones
DECLARE
my_after_drop_varray db_varray_type;
BEGIN
my_after_drop_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’USERNAME | ’||Sys.login_user,
’INSTANCENUM | ’||Sys.instancenum, ’OBJECTTYPE | ’||Sys.dictionary_obj_type,
’OBJECTOWNER | ’||Sys.dictionary_obj_owner);
test_varray_proc(my_after_drop_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso de inicio de servidor:
En este ejemplo se muestra cómo crear un desencadenante que envía un suceso a
Netcool/Impact al iniciar Oracle.
CREATE OR REPLACE TRIGGER desencadenanteiniciobasedatos
AFTER STARTUP
ON basedatos
BEGIN
v_array_inp := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’ OBJECTNAME | ’||Sys.database_name, ’ USER_NAME | ’||Sys.login_user,
’ INSTANCE_NUM | ’||Sys.instance_num);
test_varray_proc(v_array_inp);
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso de conclusión de servidor:
En este ejemplo se muestra cómo crear un desencadenante que envía un suceso a
Netcool/Impact al concluir Oracle.
CREATE OR REPLACE TRIGGER desencadenanteconclusiónbasedatos
BEFORE SHUTDOWN
ON basedatos
DECLARE
v_array_inp db_varray_type;
BEGIN
v_array_inp := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’ OBJECTNAME | ’||Sys.database_name, ’ USER_NAME | ’||Sys.login_user,
’ INSTANCE_NUM | ’||Sys.instance_num);
test_varray_proc(v_array_inp);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
Capítulo 3. Trabajar con servicios
69
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso de error de servidor:
En este ejemplo se muestra cómo crear un desencadenante que envía un suceso a
Netcool/Impact cuando Oracle encuentra un error del servidor.
CREATE OR REPLACE TRIGGER basedatos_desencadenante_error_servidor
AFTER SERVERERROR
ON basedatos
DECLARE
my_varray db_varray_type;
BEGIN
my_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE | ’||Sys.database_name, ’INSTANCENUM | ’ ||Sys.instance_num,
’LOGINUSER | ’||Sys.login_user, ’ERRORNUM | ’||Sys.server_error(1));
test_varray_proc(my_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso de inicio de sesión:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso a
Netcool/Impact cuando un usuario inicia la sesión de la base de datos.
CREATE OR REPLACE TRIGGER inicio_sesión_usuario
AFTER logon
on schema
DECLARE
my_login_varray db_varray_type;
BEGIN
my_login_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE |’||Sys.database_name, ’LOGINUSER | ’ ||Sys.login_user,
’INSTANCENUM | ’||Sys.instance_num, ’TRIGGERNAME | USER_LOGIN’);
test_varray_proc(my_login_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Ejemplo de desencadenante de suceso de cierre de sesión:
Este ejemplo muestra cómo crear un desencadenante que envía un suceso a
Netcool/Impact cuando un usuario cierra la sesión de la base de datos.
70
Netcool/Impact: Guía de soluciones
CREATE OR REPLACE TRIGGER usuario_cierre_sesión
BEFORE logoff
on schema
DECLARE
my_logoff_varray db_varray_type;
BEGIN
my_logoff_varray := db_varray_type(’TRIGGEREVENT | ’||Sys.sysevent,
’EVENTSOURCE |’||Sys.database_name, ’LOGINUSER | ’ ||Sys.login_user,
’INSTANCENUM | ’||Sys.instance_num, ’TRIGGERNAME | USER_LOGOFF’);
test_varray_proc(my_logoff_varray);
end;
/
En este ejemplo, test_varray_proc es una especificación de llamada que publica la
función sendEvent() expuesta por el cliente de bases de datos. El tipo
db_varray_type es un tipo de datos definido por el usuario que representa un
elemento VARRAY de Oracle. El ejemplo utiliza el esquema de ejemplo SCOTT de
Oracle.
Utilización de políticas de suceso de base de datos
Las políticas que trabajan con sucesos de base de datos pueden manejar sucesos
entrantes y devolver sucesos a la base de datos.
Gestión de sucesos entrantes de base de datos
El escucha de sucesos de base de datos pasa sucesos entrantes a Netcool/Impact
utilizando la variable EventContainer incorporada.
Cuando el escucha de sucesos de base de datos recibe un suceso de la base de
datos, llena las variables de miembros de EventContainer con los valores enviados
por el desencadenante de base de datos utilizando el elemento VARRAY de
Oracle.Puede acceder a los valores de EventContainer utilizando notación con @ o
por puntos de la misma manera que accede a los valores de los campos en
cualquier otro tipo de suceso.
En el ejemplo siguiente se muestra cómo gestionar un suceso entrante de base de
datos. En este ejemplo el suceso se ha generado utilizando el desencadenante de
ejemplo que se ha descrito en “Desencadenantes de sucesos de inserción” en la
página 60.
// Registrar valores de sucesos entrantes
Log("Número de
Log("Location:
Log("Nombre de
Log("Afectado:
departamento: " + @NÚMDEP);
" + @UBIC);
base de datos: " + @NOMBREBD);
" + @AFECTADO);
El ejemplo imprime los valores de los campos del suceso en el registro de política.
Devolución de sucesos a la base de datos
El escucha de sucesos de base de datos da soporte a la utilización de la función
ReturnEvent en una política para actualizar o suprimir sucesos. Para utilizar
ReturnEvent en una política de sucesos de base de datos, debe realizar las tareas
siguientes:
Procedimiento
v Asegúrese de que el desencadenante de base de datos que envía el suceso llena
un conjunto especial de campos de sucesos de conexión.
Capítulo 3. Trabajar con servicios
71
v Llame a la función ReturnEvent de la política que gestiona los sucesos.
Llenado de los campos de sucesos de conexión:
Para que la política gestione los sucesos para devolverlos al origen de sucesos,
debe llenar un conjunto especial de campos de sucesos en el desencadenante de
base de datos.
Estos campos especifican la información de conexión del servidor de bases de
datos. El escucha de sucesos de base de datos utiliza esta información para
conectar a la base de datos cuando se devuelva un suceso actualizado o suprimido.
En la Tabla 21 se muestran los campos de sucesos que debe llenar en el
desencadenante.
Tabla 21. Campos de suceso de conexión de desencadenante de base de datos
Campo
Descripción
RETURNEVENT
Debe establecer un valor de TRUE en este campo de suceso.
USERNAME
Nombre de usuario que se debe utilizar al conectar al servidor de
bases de datos Oracle.
PASSWORD
Contraseña que se debe utilizar al conectar al servidor de bases de
datos Oracle.
HOST
Nombre de host o dirección IP del sistema donde se ejecuta Oracle.
PORT
Puerto de conexión para el servidor de bases de datos Oracle.
SID
ID de servidor Oracle.
KEYFIELD
Campo de clave de la tabla de base de datos, o cualquier otro
campo que identifique de forma exclusiva una fila de tabla.
Cuando el cliente de bases de datos envía el suceso a Netcool/Impact, cifra la
información de conexión (incluidos el nombre de usuario de base de datos y
contraseña) especificados en los campos de suceso. A continuación, la información
de conexión se descifra cuando la recibe Netcool/Impact.
En el ejemplo siguiente se muestra un desencadenante que envía un suceso a
Netcool/Impact cuando se inserta una nueva fila en la tabla dept. En este ejemplo
se llenan los campos del suceso de conexión especificando elementos en la
VARRAY de Oracle que pasa a la base de datos.
CREATE OR REPLACE TRIGGER dept_after_row
AFTER INSERT ON dept
FOR EACH ROW
BEGIN
dept_pkg.dept1(dept_pkg.dept1.count + 1) :=
db_varray_type(’EVENTSOURCE | SCOTT.DEPT’, ’DEPTNO | ’||:NEW.DEPTNO,
’LOC | ’||:NEW.LOC, ’DNAME | ’||:NEW.DNAME, ’IMPACTED | ’||:NEW.IMPACTED,
’RETURNEVENT | TRUE’, ’USERNAME | ora_user’, ’PASSWORD | ora_passwd’,
’HOST | ora_host’, ’PORT | 4100’, ’SID | ora_01’, ’KEYFIELD | DEPTNO’);
end;
/
Devolución de sucesos a la base de datos:
Puede enviar sucesos actualizados o suprimidos al servidor de bases de datos
utilizando la función ReturnEvent.
72
Netcool/Impact: Guía de soluciones
ReturnEvent envía la información de sucesos al escucha de sucesos de base de
datos, que ensambla un mandato UPDATE o DELETE utilizando la información. A
continuación, el escucha de sucesos de base de datos envía el mandato al servidor
de bases de datos para su proceso. El mandato UPDATE o DELETE actualiza o
suprime la fila que corresponde al suceso enviado original. Para obtener más
información sobre ReturnEvent, consulte la publicación Guía de consulta de políticas.
En el siguiente ejemplo de política se muestra cómo devolver un suceso
actualizado a la base de datos.
// Registrar valores de sucesos entrantes
Log("Número de
Log("Location:
Log("Nombre de
Log("Afectado:
departamento: " + @NÚMDEP);
" + @UBIC);
base de datos: " + @NOMBREBD);
" + @AFECTADO);
// Actualizar el valor del campo Location
@LOC = "New York City";
// Devolver el suceso a la base de datos
ReturnEvent(EventContainer);
En el ejemplo siguiente se muestra cómo suprimir un suceso de la base de datos.
// Establecer el valor de la variable DeleteEvent en true
@DeleteEvent = true; // El nombre @DeleteEvent distingue entre mayúsculas y minúsculas
// Establecer las variables de campos de sucesos que necesite el escucha de
// sucesos de base de datos para conectar con Netcool/Impact
// Devolver el suceso a la base de datos
ReturnEvent(EventContainer);
servicio de escucha de sucesos de OMNIbus
El servicio de escucha de sucesos de OMNIbus se utiliza para integrarse con
Netcool/OMNIbus y recibir notificaciones inmediatas de sucesos de vía rápida.
El escucha de sucesos de OMNIbus se utiliza para obtener notificaciones de vía
rápida de Netcool/OMNIbus a través de la característica de notificación de sucesos
acelerada de Netcool/OMNIbus. Recibe las notificaciones mediante el canal IDUC
(Insert, Delete, Update o Control). Para configurar el escucha de sucesos de
OMNIbus, debe definir sus propiedades de configuración a través de la GUI.
Puede utilizar las propiedades de configuración para especificar uno o más canales
para los cuales se procesan los sucesos y también una o más políticas que se
ejecutarán en respuesta a sucesos recibidos de Netcool/OMNIbus.
Importante:
v El servicio de escucha de sucesos de OMNIbus funciona con Netcool/OMNIbus
para supervisar sucesos de ObjectServer.
v Si Servidor Impact y el servidor OMNIbus están en dominios de red diferentes,
para que el servicio de escucha de sucesos de OMNIbus funcione correctamente,
debe definir la propiedad Iduc.ListeningHostname en el servidor OMNIbus. Esta
propiedad debe contener la dirección IP o el nombre de host completo del
servidor OMNIbus.
Capítulo 3. Trabajar con servicios
73
Si desea más información sobre los desencadenantes de Netcool/OMNIbus y la
notificación de sucesos acelerada de OMNIbus y la propiedad
Iduc.ListeningHostname en el servidor OMNIbus, consulte la Guía de administración
de Netcool/OMNIbus disponible desde este sitio web:
Tivoli Documentation Central
Configurar el servicio de escucha de sucesos de OMNIbus
Utilice este procedimiento para crear el servicio de escucha de sucesos de
OMNIbus.
Procedimiento
1. En Tivoli Integrated Portal, en el árbol de navegación, pulse Configuración del
sistema > Automatización de sucesos > Servicios, para abrir el separador
Servicios.
2. En caso necesario, seleccione un clúster de la lista Clúster.
3. Pulse el icono Crear servicio nuevo en la barra de herramientas y seleccione
OMNIbusEventListener para abrir la ventana de configuración.
4. Escriba la información necesaria en la ventana de configuración.
5. Pulse el icono Guardar de la barra de herramientas para crear el servicio.
6. Inicie el servicio para establecer una conexión con ObjectServer y suscribirse a
uno o más canales IDUC para obtener notificaciones para inserciones,
actualizaciones y supresiones.
Cómo comprobar los registros de servicio del escucha de
sucesos de OMNIbus
Al iniciar el servicio de escucha de sucesos de OMNIbus se establece una conexión
entre Netcool/Impact y el ObjectServer.
Para asegurar que el servicio de escucha de sucesos de OMNIbus se ha iniciado
satisfactoriamente, compruebe los registros de servicio. Si el servicio está iniciado,
se visualizará un mensaje como en el ejemplo siguiente:
Inicializando servicio
Conectando al origen de datos: defaultobjectserver
Servicio iniciado
Intentando conectar para notificaciones de IDUC
Se ha establecido la conexión al defaultobjectserver de origen de datos
Conexión IDUC: Establecida:
Nombre de host Iduc: nc050094
Puerto Iduc: 58003
SPID Iduc: 2
Creación de desencadenantes
Debe crear desencadenantes antes de que Netcool/Impact pueda recibir sucesos
acelerados de Netcool/OMNIbus.
Los desencadenantes notifican a Netcool/Impact los sucesos acelerados. Para
obtener más información sobre la creación de desencadenantes, consulte la
publicación IBM Tivoli Netcool/OMNIbus Administration Guide en el siguiente sitio
web:
https://www.ibm.com/developerworks/wikis/display/tivolidoccentral/OMNIbus.
74
Netcool/Impact: Guía de soluciones
En este ejemplo se muestra cómo crear un desencadenante para notificar
inmediatamente a Netcool/Impact cuando haya una alerta con una gravedad de 5
del Nodo denominado ImpactNode:
create or replace trigger ft_insert1
group trigger_group1
priority 1
after insert on alerts.status
for each row
begin
if (new.Severity = 5 AND new.Node = ’ImpactNode’)
then
iduc evtft ’default’ , insert, new
end if;
end;
Otro ejemplo muestra cómo crear un desencadenante que envía un suceso
acelerado a Netcool/Impact cuando se suprime un suceso con Customer
internet_banking:
create or replace trigger ft_delete1
group trigger_group1
priority 1
before delete on alerts.status
for each row
begin
if (old.Customer = ’internet_banking’)
then
iduc evtft ’default’ , delete, old
end if;
end;
En el ejemplo siguiente se muestra cómo crear un desencadenante que notifique
inmediatamente a Netcool/Impact si se recibe una reinserción del suceso con el
Nodo como New York:
create or replace trigger ft_reinsert1
group trigger_group1
priority 1
after reinsert on alerts.status
for each row
begin
if (new.Node = ’New York’)
then
iduc evtft ’default’ , insert, new
end if;
end;
En el ejemplo siguiente se muestra cómo crear un desencadenante de señal que le
notifique cuando se establezca una conexión de pasarela con el ObjectServer:
create or replace trigger notify_isqlconn
group trigger_group1
priority 1
on signal connect
begin
if( %signal.process = ’GATEWAY’ )
then
iduc sndmsg ’default’, ’Conexión de pasarela de ’
+ %signal.node + ’ de usuario ’ + %signal.username + ’ en ’ +
to_char(%signal.at)
end if;
end;
En este otro ejemplo se muestra cómo crear un desencadenante de señal que le
envía una notificación cuando la conexión se desconecta:
Capítulo 3. Trabajar con servicios
75
create or replace trigger notify_isqldisconn
group trigger_group1
priority 1
on signal disconnect
begin
if( %signal.process = ’isql’ )
then
iduc sndmsg ’default’, ’ISQL Disconnect from ’ + %signal.node +
’ de usuario ’ + %signal.username + ’ en ’ + to_char(%signal.at)
end if;
end;
Utilización de la función ReturnEvent
Puede utilizar la función ReturnEvent para insertar, actualizar o suprimir sucesos
que recibe Netcool/Impact de Netcool/OMNIbus. Para leer más sobre la función
ReturnEvent, consulte la publicación Guía de consulta de políticas.
En este ejemplo se muestra cómo utilizar la función ReturnEvent para establecer
Node en Impacted y para aumentar Severity en 1:
@Node = ’Impacted’;
@Severity = @Severity + 1;
ReturnEvent(EventContainer);
Otro ejemplo muestra cómo suprimir el suceso de alerts.status mediante la
función ReturnEvent:
@DeleteEvent = TRUE;
ReturnEvent(EventContainer);
Suscripción a canales individuales
Cómo suscribirse a uno o más canales OMNIbus para los que Netcool/Impact
procesa sucesos recibidos de Netcool/OMNIbus.
Procedimiento
1. En la ventana Configuración de OMNIbusEventListener, en Uno o más canales,
añada el canal del que Netcool/Impact procesa sucesos.
2. Para suscribirse a más de un canal, añada una coma entre los nombres de
canal.
3. Para añadir el nombre de canal o añadir o eliminar una o más entradas, añada
los cambios y reinicie el servicio OMNIbusEventListener para implementar los
cambios.
Resultados
Cuando Netcool/Impact recibe un suceso de vía rápida de un canal que coincide
con uno de los canales configurados, el registro del servicio
OMNIbusEventListener visualiza el siguiente mensaje:
Se ha recibido un mensaje de vía rápida del canal: <nombre_canal>
Cuando Netcool/Impact recibe un suceso de vía rápida que no coincide con
ninguno de los canales configurados, el registro del servicio
OMNIbusEventListener visualiza el mensaje siguiente:
El mensaje de vía rápida del canal:
<nombre de canal> no ha coincidido con ningún canal configurado.
Restricción: Sólo se permite el filtrado de mensajes por canal para mensajes de vía
rápida enviados mediante el mandato iduc evtf. Para mensajes de señal enviados
76
Netcool/Impact: Guía de soluciones
mediante el mandato iduc sndmsg, Netcool/Impact no filtra los mensajes según el
canal desde el que se han originado. Para obtener información sobre estos
mandatos, consulte la publicación IBM Tivoli Netcool/OMNIbus Administration Guide
disponible en el siguiente sitio web:
https://www.ibm.com/developerworks/wikis/display/tivolidoccentral/OMNIbus.
Cómo controlar qué sucesos se envían de OMNIbus a
Netcool/Impact mediante Spid
Puede utilizar Spid en lugar de un nombre de canal para controlar qué sucesos se
envían a Netcool/Impact.
Cuando se inicia el servicio OMNIbusEventListener, visualiza los detalles de la
conexión en IMPACT_HOME/log/<nombre_servidor>_omnibuseventlistener.log,
incluido el Spid de conexión. En el ejemplo siguiente, el Spid es 2:
21
21
21
21
21
21
21
21
21
Feb
Feb
Feb
Feb
Feb
Feb
Feb
Feb
Feb
2012
2012
2012
2012
2012
2012
2012
2012
2012
11:16:07,363:
11:16:07,363:
11:16:07,405:
11:16:07,522:
11:16:07,919:
11:16:08,035:
11:16:08,036:
11:16:08,036:
11:16:08,036:
Inicializando servicio
Conectando al origen de datos: defaultobjectserver
Servicio iniciado
Intentando conectar para notificaciones de IDUC
Conexión establecida con el origen de datos defaultobjectserver
Conexión IDUC: Establecida:
Nombre de host Iduc : nc050094
Puerto Iduc : 60957
SPID Iduc
: 2
Sabiendo que Netcool/Impact está conectado al Spid 2, puede utilizar el ID de
cliente y configurar el desencadenante para enviar la notificación de sucesos
acelerada sólo al cliente con Spid=2 (Impact). Un desencandenante de OMNIbus
tiene la sintaxis siguiente:
IDUC EVTFT destino, tipo_acción, fila
Donde:
v destino = spid | iduc_channel
– spid = expresión_de_entero (el ID de conexión de cliente literal)
– canal_iduc = expresión_de_serie (nombre de canal)
v tipo_acción = INSERT | UPDATE | DELETE
v fila = variable (referencia de nombre de variable de una fila en la
automatización)
Por ejemplo, el siguiente desencadenante indicaría a OMNIbus que enviara
notificaciones sólo a Spid=2, que en este caso es Netcool/Impact:
create or replace trigger ft_insert1
group trigger_group1
priority 1
after insert on alerts.status
for each row
begin
if (new.Severity >= 5)
then
iduc evtft 2 , insert, new
end if;
end;
Para obtener más información sobre los desencadenante de OMNIbus y la
notificación de sucesos acelerada, consulte la publicación OMNIbus Administration
Guide, disponible en este sitio web:
Capítulo 3. Trabajar con servicios
77
https://www.ibm.com/developerworks/wikis/display/tivolidoccentral/OMNIbus
Utilización de otros servicios
Este capítulo contiene información sobre cómo utilizar otros servicios de
Netcool/Impact.
Servicio activador de políticas
El servicio activador de políticas activa políticas en el inicio o en los intervalos que
especifique para cada política seleccionada.
Este es un servicio predeterminado que puede utilizar, en lugar de crear el suyo
propio o además de crear el suyo propio.
Configuración del activador de políticas
En un activador de políticas puede configurar el nombre del activador, el intervalo
de activación, la política que desea ejecutar a intervalos y las opciones de inicio y
registro.
Ventana de configuración del servicio de activador de políticas:
Utilice esta información para configurar el servicio de activador de políticas.
Tabla 22. Ventana de configuración Crear servicio PolicyActivator nuevo
Elemento de ventana
Descripción
Nombre de servicio
Escriba un nombre exclusivo para identificar el servicio.
Intervalo de activación
Seleccione la frecuencia (en segundos) con que el servicio
debe activar la política. El valor predeterminado es 30 en
el servidor de activador de política incluido con
Netcool/Impact. Al crear su propio servidor de activador
de política, el valor por defecto es 0.
Política
Seleccione la política que el activador de políticas debe
ejecutar.
Inicio: Automáticamente al
iniciarse el servidor
.Seleccione esta opción para iniciar automáticamente el
servicio cuando se inicia el servidor. También puede iniciar
y detener el servicio desde la GUI.
Registro de servicio: Escribir
en archivo
Selecciónelo para escribir información de registro en un
archivo.
Servicio del registrador de políticas
El servicio del registrador de políticas es el responsable de gestionar el registro de
políticas.
El registro es una corriente de texto que se utiliza para registrar los mensajes
generados durante el tiempo de ejecución de una política. El registro contiene
mensajes del sistema Netcool/Impact y mensajes que crea cuando escribe una
política. El servicio del registrador de políticas especifica una política de manejo de
errores que se activa cuando se produce un error durante la ejecución de una
política. También especifica los niveles de registro de depuración de políticas y qué
elementos se deben registrar. Cuando configure este servicio, seleccione una
política para manejar los errores a medida que se producen.
78
Netcool/Impact: Guía de soluciones
Configuración del registrador de políticas
Puede configurar las propiedades siguientes del registrador de políticas.
v Política de manejo de errores
v Nivel de registro más alto
v Registro de sentencias SQL
v Registro de parámetros de función de preejecución
v Registro de parámetros de función de postejecución
v Creación de perfiles de política
v Opciones de registro e informes
Ventana de configuración del servicio de registrador de políticas:
Utilice esta información para configurar el servicio de registrador de políticas.
Tabla 23. Ventana de configuración del servicio del registrador de políticas
Elemento de ventana
Descripción
Política de manejo de errores
La política de manejo de errores es la política que se
ejecuta de forma predeterminada cuando un manejador
de errores no maneja un error dentro de la política
donde éste se ha producido.
Nivel de registro más alto
Puede especificar un nivel de registro para los mensajes
que se anotan en el registro de política desde una
política mediante la función Log.
Cuando se procesa una sentencia log() de una política,
se evalúa el nivel de registro especificado con el
número que ha seleccionado para este campo. Si el
nivel especificado en este campo es mayor que o igual
al especificado en la sentencia log() de la política, se
registra el mensaje en el registro de políticas.
Registrar
Seleccione qué desea que aparezca en el registro:
v Todas las sentencias SQL. Seleccione anotar todo el
contenido de todas las sentencias SQL especificadas
en llamadas a orígenes de datos de base de datos
SQL. Registrar las sentencias SQL puede ayudar a
depurar una política que utilice orígenes de datos
externos.
v Parámetros del módulo de acción previa a la
ejecución. Seleccione anotar los valores de todos los
parámetros pasados a una función de acción
incorporada antes de que se llame a la función en
una política. Estos parámetros incluyen los valores de
variables incorporadas como, por ejemplo DataItems
y DataItem.
v Parámetros del módulo de acción posterior a la
ejecución
v Parámetros de todos los módulos de acción
Capítulo 3. Trabajar con servicios
79
Tabla 23. Ventana de configuración del servicio del registrador de políticas (continuación)
Elemento de ventana
Descripción
Perfiles de política: Habilitar
Seleccione esta opción para habilitar los perfiles de
políticas. La creación de perfiles de políticas calcula el
tiempo total necesario para ejecutar una política y anota
dicho tiempo en el registro de la política.
Puede utilizar esta característica para ver cuánto tiempo
se tarda en procesar las asignaciones de las variables y
las funciones. También puede ver cuánto tiempo se
tarda en procesar toda una función y toda la política.
Registro de servicio: Escribir en
archivo
Selecciónelo para escribir información de registro en un
archivo.
Anexar nombre de hebra al
nombre de archivo de registro
Seleccione esta opción para dar nombre al archivo de
registro añadiendo el nombre de la hebra al nombre del
archivo de registro predeterminado.
Anexar nombre de política al
nombre de archivo de registro
Seleccione esta opción para dar nombre al archivo de
registro añadiendo el nombre de la política al nombre
del archivo de registro predeterminado.
Recopilar informes: Habilitar
Selecciónelo para habilitar la recopilación de datos para
los informes de políticas.
Si elige habilitar la opción Recopilar informes, los
registros relacionados con los informes se escriben en el
archivo de registrador de políticas sólo cuando el nivel
de registro está establecido en 3.
Para ver en los registros relacionados con los informes
un nivel de registro menos detallado, por ejemplo, el
nivel de registro 1, el archivo NCHOME/impact/etc/
<servername>_policylogger.props se puede
personalizar completando estos pasos:
1. Añada impact.policylogger.reportloglevel=1 a la
propiedadNCHOME/impact/etc/
<servername>_policylogger.props.
2. Reinicie Servidor Impact para implementar el
cambio.
Modificación del tamaño del archivo de registro policylogger:
Cómo cambiar el tamaño del archivo de registro del registrador de políticas y
cómo crear más archivos de registrador de políticas.
Procedimiento
1. Detenga el servidor Impact y abra el archivo DIR_INICIO_IMPACT/etc/
<nombre_servidor>_policylogger.props.
2. Para cambiar el tamaño del archivo policylogger.log, añada las propiedades
siguientes al archivo:
impact.policylogger.maxlogsizebytes=[valor en bytes]
3. Para cambiar el número de archivos policylogger.log, añada las propiedades
siguientes al archivo:
impact.policylogger.maxbackupindex=[número de archivos de copia de seguridad]
4. Reinicie el servidor para implementar los cambios.
80
Netcool/Impact: Guía de soluciones
5. En una configuración en clúster, debe reiniciar el servidor secundario de forma
que replique estas propiedades personalizadas al iniciar desde el servidor
primario.
Servicio de activador de políticas en hibernación
El servicio de activador de políticas en hibernación supervisa las políticas en
hibernación y las activa a intervalos especificados.
El activador de políticas en hibernación se utiliza con soluciones de tipo X sucesos
en un Y tiempo y soluciones similares que requieren el uso de políticas en
hibernación. Cuando configure este servicio, debe especificar la frecuencia con la
que el servicio reactivará las políticas en hibernación que están en espera de
activación. Puede ser un período específico o un tiempo absoluto que ha definido.
Activador de políticas en hibernación
En el activador de políticas de hibernación puede configurar el intervalo de de
activación y las opciones de inicio y registro.
Configuración del servicio de activador de políticas en
hibernación
Utilice esta información para configurar el activador de políticas en hibernación.
Tabla 24. Ventana de configuración del servicio de activador de políticas en hibernación
Elemento de ventana
Descripción
Intervalo de sondeo
Seleccione un intervalo de sondeo (en segundos) para
establecer la frecuencia con la que el servicio comprobará
las políticas que están hibernando para ver si se deben
activar. El valor predeterminado es de 30 segundos.
El proceso se activa
inmediatamente
Seleccione esta opción para ejecutar la política después
de que se active. El intervalo de activación es el intervalo
en segundos con el que el activador de políticas en
hibernación comprueba las políticas en hibernación del
repositorio de datos internos para ver si están preparadas
para activarlas.
Inicio: Automáticamente al
iniciarse el servidor
.Seleccione esta opción para iniciar automáticamente el
servicio cuando se inicia el servidor. También puede
iniciar y detener el servicio desde la GUI.
Registro de servicio: Escribir en
archivo
Selecciónelo para escribir información de registro en un
archivo.
Borrar todas las hibernaciones:
Borrar
Si resulta necesario, pulse esta opción para borrar todas
las políticas en hibernación del Servidor Impact.
Servicio del gestor de ejecución de mandatos
El gestor de ejecución de mandatos es el servicio responsable de accionar el
mandato y la característica de respuesta.
El servicio pone en cola las llamadas a la función JRExecAction para ejecutar
mandatos externos. El gestor de ejecución de mandatos sólo permite especificar si
desea imprimir el registro de servicios en un archivo. No existen más propiedades
de configuración.
Capítulo 3. Trabajar con servicios
81
Ventana de configuración del servicio del gestor de ejecución de
mandatos
Puede configurar el servicio del gestor de ejecución de mandatos para imprimir el
registro del servicio en un archivo.
Servicio del gestor de línea de mandatos
El servicio del gestor de línea de mandatos le permite acceder al Servidor Impact
desde la línea de mandatos para configurar los parámetros de servicios y también
para iniciar y detener servicios.
Cuando configure este servicio, especifique el puerto al que se conectará cuando
utilice la línea de mandatos. También debe especificar si desea que el servicio se
inicie automáticamente cuando se inicia el Servidor Impact. El gestor de línea de
mandatos es el servicio que gestiona la CLI. Puede configurar el puerto en el que
se ejecuta el servicio de la línea de mandatos, y las opciones de inicio y registro
para el servicio.
Ventana de configuración del servicio de gestor de línea de
mandatos
Utilice esta información para configurar el servicio de gestor de línea de mandatos.
Tabla 25. Ventana de configuración del servicio de gestor de línea de mandatos
Elemento de
ventana
Descripción
Puerto
Seleccione en la lista el número de puerto donde desee ejecutar el
servicio o escriba el número. Al utilizar la CLI, se utiliza telnet para
acceder a este puerto. El valor predeterminado es 2000.
Inicio:
Automáticamente
al iniciarse el
servidor
.Seleccione esta opción para iniciar automáticamente el servicio
cuando se inicia el servidor. También puede iniciar y detener el
servicio desde la GUI.
Registro de
Selecciónelo para escribir información de registro en un archivo.
servicio: Escribir en
archivo
82
Netcool/Impact: Guía de soluciones
Capítulo 4. Trabajar con políticas
Una política es un conjunto de operaciones que desea que realice Netcool/Impact.
Antes de empezar a desarrollar políticas, debe estar familiarizado con el registro de
política, el contexto de política y los aspectos de ámbito de política del producto.
Comprensión de los componentes del lenguaje de políticas
Puede utilizar el Lenguaje de políticas de Impact (IPL) o JavaScript para escribir
las políticas que desea que Netcool/Impact ejecute.
El IPL es un lenguaje de scripts similar en sintaxis a lenguajes de programación
como C/C++ y Java. Proporciona un conjunto de tipos de datos, variables
incorporadas, estructuras de control y funciones que puede utilizar para realizar
una amplia gama de tareas de gestión de sucesos. Puede crear sus propias
variables y funciones, como en otros lenguajes de programación.
JavaScript es un lenguaje de programación de script que se utiliza habitualmente
para añadir interactividad a páginas web. También se puede utilizar en entornos
de navegador. JavaScript utiliza los mismos conceptos de programación que se
utilizan en IPL para escribir políticas. Para obtener más información sobre la
sintaxis de JavaScript, consulte http://www.w3schools.com/js/default.asp.
Registro de política
El registro de política es una secuencia de texto que registra mensajes creados
durante el tiempo de ejecución de una política.
Los mensajes del registro de política proporcionan información sobre el estado del
sistema y sobre las posibles excepciones que se pudieran producir. Puede escribir
mensajes personalizados en el registro desde una política utilizando la función Log.
Contexto de política
El contexto de política es el conjunto de todas las variables cuyos valores se
asignan a la política actual.
El contexto de política incluye variables incorporadas como por ejemplo
EventContainer así como las variables que defina. Puede acceder al valor de este
contexto desde una política utilizando la función CurrentContext. Esta función
devuelve una serie que contiene los nombres y valor actual de todas las variables
de la política.
Ámbito de política
El ámbito de todas las variables de una política es global.
Esto significa que dondequiera que utilice una función, ésta hará referencia al
mismo valor, independientemente de si la utiliza en el cuerpo principal del
programa o en una función definida por el usuario.
© Copyright IBM Corp. 2006, 2014
83
Impresión en el registro de política
La impresión de mensajes en el registro de política es una de las prestaciones más
útiles de Netcool/Impact en lo que se refiere a probar y depurar políticas.
Puede imprimir mensajes en el registro de política utilizando la función Log. La
función Log toma el mensaje que desea imprimir como su parámetro de tiempo de
ejecución.
Este ejemplo es una versión del clásico programa "Hello, World!" utilizado para
enseñar a los desarrolladores cómo programar en un lenguaje de programación C.
En la versión C se imprime Hello, World! en la salida estándar. No tiene permiso
para acceder a la corriente de salida estándar mediante el lenguaje de políticas
pero puede imprimir el mensaje en el registro de política.
La política, que consta de una única línea, es la siguiente.
Log("Hello, World!");
Aquí simplemente llama a la función Log y pasa la serie Hello, World! como
parámetro de tiempo de ejecución. Como en los lenguajes de programación como
C/C+ y Java, debe colocar los literales de la serie entre comillas dobles.
Al ejecutar la política se imprime el siguiente mensaje en el registro de política:
Hello, World!
Variables definidas por el usuario
Las variables definidas por el usuario son variables que se definen cuando se
escribe una política.
Las palabras reservadas de JavaScript o los objetos de JavaScript y nombres de
clase predefinidos no se deben utilizar como nombres de variable en una política
de JavaScript.
Puede utilizar cualquier combinación de letras y números como nombres de
variables, siempre que la primera variable empiece por una letra:
No es necesario que inicialice las variables utilizadas para almacenar valores
individuales como, por ejemplo, series o enteros. Para las variables de contexto, se
llama a la función NewObject, que devuelve un contexto nuevo. Para las variables
de contenedor de suceso, se llama a NewEvent. No es necesario que inicialice las
variables de miembro en contextos y en contenedores de suceso.
El ejemplo siguiente muestra cómo se crea y se hace referencia a las variables
definidas por el usuario:
MyInteger = 1;
MyFloat = 123.4;
MyBoolean = True;
MyString = "Hello, World!";
MyContext = NewObject();
MyContext.Member = "1";
MyEvent = NewEvent();
MyEvent.Summary = "Event Summary";
Log(MyInteger + ", " + MyEvent.Summary);
84
Netcool/Impact: Guía de soluciones
En el ejemplo de esta sección se crea un conjunto de variables a los que se asigna
valores. A continuación, se utiliza la función Log de dos maneras distintas para
imprimir el valor de las variables en el registro de política.
La primera manera en que se utiliza Log es para imprimir cada uno de los valores
como una llamada aparte a la función. La segunda manera es imprimir todas las
variables en el contexto de política al mismo tiempo, utilizando la función
CurrentContext. La función CurrentContext devuelve una serie que contiene los
nombres y valores de todas las variables definidas actualmente en la política.
VarOne = "One";
VarTwo = 2;
VarThree = 3.0;
VarFour = VarOne + ", " + VarTwo + ", " + VarThree;
Log(VarOne);
Log(VarTwo);
Log(VarThree);
Log(VarFour);
Log(CurrentContext());
Al ejecutar esta política, se imprimirá el mensaje siguiente en el registro de política:
One
2
3.0
One, Two, Three
"Preparado para parámetros proporcionados por el usuario "=(Escalation=5, EventContainer=(),
VarTwo=Two, VarOne=One, ActionNodeName=TEMP, VarFour=One, Two, Three,
VarThree=Three, ActionType=1)
Como se muestra más arriba, no es necesario declarar las variables antes de
asignar sus valores de la forma en que lo hace en lenguajes como C/C++ y Java.
Las matrices y las variables escalares como enteros o series se crean
automáticamente la primera vez que les asigna un valor. Sin embargo, los
contextos y los contenedores de sucesos se deben crear explícitamente utilizando
las funciones NewObject y NewEvent, tal como se describe más adelante en esta
guía.
Matriz
Los contextos son otro tipo de datos nativo que puede utilizar para almacenar
conjuntos de datos.
Una matriz en Netcool/Impact representa un conjunto de datos heterogéneo, lo
que significa que puede almacenar elementos de cualquier combinación de tipos de
datos, incluyendo otras matrices y contextos. Los datos de las matrices se
almacenan como elementos sin nombres y no como variables de miembro.
En IPL asigna valores a las matrices utilizando la notación de llaves. Esta notación
requiere que coloque una lista entre llaves. Los valores se pueden especificar como
literales o como variables cuyos valores ha definido anteriormente en la política:
nombre_matriz =
{elemento1, elemento2, elementon}
Atención: Las matrices en IPL y JavaScript están basadas en cero, lo que significa
que el primer elemento de la matriz tiene un valor de índice de 0.
Capítulo 4. Trabajar con políticas
85
En JavaScript, utilice la notación con corchetes cuadrados para asignar valores de
matriz como una serie de literales numéricos, booleanos o de serie separados por
comas:
nombre_matriz =
[elemento1, elemento2, elementon]
Importante: puede crear una matriz de cualquier tamaño definiendo manualmente
sus elementos. No puede importarla de un archivo. No puede incluirse una matriz
en una matriz, a menos que se trate de una matriz multidimensional.
Puede acceder al valor de matrices utilizando la notación de corchetes. Esta
notación requiere que especifique el nombre de la matriz seguido por el número de
índice del elemento colocado entre corchetes. Utilice la sintaxis siguiente para
acceder a los elementos de una matriz unidimensional y de una matriz
multidimensional:
nombre_matriz[índice de elementos]
nombre_matriz[índice de elementos de primera dimensión][índice de elementos de segunda dimensión]
Ejemplos
A continuación se muestra un ejemplo de matriz unidimensional en IPL:
MyArray = {"Hello, World!", 12345};
Log(MyArray[0] + ", " + MyArray[1]);
A continuación se muestra un ejemplo de matriz unidimensional en JavaScript:
MyArray = ["Hello, World!", 12345];
Log(MyArray[0] + ", " + MyArray[1]);
Este ejemplo anota el texto siguiente en el registro de políticas:
Hello.World!, 12345
A continuación se muestra un ejemplo de matriz bidimensional en IPL:
MyArray = {{"Hello, World!", 12345}, {"xyz", 78, 7, "etc"}};
Log(MyArray[0][0] + "." + MyArray[1][0]);
A continuación se muestra un ejemplo de matriz bidimensional en JavaScript:
MyArray = [["Hello, World!", 12345], ["xyz", 78, 7, "etc"]];
Log(MyArray[0][0] + "." + MyArray[1][0]);
Este ejemplo anota el texto siguiente en el registro de políticas:
Hello.World!.xyz
Este ejemplo de política en IPL utiliza la misma matriz bidimensional y anota la
etiqueta y el valor de un elemento en el registro de analizador:
MyArray = {{"Hello, World!", 12345}, {"xyz", 78, 7, "etc"}};
log("MyArray is " + MyArray);
log("MyArray Length is " + length(MyArray));
ArrayA = MyArray[0];
log("ArrayA is " + ArrayA + " Length is " + length(ArrayA));
i = 0;
While(i < length(ArrayA)) {
log("ArrayA["+i+"] = " + ArrayA[i]);
i = i+1;
}
ArrayB = MyArray[1];
log("ArrayB is " + ArrayB + " Length is " + length(ArrayB));
i = 0;
86
Netcool/Impact: Guía de soluciones
While(i < length(ArrayB)) {
log("ArrayB["+i+"] = " + ArrayB[i]);
i = i+1;
}
Este ejemplo de política en JavaScript utiliza la misma matriz bidimensional y
anota la etiqueta y el valor de un elemento en el registro de analizador:
MyArray = [["Hello, World!", 12345], ["xyz", 78, 7, "etc"]];
Log("MyArray is " + MyArray);
Log("MyArray Length is " + Length(MyArray));
ArrayA = MyArray[0];
Log("ArrayA is " + ArrayA + " Length is " + Length(ArrayA));
i = 0;
while(i < Length(ArrayA)) {
Log("ArrayA["+i+"] = " + ArrayA[i]);
i = i+1;
}
ArrayB = MyArray[1];
Log("ArrayB is " + ArrayB + " Length is " + Length(ArrayB));
i = 0;
while(i < Length(ArrayB)) {
Log("ArrayB["+i+"] = " + ArrayB[i]);
i = i+1;
}
Esta es la salida del registro de analizador:
ArrayA[0] = Hello World!
ArrayA[1] = 12345
En la política siguiente, se asigna un conjunto de valores a las matrices y a
continuación se imprimen los valores de sus elementos en el registro de política.
Array1 = {"One", "Two", "Three", "Four",
"Five"};
Array2 = {1, 2, 3, 4, 5};
Array3 = {"One", 2, "Three", 4, "Five"};
String1 = "One";
String2 = "Two";
Array4 = {String1, String2};
Log(Array1[0]);
Log(Array2[2]);
Log(Array3[3]);
Log(Array4[1]);
Log(CurrentContext());
Aquí se asignan conjuntos de valores a cuatro matrices distintas. En las primeras
tres matrices se asignan diversos literales de series y enteros. En la cuarta matriz se
asignan variables como los elementos de matriz.
Al ejecutar la política se imprime el siguiente mensaje en el registro de política:
One
3
4
Two
"Preparado con parámetros proporcionados por el usuario "=(String2=Two, ActionType=1,
String1=One, EventContainer=(), ActionNodeName=TEMP, Escalation=6,
Array4={One, Two}, Array3={One, 2, Three, 4, Five}, Array2={1, 2,
3, 4, 5},
Array1={One, Two, Three, Four, Five})
Capítulo 4. Trabajar con políticas
87
Contexto
El contexto es un tipo de datos que puede utilizar para almacenar conjuntos de
datos.
Los contextos son como el tipo de datos struct en C/C++. Los contextos se
pueden utilizar para almacenar elementos de combinaciones de tipos de datos,
incluyendo otros contextos y matrices. Estos datos se almacenan en un conjunto de
variables denominado variables de miembro que están "contenidas" en el contexto.
Las variables de miembros pueden ser de cualquier tipo, incluidos otros contextos.
Se hace referencia a las variables de miembros utilizando la anotación por puntos.
Este es también el modo en que se hace referencia a las variables de miembro en
un struct en lenguajes como C y C++.En esta notación, debe especificar el nombre
del contexto y el nombre de la variable de miembro separados por un punto (.).
Utiliza esta notación al asignar valores a variables de miembros o al hacer
referencia a las variables en otros lugares de una política.
Importante: Se proporciona un contexto incorporado, denominado contexto de
política, que se crea automáticamente cuando se ejecuta la política. El contexto de
política contiene todas las variables que se utilizan en la política, incluidas las
variables incorporadas.
A diferencia de las matrices y de las variables escalares, debe crear explícitamente
un contexto utilizando la función NewObject antes de poder utilizarlo en una
política. No es necesario crear las variables de miembros en el contexto. Las
variables de miembros se crean automáticamente la primera vez que les asigna su
valor.
El siguiente ejemplo muestra cómo se crea un contexto nuevo y cómo se asignan y
hace referencia a las variables de miembros:
MyContext = NewObject();
MyContext.A = "Hello, World!";
MyContext.B = 12345;
Log(MyContext.A + ", " + MyContext.B);
Este ejemplo anota el mensaje siguiente en el registro de política:
Hello, World!, 12345
En la política siguiente se muestra cómo crear un contexto denominado MyContext
y asignar un conjunto de valores a sus variables de miembros.
MyContext
= NewObject();
MyContext.One = "One";
MyContext.Two = 2;
MyContext.Three = 3.0;
String1 = MyContext.One + ", " + MyContext.Two + ", " + MyContext.Three;
Log(String10;
Al ejecutar esta política, se imprimirá el mensaje siguiente en el registro de política:
One, 2, 3.0
88
Netcool/Impact: Guía de soluciones
Sentencias If
La sentencia if se utiliza para realizar operaciones de ramificación.
La sentencia if se utiliza para controlar qué sentencias de una política se ejecutan
comprobando el valor de una expresión para ver si es true. La sentencia if, en el
lenguaje de políticas de Impact es la misma que la utilizada en los lenguajes de
programación como C/C++ y Java.
La sintaxis de la sentencia if es la palabra clave if seguida por una expresión
booleana entre paréntesis. Esta expresión va seguida por un bloque de sentencias
colocadas entre llaves. Opcionalmente, la sentencia if puede ir seguida por las
palabras clave else o elseif, que también van seguidas por un bloque de
sentencias.
if (condición){
sentencias
} elseif (condición){
sentencias
} else {
sentencias
}
donde condición es una expresión booleana y sentencias es un grupo de una o
más sentencias. Por ejemplo:
if (x == 0) {
Log("x igual a cero");
} elseif (x == 1){
Log("x igual a uno");
} else {
Log("x igual a cualquier otro valor.");
}
Cuando la palabra clave if se encuentra en una política, la expresión booleana, se
evalúa para ver si es verdadera. Si la expresión es true, el bloque de sentencias que
sigue se ejecuta. Si no es verdadera, las sentencias se saltan en el bloque. Si a
continuación existe una sentencia else en la política, se ejecuta el correspondiente
bloque de sentencias else.
En esta política de ejemplo, se utiliza la sentencia if para evaluar el valor de la
variable Integer1. Si el valor de Integer1 es 0, la política ejecuta las sentencias del
bloque de sentencias.
Integer1 = 0;
if (Integer1 == 0) {
Log("El valor de Integer1 es cero.");
}
Al ejecutar esta política, se imprimirá el mensaje siguiente en el registro de política:
El valor de Integer1 es cero.
Otro ejemplo muestra cómo utilizar la sentencia else. Aquí se establece el valor de
la variable Integer1 en 2. Debido a que la primera prueba de la sentencia if falla,
el bloque de sentencias que sigue a la sentencia else se ejecuta.
Integer1 = 2;
if (Integer1 == 1) {
Capítulo 4. Trabajar con políticas
89
Log("El valor de Integer1 es uno.");
} else {
Log("El valor de Integer1 no es uno.");
}
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
El valor de Integer1 no es uno.
Sentencias While
La sentencia while se utiliza para crear un bucle de un conjunto de instrucciones
hasta que se cumplan determinadas condiciones.
La sentencia while permite repetir un conjunto de operaciones hasta que una
condición especificada sea true. La sentencia while utilizada en el Lenguaje de
políticas de Impact es la misma que la utilizada en lenguajes de programación tales
como C, C++ y Java.
La sintaxis de la sentencia while es la palabra clave while seguida por una
expresión booleana entre paréntesis. Esta expresión va seguida por un bloque de
sentencias colocadas entre llaves.
while (condición) { sentencias }
donde condición es una expresión booleana y sentencias es un grupo de una o
más sentencias. Por ejemplo:
I = 10;
while(I > 0) {
Log("El valor de I es: " + I);
I = I - 1;
}
Cuando la palabra clave while se encuentra en una política, la expresión booleana,
se evalúa para ver si es verdadera. Si la expresión es true, se ejecutarán las
sentencias del bloque siguiente. Cuando se han ejecutado las sentencias,
Netcool/Impact prueba de nuevo la expresión y continúa ejecutando el bloque de
sentencias repetidamente hasta que la condición es false.
La manera más habitual de utilizar la sentencia while es construir un bucle que se
ejecuta un determinado número de veces según otros factores de una política. Para
utilizar la sentencia while de esta forma, debe utilizar una variable de entero como
contador. El valor del contador se establece antes de que se inicie el bucle while y
disminuya dentro del mismo. La sentencia While prueba el valor del contador cada
vez que se ejecuta el bucle y sale cuando el valor del contador es cero.
En el ejemplo siguiente se muestra un uso sencillo de la sentencia while:
Counter = 10;
while (Counter > 0) {
Log("El valor del contador es " + Counter);
Counter = Counter - 1;
}
Aquí se asigna el valor de 10 en una variable denominada Counter. En la sentencia
while, la política comprueba el valor de Counter para ver si es mayor que cero. Si
Counter es mayor que cero, se ejecutan las sentencias del bloque siguiente. La
sentencia final del bloque disminuye el valor de Counter en uno. El bucle While en
este ejemplo se ejecuta 10 veces antes de salir.
90
Netcool/Impact: Guía de soluciones
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
El
El
El
El
El
El
El
El
El
El
valor
valor
valor
valor
valor
valor
valor
valor
valor
valor
del
del
del
del
del
del
del
del
del
del
contador
contador
contador
contador
contador
contador
contador
contador
contador
contador
es
es
es
es
es
es
es
es
es
es
10
9
8
7
6
5
4
3
2
1
En el ejemplo siguiente se muestra cómo utilizar la sentencia While para iterar una
matriz. A menudo utiliza esta técnica al gestionar elementos de datos recuperados
de un origen de datos.
MyArray = {"One", "Two", "Three", "Four"};
Counter = Length(MyArray);
while (Counter > 0) {
Index = Counter - 1;
Log(MyArray[Index]);
Counter = Counter - 1;
}
Aquí se establece el valor de Counter en el número de elementos de la matriz. La
sentencia While realiza un bucle a través del bloque de sentencias una vez para
cada elemento de matriz. Debe establecer la variable Index en el valor de Counter
menos uno. Esto es porque las matrices de IPL están basadas en cero. Esto significa
que el valor de índice del primer elemento es 0 en lugar de 1.
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
Four
Three
Two
One
En estos ejemplos, cuando utiliza esta técnica para iterar a través de los elementos
de una matriz, accede a los elementos en orden inverso. Para evitar hacer esto
puede incrementar la variable Counter en lugar de disminuirla en el bucle. Esto
requiere que pruebe si el contador tiene menos que el número de elementos de la
matriz dentro de la sentencia While.
En el ejemplo siguiente se muestra cómo realizar un bucle a través de una matriz
al mismo tiempo que se aumenta el valor de la variable Counter.
MyArray = {"One", "Two", "Three", "Four"};
ArrayLength = Length(MyArray);
Counter = 0;
while (Counter < ArrayLength) {
Log(MyArray[Counter]);
Counter = Counter + 1;
}
Al ejecutar esta política, se imprimirá el mensaje siguiente en el registro de política:
One
Two
Three
Four
Capítulo 4. Trabajar con políticas
91
Funciones definidas por el usuario
Las funciones definidas por el usuario son las funciones que se utilizan para
organizar el código del cuerpo de una política.
Después de definir una función, puede invocarla del mismo modo que las
funciones de analizador y de acción incorporadas. Las variables que se pasan a
una función se pasan mediante referencia, en lugar de mediante un valor. Esto
significa que si se modifica el valor de una variable dentro de una función también
se modifica el valor de la variable en el ámbito general de la política.
Las funciones definidas por el usuario no pueden devolver un valor como un
parámetro de retorno. Puede devolver un valor definiendo un parámetro de salida
en la declaración de función y luego asignar un valor a la variable en el cuerpo de
la función. Los parámetros de salida se especifican del mismo modo que cualquier
otro parámetro.
Puede declarar sus propias funciones y llamarlas dentro de una política. Las
funciones definidas por el usuario ayudan a encapsular y reutilizar funcionalidad
en la política.
La sintaxis de una declaración de función es la palabra clave Function seguida por
el nombre de la función y una lista de parámetros de tiempo de ejecución
separados por coma. La lista de parámetros de tiempo de ejecución va seguida por
un bloque de sentencias colocadas entre llaves.
A diferencia de las funciones de acción y analizador, no puede especificar un valor
de retorno para una función definida por el usuario. Pero debido a que las
variables contenidas en una política de IPL tienen un ámbito global, puede emular
esta funcionalidad estableciendo el valor de una variable de retorno dentro de la
función.
Las declaraciones de función deben aparecer en una política antes que cualquier
instancia donde se llame a la función. El método recomendado es declarar todas
las funciones al comienzo de una política.
En el ejemplo siguiente se muestra cómo declarar una función definida por el
usuario denominada GetNodeByHostname. Esta función busca un nodo en un origen
de datos externo utilizando el nombre de host proporcionado.
Function GetNodeByHostName(Hostname) {
DataType = "Node";
Filter = "Nombre de host =’" + Nombre de host + "’";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
MyNode = MyNodes[0];
}
Se llama a las funciones definidas por el usuario de la misma forma que se llama a
otros tipos de funciones. En el ejemplo siguiente se muestra cómo llamar a la
función.
GetNodeByHostName("ORA_HOST_01");
Aquí el nombre del nodo que desea buscar es ORA_HOST_01. La función busca el
nodo en el origen de datos externo y devuelve un elemento de datos
92
Netcool/Impact: Guía de soluciones
correspondiente denominado MyNode. Para obtener más información sobre la
búsqueda de datos y elementos de datos, consulte el capítulo siguiente de esta
publicación.
Importante:
Cuando escriba una función de Impact compruebe que no llame a la función
dentro del cuerpo de la función ya que esto puede provocar un bucle recursivo y
originar un error de desbordamiento de pila.
Declaraciones de funciones
Las declaraciones de funciones son similares a las de los lenguajes de script como,
por ejemplo, JavaScript. Los nombres de función válidos pueden incluir números,
caracteres y caracteres de subrayado, peor no puede comenzar por un número.
El siguiente es un ejemplo de una función definida por el usuario.
Function MyFunc(DataType, Filter, MyArray) {
MyArray = GetByFilter(DataType, Filter, False);
}
Llamada a funciones definidas por el usuario
Puede llamar a una función definida por el usuario del modo siguiente:
Funcname([param1, param2 ...])
El siguiente ejemplo muestra una llamada a función definida por el usuario:
MyFunc("User", "Location = ’New York’", Users);
Ejemplos de funciones definidas por el usuario
El ejemplo siguiente muestra cómo se pasan las variables a una función por
referencia:
// Ejemplo de vars por referencia
Function IncrementByA(NumberA, NumberB) {
NumberB = NumberB + NumberA;
}
SomeInteger = 10;
SomeFloat = 100.001;
IncrementByA(SomeInteger, SomeFloat);
Log("SomeInteger es ahora: " + SomeInteger);
// devolverá: IntegerA is now 10
Log("SomeFloat es ahora: " + SomeFloat)
// devolverá: FloatB is now 110.001
El ejemplo siguiente muestra cómo las políticas manejan los valores de retorno de
las funciones definidas por el usuario:
// Ejemplo de salida sin retorno
Function LogTime(TimeToLog) {
If (TimeToLog == NULL) {
TimeToLog = getdate();
}
Log("En el tono, la hora será: "+ localtime(TimeToLog));
Capítulo 4. Trabajar con políticas
93
}
LoggedTime = LogTime(getdate());
Log("LoggedTime = "+LoggedTime);
// devolverá: "LoggedTime = NULL" ya que no puede
// devolverse nada desde las funciones de usuario
Planificación de políticas
Puede configurar Netcool/Impact para ejecutar políticas a horas específicas.
Ejecución de políticas utilizando el activador de política
Puede utilizar un servicio de activador de política para ejecutar una política a
intervalos especificados durante el tiempo de ejecución de Netcool/Impact.
Por ejemplo, si desea ejecutar una política denominada CHECK_SYSTEM_STATUS cada
60 minutos durante el día, debe crear un activador de política, y especificar el
nombre de la política y el intervalo de tiempo. A continuación, inicie el servicio en
el Servidor GUI. Si desea ejecutar una política diferente a horas específicos del día
o de la semana, debe utilizar planificaciones.
Ejecución de políticas utilizando planificaciones
Puede utilizar planificaciones con un activador de políticas para ejecutar una o
varias políticas a horas específicas.
Procedimiento
1. Cree una planificación.
El primer paso de la configuración de políticas para su ejecución a horas
específicas es crear un tipo de datos de planificación en la interfaz gráfica de
usuario. Para obtener más información, consulte “Creación de un tipo de datos
de planificación” en la página 95.
2. Cree un tipo de datos interno que represente cada política como tarea.
3.
4.
5.
6.
94
Después de crear el tipo de datos de planificación, debe crear un tipo de datos
que represente cada política como una tarea. El tipo de datos de tarea puede
ser un tipo de datos interno y normalmente tiene dos campos definidos por el
usuario. Uno que contiene un nombre descriptivo para la tarea y otro que
contiene el nombre de la política asociada con la tarea. Para obtener más
información, consulte “Creación de tipos de datos de tarea” en la página 95.
Cree elementos de datos de tarea.
Después de crear el tipo de datos de tarea, el paso siguiente es crear un
elemento de datos de tarea para cada política que desee planificar. Para obtener
más información, consulte “Creación de elementos de datos de tarea” en la
página 96.
Añada las tareas a la planificación.
Después de haber creado los elementos de datos de tarea, el paso siguiente es
agregar las tareas a la planificación que creó al principio. Esto requiere que
especifique la tarea que desea planificar y la fecha u hora a la que desea que se
ejecute la política asociada. Para obtener más información, consulte “Adición de
las tareas a la planificación” en la página 96.
Especifique rangos de tiempo para cada tarea.
Escriba una política de planificador superior que inicie las tareas.
Netcool/Impact: Guía de soluciones
Una política de planificador superior es una política que es responsable de
comprobar la planificación para ver si cualquier otra política se debe ejecutar
en ese momento. Para obtener más información, consulte “Escritura de la
política de planificador superior” en la página 97.
7. Cree un activador de política y configúrelo para ejecutar el planificador
superior.
El activador de política ejecuta la política de planificador superior a intervalos.
Cuando se ejecuta la política del planificador superior, comprueba si hay otras
políticas actualmente "de servicio" y luego las ejecuta. Puede configurar el
activador de política para que se ejecute con cualquier intervalo de tiempo.
Para obtener una temporización más precisa de las políticas planificadas, utilice
intervalos más pequeños. Para obtener más información, consulte “Creación de
un activador de política” en la página 97.
8. Inicie el activador de política.
Para iniciar el activador de política, pulse el icono Iniciar servicio asociado con
el nuevo activador de política donde se visualiza en el separador Servicios de
la barra de herramientas.
Creación de un tipo de datos de planificación
Puede crear un tipo de datos de planificación en Servidor GUI.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Seleccione un clúster de la lista Clúster. Desde la lista Proyecto, seleccione
Global.
3. En el separador Modelo de datos, pulse Planificar, pulsecon el botón derecho
y seleccione Tipo de datos nuevo para abrir el separador Tipo de datos nuevo
para Internos.
4. Especifique un nombre exclusivo para la planificación en el campo Nombre de
tipo de datos.
5. Pulse el icono Guardar para crear el tipo de datos de planificación.
Creación de tipos de datos de tarea
Utilice este procedimiento para crear el tipo de datos de tarea.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Seleccione un clúster y un proyecto de las listas Clúster y Proyectos.
3. En el separador Modelo de datos, pulse Internos, pulsecon el botón derecho y
seleccione Tipo de datos nuevo para abrir el separador Tipo de datos nuevo
para Internos.
4. Especifique un nombre exclusivo para el tipo de datos en el campo Nombre de
tipo de datos, por ejemplo, Tareas.
5. Cree nuevos campos que contengan un título descriptivo para la tarea y el
nombre de la política de la forma siguiente:
a. Pulse Campo nuevo para abrir la ventana Campo nuevo.
Utilice esta ventana para definir los atributos de los campos de tipo de
datos.
Capítulo 4. Trabajar con políticas
95
b. Especifique un ID exclusivo en el campo ID, por ejemplo, NombreTarea o
NombrePolítica.
c. Desde la lista Formato, seleccione Serie.
Los campos Nombre para mostrar y Descripción de esta ventana son
opcionales. Para los campos de tipos de datos internos, el nombre real y el
nombre para mostrar deben ser siempre iguales al ID de campo. Si deja
estos campos vacíos, se llenarán automáticamente con el valor del ID.
d. Pulse Aceptar para guardar los cambios y volver al separador del tipo de
datos.
6. En la lista Campo de nombre de visualización, seleccione el campo que
contiene el nombre de tarea. Este nombre para mostrar aparece cuando se
navega por los elementos de datos del tipo de datos. No afecta de ninguna otra
forma al comportamiento del tipo de datos.
7. Pulse el icono Guardar para implementar los cambios y crear el tipo de datos
de tareas.
Creación de elementos de datos de tarea
Utilice este procedimiento para crear un elemento de datos de tarea.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Seleccione un clúster y un proyecto de las listas Clúster y Proyectos.
3. En el separador Modelo de datos, expanda el tipo de datos Internos, seleccione
el elemento de datos de tareas, pulsecon el botón derecho y seleccione Ver
elementos de datos.
4. Pulse el icono Nuevo en el menú.
5. Especifique valores para el campo de Clave y para los campos de nombre de
tarea y nombre de política que ha definido al crear el tipo de datos de tareas. El
valor del campo Clave puede ser el mismo que el nombre de tarea. Sin
embargo, si los elementos de datos se crean en el tipo de datos interno o
cualquier otro tipo de datos que se debe utilizar en la configuración de
planificación, el campo Clave debe ser exclusivo en el tipo de datos y en todas
las tareas y políticas.
6. Pulse Aceptar. A continuación, pulse Guardar para crear el elemento de datos.
Adición de las tareas a la planificación
Utilice este procedimiento para añadir una tarea a la planificación.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. En el separador Modelo de datos, expanda el origen de datos Planificación,
seleccione la tarea de planificación que ha creado y pulsecon el botón derecho
y seleccione Elementos de datos nuevos para abrir el separador Elementos de
datos: Planificación.
3. Pulse Nuevo para abrir el Editor de planificación.
4. En el campo Nombre de planificación, escriba un nombre para la
planificación.
5. Añada una descripción al campo Descripción.
96
Netcool/Impact: Guía de soluciones
6. En la lista Editar miembros por tipo, seleccione el nombre del tipo de datos
de tarea que ha creado y pulse Editar.
7. En la ventana Seleccionar miembros de planificación que se abre, seleccione
las tareas que desee planificar y pulse Añadir.
8. Pulse Aceptar.
9. En la ventana Editor de planificación, seleccione la tarea que desea planificar
en la lista Miembros de planificación.
10. Seleccione el tipo de intervalo de tiempo que desea asociar con la tarea en la
lista Añadir nuevo intervalo de tiempo y, a continuación, pulse Nuevo. Los
posibles tipos de intervalos de tiempo son Diario, Semanal y Absoluto.
11. En la ventana Editar intervalo de tiempo que se abre, especifique el intervalo
de tiempo y el huso horario durante el que desea que se ejecute la política. La
hora exacta a la que se ejecuta la política depende de este intervalo de tiempo
y de la frecuencia a la que el activador de política ejecute la política de
planificador superior. Pulse Aceptar.
12. Pulse Aceptar para salir de la ventana Editor de planificación.
Escritura de la política de planificador superior
Una política de planificador superior es una política que es responsable de
comprobar la planificación para ver si cualquier otra política se debe ejecutar en
ese momento.
También es responsable de iniciar la política. La política de planificador superior
llama a la función GetScheduleMember y recupera el elemento de datos de tarea que
está actualmente "de servicio". A continuación, obtiene el nombre de la política
asociada con la tarea y la ejecuta utilizando la función Activar.
En el ejemplo siguiente se muestra una política típica de planificador superior. En
este ejemplo, el nombre del tipo de datos de planificación es Planificación y el
nombre de la propia planificación es PlanificaciónTareas. El tipo de datos Tareas
contiene un campo denominado NombrePolítica que especifica el nombre de la
política que se debe ejecutar.
// Llamar a GetByKey y recuperar el elemento de datos de planificación que contiene
// la planificación de tareas
DataType = "Planificación";
Key = "PlanificaciónTareas";
MaxNum = 1;
Schedules = GetByKey(DataType, Key, MaxNum);
// Llamar a GetScheduleMember y recuperar la tarea que está actualmente
// "de servicio"
Tasks = GetScheduleMember(Schedules[0], 0, False, GetDate());
// Llamar a Activate e iniciar la política asociada con la tarea
Activate(Null, Tasks[0].PolicyName);
Creación de un activador de política
Utilice este procedimiento para crear el activador de políticas.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Servicios para abrir el separador Servicios.
Capítulo 4. Trabajar con políticas
97
2. En el separador Servicios, pulse el icono Crear servicio nuevo en la barra de
herramientas. Pulse Activador de políticas para abrir el separador Activador
de política nuevo.
3. En el campo Nombre de servicio, escriba un nombre exclusivo para el
activador de políticas.
4. En el campo Intervalo de activación, especifique en segundos el intervalo en el
que desee que el activador de políticas ejecute la política de planificador
superior.
5. En la lista Política, seleccione la política de planificador superior que ha creado.
6. Seleccione el recuadro de selección Inicio si desea que el activador de políticas
se ejecute de forma automática cuando se inicia el servidor.
7. Seleccione el recuadro de selección Registro de servicio si desea escribir los
registros de servicio en un archivo.
8. Pulse el icono Guardar de la barra de herramientas para crear el activador de
políticas.
98
Netcool/Impact: Guía de soluciones
Capítulo 5. Gestión de sucesos
Desde una política de IPL, puede acceder y actualizar los valores del campo de los
sucesos entrantes; añadir entradas de diario a los sucesos; enviar sucesos nuevos al
origen de sucesos y suprimir sucesos en el origen de sucesos.
Visión general de sucesos
Un suceso es un conjunto de datos que representa un estado o una actividad de
una red. La estructura y el contenido de un suceso varían en función del
dispositivo, sistema o aplicación que ha generado el suceso pero en la mayoría de
casos, los sucesos son alertas de Netcool/OMNIbus.
Estos sucesos los generan supervisores y analizadores Netcool y se almacenan en la
base de datos del ObjectServer. Los sucesos se obtienen utilizando lectores de
sucesos, escuchas de sucesos y servicios de lectores de correo electrónico.
Los datos de sucesos entrantes se almacenan utilizando la variable incorporada
EventContainer. Esta variable se pasa al motor de política como parte del contexto
al ejecutar una política. Al escribir una política, puede acceder a los campos del
suceso utilizando las variables de miembros de EventContainer.
Contenedores de sucesos
El contenedor de sucesos es un tipo de datos nativo de Netcool/Impact utilizado
para almacenar datos de sucesos.
El contenedor de sucesos consta de un conjunto de variables de estado de sucesos
y campos de sucesos.
Variable EventContainer
EventContainer es una variable incorporada que almacena los datos de los campos
de los sucesos entrantes.
Cada vez que se pasa un suceso al motor de política para su proceso, se crea una
instancia de EventContainer, se llenan las variables de los campos del suceso y el
suceso se almacena en el contexto de política. A continuación, puede acceder a los
valores de los campos del suceso desde la política.
Variables de campos de suceso
Las variables de campos de suceso son variables de miembros de un contenedor de
sucesos que almacenan los valores de los campos de un suceso.
Existe una variable de campo de suceso para cada campo de un suceso. Los
nombres de las variables de campos de suceso equivalen a los nombres de los
campos de suceso. Por ejemplo, si un suceso tiene campos denominados AlertKey,
Node, Severity y Summary, el contenedor de sucesos correspondiente tiene variables
de campos de suceso con los mismos valores.
© Copyright IBM Corp. 2006, 2014
99
Variables de estado de suceso
Las variables de estado de suceso son un conjunto de variables de miembros
predefinidas que se pueden utilizar para especificar el estado de un suceso al
enviarlo al origen de sucesos utilizando la función ReturnEvent.
Se utilizan dos variables de estado de suceso: JournalEntry y DeleteEvent. Para
obtener información sobre la utilización de JournalEntry, consulte “Adición de
entradas de diario a los sucesos” en la página 101. Para obtener información sobre
la utilización de DeleteEvent, consulte “Supresión de sucesos” en la página 103.
Variables de contenedor de sucesos definidas por el usuario
Las variables de contenedor de sucesos definidas por el usuario son variables que
se crean al utilizar la función NewEvent.
Puede utilizar estas variables al enviar sucesos nuevos al origen de sucesos, o
cuando desee almacenar temporalmente datos de sucesos en una política.
Acceso a los campos de sucesos
Puede utilizar la notación por puntos o la notación @ para acceder a los valores de
los campos de sucesos.
Utilización de la notación por puntos
Puede utilizar la notación por puntos para acceder al valor de los campos de
sucesos de la misma forma que accede a los valores de las variables de miembros
de una struct en lenguajes como C y C++.
En la política siguiente se muestra cómo utilizar la notación por puntos para
acceder a los valores de los campos Node, Severity y Summary de un suceso
entrante e imprimirlos en el registro de política:
Log(EventContainer.Node);
Log(EventContainer.Severity);
Log(EventContainer.Summary);
Utilización de la notación @
Si utiliza IPL, puede utilizar la notación @ para acceder a los campos de sucesos.
La notación @ es una abreviatura que puede utilizar para hacer referencia a los
campos de sucesos en la variable EventContainer incorporada sin necesidad de
escribir todo el nombre de EventContainer. Si utiliza JavaScript, debe utilizar la
notación con puntos EventContainer.Identifier.
En la política siguiente se muestra cómo utilizar la notación @ para acceder al
valor de los campos Node, Severity y Summary de un suceso entrante e imprimirlos
en el registro de política:
Log(@Node);
Log(@Severity);
Log(@Summary);
Actualización de los campos de sucesos
Para actualizar los campos de un suceso entrante, debe asignar nuevos valores a
las variables de los campos de suceso en EventContainer.
100
Netcool/Impact: Guía de soluciones
Un suceso que tenga un nuevo valor asignado a su variable de campo no se
actualizará hasta que llame a la función ReturnEvent.
En los ejemplos siguientes se muestra cómo actualizar los campos Summary y
Severity de un suceso entrante.
@Summary = "Nodo inactivo";
@Summary = @Summary + ": Actualizado por Netcool/Impact";
@Severity = 3;
@Severity = @Severity + 1;
Adición de entradas de diario a los sucesos
Puede utilizar IPL y JavaScript para añadir entradas de diario a los sucesos de
Netcool/OMNIbus existentes.
Acerca de esta tarea
Sólo puede agregar entradas de diario a sucesos que existan en la base de datos
del ObjectServer. No puede añadir entradas de diario a sucesos nuevos que ha
creado utilizando la función NewEvent en la política actualmente en ejecución. Siga
estos pasos para añadir una entrada de diario a un suceso.
Procedimiento
1. Asigne el texto del diario a la variable JournalEntry.
JournalEntry es una variable de estado de suceso para agregar nuevas entradas
de diario a un suceso existente. Para obtener más información, consulte
“Asignación de la variable JournalEntry”.
2. Envíe el suceso al origen de sucesos utilizando la función ReturnEvent.
Llame a ReturnEvent y pase el contenedor de sucesos como parámetro de
tiempo de ejecución de la forma siguiente:
ReturnEvent(EventContainer);
Ejemplo
En el ejemplo siguiente se muestra cómo agregar una nueva entrada de diario a un
suceso entrante.
// Asignar un texto de entrada de diario a la variable JournalEntry
@JournalEntry = ’Modificado el ’ + LocalTime(GetDate()) + "\r\n" +
’Modificado por Netcool\Impact.’;
// Enviar el suceso al origen de sucesos utilizando ReturnEvent
ReturnEvent(EventContainer);
Asignación de la variable JournalEntry
JournalEntry es una variable de estado de suceso para agregar nuevas entradas de
diario a un suceso existente.
Netcool/Impact utiliza reglas especiales para interpretar literales de serie
asignados a JournalEntry. El texto almacenado en JournalEntry se debe asignar
utilizando comillas, a excepción de los caracteres especiales como \r, \n y \t, que
se deben asignar utilizando comillas dobles. Si desea utilizar ambas clases de texto
en una única entrada, debe especificarlas por separado y, a continuación,
concatenar la serie utilizando el operador +.
Capítulo 5. Gestión de sucesos
101
Para incorporar un salto de línea en una entrada de diario, debe utilizar una serie
\r\n.
En los ejemplos siguientes se muestra cómo asignar texto de diario a la variable
JournalEntry.
@JournalEntry = ’Modificado por Netcool/Impact’;
@JournalEntry = ’Modificado el ’ + LocalTime(GetDate());
@JournalEntry = ’Modificado el ’ + LocalTime(GetDate()) + "\r\n" +
’Modificado por Netcool/Impact’;
Envío de sucesos nuevos
Utilice este procedimiento para enviar sucesos nuevos a un origen de sucesos.
Procedimiento
1. Crear un contenedor de sucesos utilizando la función NewEvent
Para crear un contenedor de sucesos, llame la función NewEvent y pase el
nombre del lector de sucesos asociado al origen de sucesos:
MyEvent = NewEvent("lectorsucesospredeterminado");
La función devuelve un contenedor de sucesos vacío.
2. Establezca la variable de miembro EventReaderName:
MyEvent.EventReaderName = "defaulteventreader";
3. Llene los campos de sucesos asignando valores a las variables de campo de
suceso correspondientes.
Por ejemplo:
MyEvent.EventReaderName = "defaulteventreader";
MyEvent.Node = "192.168.1.1";
MyEvent.Summary = "Nodo inactivo";
MyEvent.Severity = 5;
MyEvent.AlertKey = MyEvent.Node + ":" + MyEvent.Summary;
4. Envíe el suceso al origen de datos utilizando la función ReturnEvent.
Llame a la función ReturnEvent y pase el contenedor de sucesos nuevo como
parámetro de tiempo de ejecución de la forma siguiente:
ReturnEvent(MyEvent);
Ejemplo
En el ejemplo siguiente se muestra cómo crear, llenar y enviar un nuevo suceso a
un origen de sucesos.
// Crear un nuevo contenedor de sucesos
MyEvent = NewEvent("lectorsucesospredeterminado");
// Llenar las variables de miembros del contenedor de sucesos
MyEvent.EventReaderName = "defaulteventreader";
MyEvent.Node = "192.168.1.1";
MyEvent.Summary = "Nodo inactivo";
MyEvent.Severity = 5;
MyEvent.AlertKey = MyEvent.Node + ":" + MyEvent.Summary;
// Agregar una entrada de diario (opcional)
MyEvent.JournalEntry = ’Modificado el ’ + LocalTime(GetDate()) + "\r\n" +
’Modificado por Netcool/Impact";
102
Netcool/Impact: Guía de soluciones
// Enviar el suceso al origen de sucesos
ReturnEvent(MyEvent);
Supresión de sucesos
Utilice este procedimiento para suprimir un suceso entrante del origen de sucesos.
Procedimiento
1. Establezca la variable DeleteEvent en el contenedor de sucesos.
La variable DeleteEvent es una variable de estado de suceso que se utiliza para
especificar que se debe suprimir un suceso cuando éste se envíe de vuelta al
origen de sucesos. Debe establecer el valor de DeleteEvent en True para que se
suprima un suceso. Por ejemplo:
@DeleteEvent = True;
2. Envíe el suceso al origen de sucesos utilizando la función ReturnEvent.
Por ejemplo:
ReturnEvent(EventContainer);
Ejemplos de supresión de un suceso entrante del origen de
sucesos
Estos ejemplos muestran cómo suprimir un suceso entrante del origen de sucesos
mediante IPL y JavaScript.
v Lenguaje de políticas de Impact:
// Establecer la variable DeleteEvent
@DeleteEvent = True;
// Enviar el suceso al origen de sucesos
ReturnEvent(EventContainer);
v JavaScript:
// Establecer la variable DeleteEvent
EventContainer.DeleteEvent = true;
// Enviar el suceso al origen de sucesos
ReturnEvent(EventContainer);
Capítulo 5. Gestión de sucesos
103
104
Netcool/Impact: Guía de soluciones
Capítulo 6. Gestión de datos
Puede manejar datos en una política.
Desde dentro de una política puede recuperar datos de un origen de datos por
filtro, por clave o por enlace, suprimir, o añadir datos a un origen de datos,
actualizar datos en un origen de datos y llamar a funciones de base de datos o
procedimientos almacenados.
Puede acceder a datos almacenados en una amplia variedad de orígenes de datos.
Éstos incluyen muchas bases de datos comerciales, como por ejemplo Oracle,
Sybase y Microsoft SQL Server. También puede acceder a los datos almacenados en
el origen de datos LDAP y a los datos almacenados por diversas aplicaciones de
terceros, incluidos los gestores de inventario de red y los sistemas de mensajería.
Cómo trabajar con elementos de datos
Los elementos de datos son elementos del modelo de datos que representa
unidades reales de datos almacenadas en un origen de datos.
La estructura de esta unidad de datos depende de la categoría del origen de datos
asociada. Por ejemplo, si el origen de datos es un tipo de datos de la base de datos
SQL, cada elemento de datos corresponde a una fila de una tabla de la base de
datos. Si el origen de datos es un servidor LDAP, cada elemento de datos
corresponde a un nodo de la jerarquía de LDAP.
Variables de campos
Las variables de campos son variables de miembros de un elemento de datos.
Existe una variable de campo para cada campo de elemento de datos. Los nombres
de las variables de campos coinciden con que los nombres de los campos de
elementos de datos subyacentes. Por ejemplo, si tiene un elemento de datos con
dos campos denominados ID de usuario y Nombre de usuario, también tendrá dos
variables de campos denominadas ID de usuario y Nombre de usuario.
Variables DataItem y DataItems
La variable DataItems es una variable incorporada de matriz de tipos que se utiliza
de manera predeterminada para almacenar elementos de datos devueltos por
GetByFilter, GetByKey, GetByLinks u otras funciones que recuperan elementos de
datos. Si no especifica una variable de retorno al llamar a estas funciones,
Netcool/Impact asigna los elementos de datos recuperados a la variable DataItems.
La variable DataItem hace referencia al primer elemento (índice 0) de la matriz
DataItems.
Recuperación de datos por filtro
La recuperación de datos por filtro significa que los elementos de datos se obtienen
de un tipo de datos donde ya sabe el valor de uno de los campos o de varios.
Cuando recupera datos por filtro, está diciendo "Proporcionarme todos los
elementos de datos de ese tipo, donde determinados campos contengan los valores
especificados.
© Copyright IBM Corp. 2006, 2014
105
Cómo trabajar con filtros
Un filtro es una cadena de texto que define las condiciones para las que
Netcool/Impact recupera datos.
El uso de filtros con tipos de datos internos, SQL, LDAP y algunos tipos de datos
Mediator está soportado. El formato del filtro varía dependiendo de la categoría
del tipo de datos.
Filtros SQL
Los filtros SQL son series de texto que se utilizan para especificar un subconjunto
de elementos de datos en un tipo de datos interno o de base de datos SQL.
Para tipos de datos internos y de base de datos SQL, el filtro es una cláusula WHERE
de SQL que proporciona un conjunto de comparaciones que deben ser true para
que se devuelva un elemento de datos. Estas comparaciones normalmente se
realizan entre los nombres de campos y sus valores correspondientes.
Sintaxis
Para tipos de datos de base de datos SQL, la sintaxis del filtro SQL la especifica el
origen de datos subyacente. El filtro SQL es el contenido de una cláusula SQL
WHERE especificada en el formato proporcionado por la base de datos subyacente.
Cuando los elementos de datos se recuperan del origen de datos, este filtro se pasa
directamente a la base de datos subyacente para su proceso.
Para los tipos de datos internos, el filtro SQL lo procesa internamente el motor de
políticas. Para los tipos de datos internos, la sintaxis es la siguiente:
Campo
Operador
Valor [AND | OR | NOT (Campo
Operador
Valor) ...]
donde Campo es el nombre de un campo de tipo de datos, Operador es un operador
comparativo y Valor es el valor del campo.
Atención: Tenga en cuenta que para los tipos de datos internos y SQL, los
literales de un filtro SQL deben estar entrecomillados. El motor de políticas
interpreta las comillas dobles antes de procesar el filtro SQL. Si se utilizan comillas
dobles dentro de un filtro SQL se generan errores de análisis.
Operadores
Uno de los operadores de comparación estándar especifica el tipo de comparación.
La sintaxis del filtro SQL soporta los operadores comparativos siguientes:
v >
v <
v =
v <=
v =>
v !=
v LIKE
106
Netcool/Impact: Guía de soluciones
Restricción: Puede utilizar el operador LIKE con expresiones regulares, como las
que soporta el origen de datos subyacente.
La sintaxis del filtro SQL soporta los operadores booleanos AND, OR y NOT.
Consejo: Se pueden utilizar juntas varias comparaciones mediante los operadores
AND, OR y NOT.
Orden de operación
Puede especificar el orden en que se evalúan las expresiones del SQL utilizando
paréntesis.
Ejemplos
A continuación se proporciona un ejemplo de filtro SQL:
Location = ’NYC’
Location LIKE ’NYC.*’
Facility = ’Wandsworth’ AND Facility = ’Putney’
Facility = ’Wall St.’ OR Facility = ’Midtown’
NodeID >= 123345
NodeID != 123234
Puede utilizar este filtro para obtener todos los datos en los que el valor del campo
Location es New York:
Location = ’New York’
Con este filtro se obtienen todos los datos en los que el valor del campo Location
es New York o New Jersey:
Location = ’New York’ OR Location = ’New Jersey’
Para obtener todos los elementos de datos cuando el valor del campo Location es
Chicago o Los Angeles y el valor del campo Nivel es 3:
(Location = ’New York’ OR Location = ’New Jersey’) AND Nivel = 3
Filtros LDAP
Los filtros LDAP son series de texto que se utilizan para especificar un
subconjunto de elementos de datos en un tipo de datos LDAP.
El origen de datos LDAP subyacente procesa los filtros LDAP.Utilice los filtros
LDAP cuando realice las tareas siguientes:
v Recuperar elementos de datos de un tipo de datos LDAP que utilice
GetByFilter.
v Recuperar un subconjunto de elementos de datos LDAP que utilice GetByLinks.
v Suprimir elementos de datos individuales de un tipo de datos LDAP.
v Especificar qué elementos de datos aparecen cuando examina un tipo de datos
LDAP en la GUI.
Sintaxis
Un filtro LDAP consta de una o varias expresiones booleanas con operadores
lógicos que tienen el prefijo de la lista de expresiones.Las expresiones booleanos
utilizan el formato siguiente:
Capítulo 6. Gestión de datos
107
Atributo
Operador
Valor
donde Atributo es el nombre del atributo LDAP Valor es el valor del campo.
La sintaxis del filtro admite los operadores =, ~=, <, <=, >, >= y ! y proporciona
una coincidencia de subseries limitadas si se utiliza el operador *. Asimismo, la
sintaxis también da soporte a llamadas para coincidencia de extensiones definidas
en el origen de datos LDAP. Los espacios en blanco no se utilizan como
separadores entre el atributo, el operador y el valor y estos valores de serie no se
especifican utilizando comillas.
Para obtener más información acerca de la sintaxis de filtros LDAP, consulte
Internet RFC 2254.
Operadores
Como con los filtros SQL, los filtros LDAP proporcionan un conjunto de
comparaciones que deben ser true a fin de que se devuelva el elemento de datos.
Estas comparaciones normalmente se realizan entre los nombres de campos y sus
valores correspondientes. Los operadores de comparación a los que se da soporte
en los filtros LDAP son los siguientes:
v =
v ~=,
v
v
v
v
v
<
<=
>
>=
!
Una diferencia entre los filtros LDAP y los filtros SQL es que cualquier operador
booleano utilizado para especificar varias comparaciones debe aparecer como
prefijo de la expresión. Otra diferencia es que los literales de serie no se especifican
utilizando comillas.
Ejemplos
A continuación se proporciona un ejemplo de filtro LDAP:
(cn=Mahatma Gandhi)
(!(location=NYC*))
(&(facility=Wandsworth)(facility=Putney))
(|(facility=Wall St.)(facility=Midtown)(facility=Jersey City))
(nodeid>=12345)
Puede utilizar este ejemplo para obtener todos los datos en los que el valor de
nombre común es Mahatma Gandhi:
(cn=Mahatma Gandhi)
Con este ejemplo obtendrá todos los elementos de datos en los que el valor del
atributo location no empieza por la serie NYC:
(!(location=NYC*))
Para obtener todos los elementos de datos donde el valor del atributo facility es
Wandsworth o Putney:
108
Netcool/Impact: Guía de soluciones
(|(facility=Wandsworth)(facility=Putney))
Filtros de mediador
Los filtros de Mediador se utilizan con la función GetByFilter para recuperar los
elementos de datos de algunos tipos de datos de Mediador.
La sintaxis de los filtros de mediador varía en función del DSA subyacente. Para
obtener más información sobre la sintaxis de mediador para un DSA determinado,
consulte la documentación del DSA.
Recuperación de datos por filtro en una política
Para recuperar datos por filtro, debe llamar a la función GetByFilter y pasar el
nombre del tipo de datos y la serie de filtro.
La función devuelve una matriz de elementos de datos que coinciden con las
condiciones del filtro. Si no especifica una variable de retorno, GetByFilter asigna
la matriz a la variable DataItems incorporada.
Ejemplo de recuperación de datos de un tipo de datos de base
de datos SQL
Estos ejemplos muestran cómo recuperar datos de un tipo de datos de base de
datos SQL.
En el primer ejemplo, puede obtener todos los elementos de datos de un tipo de
datos llamado Node donde el valor del campo Location es New York y el valor del
campo TypeID es 012345.
A continuación se imprimen los campos y valores del elemento de datos en el
registro de política utilizando las funciones Log y CurrentContext.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Node";Filter = "Location = ’New York’ AND TypeID = 012345";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
MyNodes = GetByFilter("Node", "Location = ’New York’ AND TypeID = 012345", False);
Log(CurrentContext());
En el segundo ejemplo, puede obtener todos los elementos de datos de un tipo de
datos llamado Node donde el valor del campo IPAddress iguala el valor del campo
Node en un suceso entrante. Como anteriormente, se imprimen los campos y
valores de los elementos de datos en el registro de política.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Node";
Filter = "IPAddress = ’" + @Node + "’";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
Capítulo 6. Gestión de datos
109
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Asegúrese de comprender la sintaxis de filtro en el código de ejemplo. Cuando se
utiliza el valor de una variable dentro de una serie de filtro SQL, el valor se debe
colocar entre comillas. Se debe a que Netcool/Impact procesa la serie de filtro en
dos etapas. Durante la primera etapa, evalúa la variable. Durante la segunda etapa,
concatena la serie de filtro y la envía al origen de datos para su proceso.
Una versión más corta de este ejemplo es la siguiente:
MyNodes = GetByFilter("Node", "Location = ’" + @Node + "’", False);
Log(CurrentContext());
Ejemplo de recuperación de datos de un tipo de datos LDAP
Estos ejemplos muestran cómo recuperar datos de un tipo de datos LDAP.
En el primer ejemplo, puede obtener cualesquiera elementos de datos de un tipo
de datos llamado User donde el valor del campo cn (nombre común) es Brian
Huang. A continuación se imprimen los campos y valores del elemento de datos en
el registro de política utilizando las funciones Log y CurrentContext.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Usuario";
Filter = "(cn=Brian Huang)";
CountOnly = False;
MyUsers = GetByFilter(DataType, Filter, CountOnly);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
MyUsers = GetByFilter("User", "(cn=Brian Huang)", False);
Log(CurrentContext());
En el segundo ejemplo, puede obtener todos los elementos de datos de un tipo de
datos llamado Node donde el valor del campo Location es New York o New Jersey.
Como anteriormente, se imprimen los campos y valores de los elementos de datos
en el registro de política.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Node";
Filter = "(|(Location=NewYork)(Location=New Jersey))";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
// Registrar los valores de campos de elementos de datos
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
MyNodes = GetByFilter("Node", "(|(Location=New York)(Location=New Jersey))", False);
Log(CurrentContext());
110
Netcool/Impact: Guía de soluciones
Ejemplo de búsqueda de datos de un tipo de datos Mediador
DSA de Smallworld
En el ejemplo siguiente se muestra cómo buscar datos de un tipo de datos de
Mediador de DSA Smallworld.
Smallworld es un gestor de inventario de red desarrollado por GE Network
Solutions. Netcool/Impact proporciona un DSA de mediador y un conjunto de
tipos de datos predefinidos que permiten leer datos del NIS Smallworld.
En este ejemplo se obtienen todos los elementos de datos del tipo de datos
SWNetworkElement donde el valor de ne_name es DSX1 PNL-01 (ORP). A
continuación se imprimen los campos y valores del elemento de datos en el
registro de política utilizando las funciones Log y CurrentContext.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "ELementoRedSW";
Filter = "ne_name = ’DSX1 PNL-01 (ORP)’";
CountOnly = False;
MyElements = GetByFilter(DataType, Filter, CountOnly);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
MyElements = GetByFilter("ElementoRedSW", \
"ne_name = ’NSX1 PNL-01 (ORP)’", False);
Log(CurrentContext());
Recuperación de datos por clave
La recuperación de datos por clave significa que los elementos de datos se
obtienen de un tipo de datos donde ya sabe el valor de uno de los campos de
clave o de varios.
Cuando recupera datos por clave, está diciendo: "Proporcionarme un número
determinado de elementos de datos en ese tipo, donde los campos de clave
equivalgan a los valores que especifique. Debido a que los campos de clave
normalmente indican un elemento de datos exclusivo, el número de elementos de
datos devueltos es normalmente de uno.
Claves
Una clave es un campo especial de un tipo de datos que identifica de forma
exclusiva un elemento de datos.
Debe especificar los campos de clave al crear un tipo de datos. La forma más
habitual de utilizar el campo de clave es utilizarlo para identificar un campo de
clave en el origen de datos subyacente. Para obtener más información sobre las
claves de tipo de datos, consulte “Claves de tipo de datos” en la página 19.
Expresiones de clave
La expresión de clave es un valor o matriz de valores al que deben equivaler los
campos de clave del elemento de datos a fin de que se devuelvan.
Están soportadas las expresiones de clave siguientes:
Capítulo 6. Gestión de datos
111
Expresiones de clave única
Una expresión de clave única es un entero, valor flotante o serie que
especifica el valor con el que el campo de clave de un elemento de datos
debe coincidir para que se devuelva.
Expresiones de varias claves
Una expresión de varias claves es una matriz de valores con la que los
campos de clave de un elemento de datos deben coincidir para poder
recuperarse. Para obtener más información, consulte “Expresiones de varias
claves”.
Expresiones de varias claves
Una expresión de varias claves es una matriz de valores con la que los campos de
clave de un elemento de datos deben coincidir para poder recuperarse.
Netcool/Impact determina si los valores de los campos de clave coinciden
comparando cada uno de los valores de la matriz con el campo de clave
correspondiente de uno en uno. Por ejemplo, si tiene un tipo de datos con dos
campos de clave denominados Key_01 y Key_02, y utiliza una expresión de clave
de {"KEY_12345", "KEY_93832"}, la función compara KEY_12345 con el valor de
Key_01 y KEY_93832 con el valor de Key_02. Si los dos campos coinciden con los
valores especificados, la función devuelve el elemento de datos. Si sólo un campo
coincide, o ninguno de ellos, el elemento de datos no se devuelve.
Recuperación de datos por clave en una política
Para recuperar datos por clave, debe llamar a la función GetByKey y pasar el
nombre del tipo de datos y la serie de filtro.
La función devuelve una matriz de elementos de datos que coinciden con las
condiciones del filtro. Si no especifica una variable de retorno, GetByKey asigna la
matriz a la variable DataItems incorporada.
Ejemplo de devolución de datos de un tipo de datos mediante
una expresión de una sola clave
En este ejemplo se recupera un elemento de datos de un tipo de datos denominado
Nodo donde el valor del campo de clave es ID-00001.
A continuación se imprimen los campos y valores del elemento de datos en el
registro de política utilizando las funciones Log y CurrentContext.
// Llamar a GetByKey y pasar el nombre del tipo de datos
// y la expresión de clave.
DataType = "Node";
Key = "ID-00001";
MaxNum = 1;
MyNodes = GetByKey(DataType, Key, MaxNum);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
MyNodes = GetByKey("Node", "ID-00001", 1);
Log(CurrentContext());
112
Netcool/Impact: Guía de soluciones
Ejemplo de devolución de datos por clave mediante una
expresión de varias claves
En este ejemplo se recupera un elemento de datos de un tipo de datos denominado
Cliente donde los valores de sus campos de clave son R12345 y D98776.
Se imprimen los campos y valores de los elementos de datos en el registro de
política.
// Llamar a GetByKey y pasar el nombre del tipo de datos
// a la expresión de clave.
Type = "Cliente";
Key = {"R12345", "D98776"};
MaxNum = 1;
MyCustomers = GetByKey(Type, Key, MaxNum);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
MyCustomers = GetByKey("Cliente", {"R12345", "D98776"}, 1);
Log(CurrentContext());
Recuperación de datos por enlace
La recuperación de datos por enlace significa que los elementos de datos se
obtienen de tipos de datos enlazados a uno o más elementos de datos que ha
recuperado anteriormente.
Cuando recupera elementos de datos por enlace, está diciendo "Proporcionarme
elementos de datos de estos tipos de datos que estén enlazados a estos elementos
de datos que ya tiene. Los elementos de datos que ya tiene se denominan
elementos de datos de origen. Los elementos de datos que desea recuperar se
denominan destinos.
Visión general de enlaces
Los enlaces son elementos del modelo de datos que definen relaciones entre
elementos de datos y entre tipos de datos.
Pueden ahorrar tiempo durante el desarrollo de políticas porque permiten definir
una relación de datos una vez y a continuación reutilizarla varias veces cuando
necesite encontrar datos relacionados con otros datos en una política.Los enlaces
son un componente opcional de un modelo de datos. Los enlaces dinámicos y
estáticos están soportados.
Recuperación de datos por enlace en una política
Para recuperar elementos de datos por enlace, en primer lugar debe recuperar
elementos de datos de origen utilizando las funciones GetByFilter o GetByKey.
A continuación, debe llamar a GetByLinks y pasar una matriz de tipos de datos de
destino y los orígenes. La función devuelve una matriz de elementos de datos de
los tipos de datos de destino que están enlazados con los elementos de datos de
origen. Opcionalmente, puede especificar un filtro que define un subconjunto de
elementos de datos de destino a devolver. También puede especificar el número
máximo de elementos de datos devueltos.
Capítulo 6. Gestión de datos
113
Ejemplo de recuperación de datos por enlace
En estos ejemplos se muestra cómo recuperar datos por enlace.
En el primer ejemplo, se llama a GetByFilter y se recupera un elemento de datos
del tipo de datos Nodo cuyo valor Nombre de host coincide con el campo Nodo de
un suceso entrante. A continuación, se llama a GetByLinks para recuperar todos los
elementos de datos del tipo de datos Clientes que están enlazados al Nodo. En este
ejemplo se imprimen los campos y valores de los elementos de datos del registro
de política antes de salir.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Node";
Filter = "Nombre de host = ’" + @Node + "’";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
// Llamar a GetByLinks y pasar el tipo de datos de destino,
// el número máximo de elementos de datos a recuperar y
// el elemento de datos de origen.
DataTypes = {"Cliente"};
Filter = "";
MaxNum = "10000";
DataItems = MyNodes;
MyCustomers = GetByLinks(DataTypes, Filter, MaxNum, DataItems);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es:
MyNodes = GetByFilter("Node", "Nombre de host = ’" + @Node + "’", False");
MyCustomers = GetByLinks({"Cliente"}, "", 10000, MyNodes);
Log(CurrentContext());
En el segundo ejemplo se utiliza un filtro de enlace para especificar un
subconjunto de elementos de datos en el tipo de datos de destino que se debe
devolver. Como anteriormente, se llama a GetByFilter y se recupera un elemento
de datos del tipo de datos Nodo cuyo valor Nombre de host coincide con el campo
Nodo de un suceso entrante. A continuación, se llama a GetByLinks para recuperar
todos los elementos de datos del tipo de datos Clientes cuya Ubicación es New
York y que están enlazados con el Nodo. A continuación, se imprimen los campos y
valores de los elementos de datos en el registro de política antes de salir.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Node";
Filter = "Nombre de host = ’" + @Node + "’";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
// Llamar a GetByLinks y pasar el tipo de datos de destino,
// el número máximo de elementos de datos a recuperar y
// el elemento de datos de origen.
DataTypes = {"Cliente"};
Filter = "Location = ’New York’";
MaxNum = "10000";
114
Netcool/Impact: Guía de soluciones
DataItems = MyNodes;
MyCustomers = GetByLinks(DataTypes, Filter, MaxNum, DataItems);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es:
MyNodes = GetByFilter("Node", "Nombre de host = ’" + @Node + "’", False");
MyCustomers = GetByLinks({"Cliente"}, "Location = ’New York’", 10000, MyNodes);
Log(CurrentContext());
Adición de datos
Utilice este procedimiento para añadir un elemento de datos a un tipo de datos.
Procedimiento
1. Cree un contexto mediante la función NewObject.
En el ejemplo siguiente se muestra cómo crear un contexto llamado MyNode .
MyNode = NewObject();
2. Cumplimente las variables de miembro del contexto con datos correspondientes
a los valores que desea establecer en el elemento de datos nuevo.
El nombre de cada variable de miembro debe ser exactamente el que aparece
en la definición de tipo de datos, como en el ejemplo siguiente:
MyNode.Name = "Achilles";
MyNode.IPAddress = "192.168.1.1";
MyNode.Location = "London";
3. Añada el elemento de datos.
Puede agregar el elemento de datos al tipo de datos llamando a la función
AddDataItem y pasando el nombre del tipo de datos y el contexto como
parámetros de tiempo de ejecución. En el ejemplo siguiente se muestra cómo
agregar el elemento de datos a un tipo de datos.
AddDataItem("Node", MyNode);
Ejemplo de adición de un elemento de datos a un tipo de
datos
En este ejemplo, el tipo de datos se denomina Usuario.
El tipo de datos Usuario contiene los campos siguientes: Nombre, Ubicación e ID.
// Crear nuevo contexto.
MyUser = NewObject();
// Llenar las variables de miembros en el contexto.
MyUser.ID = "00001";
MyUSer.Name = "Jennifer Mehta";
MyUser.Location = "New York";
// Llamar a AddDataItem y pasar el nombre del tipo de datos
// y el contexto.
DataType = "Usuario";
AddDataItem(DataType, MyUser);
Capítulo 6. Gestión de datos
115
Una versión más corta de este mensaje sería la siguiente:
MyUser=NewObject();
MyUser.ID = "00001";
MyUser.Name = "Jennifer Mehta";
MyUser.Location = "New York";
AddDataItem("Usuario", MyUser);
Actualización de datos
Puede actualizar uno o varios elementos de datos.
Para actualizar un único elemento de datos, en primer lugar debe recuperar los
datos del tipo de datos utilizando GetByFilter, GetByKey o GetByLinks. A
continuación, puede actualizar los campos de elementos de datos cambiando los
valores de las variables de campo correspondientes.
Cuando cambia el valor de las variables de campos, los valores del origen de datos
subyacente se actualizan en tiempo real. Esto significa que cada vez que establece
un nuevo valor de campo, Netcool/Impact solicita una actualización a nivel de
origen de datos.
Para actualizar varios elementos de datos en un tipo de datos, debe llamar a la
función BatchUpdate y pasar el nombre del tipo de datos, una serie de filtro que
especifica qué elementos de datos actualizar y una expresión de actualización.
Netcool/Impact actualiza todos los elementos de datos coincidentes con los valores
especificados.
La expresión de actualización utiliza la misma sintaxis que la cláusula SET de la
sentencia UPDATE a la que da soporte el origen de datos subyacente. Esta cláusula
consta de una lista de campos y valores separados por coma que se deben
actualizar.
Sólo se da soporte a la actualización de varios elementos de datos para tipos de
datos de base de datos SQL.
Ejemplo de actualización de elementos de datos individuales
En este ejemplo se llama a GetByFilter y se recupera un elemento de datos de un
tipo de datos denominado Nodo.
A continuación, cambie el valor de las variables de campos correspondientes.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Node";
Filter = "Location = ’" + @Node + "’";
CountOnly = False;
MyNodes = GetByFilter(DataType, Filter, CountOnly);
MyNode = MyNodes[0];
// Actualizar los valores de las variables de campos en MyNode
// Las actualizaciones se realizan en tiempo real en el origen de datos
MyNode.Name = "Host_01";
MyNode.ID = "00001";
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
116
Netcool/Impact: Guía de soluciones
Una versión más corta de este ejemplo es la siguiente:
MyNodes = GetByFilter("Node", "Location = ’" + @Node + "’", False);
MyNodes[0].Name = "Host_01";
MyNodes[0].ID = "00001";
Log(CurrentContext());
Ejemplo de actualización de varios elementos de datos
En este ejemplo se actualizan todos los elementos de datos del tipo de datos
Cliente cuya Ubicación es New York.
La actualización cambia los valores de los campos Ubicación y Nodo. A
continuación se recuperan los mismos elementos de datos utilizando GetByFilter
para verificar la actualización. Antes de salir se imprimen los valores de los
campos del elemento de datos en el registro de política.
// Llamar a
BatchUpdate y pasar el nombre del tipo de datos,
// la serie de filtro y una expresión de actualización
DataType = "Cliente";
Filter = "Location = ’New York’";
UpdateExpression = "Location = ’London’, Node = ’Host_02’";
BatchUpdate(DataType, Filter, UpdateExpression);
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y una serie de filtro
DataType = "Cliente";
Filter = "Location = ’London’";
CountOnly = False;
MyCustomers = GetByFilter(DataType, Filter, CountOnly);
// Registrar los valores de campos de elementos de datos.
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente:
BatchUpdate("Cliente", "Location = ’New York’", "Location = ’London’,
Nodo = ’Host_02’");
MyCustomers = GetByFilter("Cliente", "Location = ’London’", False);
Log(CurrentContext());
Supresión de datos
Puede suprimir uno o varios elementos de datos.
Para poder suprimir un único elemento de datos de un tipo de datos, en primer
lugar debe recuperarlo del origen de datos. Puede recuperar el elemento de datos
utilizando las funciones GetByFilter, GetByKey o GetByLinks. Después de haber
recuperado el elemento de datos, puede llamar a la función DeleteDataItem y
pasar el elemento de datos como parámetro de tiempo de ejecución.
Para suprimir varios elementos de datos, debe llamar a la función BatchDelete y
pasarle el nombre del tipo de datos y un filtro o los elementos de datos que desea
suprimir. Cuando suprime elementos de datos por filtro, está diciendo: "Suprimir
todos los elementos de datos de ese tipo, donde determinados campos contengan
los valores indicados.
Capítulo 6. Gestión de datos
117
El filtro es una serie de texto que establece las condiciones con las que debe
coincidir un elemento de datos para que se deba suprimir. La sintaxis del filtro es
que una cláusula SQL WHERE que proporciona un conjunto de comparaciones debe
ser true a fin de que se devuelva un elemento de datos. Esta sintaxis especificada
por el origen de datos subyacente. Cuando Netcool/Impact se dirige al origen de
datos para suprimir los elementos de datos, pasa este filtro directamente al origen
de datos para su proceso.
Sólo se da soporte a la supresión de elementos de datos por filtro para tipos de
datos de base de datos SQL.
También puede suprimir elementos de datos pasándolos directamente a la función
BatchDelete como matriz.
Ejemplo de supresión de elementos de datos individuales
En este ejemplo se suprime un elemento de datos de un tipo de datos denominado
Usuario donde el valor del campo Nombre es John Rodriguez.
Debido a que el tipo de datos (en este caso) sólo contiene un elemento de datos
coincidente, puede hacer referencia a él como MyUsers[0].
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y la serie de filtro.
DataType = "Usuario";
Filter = "Nombre = ’John Rodriguez’";
CountOnly = False;
MyUsers = GetByFilter(DataType, Filter, CountOnly);
MyUser = MyUsers[0];
// Llamar a DeleteDataItem y pasar el elemento de datos.
DeleteDataItem(MyUser);
Una versión más corta de este ejemplo es la siguiente:
MyUsers = GetByFilter("Usuario", "Nombre = ’John Rodriguez’", False);
DeleteDataItem(MyUsers[0]);
Ejemplo de supresión de elementos de datos por filtro
En este ejemplo se suprimen todos los elementos de datos de un tipo de datos
denominado Nodo, donde el valor de Ubicación es New York.
// Llamar a BatchDelete y pasar el nombre del tipo de datos
// y una serie de filtro que especifique qué elementos de datos se deben suprimir
DataType = "Node";
Filter = "Location = ’New York’";
DataItems = NULL;
BatchDelete(DataType, Filter, DataItems);
Una versión más corta de este ejemplo es la siguiente:
BatchDelete("Node", "Location = ’New York’", NULL);
Ejemplo de supresión de elementos de datos por elemento
En el ejemplo siguiente se muestra cómo suprimir varios elementos de datos
pasándolos directamente a BatchDelete.
118
Netcool/Impact: Guía de soluciones
En este ejemplo se suprimen todos los elementos de datos de un tipo de datos
denominado Cliente, donde el valor de Ubicación es London.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y una serie de filtro
DataType = "Cliente";
Filter = "Location = ’New York’";
CountOnly = False
MyCustomers = GetByFilter(DataType, Filter, CountOnly);
// Llamar a BatchDelete y pasar la matriz
// devuelta por GetByFilter
BatchUpdate(DataType, NULL, MyCustomers);
Una versión más corta de este ejemplo es la siguiente:
MyCustomers = GetByFilter("Cliente", "Location = ’London’", False);
BatchDelete("Clientes", NULL, MyCustomers);
Cómo llamar a funciones de base de datos
Puede llamar a funciones definidas en el origen de datos subyacente de un tipo de
datos de base de datos SQL.
Estas funciones permiten obtener datos útiles como por ejemplo el número de filas
de la base de datos que coinciden con un filtro especificado. Para llamar a una
función de base de datos, debe llamar a CallDBFunction y pasar el nombre del tipo
de datos, una serie de filtro y la expresión de función. A continuación,
CallDBFunction devuelve los resultados de la función.
CallDBFunction utiliza la misma sintaxis de filtro SQL que GetByFilter y
BatchDelete. Encontrará la sintaxis completa y ejemplos adicionales de los filtros
SQL en la publicación Guía de consulta de políticas.
En el ejemplo siguiente se muestra cómo llamar a la función COUNT de base de
datos en una política. En este ejemplo se cuenta el número de elementos de datos
del tipo de datos Node, donde el valor del campo Location es New York. A
continuación se imprime el número de elementos contados en el registro de
política.
// Llamar a CallDBFunction y pasar el nombre del tipo de datos,
// una serie de filtro y la expresión de función.
DataType = "Node";
Filter = "Location = ’New York’";
Function = "COUNT()";
NumItems = CallDBFunction(DataType, Filter, Function);
// Imprimir el número de elementos contados en el registro de política.
Log(NumItems);
Una versión más corta de este ejemplo es la siguiente:
NumItems = CallDBFunction("Node", "Location = ’New York’", "COUNT()");
Log(NumItems);
Capítulo 6. Gestión de datos
119
120
Netcool/Impact: Guía de soluciones
Capítulo 7. Gestión de las hibernaciones
Las hibernaciones son políticas que se han puesto temporalmente en suspensión.
Mientras una política está en suspensión, ésta se almacena internamente en su
estado actual y todo el proceso se pone en pausa hasta que el servicio del
activador de políticas en hibernación u otra política la active. Los lenguajes IPL y
JavaScript admiten la hibernación.
Visión general de las hibernaciones
El tipo de datos Hibernación es un tipo de datos del sistema que almacena
políticas en hibernación.
Normalmente no crea o modifica elementos de datos Hibernación utilizando la
GUI de Tivoli Integrated Portal. Sin embargo, puede utilizar la GUI para suprimir
hibernaciones almacenadas en el caso de que se produzca una condición de error y
de que las hibernaciones no se activen mediante el activador de políticas en
hibernación u otra política.
Una clave de acción es una serie que identifica de manera exclusiva una
hibernación. Cuando ponga una política en hibernación, deberá especificar una
clave de acción exclusiva.
El valor de tiempo de espera de hibernación es el número de segundos que
hiberna una política antes de que el activador de políticas en hibernación pueda
activarla. El valor de tiempo de espera de hibernación no afecta a la hora a la que
otra política puede activar la hibernación.
Las hibernaciones están diseñadas para su utilización en soluciones de X sucesos
en Y tiempo. Este tipo de solución supervisa un origen de sucesos para ver si se
produce un número determinado de sucesos idénticos durante un intervalo de
tiempo, y realiza la acción de gestión de sucesos indicada (por ejemplo, notificar a
un administrador de una condición de suceso repetitivo).
Puede poner una política en hibernación. También puede activar una política de
hibernación o eliminar una política de hibernación desde el tipo de datos de
hibernación. Utilice la función RemoveHibernation para eliminar una política del
tipo de datos de hibernación y eliminarlo de la cola de hibernación.
Hibernación de una política
Para hibernar una política, debe llamar a la función Hibernate y pasar una clave
de acción y el número de segundos que ésta debe hibernar.
La clave de acción debe ser una serie exclusiva que desee utilizar para identificar
la política. Normalmente, esta serie se obtiene realizando cualquier combinación de
las tareas siguientes:
v Utilice el valor del campo Identificador en un suceso del ObjectServer entrante.
El ObjectServer genera un valor de Identificador exclusivo para cada suceso.
v Utilice la función Random para generar un valor aleatorio.
v Utilice la función GetDate para generar un valor basado en la hora actual del
sistema.
© Copyright IBM Corp. 2006, 2014
121
Ejemplos de hibernación de una política
En los ejemplos siguientes se muestra cómo hibernar una política y trabajar con los
lenguajes IPL y JavaScript.
En este ejemplo, la clave de acción es el valor del campo Identificador de un
suceso ObjectServer entrante. Esta política estará en hibernación durante 60
segundos antes de que el activador de políticas en hibernación la active.
// Llamar a Hibernar y pasar una clave de acción y el valor
// de tiempo de espera para la hibernación.
ActionKey = EventContainer.Identifier;
Reason = null;
Timeout = 60;
Hibernate(ActionKey, Reason, Timeout);
Una versión más corta de esta política es la siguiente.
Hibernate(EventContainer.Identifier, null, 60);
En este ejemplo, la clave de acción es una combinación de la hora actual del
sistema y un valor aleatorio. Esta política estará en hibernación durante 2 minutos
antes de que el activador de políticas en hibernación la active.
// Llamar a Hibernar y pasar una clave de acción y el valor
// de tiempo de espera para la hibernación.
ActionKey = GetDate() + "_" + Random(9999);
Reason = null;
Timeout = 120;
Hibernate(ActionKey, Reason, Timeout);
Una versión más corta de esta política es la siguiente.
Hibernate(GetDate() + Random(9999), null, 120);
Recuperación de hibernaciones
La recuperación de hibernaciones es la manera en la que se obtienen elementos de
datos del tipo de datos Hibernación.
Debe recuperar una hibernación para poder activarla desde una política o
eliminarla.
Puede recuperar hibernaciones mediante dos modos:
v La búsqueda de clave de acción
v El filtro
Recuperación de hibernaciones por búsqueda de clave de
acción
Puede utilizar la función GetHibernatingPolicies para recuperar hibernaciones
utilizando una búsqueda lexicográfica de valores de clave de acción.
Acerca de esta tarea
GetHibernatingPolicies devuelve una matriz de elementos de datos Hibernación
cuyas claves de acción están dentro del rango de claves de acción de inicio y
finalización especificadas.
122
Netcool/Impact: Guía de soluciones
En el ejemplo siguiente se muestra cómo recuperar hibernaciones utilizando una
búsqueda de clave de acción. Esta búsqueda devuelve todos los elementos de
datos Hibernación cuyas claves de acción se encuentran entre ClaveAcciónAAA y
ClaveAcciónZZZ. El ejemplo imprime también el contenido del contexto de política
en el registro del árbol de acciones.
// Llamar a GetHibernatingPolicies y pasar los valores
// de clave de acción de inicio y de clave de acción de finalización.
StartActionKey = "TeclaAcciónAAA";
EndActionKey = "TeclaAcciónZZZ";
MaxNum = 10000;
MyHibers = GetHibernatingPolicies(StartActionKey, EndActionKey, MaxNum);
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente.
MyHibers = GetHibernatingPolicies("ClaveAcciónAAA", "ClaveAcciónZZZ", 10000);
Log(CurrentContext());
Recuperación de hibernaciones por filtro
Puede utilizar la función GetByFilter para recuperar hibernaciones utilizando un
filtro.
Acerca de esta tarea
GetByFilter devuelve una matriz de elementos de datos Hibernación cuyas claves
de acción coinciden con la serie de filtro especificada. El filtro es un filtro SQL tal
como se define en “Recuperación de datos por filtro” en la página 105.
En el ejemplo siguiente se muestra cómo recuperar hibernaciones utilizando
GetByFilter. En este ejemplo se recupera el elemento de datos Hibernación cuya
clave de acción es 76486467. A continuación, se imprime el contenido del contexto
de política actual en el registro de política.
// Llamar a GetByFilter y pasar el nombre del tipo de datos
// y una serie de filtro.
DataType = "Hibernación";
Filter = "ActionKey = ’76486467’";
CountOnly = false;
MyHibers = GetByFilter(DataType, Filter, CountOnly);
Log(CurrentContext());
Una versión más corta de este ejemplo es la siguiente.
MyHibers = GetByFilter("Hibernation", "ActionKey = ’76486467’, false);
Log(CurrentContext());
Activación de una hibernación
Existen dos modos en los que se puede salir de una hibernación.
Para activar una hibernación, debe realizar las tareas siguientes:
v Recuperar la hibernación utilizando GetHibernatingPolicies o GetByFilter
v Llamar a ActivateHibernation
Capítulo 7. Gestión de las hibernaciones
123
También debe ejecutar la función RemoveHibernation para eliminar la política de la
cola de hibernación y para liberar recursos de memoria.
Recuperación de la hibernación
El primer paso de la activación de una hibernación es recuperarla del tipo de datos
Hibernación utilizando GetHibernatingPolicies o GetByFilter.
Acerca de esta tarea
Este paso se describe en la sección anterior de esta guía.
Llamada a ActivateHibernation
Después de haber recuperado la hibernación, puede llamar a la función
ActivateHibernation y pasar el elemento de datos como parámetro de tiempo de
ejecución.
Ejemplo
En el ejemplo siguiente se muestra cómo activar una hibernación.
En este ejemplo, se activa una política de hibernación cuyo valor de clave de
acción es TeclaAcciónABC.
// Llamar a GetHibernatingPolicies y pasar los valores
// de clave de acción de inicio y de clave de acción de finalización.
StartActionKey = "TeclaAcciónAAA";
EndActionKey = "TeclaAcciónZZZ";
MaxNum = 10000;
MyHibers = GetHibernatingPolicies(StartActionKey, EndActionKey, MaxNum);
MyHiber = MyHibers[0];
// Llamar a ActivateHibernation y pasar el elemento de datos Hibernation como
// un parámetro de tiempo de ejecución.
ActivateHibernation(MyHiber);
Eliminación de hibernaciones
Utilice la función RemoveHibernation para eliminar una política del tipo de datos
de hibernación y eliminarlo de la cola de hibernación.
Para eliminar una hibernación desde el repositorio de datos interno, debe llamar a
la función RemoveHibernation y pasar la clave de acción de la hibernación como
parámetro de tiempo de ejecución.
En el ejemplo siguiente se muestra cómo eliminar una hibernación. En este
ejemplo, la clave de acción para la hibernación es ClaveAcciónABC.
RemoveHibernation("ClaveAcciónABC");
124
Netcool/Impact: Guía de soluciones
Capítulo 8. Envío de correo electrónico
Netcool/Impact permite enviar correo electrónico desde una política.
Visión general de envío de correo electrónico
Puede utilizar la característica para enviar notificaciones de correo electrónico a los
administradores y usuarios cuando se produzca un suceso o combinación de
sucesos determinados.
Netcool/Impact no proporciona un servidor de correo incorporado. Para poder
enviar correo electrónico, debe asegurarse de que haya un servidor SMTP
disponible en el entorno. El servicio de remitente de correo electrónico de
Netcool/Impact debe estar también en ejecución para que una política pueda
enviar satisfactoriamente correo electrónico.
Enviando un correo electrónico
Para enviar correo electrónico debe llamar a la función SendEmail y pasar la
siguiente información como parámetros de tiempo de ejecución.
Acerca de esta tarea
Para enviar correo electrónico debe llamar a la función SendEmail y pasar la
siguiente información como parámetros de tiempo de ejecución:
Procedimiento
v
v
v
v
La dirección de correo electrónico del destinatario
El texto de la línea del asunto del correo electrónico
El contenido del cuerpo del correo electrónico
Nombre del remitente de correo electrónico
Resultados
En el ejemplo siguiente se muestra cómo enviar un correo electrónico. En este
ejemplo, se envía el correo electrónico a la dirección srodriguez@example.com.
// Llamar a SendEmail y enviar la dirección, el asunto y el texto de mensaje
// como parámetros de tiempo de ejecución
Address = "srodriguez@example.com";
Subject = "Notificación de Netcool/Impact";
Message = EventContainer.Node + " ha indicado la condición de error siguiente: "
+ EventContainer.Summary;
Sender = "impact";
ExecuteOnQueue = false;
SendEmail(null, Address, Subject, Message, Sender, ExecuteOnQueue);
© Copyright IBM Corp. 2006, 2014
125
126
Netcool/Impact: Guía de soluciones
Capítulo 9. Configuración de mensajería instantánea
La mensajería instantánea (IM) es un servicio de red que permite a dos
participantes comunicarse mediante texto en tiempo real. Los servicios de
mensajería instantánea que más se utilizan son ICQ, AOL Instant Messenger (AIM),
Yahoo! Messenger y Microsoft Messenger. Puede enviar y recibir mensajes
instantáneos desde dentro de una política de Impact.
Mensajería instantánea de Netcool/Impact
Mensajería instantánea de Netcool/Impact es una característica que permite enviar
y recibir mensajes instantáneos desde dentro de una política.
Utilizando esta característica, Netcool/Impact puede supervisar una cuenta de
mensajería instantánea en cualquiera de los servicios utilizados más habitualmente
para ver si hay mensajes entrantes y realizar operaciones cuando se reciban
mensajes específicos: Netcool/Impact también puede enviar mensajes instantáneos
a cualquier otra cuenta de mensajería instantánea. Puede utilizar este servicio para
utilizar sistemas de mensajería instantánea para notificar a los administradores,
operadores y otros usuarios cuando se producen determinadas condiciones en su
entorno.
La mensajería instantánea de Netcool/Impact utiliza Jabber para enviar y recibir
mensajes instantáneos. Jabber es un conjunto de protocolos y tecnologías que
proporcionan la manera en la que dos entidades de software intercambian datos de
transmisión continua a través de una red. Para obtener más información, consulte
el sitio web de Jabber en la dirección http://www.jabber.org.
Componentes de mensajería instantánea de Netcool/Impact
Netcool/Impact tiene dos tipos de servicio que funcionan conjuntamente con las
políticas para proporcionar la funcionalidad de mensajería instantánea.
El servicio de lector Jabber está a la escucha de mensajes instantáneos entrantes y a
continuación envía una política especificada cuando se recibe un nuevo mensaje. El
servicio Jabber envía mensajes a otras cuentas de mensajería instantánea.
Netcool/Impact requiere acceso a un servidor Jabber para poder enviar y recibir
mensajes instantáneos. Encontrará disponible una lista de servidores Jabber
públicos en el sitio web de Jabber en http://www.jabber.org/user/
publicservers.php.
Proceso de la mensajería instantánea de Netcool/Impact
El proceso IM de Netcool/Impact cuenta con dos fases: escucha y envío de
mensajes.
Escucha de mensajes
Durante la fase de escucha de mensajes, el servicio de lector Jabber está a la
escucha de nuevos mensajes de una o más cuentas de mensajería instantánea.
© Copyright IBM Corp. 2006, 2014
127
Cuando se recibe un nuevo mensaje, el lector Jabber crea un nuevo EventContainer
y lo llena con el contenido del mensaje entrante. A continuación, el lector Jabber
inicia la política especificada en sus valores de configuración y le pasa el
EventContainer. A continuación, Netcool/Impact procesa la política.
Envío de mensajes
El envío de mensajes es la fase durante la cual Netcool/Impact envía nuevos
mensajes mediante el servicio Jabber. El envío de mensajes se produce durante la
ejecución de una política cuando Netcool/Impact encuentra una llamada a la
función SendInstantMessage. Cuando Netcool/Impact procesa una llamada a
SendInstantMessage, pasa el contenido del mensaje, destinatario y otra información
al servicio Jabber. A continuación, el servicio Jabber ensambla el mensaje y lo envía
a un servidor Jabber donde se direcciona al destinatario especificado.
Configuración de la mensajería instantánea de Netcool/Impact
Para poder enviar y recibir mensajes instantáneos utilizando una política, debe
configurar el servicio Jabber y el servicio de lector Jabber tal como se describe en la
publicación Guía de la interfaz de usuario.
Después de haber configurado estos servicios, puede empezar a escribir políticas
de mensajería instantánea utilizando la información de “Utilización de políticas de
mensajería instantánea”.
Utilización de políticas de mensajería instantánea
Utilice los mensajes instantáneos en una políticaNetcool/Impact para enviar
mensajes y gestionar mensajes de entrada.
Gestión de mensajes entrantes
Cuando el lector Jabber recibe un mensaje entrante, inicia la política especificada
en la configuración del servicio del lector Jabber y pasa el contenido del mensaje a
la política utilizando la variable EventContainer.
Acerca de esta tarea
A continuación, la política puede gestionar el mensaje entrante de la misma forma
que gestiona la información pasada en un suceso entrante.
Cuando el lector Jabber recibe un mensaje entrante, llena los campos siguientes de
la variable EventContainer: From y Body. El campo From contiene el nombre de
usuario de la cuenta desde la que se ha enviado el mensaje. Body contiene el
contenido del mensaje. Puede acceder al contenido de estos campos utilizando la
notación por puntos o la notación @.
Envío de mensajes
Puede enviar mensajes instantáneos desde una política utilizando la función
SendInstantMessage.
Acerca de esta tarea
Esta función requiere que especifique el destinatario y el contenido del cuerpo del
mensaje. También puede especificar un asunto, un ID de sala de conversación y si
desea enviar el mensaje directamente o ponerlo en la cola de mensajes para su
128
Netcool/Impact: Guía de soluciones
proceso por parte del servicio del gestor de ejecución de mandatos. Para ver una
descripción completa de esta función, consulte la publicación Guía de consulta de
políticas.
Ejemplo
En el ejemplo siguiente se muestra cómo enviar y recibir mensajes instantáneos
utilizando la mensajería instantánea de Netcool/Impact.
En este ejemplo, el servicio de lector Jabber llama a la política siempre que se
recibe un mensaje entrante. A continuación, la política confirma la recepción del
mensaje y realiza un conjunto diferente de acciones, en función de si el remitente
del mensaje es NetcoolAdmin o NetcoolOps.
// Llamar a SendInstantMessage y pasar el nombre del destinatario y el contenido
// del mensaje como parámetros de mensaje
To = @De // Destinatario es remitente de mensaje original
TextMessage = "Recepción de mensaje confirmada.";
SendInstantMessage(To, NULL, NULL, TextMessage, False);
If (@De == "NetcoolAdmin") {
Log("Mensaje recibido de usuario NetcoolAdmin.");
Log("Contenido del mensaje: " + @Cuerpo);
If (@From == "NetcoolOps") {
Log("Mensaje recibido de usuario NetcoolOps.");
Log("Contenido del mensaje: " + @Cuerpo);
} Else {
Log("Mensaje recibido de usuario no reconocido.");
Log("Contenido del mensaje: " + @Cuerpo);
}
Capítulo 9. Configuración de mensajería instantánea
129
130
Netcool/Impact: Guía de soluciones
Capítulo 10. Ejecución de mandatos externos
La ejecución de mandatos externos es el proceso de ejecución de aplicaciones,
scripts y mandatos externos desde una política.
Visión general de la ejecución de mandatos externos
Puede utilizar el servidor JRExec o el mandato y la característica de respuesta para
ejecutar mandatos externos.
El servidor JRExec es un componente ejecutable de Netcool/Impact que le permite
ejecutar mandatos externos en el sistema donde está ubicado el servidor
Netcool/Impact. Mandato y respuesta es una característica más avanzada que
permite ejecutar programas interactivos y no interactivos en sistemas locales y
remotos.
Puede ejecutar cualquier tipo de mandato externo que se pueda iniciar desde una
línea de mandatos. Esto incluye los mandatos del sistema operativo, scripts de
shell y muchos otros tipos de aplicaciones.
Gestión del servidor JRExec
El servidor JRexec se utiliza para ejecutar mandatos externos, scripts y aplicaciones
desde una política.
Visión general del servidor JRExec
El servidor JRExec es un componente de servidor ejecutable de Netcool/Impact
que se utiliza para ejecutar mandatos, scripts y aplicaciones externos desde dentro
de una política en el mismo sistema en el que está instalado Netcool/Impact.
El servidor JRExec se instala automáticamente cuando se instala Netcool/Impact.
En los sistemas Windows también debe añadir manualmente el servidor JRExec
como un servicio Windows. Ejecute el servidor JRExec ya sea mediante el script del
servidor JRExec o con las herramientas de administración de servicios, según el
sistema operativo. El servidor se configura mediante un archivo de propiedades.
Utilice la función JRExecAction para ejecutar mandatos externos desde dentro de
una política. Para obtener más información sobre la función JRExecAction, consulte
Guía de consulta de políticas.
Inicio del servidor JRExec
Utilice este procedimiento para iniciar el servidor JRExec.
Procedimiento
v En los sistemas UNIX se utiliza el script de inicio del servidor JRExec,
nci_jrexec, situado en el directorio $IMPACT_HOME/bin.
Ejecute este mandato en el terminal:
./nci_jrexec
v En los sistemas Windows se inicia el servicio de servidor JRExec, en la consola
de gestión de Servicios.
© Copyright IBM Corp. 2006, 2014
131
Pulse con el botón derecho en Servidor Netcool JRExec en la ventana Servicios
que se abre y seleccione Iniciar.
Detención del servidor JRExec
Utilice este procedimiento para detener el servidor JRExec.
Procedimiento
v En los sistemas Windows se detiene el servicio de servidor JRExec, en la consola
de gestión de Servicios.
Pulse con el botón derecho en Servidor Netcool JRExec en la ventana Servicios
que se abre y seleccione Detener.
v En los sistemas UNIX debe finalizar manualmente el proceso.
Hay dos procesos asociados al servidor JRExec: el proceso nci_jrexec y un
proceso JAVA iniciado por el proceso nci_jrexec.
1. Obtenga los ID utilizando estos mandatos:
– ps -eaf | grep nci_jrexec
Este mandato devuelve el PID del proceso nci_jrexec.
– ps -eaf | grep java
Aparte del Servidor Impact y del ID de proceso de Servidor GUI, este
mandato debe devolver este proceso:
501
16053
1 1 13:58 pts/2
00:00:02 /home/netcool_usr/IBM/tivoli/tipv2/java/bin/java
-Dibm.tivoli.impact.propertiesDir=/home/netcool_usr/IBM/tivoli/impact/etc
-Dbase.directory=/home/netcool_usr/IBM/tivoli/impact
-Dnetcool.productname=impact
-classpath /home/netcool_usr/IBM/tivoli/impact/lib/nciJmxClient.jar:
/home/netcool_usr/IBM/tivoli/tipv2/lib/ext/log4j-1.2.15.jar
com.micromuse.response.client.RemoteJRExecServerImpl
Esto es sólo un ejemplo, por lo que es posible que el PID y la vía de
acceso del proceso sean diferentes en el sistema del usuario.
2. Termine ambos procesos con este mandato:
kill -9 pid
donde pid es uno de los dos ID de proceso asociados con el servidor JRExec.
Propiedades de configuración del servidor JRExec
El archivo de propiedades del servidor JRExec, jrexecserver.props, se encuentra
en el directorio $IMPACT_HOME/etc/.
El archivo puede contener las propiedades siguientes:
impact.jrexecserver.port
Para cambiar el número de puerto utilizado por el servidor JRExec. El
valor predeterminado es 1345. Si cambia esta propiedad, debe actualizar
también el valor de la propiedad impact.jrexec.port en el archivo
<nombre_servidor>_server.props, donde <nombre_servidor> es el nombre
de la instancia de Servidor Impact.
impact.jrexecserver.logfile
Para habilitar el registro para el servidor JRExec. Establezca como valor la
vía de acceso y el nombre de archivo del archivo de registro del servidor
JRExec de destino. Por ejemplo, impact.jrexecserver.logfile=/opt/IBM/
tivoli/impact/logs/jrexecserver.log.
132
Netcool/Impact: Guía de soluciones
Registro cronológico del servidor JRExec
Para habilitar el registro cronológico para el servidor JRExec, añada la propiedad
impact.jrexecserver.logfile al archivo de propiedades del servidor JRExec.
1. Cree un archivo de propiedades llamado jrexecserver-log4j.properties en el
directorio $NCHOME/impact/etc.
2. Defina las propiedades siguientes en el archivo de propiedades:
log4j.rootCategory=INFO
log4j.appender.JREXEC=org.apache.log4j.RollingFileAppender
log4j.appender.JREXEC.threshold=DEBUG
log4j.appender.JREXEC.layout=org.apache.log4j.PatternLayout
log4j.appender.JREXEC.layout.ConversionPattern=%d{DATE} %-5p [%c{1}] %m%n
log4j.appender.JREXEC.append=true
log4j.appender.JREXEC.file=<$NCHOME>/impact/log/nci_jrexec.log
log4j.appender.JREXEC.bufferedIO=false
log4j.appender.JREXEC.maxBackupIndex=3
log4j.appender.JREXEC.maxFileSize=10MB
Asegúrese de utilizar la vía de acceso completa para el valor <$NCHOME>.
3. También debe establecer DEBUG como la prioridad predeterminada para todos
los registradores de IBM y micromuse en el mismo archivo:
log4j.category.com.micromuse=DEBUG,JREXEC
log4j.additivity.com.ibm.tivoli=false
log4j.additivity.com.micromuse=false
4. Cree un archivo de registro llamado nci_jrexec.log en el directorio
$NCHOME/impact/log.
Ejecutar de mandatos con el servidor JRExec
Para ejecutar un mandato utilizando el servidor JRExec, puede llamar a la función
JRExecAction y pasar el nombre del mandato y cualquier argumento de línea de
mandatos como parámetros de tiempo de ejecución.
También puede pasar un valor que especifica si desea que el servidor JRExec
espere a que se complete el mandato antes de ejecutar otros mandatos o si desea
que continúe el proceso sin esperar.
En el ejemplo siguiente se muestra cómo ejecutar un mandato externo con el
servidor JRExec. En este ejemplo se envía una página a un administrador
utilizando una aplicación de búsqueda de personas denominada pageit que se
instala en el directorio /opt/pager/bin del sistema. La aplicación pageit toma el
número de teléfono de la persona a la que se busca y el número de contacto de
retorno como argumentos de línea de mandatos. En esta aplicación, el servidor
JRExec espera a que la aplicación finalice antes de continuar procesando otros
mandatos.
// Llamar a JRExecAction y pasar la serie del mandato y
// otros parámetros
Command = "/opt/pager/bin/pageit";
Args = {"2125551212", "2126353131"};
ExecuteOnQueue = False;
Timeout = 60;
JRExecAction(Command, Args, ExecuteOnQueue, Timeout);
Utilización de CommandResponse
Mandato y respuesta es una característica avanzada que permite ejecutar
programas interactivos y no interactivos en sistemas locales y remotos.
Capítulo 10. Ejecución de mandatos externos
133
Puede invocar esta característica en una política utilizando la función
CommandResponse. Para obtener más información sobre la sintaxis de la función,
consulte CommandResponse en Guía de consulta de políticas.
134
Netcool/Impact: Guía de soluciones
Capítulo 11. Gestión de series y matrices
Lea la información siguiente sobre el manejo de strings y matrices en una política.
Gestión de series
Puede utilizar la política Netcool/Impact para manipular series de varias formas.
Puede realizar las tareas siguientes con series:
v
v
v
v
v
v
v
Concatenar series
Buscar la longitud de una serie
Dividir una serie en subseries
Extraer una subserie de otra serie
Sustituir una subserie de una serie
Eliminar una subserie de una serie
Eliminar espacio en blanco inicial/final de una serie
v Cambiar las mayúsculas/minúsculas de una serie
v Cifrar y descifrar series
Concatenación de series
Para concatenar series, debe utilizar el operador de suma (+).
Acerca de esta tarea
Puede concatenar dos series o varias series a la vez. También puede concatenar
una serie con un valor numérico.
En el ejemplo siguiente se muestra cómo concatenar series.
String1 = "Esto";
String2 = "es una prueba";
String3 = String1 + " " + String2;
Log(String3);
String4 = "El valor de X es" + 5;
Log(String4);
Al ejecutar este ejemplo, se imprimen los mensajes siguientes en el registro de
política:
Esto es una prueba.
El valor de X es 5
Búsqueda de la longitud de una serie
Puede utilizar la función Length para encontrar la longitud de una serie.
Acerca de esta tarea
La función Length devuelve el número de caracteres de cualquier serie de texto.
En el ejemplo siguiente se muestra cómo utilizar la función Length.
© Copyright IBM Corp. 2006, 2014
135
NumChars = Length("Esto es una prueba.");
Log(NumChars);
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
19
División de una serie en subseries
Puede utilizar la función Dividir para dividir una serie en subseries.
Acerca de esta tarea
La función Split toma una serie y un conjunto de caracteres de delimitador como
parámetros de tiempo de ejecución. Devuelve una matriz en la que cada elemento
es una subserie.
En el ejemplo siguiente se muestra cómo utilizar la función Split.
MyString = "One, Two, Three, Four.";
Delimiters = ",.";
MyArray = Split(MyString, Delimiters);
Count = Length(MyArray);
While (Count > 0) {
Index = Count - 1;
Log(MyArray[Index]);
Count = Count - 1;
}
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
Four
Three
Two
One
Extracción de una subserie de otra serie
Puede utilizar la posición de palabra o una expresión regular coincidente para
extraer una subserie de otra serie.
Extracción de una subserie utilizando la posición de la palabra
Para utilizar la posición de palabra para extraer una subserie, llame la función
Extract y pase la serie y la posición de palabra de la subserie.
En el ejemplo siguiente se muestra cómo extraer una serie de esta forma.
MyString = "Esto es una prueba.";
MySubstring = Extract(MyString, 2);
Log(MySubstring);
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
es
Extracción de una subserie utilizando la coincidencia de
expresión regular
Puede utilizar coincidencia de expresión regular para recuperar una única subserie
o todas las subseries de una serie.
136
Netcool/Impact: Guía de soluciones
Para extraer una única subserie, debe utilizar la función RExtract. La función
RExtract toma una serie y un patrón de expresiones regulares como parámetros de
tiempo de ejecución. Devuelve la primera subserie coincidente que encuentra en la
serie.
Para extraer todas las subseries coincidentes, debe utilizar la función RExtractAll.
De la misma forma que con RExtract, la función RExtractAll toma una serie y un
patrón de expresiones regulares como parámetros de tiempo de ejecución.
Devuelve una matriz que contiene todas las subseries coincidentes.
Sustitución de una subserie en una serie
Puede utilizar la función Replace para sustituir una subserie de una serie.
Acerca de esta tarea
La función Replace toma la serie, la subserie que debe sustituir y el elemento de
sustitución como parámetros de tiempo de ejecución. La función devuelve la serie
después de crear la sustitución.
En el ejemplo siguiente se muestra cómo sustituir una subserie.
MyString = "Esto es una prueba.";
Substring1 = "es una";
Substring2 = "no es una";
MyString = Replace(MyString, Substring1, Substring2);
Log(MyString);
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
Esto no es una prueba.
Eliminación de una subserie de una serie
Puede utilizar la función Recortar para recortar una subserie de una serie.
Acerca de esta tarea
La función Strip toma la serie y la subserie que desea eliminar como parámetros
de tiempo de ejecución. Devuelve la serie después de que se haya eliminado la
subserie.
En los ejemplos siguientes se muestra cómo eliminar una subserie de una serie.
MyString = "Esto no es una prueba.";
Substring = " no";
MyString = Strip(MyString, Substring);
Log(MyString);
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
Esto es una prueba.
Eliminación de los espacios en blanco iniciales y finales de
una serie
Puede utilizar la función Recortar para recortar los espacios en blanco iniciales y
finales de una serie.
Capítulo 11. Gestión de series y matrices
137
Acerca de esta tarea
La función Trim toma la serie como parámetro de tiempo de ejecución y la
devuelve sin los espacios iniciales o finales.
En el ejemplo siguiente se muestra cómo eliminar el espacio en blanco inicial y
final de una serie.
MyString = "
Esto es una prueba.
MyString = Trim(MyString);
Log(MyString);
";
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
Esto es una prueba.
Modificación de las mayúsculas/minúsculas de una serie
Puede utilizar la función tolower para cambiar la serie a minúscula. También
puede utilizar la función ToUpper para cambiar una serie a todo mayúsculas.
Ejemplo
En el ejemplo siguiente se muestra cómo convertir todos los caracteres de una serie
a minúsculas.
Log(ToLower("ESTO ES UNA PRUEBA.");
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
esto es una prueba .
En el ejemplo siguiente se muestra cómo convertir todos los caracteres de una serie
a mayúsculas.
Log(ToUpper("esto es una prueba .");
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
ESTO ES UNA PRUEBA.
Cifrado y descifrado de series
El lenguaje de política proporciona una característica que permite cifrar y descifrar
series.
Acerca de esta tarea
Esta características es útil si desea gestionar datos de contraseña en una política de
Netcool/Impact.
Puede utilizar la función Cifrar para cifrar una serie. Esta función toma la serie
como parámetro de tiempo de ejecución y devuelve una versión cifrada.
En el ejemplo siguiente se muestra cómo cifrar una serie:
MyString = Encrypt("contraseña");
Puede descifrar una serie que ha cifrado anteriormente utilizando la función
Decrypt. Esta función toma una serie cifrada como un parámetro de tiempo de
ejecución y devuelve la versión en texto sin formato.
En el ejemplo siguiente se muestra cómo descifrar una serie.
138
Netcool/Impact: Guía de soluciones
MyString = Decrypt("AB953E4925B39218F390AD2E9242E81A");
Gestión de matrices
Puede utilizar el idioma de política Netcool/Impact para encontrar la longitud y
los valores distintos de una matriz.
Búsqueda de la longitud de una matriz
Puede utilizar la función Distinct para encontrar el número de elementos en una
matriz.
Acerca de esta tarea
La función Length toma la matriz como parámetro de tiempo de ejecución y
devuelve su número de elementos.
El ejemplo siguiente muestra cómo buscar el número de elementos de una matriz
en IPL:
Elements = Length({"One", "Two", "Three"});
Log(Elements);
El ejemplo siguiente muestra cómo buscar el número de elementos de una matriz
en JavaScript:
Elements = Length(["One", "Two", "Three"];
Log(Elements);
Cuando ejecute el ejemplo en cualquiera de los lenguajes, se imprimirá el mensaje
siguiente en el registro de política:
3
Búsqueda de valores distintivos en una matriz
Puede utilizar la función Distinto para encontrar valores distintos en una matriz.
Acerca de esta tarea
La función Distinct toma la matriz como parámetro de tiempo de ejecución y
devuelve otra matriz que consta sólo de los elementos exclusivos, es decir, no
duplicados.
En el ejemplo siguiente se muestra cómo buscar los valores distintivos de una
matriz:
MyArray = {"One", "One", "Two", "Three", "Three", "Four"};
MyArray = Distinct(MyArray};
Log(MyArray);
Al ejecutar este ejemplo, se imprime el siguiente mensaje en el registro de política:
{One,Two,Three}
Capítulo 11. Gestión de series y matrices
139
140
Netcool/Impact: Guía de soluciones
Capítulo 12. Guía de aprendizaje de enriquecimiento de
sucesos
El objetivo de esta guía de aprendizaje es desarrollar una solución de
enriquecimiento de sucesos para ampliar el valor de una instalación existente de
Netcool/Impact.
Esta solución automatiza tareas comunes realizadas manualmente por los
operadores de red y ayuda a integrar datos empresariales relacionados con alertas
en ObjectServer.
Visión general de tutorial
Esta guía de aprendizaje utiliza un entorno de ejemplo que proporciona la
información preliminar para entender los diversos conceptos y tareas del
enriquecimiento de sucesos.
El entorno es un centro de operaciones de red de una gran empresa donde ésta ha
instalado y configurado Netcool/OMNIbus y lo utiliza actualmente para gestionar
dispositivos en su red. El entorno de ejemplo es una representación en escala
reducida de lo que podría encontrar realmente en un centro de operaciones del
mundo real. Contiene sólo los elementos de red y datos empresariales que requiere
esta guía de aprendizaje.
Esta guía de aprendizaje le conduce a través de los pasos siguientes:
v Comprensión de la instalación de Netcool/Impact
v Comprensión de los datos empresariales
v Análisis del flujo de trabajo en el entorno
v Creación de un proyecto
v Configuración de un modelo de datos
v
v
v
v
Configuración de servicios
Escritura de una política de enriquecimiento de sucesos
Configuración del lector de sucesos de OMNIbus para ejecutar la política
Ejecución de toda la solución
Comprensión de la instalación de Netcool/Impact
El primer paso de esta guía de aprendizaje es comprender la instalación actual de
Netcool.
Normalmente, antes de empezar a desarrollar cualquier solución de Netcool, debe
averiguar qué productos de la suite de Netcool ha instalado y qué dispositivos,
sistemas o aplicaciones del entorno se supervisan.
La instalación de Netcool en el entorno de ejemplo consta de Netcool/OMNIbus y
de una colección de analizadores que supervisan dispositivos de la red. Esta
instalación utiliza dos instancias de una base de datos del ObjectServer
denominada NCOMS que se han configurado en una configuración de copia de
© Copyright IBM Corp. 2006, 2014
141
seguridad/migración tras error. Estos ObjectServers se encuentran en sistemas host
denominados NCO_HOST_01 y NCO_HOST_02 y se ejecutan en el puerto
predeterminado de 4100.
Los analizadores de esta instalación supervisan diversos dispositivos de red. Los
detalles de los dispositivos no son importantes en este tutorial, pero cada
analizador envía el conjunto básico de campos de alerta a la base de datos
ObjectServer, incluidos los campos Nodo, Resumen, Gravedad, AlertKey e
Identificador.
Comprensión de los datos empresariales
El paso siguiente de esta guía de aprendizaje es comprender la ubicación y
estructura de los datos empresariales del entorno.
En el entorno de ejemplo, la empresa utiliza instancias de la base de datos Oracle
para almacenar información de inventario de red, información de servicio al cliente
e información general de la organización sobre la empresa.
La información que desea utilizar se almacena en dos bases de datos denominadas
ORA_01 y ORA_02. ORA_01 es una base de datos de inventario de red que almacena
información sobre los dispositivos de la red, incluyendo su especificación técnica,
ubicaciones de los centros y números de bastidor. ORA_01 es un sistema
denominado ORA_HOST_01. ORA_02 es una base de datos que contiene información
sobre los diversos departamentos de la empresa. ORA_02 se encuentra en un sistema
denominado ORA_HOST_02. Ambos se ejecutan en el puerto 1521.
Análisis del flujo de trabajo
Después de haber encontrado la ubicación y la estructura de los datos
empresariales, el paso siguiente es analizar el flujo de trabajo de gestión de sucesos
actual en el entorno.
El entorno de trabajo de la guía de aprendizaje es un centro de operaciones de red.
En este centro, una serie de operadores están de servicio en todo momento. Se
sientan en un área de trabajo abierta y cada uno de ellos tiene acceso a una consola
que visualiza una lista de sucesos de Netcool/OMNIbus. En grandes pantallas de
proyector en una pared del centro de operaciones hay disponibles visualizaciones
de mapas de gran tamaño que proporcionan vistas geográficas en del estado actual
de la red.
Conforme las alertas fluyen al ObjectServer desde los diversos analizadores y
supervisores de Netcool instalados en el entorno, éstas aparecen en la lista de
sucesos a disposición de los operadores. En función de la gravedad de las alertas,
los operadores realizan manualmente una serie de tareas utilizando las
herramientas de lista de sucesos, aplicaciones de terceros y herramientas típicas de
oficina como teléfonos móviles y correo electrónico.
Para esta guía de aprendizaje, asumimos que, entre otras tareas, los operadores
realizan las acciones siguientes para cada alerta de gravedad. Los operadores:
v Manualmente dan acuse de recibo de la alerta utilizando la lista de sucesos.
v Utilizan una herramienta de base de datos interna de la empresa para buscar
información sobre el dispositivo que causa la alerta. Esta herramienta ejecuta
una consulta en la base de datos de inventario de red y devuelve las
especificaciones técnicas, la ubicación y otra información.
142
Netcool/Impact: Guía de soluciones
v Utilizan otra herramienta interna de la empresa para buscar el departamento
empresarial al que da servicio el dispositivo que ha causado la alerta.
v Si el departamento empresarial forma parte de una función crítica para la
empresa, incrementan la gravedad de la alerta y la actualizan en la base de
datos del ObjectServer.
Los operadores pueden realizar otras acciones, como buscar administradores de
servicio en la ubicación donde se encuentra el dispositivo y ponerse en contacto
con ellos mediante teléfono o dispositivo buscapersonas. Después del problema
que ha causado la alerta se haya solucionado, es posible que los operadores
registren también la resolución en un registro de problemas y supriman la alerta
del ObjectServer. Sin embargo, para esta guía de aprendizaje sólo se utiliza las
tareas del flujo de trabajo que se muestran.
Creación del proyecto
Después de haber acabado de analizar el flujo de trabajo, el paso siguiente es crear
un proyecto en la GUI de Tivoli Integrated Portal.
Acerca de esta tarea
Puede utilizar este proyecto para almacenar el modelo de datos, los servicios y las
políticas utilizados en esta solución. El nombre de este proyecto es NCI_TUT_01.
Procedimiento
1. Abra Tivoli Integrated Portal en un navegador web e inicie la sesión.
2. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos, pulse en uno de los enlaces, por ejemplo Modelo
de datos, para ver las listas de selección de proyectos y clústeres en el
separador Modelo de datos.
3. Seleccione un clúster de la lista Clúster. Desde la lista Proyecto, seleccione
Global.
4. Pulse el icono Proyecto nuevo de la barra de herramientas para abrir la
ventana Proyecto nuevo.
5. La ventana Proyecto nuevo se utiliza para configurar el proyecto nuevo.
6. En el campo Nombre de proyecto escriba NCI_TUT_01.
7. Pulse Aceptar y luego en Cerrar.
Configuración del modelo de datos
Después de haber creado un proyecto con esta guía de aprendizaje, el paso
siguiente es configurar un modelo de datos de Netcool/Impact.
Este modelo de datos consta de orígenes de sucesos, orígenes de datos y tipos de
datos que requiere la solución de enriquecimiento de sucesos. También consta de
un enlace dinámico utilizado para definir la relación entre los tipos de datos.
Utilice la GUI Tivoli Integrated Portal para llevar a cabo todas las tareas en este
paso.
Para configurar el modelo de datos, debe realizar las tareas siguientes:
v Crear el origen de sucesos
v Crear los orígenes de datos
Capítulo 12. Guía de aprendizaje de enriquecimiento de sucesos
143
v Crear los tipos de datos
v Crear el enlace dinámico
Creación del origen de sucesos
La primera tarea de la configuración del modelo de datos es crear el origen de
sucesos. Como se indicó al investigar los detalles de la instalación de Netcool, el
entorno de ejemplo tiene un origen de sucesos, un ObjectServer denominado
NCOMS.
Acerca de esta tarea
Debido a que desea conectarse a las alertas almacenadas en este ObjectServer, debe
crear un origen de sucesos que la represente en Netcool/Impact.
Un origen de sucesos es un tipo especial de origen de datos que Netcool/Impact
puede utilizar para representar un origen de datos de sucesos físico del entorno.
Debido a que el origen de datos de sucesos es una base de datos del ObjectServer,
debe crear un origen de datos ObjectServer y configurarlo con la información de
conexión que ha descubierto al investigar los detalles de la instalación de Netcool.
Para crear el origen de sucesos:
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Seleccione un clúster de la lista Clúster. En la lista Proyectos, seleccione
NCI_TUT_01.
3. Pulse el icono Origen de datos nuevo y seleccione ObjectServer en la lista. Se
abre la ventana Origen de datos nuevo.
4. Especifique NCOMS en el campo Nombre de origen de datos.
5. Especifique el nombre y contraseña de un usuario del ObjectServer en los
campos Nombre de usuario y Contraseña.
6. Escriba NCO_HOST_01 en el campo Nombre de host primario.
7. Especifique 4100 en el campo Puerto primario.
8. Pulse Probar conexión para probar la conexión del ObjectServer.
9.
10.
11.
12.
Especifique NCO_HOST_02 en el campo Nombre de host de copia de seguridad.
Especifique 4100 en el campo Puerto de copia de seguridad.
Pulse Probar conexión para probar la conexión del ObjectServer.
Pulse Aceptar.
Creación de los orígenes de datos
La tarea siguiente de la configuración del modelo de datos es crear los orígenes de
datos.
Acerca de esta tarea
Como se le indicó al descubrir la ubicación y estructura de los datos empresariales
en el entorno, los datos que desea utilizar en esta solución se encuentran en dos
bases de datos Oracle denominadas ORA_01 y ORA_02. Debido a que desea acceder a
estas bases de datos, debe crear un origen de datos que se corresponda a cada una
de ellas.
144
Netcool/Impact: Guía de soluciones
Para crear los orígenes de datos:
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Pulse el icono Origen de datos nuevo y seleccione Oracle en la lista. Se abre la
ventana Origen de datos nuevo.
3. Especifique ORACLE_01 en el campo Nombre de origen de datos.
4. Especifique un nombre de usuario y contraseña de Oracle en los campos
Nombre de usuario y Contraseña.
5. Escriba ORA_HOST_01 en el campo Nombre de host primario.
6. Especifique 1521 en el campo Puerto primario.
7. Especifique ORA_01 en el campo SID.
8. Pulse Probar conexión para probar la conexión del ObjectServer.
9. Pulse Aceptar.
Resultados
Repita estos pasos para crear otro origen de datos que se corresponda con la base
de datos ORA_02. Nombre este origen de datos ORACLE_02.
Creación de los tipos de datos
La tarea siguiente de la configuración del modelo de datos es crear los tipos de
datos.
Acerca de esta tarea
Como se le indicó al descubrir la ubicación y estructura de los datos empresariales
en el entorno, los datos que desea utilizar están contenidos en dos tablas.
La primera tabla se denomina Device y está ubicada en la base de datos ORA_01.
Esta tabla contiene información sobre cada uno de los dispositivos de la red. Las
columnas de la tabla incluyen Hostname, DeviceID, HardwareID, Facility y
RackNumber.
La segunda tabla se denomina Department y está ubicada en la base de datos
ORA_02. Esta tabla contiene información sobre cada departamento funcional de la
empresa. Las columnas de esta tabla incluyen DeptName, DeptID y Location.
Debido a que desea acceder a los datos en ambas tablas, debe crear un tipo de
datos para cada una de ellas. Nombre estos tipos de datos Dispositivo y
Departamento.
Para crear los tipos de datos:
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Seleccione ORACLE_01 en la lista de orígenes de datos.
3. Pulse el icono Tipo de datos nuevo.
Capítulo 12. Guía de aprendizaje de enriquecimiento de sucesos
145
4.
5.
6.
7.
8.
9.
10.
11.
Se abre una nueva ficha del Editor de tipo de datos.
Especifique Dispositivo en el campo Nombre de tipo de datos.
Seleccione ORACLE_01 en el menú desplegable Nombre de origen de datos.
Asegúrese de que la casilla de verificación Habilitado está seleccionada. Se
marca de forma predeterminada.
Desplácese hacia abajo en el separador Editor de tipo de datos para que esté
visible el área Descripción de tabla.
Seleccione Dispositivo en la lista Tabla base.
Pulse Renovar.
Netcool/Impact consulta la base de datos Oracle y llena el navegador
Descripción de tabla con los nombres de cada una de las columnas de la
tabla Dispositivo.
Especifique que el campo DeviceID es el campo de clave para el tipo de datos
seleccionando la opción Key en la fila DeviceID.
Seleccione Nombre de host en la lista Campo de nombre para mostrar.
12. Pulse Guardar en el separador Editor de tipo de datos.
13. Pulse Cerrar en el separador Editor de tipo de datos.
Resultados
Repita estos pasos para crear otro tipo de datos que se corresponda con la tabla
Department de la base de datos ORA_02. Denomine a este tipo de datos
Departamento.
Creación de un enlace dinámico
El paso siguiente es crear un enlace dinámico entre los tipos de datos Dispositivo
y Departamento.
Acerca de esta tarea
Una propiedad de los datos empresariales que utiliza en esta solución es que hay
una relación entre dispositivos del entorno y departamentos de la empresa. Todos
los dispositivos que residen en un centro determinado dan servicio a los
departamentos empresariales de la misma ubicación. Puede hacer que esta relación
forme parte del modelo de datos creando un enlace dinámico entre los tipos de
datos Dispositivo y Departamento. Después de crear el enlace dinámico, puede
utilizar la función GetByLinks para atravesarlo en una política.
En esta relación, Dispositivo es el tipo de datos de origen y Departamento es el
tipo de datos de destino. Cuando crea el enlace entre los dos tipos de datos, puede
definirlo utilizando la sintaxis siguiente:
Location = ’%Facility%’
Este filtro indica a Netcool/Impact que los elementos de datos Dispositivo están
enlazados con los elementos de datos Departamento si el valor del campo Location
en Department es igual al valor del campo Facility en Device.
Para crear el enlace de datos:
146
Netcool/Impact: Guía de soluciones
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Modelo de datos para abrir el separador
Modelo de datos.
2. Pulse el nombre del tipo de datos Dispositivo.
Se abre un nuevo separador Editor de tipo de datos en el panel de trabajo
principal de la GUI. Este editor visualiza información de configuración para el
tipo de datos Dispositivo.
3. Seleccione el separador Enlaces dinámicos del editor.
Se abrirá el área Enlaces desde este tipo de datos en el editor.
4. Pulse el botón Nuevo enlace por filtro para abrir la ventana Enlace por filtro.
5. Seleccione Departamento en la lista Tipo de datos de destino.
6. En el campo Filtro ..., especifique la serie de filtro que define la relación entre
la lista Dispositivo y la lista Departamento. Como se ha indicado en la
descripción de esta tarea más arriba, la serie de filtro es Location =
’%Facility%’. Esto indica que desea que los elementos de datos Dispositivo
estén enlazados a los elementos de datos Departamento si el campo Location en
Department es el mismo que el campo Facility en Device.
7. Pulse Aceptar.
8. Pulse el botón Guardar en el separador Editor de tipo de datos.
9. Pulse el botón Cerrar en el separador Editor de tipo de datos.
Revisión del modelo de datos
Después de haber creado los enlaces dinámicos, puede revisar el modelo de datos
utilizando la GUI de Tivoli Integrated Portal para verificar que ha realizado todas
las tareas correctamente.
Acerca de esta tarea
Puede revisar el modelo de datos abriendo los paneles de tarea Origen de datos y
Tipo de datos del panel de navegación y asegurándose de que se visualizan el
origen de sucesos, los orígenes de datos y los tipos de datos que ha creado.
Configuración de servicios
El paso siguiente de esta guía de aprendizaje es configurar el lector de sucesos de
OMNIbus que requiere la solución.
Creación del lector de sucesos
El lector de sucesos de OMNIbus para esta solución debe comprobar el
ObjectServer de NCOMS cada 3 segundos y recuperar los nuevos sucesos, si los hay.
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Servicios para abrir el separador Servicios.
2. Pulse el icono Crear servicio nuevo y seleccione Lector de OMNIbusEvent en
la lista.
3. Especifique TUT_READER_01 en el campo Nombre de servicio.
4. Seleccione NCOMS en la lista Origen de datos.
5. Especifique 3000 en el campo Intervalo de sondeo.
Capítulo 12. Guía de aprendizaje de enriquecimiento de sucesos
147
6. Seleccione la opción Inicio. Esta opción especifica si el servicio se inicia
automáticamente al ejecutar Netcool/Impact.
7. Pulse Aceptar.
Revisión de los servicios
Después de haber creado el lector de sucesos, puede utilizar la GUI de Tivoli
Integrated Portal para verificar que ha realizado todas las tareas correctamente.
Acerca de esta tarea
Para revisar el servicio que ha creado, pulse el panel de tarea Servicios del panel
de navegación y asegúrese de que se visualice el lector de sucesos de OMNIbus
TUT_READER_01. También puede comprobar el panel Estado de servicio para
asegurarse de que aparece el lector de sucesos.
Escritura de la política
Después de haber configurado el servicio de lector de sucesos de OMNIbus, el
paso siguiente es escribir la política para la solución.
Esta política se denomina EnrichEvent y realiza automáticamente las tareas que ha
descubierto al analizar el flujo de trabajo en el entorno.
Puede utilizar la política EnrichEvent para completar las tareas siguientes:
v Busca la información sobre el dispositivo que causa la alerta.
v Busca los departamentos de la empresa a los que da servicio el dispositivo.
v Si uno de los departamentos de la empresa forma parte de una función crítica
de la empresa, la política aumenta la gravedad de la alerta a crítica.
En esta sección se asume que ya sabe cómo crear, editar y guardar una política
utilizando las herramientas de editor de políticas de la GUI de Tivoli Integrated
Portal. Para obtener más información sobre estas herramientas, consulte la
publicación Guía de la interfaz de usuario.
Búsqueda de información de dispositivo
La primera tarea que desea que realice la política es buscar información de
dispositivo relacionada con la alerta en la base de datos de inventario de red.
Acerca de esta tarea
Concretamente, desea que la política recupere las especificaciones técnicas del
dispositivo que causa la alerta, así como información sobre el recurso y el número
de bastidor donde está ubicado el dispositivo.
Para ello, la política debe realizar SELECT a nivel de base de datos en la tabla que
contiene los datos de dispositivo y devolver aquellas filas que estén relacionadas
con la alerta entrante. Si se considera desde la perspectiva del modelo de datos, la
política debe obtener elementos de datos del tipo de datos Dispositivo cuando el
valor del campo Nombre de host es el mismo que el valor del campo Nodo de la
alerta.
Para recuperar los elementos de datos, debe especificar el código siguiente en el
separador del editor de políticas de Netcool/Impact:
148
Netcool/Impact: Guía de soluciones
DataType = "Dispositivo";
Filter = "Nombre de host = ’" + @Node + "’";
CountOnly = False;
MyDevices = GetByFilter(DataType, Filter, CountOnly);
MyDevice = MyDevices[0];
If (Length(MyDevices) < 1) { Log("No se han encontrado dispositivos coincidentes."); }
If (Length(MyDevices) > 1) { Log("Se ha encontrado más de un dispositivo coincidente."); }
Aquí, GetByFilter recupera elementos de datos del tipo de datos Dispositivo
donde el valor del campo Nombre de host es igual al valor del campo Node de la
alerta entrante. Los elementos de datos se almacenan en una matriz denominada
MyDevices.
Aunque GetByFilter puede devolver más de un elemento de datos en la matriz,
sólo se espera que la matriz contenga un elemento de datos en esta situación, ya
que cada dispositivo de la base de datos tiene un Nombre de host exclusivo. El
primer elemento de la matriz MyDevices se asigna a la variable MyDevice de forma
que posteriormente se puede utilizar MyDevice como abreviatura en la política.
Dado que desea recuperar sólo un elemento de datos del tipo de datos, la política
también imprime mensajes de error en el registro de política si GetByFilter
recupera menos de o más de una.
Búsqueda de departamentos de la empresa
La siguiente tarea que desea que realice la política es buscar los departamentos
empresariales a los que da servicio el dispositivo que ha causado la alerta.
Acerca de esta tarea
Al configurar los modelos de datos para esta solución, ha creado un enlace
dinámico. Este enlace ha definido la relación entre los dispositivos en el entorno y
departamentos de la empresa. Para buscar los departamentos de la empresa a los
que da servicio el dispositivo, la política debe tomar el elemento de datos que
recuperó anteriormente del tipo de datos Dispositivo y atravesar los enlaces entre
éste y el tipo de datos Departamento.
Para recuperar los elementos de datos Departamento enlazados con el Dispositivo,
especifique el texto siguiente en el editor de políticas debajo del código que ha
especificado anteriormente:
DataTypes = {"Departamento"};
Filter = NULL;
MaxNum = 10000;
MyDepts = GetByLinks(DataTypes, Filter, MaxNum, MyDevices);
If (Length(MyDepts) < 1) { Log("No se han encontrado departamento enlazados."); }
Aquí GetByLinks recupera hasta 10.000 elementos de datos Departamento enlazados
con elementos de datos en la matriz MyDevices. Ya que está seguro de que la
empresa tiene menos de 10.000 departamentos, puede utilizar un valor grande
como este para asegurarse de que se devuelven todos los elementos de datos
Departamento.
Los elementos de datos devueltos se almacenan en la matriz MyDepts. Dado que
desea como mínimo un elemento de datos del tipo de datos, la política imprime
Capítulo 12. Guía de aprendizaje de enriquecimiento de sucesos
149
también un mensaje de error en el registro de política si GetByLinks no devuelve
ninguno.
Incremento de la gravedad de una alerta
La tarea final que desea que realice la política es aumentar la gravedad de la alerta.
Acerca de esta tarea
Por ejemplo, si el departamento que resulta afectado tiene una función crítica en la
empresa. Para esta guía de aprendizaje, los departamentos de la empresa cuya
función es crítica para la empresa son las unidades del Centro de datos y de
Proceso de transacciones.
Para realizar esta tarea, la política tiene que iterar por cada uno de los elementos
de datos Departamento recuperados del paso anterior. Para cada Departamento,
debe probar el valor del campo Nombre con los nombres de los dos departamentos
de la empresa que tienen una función crítica. Si el nombre Departamento
corresponde a uno de los nombres de esos dos departamentos, la política debe
aumentar la gravedad de la alerta a Crítica.
Count = Length(MyDepts);
While (Count > 0) {
Index = Count - 1;
MyDept = MyDepts[Index];
If (MyDept.Name == "Centro de datos" || MyDept.Name == "Proceso de transacciones") {
@Severity = 5;
}
Count = Count - 1;
}
Aquí se utiliza un bucle While para iterar por los elementos de la matriz MyDepts.
MyDepts es la matriz de elementos de datos Departamento devueltos anteriormente
en la política mediante una llamada a GetByLinks.
Antes de que se inicie el bucle While, el valor de la variable Count se establece en
el número de elementos de la matriz MyDepts. Cada vez que se ejecuta el bucle,
comprueba el valor de Count. Si Count es mayor que cero, las sentencias del bucle
se ejecutarán. Si Count es inferior o igual a cero, las sentencias no se ejecutarán.
Debido a que Count disminuye en una unidad cada vez que se realiza el bucle, el
bucle While se ejecuta una vez para cada elemento de datos en MyDepts.
Se utiliza una variable denominada Index para hacer referencia al elemento actual
de la matriz. El valor de Index es el valor de Count menos uno, ya que las matrices
de Netcool/Impact son estructuras basadas en cero cuyo primer elemento se
cuenta como cero en lugar de uno.
Dentro del bucle, la política utiliza una sentencia If para comprobar el nombre del
Departamento actual en la matriz con el nombre de los dos departamentos críticos
para la empresa. Si el nombre del Departamento actual coincide con los
departamentos críticos para la empresa, la política establece el valor del campo
Severity de la alerta en 5, lo que indica una gravedad crítica.
150
Netcool/Impact: Guía de soluciones
Revisión de la política
Después de haber acabado de escribir la política, puede revisarla para comprobar
que sea precisa y que esté completa.
Acerca de esta tarea
En el ejemplo siguiente se muestra el texto completo de esta política.
// Buscar información de dispositivo
DataType = "Dispositivo";
Filter = "Nombre de host = ’" + @Node + "’";
CountOnly = False;
MyDevices = GetByFilter(DataType, Filter, CountOnly);
MyDevice = MyDevices[0];
If (Length(MyDevices) < 1) { Log("No se han encontrado dispositivos coincidentes."); }
// Buscar departamentos de la empresa
DataTypes = {"Departamento"};
Filter = NULL;
MaxNum = 10000;
MyDepts = GetByLinks(DataTypes, Filter, MaxNum, MyDevices);
If (Length(MyDepts) < 1) { Log("No se han encontrado departamento enlazados."); }
// Si el departamento es crítico para la empresa, actualice la gravedad de la alerta
Count = Length(MyDepts);
While (Count > 0) {
Index = Count - 1;
MyDept = MyDepts[Index];
If (MyDept.Name == "Centro de datos" || MyDept.Name == "Proceso de transacciones") {
@Severity = 5;
}
Count = Count - 1;
}
Ejecución de la solución
El paso final de esta guía de aprendizaje es ejecutar la solución de enriquecimiento
de sucesos.
Antes de empezar
Antes de ejecutar la solución, debe configurar el servicio de lector de sucesos
TUT_READER_01 OMNIbus para que desencadene la política EnrichEvent. Para
configurar TUT_READER_01:
1. Abra Netcool/Impact y seleccione Configuración del sistema >
Automatización de sucesos > Servicios
2. Seleccione el servicio TUT_READER_01 y pulse Editar.
3. Pulse la pestaña Correlación de sucesos.
4. Para crear una correlación, pulse el botón Nueva correlación.
Capítulo 12. Guía de aprendizaje de enriquecimiento de sucesos
151
5. Si desea desencadenar la política enrichevent para todos sucesos, deje el campo
Expresión de filtro vacío. Si desea desencadenar la política EnrichEvent para
sucesos específicos, especifique los valores para estos sucesos.
6.
7.
8.
9.
Seleccione EnrichEvent en el campo Política que debe ejecutarse.
Pulse la casilla de verificación Activo.
Para guardar la configuración, pulse Aceptar.
Para guardar los cambios en el servicio TUT_READER_01, pulse el icono de
almacenamiento.
Procedimiento
Para iniciar la solución, inicie simplemente el servicio de lector de sucesos de
OMNIbus.
A continuación, el lector de sucesos empieza a supervisar el ObjectServer y
recupera los nuevos sucesos que aparecen. Cuando aparece un nuevo suceso, el
lector de sucesos lo devuelve a Netcool/Impact, donde se procesa ejecutando la
política EnrichEvent.
152
Netcool/Impact: Guía de soluciones
Capítulo 13. Configurar la política de Impact PasstoTBSM
En este escenario configurará la política de Impact PasstoTBSM. Creará y
configurará una política de Impact, y creará un modelo de servicio de TBSM para
recibir los datos. Creará un portlet personalizado para ver los datos. Cuando haya
creado el portlet personalizado creará una página de forma libre para mostrar los
datos.
Resultado esperado
Cuando haya completado este escenario tendrá una página personalizada de forma
libre que mostrará datos en TBSM, reunidos desde una política de Impact.
Visión general
La función PasstoTBSM se utiliza para enviar información de sucesos de
Netcool/Impact a TBSM.
Netcool/Impact utiliza la función PasstoTBSM para enviar información de sucesos a
TBSM. En una política Impact puede añadir la función PassToTBSM a la política.
Cuando activa la política utilizando un servicio Netcool/Impact, la información de
sucesos se envía a TBSM.
En TBSM puede configurar manualmente una Regla de estado entrante para que
busque sucesos procedentes de Netcool/Impact. El menú de la lista Canal de datos
muestra el servicio Netcool/Impact utilizado par ejecutar la política que contiene la
función PasstoTBSM. Para mostrar los campos disponibles para el servicio
Netcool/Impact seleccionado debe personalizar manualmente los nombres de
campo de la ventana Personalizar campos para que coincidan con los campos de la
política.
También puede utilizar la característica PasstoTBSM para transferir información de
sucesos desde un clúster de Netcool/Impact remoto hasta TBSM. Para ello se
necesita realizar alguna configuración adicional.
Configuración
Puede utilizar la función PassToTBSM tanto en la instalación local como en la
remota. La sintaxis para PassToTBSM es la misma que para una política que se
ejecuta en un servidor TBSM. Para una instalación remota deben completarse las
tareas siguientes:
v El servidor TBSM debe compartir un servidor de nombre en clústeres con el
Servidor Impact remoto Netcool/Impact en la lista Canal de datos de la ventana
Editar regla de estado entrante.
v En TBSM un usuario de administración configura
impact.sla.remoteimpactcluster=<nombre de clúster del servidor Impact
remoto> en etc/TBSM_sla.props en el servidor TBSM.
v En Netcool/Impact, un usuario administrador exporta el proyecto For
ImpactMigration de TBSM y lo importa a la versión remota de Netcool/Impact.
Netcool/Impact necesita el proyecto For ImpactMigration para acceder a los
orígenes de datos y los tipos de datos de TBSM.
© Copyright IBM Corp. 2006, 2014
153
Para llamar la función PassToTBSM desde un Servidor Impact remoto, el clúster
Netcool/Impactnecesita el tipo de datos ImpactEvents. El tipo de datos
ImpactEvents apunta a la tabla ImpactEvents de la base de datos DB2 que TBSM
utiliza. Este tipo de datos utiliza un origen de datos llamado TBSMDatabase. El
origen de datos TBSMDatabase y el tipo de datos ImpactEvents pertenecen al
proyecto llamado ForImpactMigration en el servidor TBSM.
Puede exportar este proyecto desde el servidor TBSM e importarlo al Servidor
Impact remoto para proporcionar a Servidor Impact los orígenes de datos y los
tipos de datos necesarios desde TBSM.
Exportación e importación del proyecto ForImpactMigration
Para llamar la función PassToTBSM desde el servidor Impact remoto, el servidor
Impact remoto necesita importar el proyecto ForImpactMigration y su contenido
desde TBSM.
Antes de empezar
El proyecto ForImpactMigration aparece en la lista Proyectos de la versión de
Impact que está dentro de TBSM. El proyecto ForImpactMigration tiene los
orígenes de datos y los tipos de datos necesarios para que el servidor Impact
remoto envíe sucesos utilizando PassToTBSM. Para enviar sucesos a TBSM desde un
servidor Impact remoto, un usuario administrador necesita importar el proyecto
ForImpactMigration desde el servidor TBSM e importarlo a su servidor Impact.
Acerca de esta tarea
Antes se completan la exportación y la importación al servidor Impact. Utilice el
botón Desbloquear todo de la barra de herramientas Proyectos globales para
desbloquear los elementos bloqueados y comprobar si el archivo
etc/<nombre_instancia>_versioncontrol.locks tiene elementos bloqueados antes
de completar los pasos de importación y exportación.
Procedimiento
1. En la instancia de servidor TBSM, ejecute el mandato de nci export.
<DIR_INSTAL>/tbsm/bin/nci_export TBSM --project ForMigration <dir
exportado>
2. Copie el directorio exportado al servidor Impact remoto o a una ubicación en la
que el servidor Impact pueda acceder al directorio.
3. En la instancia de servidor Impact, ejecute el mandato nci import.
<DIR_INSTAL>/impact/bin/nci_import NCI <dir exportado> para importar
ForImpactMigration al servidor Impact remoto.
Creación de una política
Un ejemplo de política que utilizar para PassToTBSM con el asistente de servicios
web para crear la política.
Acerca de esta tarea
El rol de esta política consiste en supervisar un servicio web que proporciona datos
sobre el clima, sobre temperatura y humedad de una ciudad concreta. En este
ejemplo creará la política utilizando la opción de servicios web del asistente de
políticas.
154
Netcool/Impact: Guía de soluciones
Procedimiento
1. En el separador Políticas, seleccione la flecha situada junto al icono Política
nueva. Seleccione Utilizar asistente > Servicios Web para abrir la ventana
Invocar servicio web-Introducción.
2. En la ventana Invocar servicio web-Introducción, escriba el nombre de la
política en el campo Nombre de política, por ejemplo Tiempo y escriba
Siguiente.
3. En la ventana Invocación de servicio web-Archivo WSDL y módulo de cliente,
en el campo URL o vía de acceso de WSDL, escriba el URL o una vía de
acceso para el archivo WSDL de destino. Por ejemplo http://wsf.cdyne.com/
WeatherWS/Weather.asmx?wsdl.
En las instancias en las que el servidor GUI está instalado separado de
Servidor Impact, la vía de acceso de archivos para el archivo WSDL hace
referencia al sistema de archivos Servidor Impact, no el sistema de archivos
del servidor GUI. Si especifica un URL para el archivo WSDL, ese URL debe
ser accesible al host de Servidor Impact y al host del servidor GUI.
4. En el área Módulo de cliente, seleccione Proporcionar un nombre de paquete
para el módulo de cliente nuevo.
5. Entre un nombre para el paquete, por ejemplo getWeatherInfoPkg. Pulse
Siguiente.
6. En la ventana Invocación del nombre de servicio-Nombre del servicio web,
Puerto y método, la información general del servicio web se rellena
previamente para los elementos siguientes; Servicio web Weather, Tipo de
puerto de servicio web WeatherSoap y Método de servicio web. Seleccione la
opción que desee de la lista, por ejemplo GetCityWeatherByZIP. Pulse
Siguiente.
7. En la ventana Invocación de servicio web- Parámetros del método de servicio
web, escriba los parámetros necesarios por el método de servicio web de
destino. Por ejemplo, escriba el nombre, el código postal de la ciudad para la
que desee obtener información del tiempo. Pulse Siguiente. Cuando el
asistente se completa, crea una política que obtiene información del tiempo del
sitio web seleccionado para la ciudad especificada.
8. En la ventana Invocación de servicio web-parámetros de Método de servicio
web, puede editar opcionalmente URL o vía de acceso de WSDL
seleccionando el recuadro de selección de edición. Para habilitar la seguridad
del servicio web, marque el recuadro de selección Habilitar seguridad de
servicio web. Seleccione uno de los tipos de autenticación siguientes:
v Autenticación de nombre de usuario HTTP
v Autenticación de nombre de usuario de mensaje SOAP
Añada el Nombre de usuario y Contraseña. Pulse Siguiente.
9. Aparece la ventana Invocación del servicio web-Resumen y Finalizar. Muestra
detalles sobre la política. Pulse Finalizar para crear la política. Cuando se
completa el asistente, genera el contenido de la política. Puede ejecutar la
política de la manera habitual y verificar los resultados en el registrador de
políticas.
10. Para extraer los datos de la política y enviarlos a TBSM. Debe editar
manualmente la política y añadir las líneas siguientes a la política.
PassToTBSM(ec);
Importante: Esta política utiliza un objeto NewEvent para pasar los datos. Si
crea un objeto para enviar los datos de sucesos a PassToTBSM, utilice
NewEvent, no NewObject. Si su política es controlada por un lector o sucesos o
Capítulo 13. Configurar la política de Impact PasstoTBSM
155
por una escucha de sucesos, el objeto EventContainer se puede enviar
directamente a PassToTBSM. Un servicio PolicyActivator no pasa ningún
objeto de sucesos a su política, así que deberá crear un
NewEvent("EventSourceName") incluido el nombre del servicio que apunte al
origen de sucesos desde el que se leen y envían sucesos. Por ejemplo, MyEvent
= NewEvent("DefaultPolicyActivator");
Ejemplo de la política de servicios web generada por el asistente de servicios
web.
//Esta política generada por el asistente de Impact.
//Esta política se basa en un archivo wsdl en
http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl
log("Iniciar política ’getWeather’...");
//Especifique el nombre de paquete tal como se ha definido al compilar WSDL en Impact
WSSetDefaultPKGName(’getWeatherInfoPkg’);
//Especificar parámetros
GetCityWeatherByZIPDocument=WSNewObject
("com.cdyne.ws.weatherws.GetCityWeatherByZIPDocument");
_GetCityWeatherByZIP=WSNewSubObject
(GetCityWeatherByZIPDocument,"GetCityWeatherByZIP");
_ZIP = ’27513’;
_GetCityWeatherByZIP[’ZIP’] = _ZIP;
WSParams = {GetCityWeatherByZIPDocument};
//Especifique un nombre de servicio web, un punto final y un método
WSService = ’Weather’;
WSEndPoint = ’http://wsf.cdyne.com/WeatherWS/Weather.asmx’;
WSMethod = ’getCityWeatherByZIP’;
log("Se va a invocar la llamada de servicio web GetCityWeatherByZIP ......");
WSInvokeDLResult = WSInvokeDL(WSService, WSEndPoint, WSMethod, WSParams);
log("Resultado devuelto de la llamada de servicio web GetCityWeatherByZIP:
" +WSInvokeDLResult);
//Añadido para PasstoTBSM
city = WSInvokeDLResult.GetCityWeatherByZIPResponse.
GetCityWeatherByZIPResult.City;
temperature=WSInvokeDLResult.GetCityWeatherByZIPResponse.
GetCityWeatherByZIPResult.Temperature;
humidity=WSInvokeDLResult.GetCityWeatherByZIPResponse.
GetCityWeatherByZIPResult.RelativeHumidity;
ec = NewEvent("WeatherActivator");
// Utilizando un activador de políticas llamado WeatherActivator
ec.city=city;
ec.temperature=temperature;
ec.humidity=humidity;
log(" City : " + ec.city + "
" + ec.humidity);
Temp : " + ec.temperature + " Humid :
PassToTBSM(ec);
Creación de un servicio activador de políticas
Cree el servicio activador de políticas para llamar a una política, y obtener
actualizaciones y pasar las actualizaciones a TBSM.
156
Netcool/Impact: Guía de soluciones
Procedimiento
1. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos y pulse Servicios para abrir el separador Servicios.
2. En el separador Servicios, pulse el icono Crear servicio nuevo.
3. En el menú, seleccione una plantilla para el servicio que desee crear. En esta
instancia, seleccione Activador de políticas.
4. Añada el Nombre de servicio por ejemplo WeatherActivator, el Intervalo de
activación en segundos, por ejemplo 300, y seleccione la política Weather que
ha creado previamente en la lista Política.
5. Inicio: Automáticamente al iniciarse el servidor Seleccione el recuadro de
selección para iniciar automáticamente el servicio cuando se inicia el servidor.
También puede iniciar y detener el servicio desde la GUI.
6. Registro de servicio: Escribir en archivo Seleccione el recuadro de selección
para escribir la información de registro en un archivo.
7. Pulse el icono Guardar servicio.
8. Inicie el servicio.
Crear una plantilla y regla nueva para reunir datos sobre el clima
En este tema creará una estructura de servicios para organizar los datos climáticos
por ciudad. Creará una plantilla de servicios regionales y una regla de agregación
que dependa de la plantilla de servicios de la ciudad.
Acerca de esta tarea
Para crear la estructura de servicios:
Procedimiento
1. Desde el menú desplegable Navegación de servicios, seleccione Plantillas.
2. Pulse el botón Crear plantilla nueva. Se abre el separador Editar plantilla en
el Editor de servicios.
3. Escriba CityWeather en el campo Nombre de la plantilla.
4. Escriba Datos del tiempo por ciudad en el campo Descripción.
5. En el separador Reglas, después de Hijos, pulse el botón Crear regla de
estados entrantes.
6. Seleccione el botón de selección Basado en un valor numérico y pulse el
botón Aceptar.
Se abrirá la ventana de edición de reglas de estados entrantes.
7. Escriba CityTemperature en el campo Nombre de regla.
8. Seleccione WeatherActivator en la lista desplegable Canal de datos.
9. Pulse el botón Personalizar campos. Se abre la ventana Campos
personalizados.
10. Asegúrese de que los valores para los campos se basen en la tabla de
correspondencias siguiente:
Tabla 26. Nombres y tipos de campos predeterminados
Nombre de campo
Tipo de campo
EventClass
Serie
EventType
Serie
ResourceName
Serie
Capítulo 13. Configurar la política de Impact PasstoTBSM
157
Tabla 26. Nombres y tipos de campos predeterminados (continuación)
Nombre de campo
Tipo de campo
SecondaryResourceName
Serie
Summary
Serie
Value1
Flotante
Value2
Flotante
Value3
Flotante
11. Añada los campos siguientes:
Tabla 27. Campos y tipos personalizados nuevos
Nombre de campo
Tipo de campo
city
Serie
temperature
Flotante
humidity
Flotante
12. Pulse Aceptar.
13. Escriba los valores siguientes para el rol de estado entrante con la tabla
siguiente como guía.
Tabla 28. Valores para la regla CityTemperature
Campos de entrada
Valor
Nombre de instancia
city
Expresión
temperature <
Seleccione el recuadro de selección Status.
Marginal
80
Malo
95
Seleccione el recuadro de selección Almacenar datos para esta regla para TWA.
14. Pulse Aceptar. La regla CityTemperature aparece en el separador Reglas.
15. Puede repetir los mismos pasos para crear una regla de estado entrante
CityHumidity para recopilar datos de humedad del canal de datos
WeatherActivator. Seleccione humidity como valor de salida y elija valores
entre 0 y 100 para los umbrales de estado.
16. Para guardar la regla, pulse el botón Guardar de la barra de herramientas
Editar plantilla.
Crear la regla CityHumidity para la plantilla CityWeather
En este tema creará una regla para reunir datos para la plantilla.
Procedimiento
1. Desde el menú desplegable Navegación de servicios, seleccione Plantillas.
2. Si no está ya abierto, pulse el separador Editar plantilla 'CityWeather'.
3. Pulse el botón Regla de estado entrante para abrir la ventana Editar tipo de
regla de estado entrante.
158
Netcool/Impact: Guía de soluciones
Figura 5. Botón Regla de estado entrante
4. Seleccione el botón de selección Basado en un umbral bueno, marginal y
malo y pulse el botón Aceptar.
Se abre la ventana Crear regla de estado entrante.
5. Escriba CityHumidity en el campo Nombre de regla.
6. Seleccione weatherActivator en la lista desplegable Canal de datos.
7. Pulse el botón Personalizar campos. Se abre la ventana Campos
personalizados.
8. Asegúrese de que los valores para los campos se basen en la tabla de
correspondencias siguiente:
Tabla 29. Nombres y tipos de campos predeterminados
Nombre de campo
Tipo de campo
EventClass
Serie
EventType
Serie
ResourceName
Serie
SecondaryResourceName
Serie
Summary
Serie
Value1
Flotante
Value2
Flotante
Value3
Flotante
9. Añada los campos siguientes:
Tabla 30. Campos y tipos personalizados nuevos
Nombre de campo
Tipo de campo
City
Serie
Temperature
Flotante
Humidity
Flotante
10. Pulse Aceptar.
11. Escriba los valores siguientes para el rol de estado entrante con la tabla
siguiente como guía.
Tabla 31. Valores para la regla CityTemperature
Campos de entrada
Valor
Nombre de instancia
City
Expression
Humidity <
Seleccione el recuadro de selección Status.
Marginal
60
Malo
85
Seleccione el recuadro de selección Almacenar datos para esta regla para TWA.
12. Pulse el botón Aceptar.
Capítulo 13. Configurar la política de Impact PasstoTBSM
159
13. Pulse el botón Guardar en el separador el separador Editar plantilla
'CityWeather'.
Nota: La regla no se guardará en la base de datos TBSM hasta que pulse el
botón Guardar.
La regla CityHumidity aparece en el separador Reglas.
Qué hacer a continuación
Siguiente: Crear el servicio a mano.
En este tema se crea un servicio para el tiempo de la ciudad.
Crear un servicio city
En este tema creará un servicio.
Acerca de esta tarea
Para crear un servicio denominado Cary, realice los pasos siguientes:
Procedimiento
1. Desde el menú desplegable Navegación de servicios, seleccione Servicios.
2. Pulse el botón Crear servicio nuevo.
3.
4.
5.
6.
7.
8.
Se abre el separador Editar servicio en el Editor de servicios.
En el campo Nombre de servicio escriba Cary.
En el separador Plantillas, pulse la plantilla CityWeather de la lista Plantillas
disponibles y pulse el botón >>.
La plantilla CityWeather se mueve a la lista Plantillas seleccionadas.
Pulse el botón Guardar de la barra de herramientas del separador Editar
servicio.
El portlet Navegación de servicios muestra el nuevo servicio en el árbol
Servicios.
Para tener un árbol de servicios personalizados con sólo las ciudades que
contienen información del tiempo, cree otro servicio (por ejemplo Weather) y
haga que Cary sea dependiente del mismo.
Cree una nueva plantilla de árbol CityWeather, añadiendo las columnas
Temperature y Humidity para la plantilla CityWeather. Asocie las nuevas
columnas a @CityTemperature y @CityHumidity, respectivamente.
Para obtener información sobre cómo crear árboles personalizados, consulte
Guía de configuración de servicios > Árboles de servicios personalizados.
Resultados
Siguiente: Personalizar un portlet de árbol de servicios
Cuando haya creado el servicio, puede personalizar el portlet de Árbol de servicios
para mostrar sólo la información de tiempo de City.
Personalizar un portlet del árbol de servicios
En este tema creará un portlet del árbol de servicios personalizado.
160
Netcool/Impact: Guía de soluciones
Procedimiento
1. Pulse Valores –> Portlets del panel de navegación. Aparece una lista de todos
los nodos de navegación de la consola, agrupados del mismo modo que en la
navegación de la consola. La página incluye todos los portlets que puede
elegir personalizar.
2. Pulse Nuevo. Se abre la página de bienvenida del asistente de creación de
widgets. Pulse Siguiente. Se abre la página siguiente con el título Seleccionar
un widget de base.
3. Seleccione el portlet Servicios. Pulse Siguiente.
4. En la página General, escriba Weather by City en el campo Nombre.
5. Desplácese por las opciones de iconos de miniaturas del portlet y elija uno
según la figura siguiente.
6. Elija la imagen de descripción del nuevo portlet tal como se muestra en la
figura siguiente:
7. Seleccione TBSM y pulse el botón Añadir > para añadir el nuevo portlet al
catálogo TBSM.
8.
9.
10.
11.
Pulse Siguiente. Se abre la página Seguridad.
En la página Seguridad, seleccione Usuario en la lista Roles seleccionados.
Pulse Añadir para ver una lista de roles que pueden acceder a esta página.
Seleccione estos roles de la lista de roles disponibles:
v tbsmReadOnlyUser
v tbsmAdminUser
v
12. Seleccione Usuario en la lista desplegable Roles seleccionados para ver los
niveles de acceso de los usuarios. Pulse Añadir.
13. En la lista de roles disponibles, seleccione tbsmAdminUser, seleccione
Usuario privilegiado de la lista desplegable Roles seleccionados para ver los
niveles de acceso de los usuarios.
14. Pulse Añadir.
15. Pulse Siguiente Se abre la sección Personalizar.
16. En la página General, especifique Weather by City como título del portlet.
17. Pulse Siguiente. Se abre la página Contexto. Seleccione Weather como
instancia de inicio.
18. Pulse Siguiente. Se abre la página Vista.
19. En la lista desplegable Plantilla de árbol, seleccione CityWeather. Mantenga
los valores desplegables para los otros campos.
20. Pulse Siguiente. Aparece la página Resumen.
21. Pulse Finalizar.
22. Verifique que aparezca el nuevo portlet en Valores –> Portlets.
Capítulo 13. Configurar la política de Impact PasstoTBSM
161
Resultados
Siguiente: Añadir un portlet de servicios personalizados a una página de de
formato libre
Cuando haya personalizado un portlet del árbol de servicios, podrá añadirlo a una
página nueva.
Añadir un portlet de servicios personalizados a una página de forma
libre
En este tema puede añadir un árbol de servicios personalizado a una nueva página
de forma libre.
Antes de empezar
Para crear una página personalizada necesita privilegios de administrador en
TBSM.
Acerca de esta tarea
Para crear una página personalizada complete los pasos siguientes:
Procedimiento
1. Pulse Valores –> Páginas del panel de navegación. Aparece una lista de todos
los nodos de navegación de la consola, agrupados del mismo modo que en la
navegación de la consola.
2. Pulse Página nueva. Se inicia una nueva página de título Valores de página.
3. Escriba Servicio del tiempo en el campo Nombre de página.
4. En el campo Ubicación de página, pulse Ubicación para navegar y buscar la
ubicación que desee para su página. console/Availability/. Este valor
especifica que la página aparecerá en Disponibilidad en la lista de tareas de
la consola. Mantenga los valores desplegables para los otros campos.
5. En el campo Ubicación de página, pulse Ubicación para navegar hacia donde
aparecerá la página nueva en la lista de tareas de la consola. Arrastre la nueva
página hasta la carpeta Disponibilidad. Esta página es para usuarios de sólo
lectura que no necesitarán editar servicios. Como resultado, se añade la
página al grupo Disponibilidad. El campo Ubicación se actualiza con
console/Availability/. Mantenga los valores desplegables para los otros
campos.
6. Pulse Aceptar.
7. Seleccione la opción Forma libre de Diseño de página.
8. Expanda Valor opcional para añadir acceso de roles a esta página.
9. Seleccione Usuario en la lista Roles seleccionados.
10. Pulse Añadir para ver una lista de roles que pueden acceder a esta página.
11. Seleccione estos roles de la lista de roles disponibles:
v tbsmReadOnlyUser
v tbsmAdminUser
v
12. Pulse Añadir.
162
Netcool/Impact: Guía de soluciones
13. Para tbsmReadOnlyUser, seleccione Usuario en la lista desplegable Nivel de
acceso.
14. Para tbsmAdminUser, seleccione Usuario privilegiado en la lista Roles
seleccionados.
15. Pulse Aceptar. Aparece la paleta de portlets, que se utiliza para seleccionar el
contenido de los portlets.
16. Seleccione la carpeta Todo.
17. Utilice las flechas de la parte inferior de la paleta de Portlet para buscar y
seleccionar el portlet Weather by City.
18. Arrastre el portlet City Weather Tree al espacio vacío situado bajo la paleta de
portlets. --> Weather by City
19. Arrastre un Time Window Analyzer y póngalo bajo Weather by City.
20. En Time Window Analyzer, pulse Añadir servicio.
21. Busque Cary y pulse en él. Puede editar las preferencias compartidas para que
Cary se convierta en el servicio predeterminado para el portlet Time Window
Analyzer.
22. Pulse Editar opciones > Máscara para personalizar el aspecto de su portlet. La
opción Máscara controla el aspecto del borde del portlet.
23. Pulse Terminado. Se abrirá la nueva página.
Nota: Después de pulsar en Terminado ya no podrá cambiar u organizar sus
portlets.
24. Cierre y vuelva a abrir la sesión como usuario OSManager1 para comprobar
que el nuevo usuario pueda ver la página.
Capítulo 13. Configurar la política de Impact PasstoTBSM
163
164
Netcool/Impact: Guía de soluciones
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos
de interfaz de usuario
Puede utilizar Proveedor de datos de interfaz de usuario en Netcool/Impact para
proporcionar datos a clientes compatibles con Proveedor de datos de interfaz de
usuario .
Integración con Netcool/Impact
Proveedor de datos de interfaz de usuario accede a datos de orígenes de datos,
tipos de datos y políticas en Netcool/Impact.
La consola es un componente de Jazz for Service Management. llamado IBM
Dashboard Application Services Hub. Jazz for Service Management se empaqueta
con Netcool/Impact. En esta publicación, nos referiremos a IBM Dashboard
Application Services Hub como la consola.
Puede utilizar Proveedor de datos de interfaz de usuario para visualizar datos de
Netcool/Impact en la consola. Puede utilizar la consola para crear sus propios
widgets o bien puede utilizar uno de los paneles de instrumentos de autoservicio
personalizables.
Jazz for Service Management
Proveedor de datos de interfaz de usuario requiere Netcool/Impact 6.1.1 o
superior. Proveedor de datos de interfaz de usuario también requiere Jazz for
Service Management, que está disponible para su descarga en la misma página
web que Netcool/Impact 6.1.1. Puede utilizar el instalador proporcionado con Jazz
for Service Management para instalarlo por separado.
Recomendamos que instale Netcool/Impact y Jazz for Service Management en
servidores distintos. Si no instala Netcool/Impact y Jazz for Service Management
en el mismo servidor, debe cambiar los números de puerto predeterminados para
evitar conflictos entre las versiones de Tivoli Integrated Portal 2.2.x.x utilizadas por
el Servidor GUI e IBM Dashboard Application Services Hub, al que se hace
referencia como la consola en esta documentación. Por ejemplo, un Servidor GUI
con Tivoli Integrated Portal instalado utiliza el puerto 16310 como el puerto
predeterminado. Los paneles de instrumentos de la consola en Jazz for Service
Management utilizan el mismo puerto. En este caso, debe cambiar el puerto
utilizado por los paneles de instrumentos de la consola en Jazz for Service
Management, por ejemplo, a 18310.
Para obtener más información sobre Jazz for Service Management, consulte
http://pic.dhe.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm.psc.doc_1.1.0/
psc_ic-homepage.html
Iniciación a Proveedor de datos de interfaz de usuario
Para poder utilizar Netcool/ImpactProveedor de datos de interfaz de usuario ,
debe completar los requisitos previos.
© Copyright IBM Corp. 2006, 2014
165
Requisitos previos
Para utilizar Proveedor de datos de interfaz de usuario , debe asegurarse primero
de que estén instalados los componentes correctos.
Debe configurar la autorización de usuario.
Finalmente, debe crear el origen de datos y los tipos de datos o la política que
desea utilizar para proporcionar datos a Proveedor de datos de interfaz de usuario
.
Visualización de datos en la consola
Para visualizar datos en la consola, debe completar las tareas siguientes:
1. Cree la conexión remota entre Proveedor de datos de interfaz de usuario y la
consola.
2. Cree el modelo de datos o política que proporciona los datos de
Netcool/Impact.
3. Cree una página en la consola.
4. Cree un widget en la página en la consola.
Componentes de Proveedor de datos de interfaz de usuario
Para utilizar Proveedor de datos de interfaz de usuario , debe asegurarse de tener
instalados todos los componentes necesarios.
Componentes necesarios de Jazz for Service Management
Para utilizar Proveedor de datos de interfaz de usuario , debe instalar primero el
componente IBM Dashboard Application Services Hub (la consola) de Jazz for
Service Management.
Si desea utilizar los widgets de paneles de instrumentos de autoservicio de
Netcool/Impact, debe instalar los widgets de paneles de instrumentos de
autoservicio en Dashboard Application Services Hub Server. Para obtener más
información, consulte “Instalación de widgets de paneles de instrumentos de
autoservicio de Netcool/Impact” en la página 209.
Descripción general de los componentes
El gráfico siguiente describe los componentes necesarios para utilizar Proveedor de
datos de interfaz de usuario .
166
Netcool/Impact: Guía de soluciones
El entorno del sistema se compone de un Servidor GUI o un Servidor Impact, un
servidor secundario o un servidor primario en un entorno en clúster, y un servidor
de panel de instrumentos personalizado.
Netcool/Impact 6.1.1 está instalado en Servidor GUI, el Servidor Impact principal
y el Servidor Impact secundario. Servidor GUI es instala como parte de Tivoli
Integrated Portal (TIP) 2.2.x.x.
El servidor de panel de instrumentos personalizado utiliza los widgets que se
crean en TIP 3.1 para conectar al Servidor GUI. El panel de instrumentos
personalizado utiliza el componente Servicios de registro que proporciona Jazz for
Service Management para conectar a una base de datos DB2. Para obtener más
información sobre el componente Servicios de registro, consulte
http://pic.dhe.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm.psc.doc_1.1.0/
psc_ic-homepage.html.
El servidor de panel de instrumentos personalizado ejecuta Tivoli Integrated Portal
(TIP) 3.1, a diferencia de los otros servidores que ejecutan Tivoli Integrated Portal
(TIP) 2.2.x.x. Esto se debe a que sólo puede crear los widgets que facilitan la
integración en Tivoli Integrated Portal (TIP) 3.1.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
167
Configuración de la autenticación de usuario
Para utilizar Proveedor de datos de interfaz de usuario , debe asignar primero uno
de los roles siguientes.
Acerca de esta tarea
La autenticación de usuario la controla el rol impactUIDataProviderUser. Este rol
se administra en el perfil de Tivoli Integrated Portal.
Procedimiento
Debe asignar uno de los roles siguientes a los usuarios para habilitar el acceso a
Proveedor de datos de interfaz de usuario :
v iscadmins
v impactAdminUser
v impactFullAccessUser
v impactUIDataProviderUser
Para obtener más información sobre este rol, consulte la información sobre el rol
impactUIDataProviderUser en la sección sobre la utilización de roles de la Guía de
la interfaz de usuario.
Tipos de datos y Proveedor de datos de interfaz de usuario
Para asegurarse de que el tipo de datos puede enviar datos a Proveedor de datos
de interfaz de usuario , debe asegurarse de que existen los valores siguientes. Los
tipos de datos SNMP e internos requieren valores adicionales.
Al crear un tipo de datos, debe considerar los valores siguientes:
v Para todos los tipos de datos, excepto el tipo de datos interno, debe seleccionar
también el recuadro de selección Campo de clave para el campo de clave. El
campo clave identifica la exclusividad de los datos que muestra el widget en la
consola.
v Debe habilitar el tipo de datos de forma que pueda enviar datos a Proveedor de
datos de interfaz de usuario . Para asegurarse de que Proveedor de datos de
interfaz de usuario puede acceder al tipo de datos, abra el editor de tipo de
datos y seleccione el recuadro de selección Acceder a los datos mediante el
proveedor de datos de la interfaz de usuario: habilitado. Una vez que se
renueve el modelo de datos, el tipo de datos estará disponible como origen de
proveedor de datos. La velocidad de renovación predeterminada es 5 minutos.
Sin embargo, este valor se puede cambiar. Para obtener más información sobre
cómo cambiar la velocidad de renovación, consulte “Personalización de
Proveedor de datos de interfaz de usuario ” en la página 217.
v Debe seleccionar un nombre de visualización que no contenga ningún carácter
especial ni espacios. Para seleccionar el nombre de visualización, en el árbol de
navegación expanda Configuración del sistema > Automatización de sucesos y
pulse Modelo de datos para abrir el separador Modelo de datos. Expanda el
origen de datos al que pertenece el tipo de datos y pulse el tipo de datos que
desea utilizar. Seleccione el campo que desea utilizar como nombre de
visualización de la lista Campo de nombre de visualización.
v Si el valor del campo clave de tipo de datos contiene comillas ("), la consola no
puede soportar el widget que se basa en el tipo de datos. Esto significa que no
puede pulsar la fila que se basa en el campo clave, utilícela para enviar un
168
Netcool/Impact: Guía de soluciones
suceso a otro widget o para proporcionar información de visualización previa
mediante puntero. Debe utilizar un campo clave que no contenga comillas.
Tipos de datos internos
Si utiliza tipos de datos internos, debe seleccionar uno de los campos
pertenecientes al tipo de datos en la lista Campo de nombre de visualización en el
editor de tipos de datos. No debe seleccionar KEY. Debe seleccionar un campo
existente en su definición de esquema. Proveedor de datos de interfaz de usuario
utiliza el valor de este campo como el identificador de elemento. Debe elegir un
valor exclusivo para el campo de clave; de lo contrario, Proveedor de datos de
interfaz de usuario sobrescribe la clave elegida con el valor más reciente.
Tipos de datos SNMP
Si utiliza tipos de datos SNMP, debe definir un valor en el campo Nombre de
campo en el editor de tipos de datos. Proveedor de datos de interfaz de usuario
utiliza el valor del campo Nombre de campo como el identificador de elemento. Si
existe más de una entrada para el mismo valor en el campo Nombre de campo,
Proveedor de datos de interfaz de usuario utiliza la entrada que se ha creado más
recientemente. Si desea que Proveedor de datos de interfaz de usuario utilice un
identificador de elemento exclusivo, especifique un valor exclusivo en el campo
Nombre de campo para el tipo de datos.
Integración de widgets de gráfica y Proveedor de datos de
interfaz de usuario
Si utiliza los widgets de gráfica circular o lineal para visualizar datos en la consola,
debe cambiar el número de elementos por página de Todo a un número para
asegurarse de que la consola pueda visualizar los datos.
Procedimiento
1. Abra una página en la consola o cree una nueva.
2. Seleccione un widget. Para seleccionar un widget, pulse Todo y arrastre el
widget al área de contenido.
3. Configure los datos del widget. Para configurar los datos del widget, púlselo en
el área de contenido y pulse el icono de flecha abajo > Editar. Se visualiza la
ventana Seleccionar un conjunto de datos.
4. Seleccione el conjunto de datos que desea utilizar para proporcionar los datos.
Para buscar el tipo de datos, especifique el nombre de tipo de datos y pulse el
botón Buscar. Para visualizar una lista de todos los tipos de datos disponibles,
pulse el icono Mostrar todo.
5. Haga clic en Configuración.En la lista Lista de elementos por página, cambie
el número de elementos por página de Todos por un número. Por ejemplo,
cámbielo a 50.
6. Pulse Aceptar para guardar el widget.
Nombres reservados para Proveedor de datos de interfaz de
usuario
Los nombres siguientes están reservados para que los utilice Proveedor de datos de
interfaz de usuario . No puede utilizar estos nombres en sus bases de datos ni
políticas.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
169
Proveedor de datos de interfaz de usuario utiliza los caracteres de coma (,) y
ampersand (&) en la interfaz de usuario y en el URL para políticas que utilizan la
función de políticas DirectSQL. Puede utilizar AS en lugar de ampersand (&) en las
políticas.
Proveedor de datos de interfaz de usuario utiliza el campo UIObjectId para
indexar los campos de clave. No puede utilizar el campo UIObjectId en ninguna
de las políticas.
Netcool/Impact utiliza el campo AS UIDPROWNUM en la consola que se utiliza para
bases de datos DB2 y Oracle. No puede utilizar UIDPROWNUM como un nombre de
campo para ninguna de las bases de datos DB2 y Oracle conectadas.
Los widget de árbol y topología utilizan el campo UITreeNodeId. El campo
UITreeNodeId está reservado para que lo utilice Proveedor de datos de interfaz de
usuario y contiene los campos siguientes que también están reservados:
v UITreeNodeId
v UITreeNodeParent
v UITreeNodeStatus
v UITreeNodeLabel
v UITreeNodeType
Pasos generales para integrar Proveedor de datos de interfaz
de usuario y la consola
Puede utilizar una variación de los pasos generales que se muestran aquí para
visualizar datos de Netcool/Impact Proveedor de datos de interfaz de usuario en
la consola.
Los pasos exactos diferirán según si se utiliza un tipo de datos o política para
proporcionar los datos. Sin embargo, normalmente, para integrar Proveedor de
datos de interfaz de usuario y la consola debe completar las actividades siguientes:
1. Crear la conexión remota.
2. Crear el proveedor de información.
Si desea visualizar datos directamente de una tabla de DB2 u otro origen de
datos, debe configurar el modelo de datos en Netcool/Impact.
Si desea visualizar los datos directamente desde una política en
Netcool/Impact, debe crear la política. Por ejemplo, si desea utilizar una
política para hacer un mashup de datos de dos orígenes distintos, debe crear
una política en Netcool/Impact que resuma los datos.
3. Crear una página y un widget en la consola.
Configuración de la conexión remota entre Proveedor de datos
de interfaz de usuario y la consola
Para visualizar los datos de Proveedor de datos de interfaz de usuario en la
consola, debe configurar primero la conexión remota entre Proveedor de datos de
interfaz de usuario y la consola.
Acerca de esta tarea
La conexión de Jazz for Service Management (la consola) es con el host y el puerto
en que se está ejecutando Servidor GUI con el perfil de Tivoli Integrated Portal. El
puerto predeterminado para el perfil de Tivoli Integrated Portal es 16311 para
HTTPS y 16310 si está utilizando un protocolo HTTP.
170
Netcool/Impact: Guía de soluciones
Procedimiento
1. Abra la consola.
2. Para abrir la ventana Conexiones, pulse Valores > Conexiones. La ventana
Conexiones lista todos los proveedores de datos disponibles.
3. Para crear un nuevo proveedor remoto para representar Netcool/Impact
Proveedor de datos de interfaz de usuario , pulse el icono Crear nuevo
proveedor remoto y complete los valores siguientes:
a. Seleccione el protocolo en la lista. Por ejemplo, HTTPS.
b. Especifique el nombre de host. Por ejemplo, la dirección IP del Servidor
GUI.
c. Especifique el número de puerto. Por ejemplo, para HTTPS el valor
predeterminado es 16311.
d. Especifique el nombre de usuario y la contraseña que ha utilizado al
instalar el Servidor Impact.
e. Seleccione el proveedor de datos que ha creado. Para visualizar todos los
proveedores de datos disponibles, pulse Buscar. Una vez que ha
seleccionado el proveedor de datos, los campos Nombre e ID de proveedor
se llenan automáticamente. Si utiliza varios servidores en un entorno en
clúster, se visualiza una conexión para cada servidor. Por ejemplo, si utiliza
Netcool/Impact en un clúster con TBSM, se visualiza una conexión para
ambos miembros del clúster.
4. Para crear la conexión de proveedor remoto, pulse Aceptar.
Creación del modelo de datos
Para integrar Proveedor de datos de interfaz de usuario y la consola, debe crear un
origen de datos y un tipo de datos para proporcionar los datos.
Antes de empezar
Para crear un tipo de datos, se requieren algunos valores específicos para facilitar
la integración con Proveedor de datos de interfaz de usuario . Para obtener más
información sobre estos valores, consulte “Tipos de datos y Proveedor de datos de
interfaz de usuario ” en la página 168.
Procedimiento
1. Cree un origen de datos.
2. Cree un tipo de datos.
Resultados
Los cambios sólo se visualizan tras el intervalo de renovación. De forma
predeterminada la velocidad de renovación es de 5 minutos. Para obtener más
información sobre cómo cambiar este valor, consulte “Personalización de Proveedor
de datos de interfaz de usuario ” en la página 217.
Creación de una página en la consola
Para crear un widget para visualizar los datos de Proveedor de datos de interfaz
de usuario , debe crear una página en la consola.
Procedimiento
1. Abra la consola.
2. Para crear una página, pulse Valores > Nueva página. También puede
seleccionar Cómo empezar > Construir una página en el escritorio.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
171
3. Especifique el nombre de la página.
4. Pulse Aceptar para guardar la página.
Resultados
Se ha creado la página. Ahora puede crear un widget para visualizar los datos.
Creación de un widget en una página de la consola
Para visualizar datos de Netcool/Impact en una página de la consola, debe crear
un widget.
Acerca de esta tarea
Para crear un widget, debe crear una página en la consola. Para obtener más
información, consulte “Creación de una página en la consola” en la página 171.
Procedimiento
1. Abra la página que desea utilizar para este widget en la consola.
2. Seleccione un widget. Para seleccionar un widget, pulse Todo y arrastre el
widget al área de contenido.
Por ejemplo, pulse Todo, seleccione el widget Tabla y arrastre el widget al área
de contenido.
3. Configure los datos del widget. Para configurar los datos del widget, púlselo en
el área de contenido y pulse el icono de flecha abajo > Editar. Se visualiza la
ventana Seleccionar un conjunto de datos.
4. Seleccione el conjunto de datos que desea utilizar para proporcionar los datos.
Para buscar el origen de datos, el tipo de datos, especifique el nombre de tipo
de datos y pulse el botón Buscar. Si utiliza un tipo de datos de Netcool/Impact
para proporcionar datos para el widget, puede realizar una búsqueda por
nombre de origen de datos o de tipo de datos. Si utiliza una política de
Netcool/Impact, puede buscar el nombre de política o el nombre del parámetro
de salida.
Si ha configurado acciones relacionadas con política específicas en una política
para utilizarlas como Proveedor de datos de interfaz de usuario , cuando crea
widget y pulsa con el botón derecho sobre una acción del widget, se visualizan
las acciones relacionadas con la política.
El tipo de datos sólo se visualiza tras el intervalo de renovación definido. El
valor predeterminado es de 5 minutos. Si utiliza un tipo de datos que acaba de
crear, deberá esperar 5 minutos para que el tipo de datos se visualice.
5. Si utiliza el widget de gráfica circular o lineal, debe cambiar el número de
elementos por página de Todo a un número. Para ello, pulse Valores. En la lista
Lista de elementos por página, cambie el número de elementos por página de
Todos por un número.
6. Para guardar el nuevo widget, pulse Aceptar.
Resultados
Ahora puede utilizar el nuevo widget para visualizar los datos del tipo de datos
especificado en la consola.
172
Netcool/Impact: Guía de soluciones
Acceso a datos desde políticas de Netcool/Impact
Puede utilizar Proveedor de datos de interfaz de usuario para acceder a datos
desde políticas de Netcool/Impact.
Debe crear parámetros de salida de usuario para cada política que desee utilizar
con Proveedor de datos de interfaz de usuario .
Además, si utiliza un objeto de Impact, una matriz de objetos de Impact, DirectSQL
o la función de políticas GetByFilter, debe tener en cuenta determinados requisitos
especiales. Estos casos especiales se describen y, si es necesario, se proporciona un
ejemplo.
Si la política recupera datos de una base de datos en la que el campo clave
contiene comillas ("), la consola no puede dar soporte al widget que se basa en los
datos proporcionados por la política. Esto significa que no puede pulsar la fila que
se basa en el campo clave, utilícela para enviar un suceso a otro widget o para
proporcionar información de visualización previa mediante puntero. Debe utilizar
un campo clave que no contenga comillas.
Configuración de parámetros de usuario
Para utilizar Proveedor de datos de interfaz de usuario o OSLC con políticas de
Netcool/Impact, debe configurar parámetros de usuario para que los resultados de
política sean compatibles con Proveedor de datos de interfaz de usuario o
disponible como recursos OSLC.
Acerca de esta tarea
Puede crear parámetros de tiempo de ejecución de política o parámetros de salida
de política. Los parámetros de tiempo de ejecución de política representan los
parámetros de tiempo de ejecución que define en políticas. Por ejemplo, puede
utilizar un parámetro de tiempo de ejecución de política para pasar valores desde
una política otra en mashup de datos.
Los parámetros de salida de política representan los parámetros emitidos por
políticas. Por ejemplo, el Proveedor de datos de interfaz de usuario utiliza
parámetros de salida de política para visualizar datos de políticas en la consola.
Procedimiento
1.
Para abrir el editor de parámetros de usuario de política en la barra de
herramientas del editor de políticas, pulse el icono Configurar parámetros de
usuario.
2. Para crear un parámetro de salida de política, pulse Nuevo parámetro de
salida:Nuevo. Para crear un parámetro de tiempo de ejecución de política,
pulse Nuevo parámetro de tiempo de ejecución:Nuevo. Los campos
obligatorios se indican mediante un asterisco (*). Debe especificar un nombre
exclusivo en el campo Nombre.
3. Defina las esquemas personalizados para los parámetros de salida, si es
necesario.
Si está utilizando la función de políticas DirectSQL con OSLC, debe definir el
esquema personalizado para ella.
Si está utilizando DirectSQL, Objeto de Impact o Matriz de objeto de Impact
con Proveedor de datos de interfaz de usuario o el widget de gráfica, debe
definir el esquema personalizado para estos valores.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
173
Para obtener más información, consulte “Creación de valores de esquema
personalizado para parámetros de salida” en la página 177
4. Para guardar los cambios en los parámetros y cerrar la ventana, pulse Aceptar.
Ejemplo
Este ejemplo muestra cómo crear parámetros de salida para una política. En primer
lugar, define una política simple, como la siguiente:
first_name = “Mark”;
zip_code = 12345;
Log(“Hello “ + first_name + “ living at “ + zip_code);
A continuación, define los parámetros de salida para esta política. En este caso, hay
dos parámetros de salida. Especifica la siguiente información:
Tabla 32. Parámetro de salida de PolicyDT1
Campo
Entrada de usuario
Nombre
Especifique un nombre exclusivo. Por
ejemplo, PolicyDT1.
Nombre de variable de política
first_name
Formato
Serie
Tabla 33. Parámetro de salida de PolicyDT2
Campo
Entrada de usuario
Nombre
Especifique un nombre exclusivo. Por
ejemplo, PolicyDT2
Nombre de variable de política
zip_code
Formato
Entero
Acceso a variables de objeto de Netcool/Impact en una
política
Puede utilizar la función NewObject para crear objetos de Netcool/Impact en una
política. Si desea acceder a estos objetos desde Proveedor de datos de interfaz de
usuario , debe crear un parámetro de salida de política.
Procedimiento
1. Para abrir el editor de parámetros de usuario de política, pulse el icono
Configurar parámetros de usuario en la barra de herramientas del editor de
políticas. Puede crear parámetros de usuario de política para tiempo de
ejecución y salida. Pulse Nuevo para abrir la ventana Crear un parámetro de
salida de política nuevo según se requiera.
2. Seleccione Objeto de Impact en la lista Formato.
3. Especifique el nombre de objeto de política en el campo Nombre de variable
de política.
Ejemplo
El ejemplo siguiente muestra cómo hacer que un objeto de Impact esté disponible
para Proveedor de datos de interfaz de usuario . En primer lugar, crea la política
siguiente, denominada Test_Policy2:
174
Netcool/Impact: Guía de soluciones
MyObject = NewObject();
MyObject.fname = ’Sam’;
MyObject.age = 25;
MyObject.bmi = 24.5;
Defina los parámetros de salida para la política, de la forma siguiente:
Tabla 34. Parámetro de salida de PolicyObject1
Campo
Entrada de usuario
Nombre
Especifique un nombre exclusivo. Por
ejemplo, PolicyObject1.
Nombre de variable de política
MyObject
Formato
Objeto de Impact
Acceso a tipos de datos generados por la función GetByFilter
Si desea acceder a los resultados de la función GetByFilter, debe crear parámetros
de salida para Proveedor de datos de interfaz de usuario .
Procedimiento
1. Para abrir el editor de parámetros de usuario de política, pulse el icono
Configurar parámetros de usuario en la barra de herramientas del editor de
políticas. Puede crear parámetros de usuario de política para el tiempo de
ejecución y la salida. Para abrir la ventana Crear un nuevo parámetro de salida
de política, pulse Nuevo.
2. Seleccione tipo de datos como formato.
3. Especifique el nombre del elemento de datos al que se asigna la salida de la
función GetByFilter en el campo Nombre de variable de política.
4. Especifique el nombre del origen de datos en el campo Nombre de origen de
datos.
5. Especifique el nombre del tipo de datos en el campo Nombre de tipo de datos.
Ejemplo
Este ejemplo muestra cómo hacer que la salida de la función GetByFilter esté
disponible para Netcool/Impact Proveedor de datos de interfaz de usuario .
Ha creado un tipo de datos denominado ALERTS que pertenece al origen de datos
defaultobjectserver. Este tipo de datos pertenece a Netcool/OMNIbus y apunta a
alerts.status. El campo de clave es Identificador. Se asocian las siguientes
cuatro filas de datos al campo de clave:
v Event1
v Event2
v Event3
v Event4
Cree la política siguiente, denominada Test_Policy3:
MyAlerts = GetByFilter("ALERTS", "Severity > 0", false);
Defina los parámetros de salida para la política, de la forma siguiente:
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
175
Tabla 35. Parámetro de salida de PolicyData1
Campo
Entrada de usuario
Nombre
PolicyData1
Nombre de variable de política
MyAlerts
Formato
Datatype
Nombre de origen de datos
defaultobjectserver
Nombre de tipo de datos
ALERTS
Seleccione el parámetro de salida como el conjunto de datos para el widget que
utiliza para visualizar los datos.
1. Abra la consola y una página.
2. Arrastre un widget al área de contenido.
3. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
4. Seleccione PolicyData1 como el tipo de datos que pertenece al origen de datos
defaultobjectserver.
5. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
Acceso a tipos de datos mediante la función DirectSQL
Si desea acceder a los resultados de la función de políticas DirectSQL, debe crear
los parámetros de salida de Proveedor de datos de interfaz de usuario .
Acerca de esta tarea
Los caracteres de coma (,) y ampersand (&) están reservados como caracteres
especiales para la interfaz de usuario y el URL. No puede utilizar estos caracteres
en políticas a las que accede la función de políticas DirectSQL. Puede utilizar AS en
lugar de ampersand (&) en las políticas, según se requiera.
Por ejemplo, considere la política siguiente:
SELECT "My&Test" AS My_Test FROM test_table
Esta política devuelve el nombre de campo My_Test en lugar de My&Test
Procedimiento
1. Para abrir el editor de parámetros de usuario de política, pulse el icono
Configurar parámetros de usuario en la barra de herramientas del editor de
políticas. Puede crear parámetros de usuario de política para el tiempo de
ejecución y la salida. Para abrir la ventana Crear un nuevo parámetro de salida
de política, pulse Nuevo.
2. Seleccione DirectSQL / UI Provider Datatype como formato.
3. Especifique un nombre para el parámetro de salida.
4. Especifique el nombre de elemento de datos al que se asigna la salida de la
función DirectSQL en el campo Nombre de variable de política.
5. Para definir los valores de formato DirectSQL, pulse el icono del editor Abrir el
Editor de definiciones de esquema. Para ver información detallada sobre cómo
crear valores de esquema personalizados, consulte “Creación de valores de
esquema personalizado para parámetros de salida” en la página 177
176
Netcool/Impact: Guía de soluciones
Creación de valores de esquema personalizado para parámetros
de salida
Al definir parámetros de salida que utilicen el formato DirectSQL, Matriz de
objetos Impact o Objeto Impact en el editor de parámetros de salida del usuario,
debe especificar también un nombre y un formato para cada campo incluido en los
objetos DirectSQL, Matriz de objetos Impact u Objeto Impact.
Acerca de esta tarea
Las definiciones de esquema personalizado las utiliza Netcool/Impact para
visualizar los datos en la consola y pasar valores a Proveedor de datos de interfaz
de usuario y OSLC. Puede crear los esquemas personalizados y seleccionar el
formato basado en los valores de cada campo incluido en el objeto. Por ejemplo,
puede crear una política que contenga dos campos en un objeto:
O1.city="NY"
O1.ZIP=07002
Puede definir los siguientes valores de esquema personalizado para esta política:
Tabla 36. Valores de esquema personalizado de City
Campo
Entrada
Nombre
Ciudad
Formato
Serie
Tabla 37. Valores de esquema personalizado de ZIP
Campo
Entrada
Nombre
ZIP
Formato
Entero
Si utiliza la función de política DirectSQL con Proveedor de datos de interfaz de
usuario o OSLC, debe definir un valor de esquema personalizado para cada valor
de DirectSQL que utilice.
Si desea utilizar el widget de gráfica para visualizar datos de un objeto Impact o
una matriz de objetos Impact con Proveedor de datos de interfaz de usuario y la
consola, puede definir valores de esquema personalizado para los campos
incluidos en los objetos. Los esquemas personalizados le ayudan a crear
descriptores para columnas en la gráfica durante la inicialización. Sin embargo, los
esquemas personalizados no son necesarios técnicamente. Si no define valores para
ninguno de estos dos formatos, el sistema vuelve a descubrir posteriormente cada
objeto Impact al crear campos individuales como el campo clave, UIObjectId, o el
campo para el widget de árbol, UITreeNodeId. No es necesario definir estos valores
para OSLC.
Procedimiento
1. En el editor de parámetros de usuario de política, elija DirectSQL, Objeto
Impact o Matriz de objetos Impact en el campo Formato.
2. El sistema visualiza el icono Abrir el editor de definiciones de esquema
junto al campo Definición de esquema. Para abrir el editor, pulse el icono.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
177
3. Puede editar una entrada existente o puede crear una nueva. Para definir una
entrada nueva, pulse Nueva. Especifique un nombre y elija un formato
apropiado.
Para editar una entrada existente, pulse el icono Editar junto a la entrada que
desea editar.
4. Para marcar una entrada como un campo clave, active el recuadro de selección
en la columna Campo clave. No debe definir el campo clave para objetos
Impact o una matriz de objetos Impact. En su lugar, el sistema utiliza
UIObjectId como campo clave.
5. Para suprimir una entrada, seleccione la entrada y pulse Suprimir.
Acceso a una matriz de objetos de Impact con Proveedor de
datos de interfaz de usuario
Para utilizar Proveedor de datos de interfaz de usuario para acceder a una matriz
de objetos de Impact, debe crear primero un parámetro de salida que represente la
matriz de objetos de Impact.
Acerca de esta tarea
Netcool/Impact utiliza el campo UIObjectID para indexar los campos de clave.
Como resultado, UIObjectID es un nombre de campo reservado. No debe utilizar
UIObjectID como campo personalizado en ninguna de sus políticas.
Procedimiento
1. Para definir un parámetro de salida para la matriz de objetos de Impact, pulse
el icono Configurar parámetros de usuario en la barra de herramientas del
editor de políticas. Para abrir la ventana Crear un nuevo parámetro de salida
de política, pulse Nuevo. Cree el parámetro de salida tan como se describe en
la tabla siguiente:
Tabla 38. Parámetro de salida para una política que contiene la matriz Matriz de objetos
de Impact
Campo
Instrucciones
Nombre
Especifique un nombre para el parámetro de
salida.
Nombre de variable de política
Especifique un nombre que sea idéntico al
nombre de la matriz de objetos de
Netcool/Impact en la política a la que desea
hacer referencia.
Formato
Seleccione Matriz de objetos de Impact.
2. Una vez que ha creado el parámetro de salida, define los valores de esquema
personalizados para la matriz de objetos de Impact. Para obtener más
información, consulte “Creación de valores de esquema personalizado para
parámetros de salida” en la página 177.
3. Para visualizar todos los campos y valores asociados a la matriz, utilice el URL
siguiente:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER /datasources/<id_origen_datos>/datasets/
<nombre_parámetro_salida>/items?properties=all
donde <nombre_parámetro_salida> es el nombre del parámetro definido en el
paso anterior.
178
Netcool/Impact: Guía de soluciones
Ejemplo
Por ejemplo, considere los siguientes objetos de Netcool/Impact:
MyObject1=NewObject();
MyObject1.firstname="first_name";
MyObject1.lastname="last_name";
MyObject2=NewObject();
MyObject2.city="mycity";
MyObject2.state="mystate";
Una política de Impact Policy Language (IPL) hace referencia a la matriz de la
forma siguiente:
MyArrayOfObjects={MyObject1,MyObject2};
Una política JavaScript hace referencia a la matriz de la forma siguiente:
MyArrayOfObjects=[MyObject1,MyObject2];
Para correlacionar MyArrayOfObjects con los parámetros de salida, cree el
parámetro de salida para la matriz de objetos, de la forma siguiente:
Tabla 39. Parámetros de salida de MyArrayObj1
Campo
Entrada de usuario
Nombre
MyArrayObj1
Nombre de variable de política
MyArrayOfObjects
Formato
Matriz de objeto de Impact
Para correlacionar los valores contenidos en la matriz, cree los valores de esquema
personalizados de la forma siguiente:
Tabla 40. Valores de esquema personalizado de first_name
Campo
Entrada de usuario
Nombre
first_name
Formato
Serie
Tabla 41. Valores de esquema personalizado de last_name
Campo
Entrada de usuario
Nombre
last_name
Formato
Serie
Tabla 42. Valores de esquema personalizado de mycity
Campo
Entrada de usuario
Nombre
mycity
Formato
Serie
Tabla 43. Valores de esquema personalizado de mystate
Campo
Entrada de usuario
Nombre
mystate
Formato
Serie
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
179
Utilice el URL siguiente para ver los campos y valores para MyArrayofObjects:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER /datasources/<id_origen_datos>/datasets/
MyArrayObj1/items?properties=all
Proveedor de datos de interfaz de usuario e IBM Dashboard
Application Services Hub
Para crear visualizaciones y mashups de datos de Netcool/Impact de fuentes como
políticas de Netcool/Impact y tablas de base de datos en IBM Dashboard
Application Services Hub, que denominamos consola en esta sección, puede
integrar Netcool/Impact Proveedor de datos de interfaz de usuario con la consola.
Filtrado de datos en la consola
Puede utilizar la consola para filtrar datos según los parámetros de tiempo de
ejecución. Estos datos se pueden derivar de las políticas de Netcool/Impact o de
otros tipos de datos. Para filtrar datos en la consola, configura los valores de
widget en la consola.
Acerca de esta tarea
Crea estos valores en la interfaz de usuario del widget Tabla en la consola. Para
crear los valores que se describen aquí, abra la interfaz de usuario del widget Tabla
y pulse Editar.
Procedimiento
v Para filtrar los datos proporcionados por las políticas de Netcool/Impact, debe
seleccionar el recuadro de selección executePolicy para que se incluya el
parámetro booleano executePolicy en la política. El parámetro executePolicy
garantiza que la política se ejecuta cuando el usuario abre el widget. A
continuación, el sistema llena el widget con los datos necesarios de la política.
Si desea especificar valores para los parámetros de tiempo de ejecución de
política en la consola, puede especificarlos en Configurar parámetros de
conjunto de datos opcionales. El sistema pasa los valores a los parámetros de
tiempo de ejecución en la política mientras se está ejecutando la política.
Atención: Los parámetros de tiempo de ejecución ya deben estar definidos en
la política. Si los parámetros de tiempo de ejecución no están definidos en la
política, el sistema no puede pasar los valores para los parámetros de tiempo de
ejecución a la política. Para obtener más información sobre cómo crear
parámetros de tiempo de ejecución de política, consulte “Configuración de
parámetros de usuario” en la página 173.
v Para filtrar datos de otras fuentes, como por ejemplo datos derivados de una
tabla de base de datos, los usuarios pueden especificar valores para los
parámetros de filtro en la sección Configurar parámetros de conjunto de datos
opcionales de la consola. Netcool/Impact utiliza los valores especificados aquí
para filtrar los resultados que se visualizan en la consola.
Ejemplo: filtrado de datos según una tabla de base de datos
Por ejemplo, desea configurar un widget de consola para visualizar las filas de una
tabla de base de datos que contengan un valor de 192.168.1.119 para el campo
Dispositivo. En la consola, en Configurar parámetros de conjunto de datos
opcionales, especifique 192.168.1.119 en el campo Dispositivo. El widget
devuelve sólo los datos que contienen este valor en el campo Dispositivo.
180
Netcool/Impact: Guía de soluciones
Integración del widget de árbol con un objeto de Impact o una
matriz de objetos de Impact
Para integrar una política que contiene un objeto de Impact o una matriz de
objetos de Impact con el widget de árbol que está disponible en la consola, debe
especificar determinados campos en la política y crear las definiciones de esquema
personalizado necesarias.
Procedimiento
1. Si el objeto es un padre con un ID indexado, añada el campo UITreeNodeId
para el objeto. Si el objeto es un hijo, añada el campo UITreeNodeParent para el
objeto. Si no añade estos valores, el objeto no se visualizará como una jerarquía
de árbol. Se aplican también las condiciones siguientes:
v El primer objeto de la jerarquía no puede ser un hijo, como es el caso para
todas las jerarquías.
v Debe especificar el objeto padre antes del hijo.
v Un objeto hijo no puede utilizar el mismo ID para sí mismo y para su padre.
v El ID padre es un ID indexado y debe empezar por 0. Si desea omitir el ID
padre, debe hacerlo en este orden.
v El esquema de cada objeto debe ser el mismo, como es el caso para todos los
objetos que utilizan el widget de árbol. En otras palabras, un objeto puede
utilizar menos elementos de esquema que su objeto padre pero estos
elementos se deben definir en el objeto padre. Un objeto hijo no puede
utilizar elementos de esquema adicionales que no estén definidos en el objeto
padre.
Los campos UITreeNodeId y UITreeNodeParent no se visualizan en la consola.
2. Cree un parámetro de salida de política para el objeto de Impact o la matriz de
objetos de Impact. Para crear un parámetro de salida de parámetro, pulse el
icono Configurar parámetros de usuario en la barra de herramientas del editor
de políticas. Para abrir la ventana Crear un nuevo parámetro de salida de
política, pulse Nuevo. Cree las entradas siguientes:
Tabla 44. Parámetros de salida de usuario para objeto de Impact o matriz de objetos de
Impact
Campo
Instrucciones
Nombre
Especifique un nombre para el parámetro de
salida.
Nombre de variable de política
Especifique un nombre que sea idéntico al
nombre del objeto de Impact o de la matriz
de objetos de Impact que se ha especificado
en la política a la que desea hacer referencia.
Formato
Elija Objeto de Impact o Matriz de objetos
de Impact.
3. Cree los valores de esquema personalizado para los valores que desea
visualizar como columnas en la consola. Debe especificar un valor de esquema
personalizado para el objeto de Impact o los objetos contenidos en una matriz
de objetos de Impact. Los valores de esquema que define se pueden visualizar
como columnas en la consola. Sólo necesita especificar valores de esquema
personalizado para los valores que desea visualizar. Los valores como
UITreeNodeId se visualizan como propiedades, a menos que los especifique
como valores de esquema personalizado.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
181
Para crear un valor de esquema personalizado en el editor de políticas,
seleccione Objeto de Impact o Matriz de objetos de Impact en el campo
Formato. Para abrir el editor, pulse el icono Abrir el Editor de definiciones de
esquema. Defina los valores de esquema personalizado tal como se describen
en la tabla siguiente:
Tabla 45. Valores de esquema personalizado para objeto de Impact o matriz de objetos de
Impact
Campo
Instrucciones
Nombre
Especifique el nombre del valor de esquema
personalizado. Por ejemplo, podría ser el
nombre del objeto de Impact o el nombre de
uno de los objetos de la matriz de objetos de
Impact.
Formato
Elija el formato del valor de esquema
personalizado. Por ejemplo, si el parámetro
es una serie, elija Serie.
Ejemplo
El ejemplo siguiente muestra cómo integrar un matriz de objetos de Impact y el
widget de árbol.
1. Cree una política que contenga una matriz de objetos de Impact y los campos
adicionales necesarios para el widget de árbol, UITreeNodeId y
UITreeNodeParent.
Log("Matriz de objetos con los mismos campos....");
O1=NewObject();
O1.UITreeNodeId=0;
O1.fname="o1fname";
O1.lname="o1lname";
O1.dob="o1dob";
O2=NewObject();
O2.UITreeNodeId=1;
O2.UITreeNodeParent=0;
O2.fname="o2fname";
O2.lname="o2lname";
O2.dob="o2dob";
O3=NewObject();
O3.UITreeNodeId=2;
O3.UITreeNodeParent=1;
O3.fname="o3fname";
O3.lname="o3lname";
O3.dob="o3odb";
O4=NewObject();
O4.UITreeNodeId=3;
O4.UITreeNodeParent=20;
O4.fname="o4fname";
O4.lname="o4lname";
O4.dob="o4odb";
O5=NewObject();
O5.UITreeNodeId=4;
O5.fname="o5fname";
O5.lname="o5lname";
O5.dob="o5odb";
O6=NewObject();
182
Netcool/Impact: Guía de soluciones
O6.UITreeNodeParent=4;
O6.fname="o6fname";
O6.lname="o6lname";
O6.dob="o6odb";
O7=NewObject();
O7.UITreeNodeParent=4;
O7.fname="o7fname";
O7.lname="o7lname";
O7.dob="o7odb";
O8=NewObject();
O8.UITreeNodeParent=4;
O8.fname="o8fname";
O8.lname="o8lname";
O8.dob="o8odb";
O9=NewObject();
O9.fname="o9fname";
O9.lname="o9lname";
O9.dob="o9odb";
O10=NewObject();
O10.fname="NJ";
O10.lname="Bayonne";
O10.dob="April 1st 2011";
O11=NewObject();
O11.UITreeNodeParent=11;
O11.fname="o11fname";
O11.lname="o11lname";
O11.dob="o11odb";
O12=NewObject();
O12.UITreeNodeId=11;
O12.UITreeNodeParent=0;
O12.fname="o12fname";
O12.lname="o12lname";
O12.dob="o12odb";
Oa=NewObject();
Oa.UITreeNodeId=12;
Oa.UITreeNodeParent=2;
Oa.fname="oafname";
Oa.lname="oalname";
Oa.dob="oaodb";
Ob=NewObject();
Ob.UITreeNodeId=13;
Ob.UITreeNodeParent=12;
Ob.fname="obfname";
Ob.lname="oblname";
Ob.dob="obodb";
Oc=NewObject();
Oc.UITreeNodeId=14;
Oc.UITreeNodeParent=14;
Oc.fname="ocfname";
Oc.lname="oclname";
Oc.dob="ocodb";
Oe=NewObject();
Oe.UITreeNodeParent=14;
Oe.fname="oefname";
Oe.lname="oelname";
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
183
Oe.dob="obedb";
Os={O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O12,O11,Oa,Ob,Oc,Oe};
log("os " + Os);
2. En el editor de políticas, cree el siguiente parámetro de salida de usuario:
Tabla 46. Parámetro de salida de usuario de ArrayofNewObject
Campo
Entrada de usuario
Nombre
ArrayofNewObject
Nombre de variable de política
Sistema operativo
Formato
Matriz de objetos de Impact
3. En el editor de políticas, cree las siguientes definiciones de valores de esquema
personalizado para la matriz de objetos de Impact:
Tabla 47. Definición de esquema personalizado de fname
Campo
Entrada de usuario
Nombre
fname
Formato
Serie
Tabla 48. Definición de esquema personalizado de lname
Campo
Entrada de usuario
Nombre
lname
Formato
Serie
Integración de datos de una política con el widget de
topología
Para utilizar el widget de topología para visualizar datos de una política de
Netcool/Impact en la consola, debe especificar primero determinados campos en la
política.
Acerca de esta tarea
El widget de topología está pensado para su uso con el widget de árbol. Utiliza los
campos que se describen aquí con los campos que especifica para el widget de
árbol. Para obtener más información, consulte “Integración del widget de árbol con
un objeto de Impact o una matriz de objetos de Impact” en la página 181
Normalmente, los nodos se conectan en una jerarquía. Sin embargo, esta conexión
no es técnicamente necesaria. Si define un nodo que no forma parte de una
jerarquía, este se visualiza como un nodo autónomo que no forma parte de
ninguna otra jerarquía.
Procedimiento
v Debe incluir la sentencia siguiente en el primer objeto de la política:
ObjectName.UITreeNodeType= <Tipo de nodo>;
donde <Tipo de nodo> es GRAPH o TREE. Si no especifica ningún valor, el valor
predeterminado es TREE.
184
Netcool/Impact: Guía de soluciones
v Debe especificar una etiqueta para cada objeto. Si no lo hace, el sistema visualiza
No se ha especificado ninguna etiqueta para la etiqueta y la ayuda contextual.
Para especificar una etiqueta, añada la siguiente sentencia para cada objeto:
ObjectName.UITreeNodeLabel=<Texto de la ayuda contextual>
donde <Texto de la ayuda contextual> es el texto que se utiliza para la etiqueta y
la ayuda contextual.
v Defina el estado de cada nodo. Este estado no es obligatorio. Si no añade esta
sentencia, el estado es desconocido. Si desea visualizar el estado de cada objeto,
añada las siguientes sentencias para cada nodo.
ObjectName.UITreeNodeStatus=<Estado>;
donde <Estado> es el estado. La tabla lista los valores soportados y los números
que representan estos valores. Puede utilizar el número o la palabra para
representar el estado.
Tabla 49. Estado de nodo de árbol
Estado
Número
Crítico
5
Grave
4
Leve
3
Aviso
2
Normal
0
Desconocido
Ejemplo
Los ejemplos siguientes muestran cómo definir una política que desea utilizar con
los widget de árbol y topología. Esta política de ejemplo incluye una topología
multinivel y un estado de nodo que representa la gravedad.
Log("Prueba Topología");
O0=NewObject();
O0.UITreeNodeType="GRAPH";
O0.UITreeNodeId=0;
O0.UITreeNodeLabel="NJ-Bayonne";
O0.UITreeNodeStatus="Warning";
O0.state="NJ";
O0.city="Bayonne";
O1=NewObject();
O1.UITreeNodeId=1;
O1.UITreeNodeStatus="Normal";
O1.UITreeNodeParent=0;
O1.UITreeNodeLabel="NY-Queens";
O1.state="NY";
O1.city="Queens";
O2=NewObject();
O2.UITreeNodeId=2;
O2.UITreeNodeStatus="Critical";
O2.UITreeNodeParent=1;
O2.UITreeNodeLabel="NC-Raleigh";
O2.state="NC";
O2.city="Raleigh";
O3=NewObject();
O3.UITreeNodeId=3;
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
185
O3.UITreeNodeParent=0;
O3.UITreeNodeStatus="Warning";
O3.UITreeNodeLabel="CA-Los Angeles";
O3.state="CA";
O3.city="Los Angeles";
O4=NewObject();
O4.UITreeNodeId=4;
O4.UITreeNodeParent=3;
O4.UITreeNodeStatus="Normal";
O4.UITreeNodeLabel="CO-Denver";
O4.state="CO";
O4.city="Denver";
O5=NewObject();
O5.UITreeNodeId=5;
O5.UITreeNodeStatus="Critical";
O5.UITreeNodeParent=4;
O5.UITreeNodeLabel="MA-Main";
O5.state="MA";
O5.city="Main";
O6=NewObject();
O6.UITreeNodeId=6;
O6.UITreeNodeParent=0;
O6.UITreeNodeStatus="Warning";
O6.UITreeNodeLabel="NH-New Hampshire";
O6.state="NH";
O6.city="New Hampshire";
O7=NewObject();
O7.UITreeNodeId=7;
O7.UITreeNodeParent=6;
O7.UITreeNodeStatus="Normal";
O7.UITreeNodeLabel="TX-Hudson";
O7.state="TX";
O7.city="Houston";
O8=NewObject();
O8.UITreeNodeId=8;
O8.UITreeNodeParent=7;
O8.UITreeNodeStatus="Critical";
O8.UITreeNodeLabel="VA-Virgina Beach";
O8.state="VA";
O8.city="Virigina Beach";
Obs={O0,O1,O2,O3,O4,O5,O6,O7,O8};
Después de implementar la política, debe crear los parámetros de salida y los
valores de esquema personalizados. Para obtener más información sobre cómo
hacerlo, consulte “Configuración de parámetros de usuario” en la página 173.
Visualización del estado y el porcentaje en un widget
Puede mostrar el estado y el porcentaje en los widgets de topología, árbol, tabla y
lista mediante políticas o tipos de datos. Para mostrar el estado y los porcentajes
en widget, debe crear un script en formato JavaScript en el tipo de datos o si la
política utiliza la función GetByFilter.
Acerca de esta tarea
Están soportados los tipos de datos SQL, SNMP e internos. Están soportadas las
políticas GetByFilter, DirectSQL y Objeto de Impact y Matriz de objetos de Impact.
1. Cree el tipo de datos.
186
Netcool/Impact: Guía de soluciones
2. En la ventana de configuración de tipo de datos, añada el script al área Definir
valores y tipos personalizados (JavaScript).
3. Pulse el botón Comprobar sintaxis y Vista previa de resultado de la muestra
para obtener una vista previa de los resultados y comprobar las sintaxis del
script.
Para DirectSQL, Objeto de Impact y Matriz de objetos de Impact, el Estado y el
Porcentaje se pueden especificar al crear la definición de esquema. Para las
políticas, puede utilizar IPL o JavaScript para las funciones DirectSQL o
GetByFilter.
El script utiliza la sintaxis siguiente para los tipos de datos y para las políticas que
utilizan la función GetByFilter.
ImpactUICustomValues.put("FieldName,Type",VariableName);
Donde Type es Percentage o Status. VariableName, puede ser una variable o un
valor codificado. Convierta siempre el tipo de nombre de variable a String para
evitar cualquier error, incluso aunque el valor sea numérico. Consulte los ejemplos
siguientes:
ImpactUICustomValues.put("MyField,Percentage",""+VariableName);
ImpactUICustomValues.put("MyField,Percentage","120");
ImpactUICustomValues.put("FieldName,Percentage",""+(field1/40));
El campo de estado espera que el valor sea similar a la configuración del widget
de topología:
Tabla 50. Valores del campo Status
Estado
Número
Crítico
5
Grave
4
Leve
3
Aviso
2
Normal
0
Intermedio (Disponible cuando la conexión
con Netcool/Impact utiliza https.)
1
No hay límite de campos para la variable ImpactUICustomValues. La variable debe
estar al final del script. Cualquier cosa antes de la variable debe estar en JavaScript
y puede ser cualquier cosa si la variable ImpactUICustomValues se llena
correctamente.
Ejemplo 1:
Asigna que el nombre de campo de la tabla sea el estado del porcentaje y asigna el
valor de campo. Este ejemplo asigna SHAREUPSHAREDOWN y PROFIT como los
porcentajes y STANDING como el estado.
ImpactUICustomValues.put("SHAREUP,Percentage",SHAREUP);
ImpactUICustomValues.put("SHAREDOWN,Percentage",SHAREDOWN);
ImpactUICustomValues.put("PROFIT,Percentage",PROFIT);
ImpactUICustomValues.put("STANDING,Status",STANDING);
Ejemplo 2:
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
187
Este ejemplo tiene un cálculo adicional para determinar el valor de los campos de
porcentaje o estado. El porcentaje presupone que el valor máximo a utilizar es 100.
A continuación, se utiliza un valor para escalar los valores basados en el valor
máximo y esperados por el usuario. El estado y el porcentaje se escalan en función
de un factor.
var status = "Normal";
var down = 0;
var up = 0;
var factor = ( TOTAL / 100);
down = (DOWN / factor);
up = (UP / factor);
var statusFactor = (DOWN / TOTAL) * 100;
if ( statusFactor >= 50) {
status = "Crítico";
} else if ( statusFactor >= 30 ) {
status = "Grave";
} else if (statusFactor >= 20) {
status = "Leve";
} else if (statusFactor >= 10 ) {
status = "Aviso";
} else {
status = "Normal";
}
ImpactUICustomValues.put("DownPercentage,Percentage",""+down);
ImpactUICustomValues.put("UpPercentage,Percentage",""+up);
ImpactUICustomValues.put("NetworkStatus,Status",""+status);
Ejemplo 3:
Este ejemplo utiliza campos adicionales que no existen en la tabla y que Status y
Percentage utilizan. Los valores son los valores exactos que vienen de los campos
que existen en la tabla. Se puede utilizar el cálculo par asignar valores diferentes:
ImpactUICustomValues.put("CPUPercentUsage,Percentage",CPUUsage);
ImpactUICustomValues.put("RAMPercentUsage,Percentage",RAMUsage);
ImpactUICustomValues.put("DiskPercentUsage,Percentage",DiskUsage);
ImpactUICustomValues.put("NetworkAvailability,Status",NetworkStatus);
Consejo: El widget de tabla o de lista muestra entradas duplicadas o tiene datos
faltantes cuando compara los datos con los elementos de datos de tipo de datos.
Compruebe el origen de datos para asegurarse de que todas las claves sean
exclusivas.
Consejo: En una instancia en la que utiliza una función de política para crear un
filtro dinámico y obtiene un mensaje en el registro de política. Los mensajes
indican que la variable de filtro no está definida en la política. No se producen
sucesos entre widgets. Compruebe que no está utilizando caracteres especiales en
el valor personalizado del tipo de datos, por ejemplo
ImpactUICustomValues.put("CPU%,Percentage",""+value). Los widgets no dan
soporte a caracteres especiales en nombres de campo.
Consejo: Si un campo de tipo de datos está definido incorrectamente, por ejemplo
si el campo está definido como un entero, pero contiene valores flotantes, el widget
no se carga. El widget muestra un mensaje parecido a este ejemplo:
No se ha podido cargar
Para resolver el problema, edite el campo de tipo de datos y seleccione el tipo de
datos correcto float.
188
Netcool/Impact: Guía de soluciones
Visualización de datos del proveedor de datos de interfaz de usuario
en la consola
Puede utilizar Netcool/Impact Proveedor de datos de interfaz de usuario para
visualizar datos en IBM Dashboard Application Services Hub, al cual haremos
referencia como consola en toda esta sección.
Puede visualizar datos de Netcool/Impact en la consola. Puede utilizar tipos de
datos o políticas de Netcool/Impact para proporcionar estos datos. También puede
utilizar políticas de Netcool/Impact para crear mashups de datos de varias fuentes.
Los escenarios de ejemplo que se proporcionan están pensados para facilitar
ejemplos que le ayuden cuando intente visualizar sus propios datos en la consola.
Para poder implementar cualquiera de los ejemplos siguiente, debe configurar la
conexión remota entre Netcool/Impact y la consola. Para obtener más información,
consulte “Configuración de la conexión remota entre Proveedor de datos de
interfaz de usuario y la consola” en la página 170.
Nota: Si utiliza el widget de gráfica circular o lineal para visualizar datos de un
tipo de datos DB2, debe cambiar el número de elementos por página de Todo a un
número. Por ejemplo, cámbielo a 50.
Descripción general del escenario de ejemplo
Lea los siguientes escenarios de ejemplo para obtener una descripción general de
las posibles maneras de integrar Proveedor de datos de interfaz de usuario y la
consola.
Para ver más escenarios y ejemplos visite la página Netcool/Impact
developerWorks wiki Escenarios y ejemplos disponible en el URL siguiente:
https://www.ibm.com/developerworks/mydeveloperworks/wikis/
home?lang=en#/wiki/Tivoli%20Netcool%20Impact/page/Scenarios%20and
%20examples
Visualización de datos de una tabla de base de datos DB2 en
una gráfica lineal
Puede utilizar la consola para visualizar datos recuperados directamente de un tipo
de datos en Netcool/Impact.
Acerca de esta tarea
Este ejemplo utiliza una gráfica lineal para visualizar los datos. Puede utilizar el
mismo proceso para visualizar los datos en una gráfica de barras, de columnas o
lineal.
Procedimiento
1. Cree un origen de datos DB2.
a. Especifique NewDataSource en el campo Nombre de origen de datos.
b. Especifique el nombre de usuario y la contraseña para la base de datos.
c. Complete los otros campos, según se requiera.
d. Guarde el origen de datos.
2. Cree un tipo de datos para el origen de datos DB2.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
189
a. Especifique NewUIDPDT como nombre y complete los pasos necesarios.
b. Para asegurarse de que el tipo de datos es compatible con Proveedor de
datos de interfaz de usuario , seleccione el recuadro de selección Proveedor
de datos de interfaz de usuario: habilitado.
c. Seleccione los campos de clave para el tipo de datos.
d. Guarde el tipo de datos.
3. Cree una página en la consola.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para DB2 en el campo Nombre de página.
d. Guarde la página.
4. Cree un widget en la consola.
a. Abra la página Página para DB2 que ha creado.
b. Arrastre el widget Gráfica lineal en el área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos NewUIDPDT
que pertenece al origen de datos NewDataSource. El tipo de datos sólo se
visualiza tras el intervalo de renovación definido. El valor predeterminado
es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Especifique los
valores que desea utilizar para el eje y. Puede seleccionar varias líneas.
También puede seleccionar un texto para que se visualice como ayuda
contextual. Pulse Aceptar.
f. Para asegurarse de que la consola puede visualizar todos los elementos,
cambie el número de elementos que se permiten por página de todos a un
número determinado. Haga clic en Configuración. En la lista Lista de
elementos por página, cambie el número de elementos por página de Todos
por un número.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Cuando visualiza el widget, los datos se recuperan directamente del tipo de datos
en Netcool/Impact y se visualizan en una gráfica lineal.
Visualización de datos de una política de Netcool/Impact en una
gráfica circular
Puede utilizar el widget de gráfica circular en la consola para visualizar datos de
Proveedor de datos de interfaz de usuario .
Procedimiento
1. Cree una política para proporcionar los datos para el widget de gráfica circular.
La política debe agrupar todos los elementos de una tabla de base de datos en
un único objeto de Impact.
Por ejemplo, defina la siguiente política, denominada Policyforpiechart, que
recopila las filas de la tabla de base de datos en un único objeto de Impact:
obj = NewObject ();
obj.name = ’Internet Banking’;
obj.availabilityduringoperationalhours=99.9;
obj.availabilityduringnonoperationalhours=95;
190
Netcool/Impact: Guía de soluciones
2. Cree los parámetros de salida de usuario para la política.
a. En el editor de políticas, pulse el icono Configurar parámetros de usuario
para crear el parámetro de salida.
Tabla 51. Parámetros de salida de MyNewObject
Campo
Entrada de usuario
Nombre
MyNewObject
Nombre de variable de política
Obj
Formato
Objeto de Impact
Debe especificar el nombre del objeto de Impact exactamente tal como está
definido en la política en el campo Nombre de variable de política.
b. Debe crear los valores de esquema personalizado para los campos en el
objeto. En este ejemplo, el objeto de Impact contiene dos campos que son
enteros.
Tras seleccionar Objeto de Impact en el campo Formato, el sistema
junto al
visualiza el icono Abrir el Editor de definiciones de esquema
campo Definición de esquema. Para abrir el editor, pulse el icono.
Puede definir las siguientes definiciones de esquema personalizado para la
política.
Tabla 52. Esquema personalizado para horas operativas y no operativas
Nombre
Formato
availabilityduringoperationalhours
Entero
availabilityduringnonoperationalhours
Entero
3. Cree una página.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para gráfica circular en el campo Nombre de página.
d. Guarde la página.
4. Cree un widget de gráfica circular.
a. Abra la página Página para gráfica circular que ha creado.
b. Arrastre el widget Gráfica circular al área de contenido.
c. Para configurar los datos de widget, pulse el icono de flecha abajo y pulse
Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos MyNewObject
perteneciente al origen de datos Policyforpiechart. El conjunto de datos
representa el parámetro de salida de usuario que ha definido anteriormente.
El conjunto de datos sólo se visualiza tras el intervalo de renovación
definido. El valor predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Para asegurarse
de que la política se ejecuta cuando se visualiza el widget, seleccione el
recuadro de selección executePolicy.
f. Seleccione los valores que desee utilizar para la gráfica circular. En este
ejemplo, seleccione obj.availabilityduringoperationalhours y
obj.availabilityduringnonoperationalhours. Para guardar su selección, pulse
Aceptar
g. Para asegurarse de que la consola puede visualizar todos los elementos,
cambie el número de elementos que se permiten por página de todos a un
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
191
número determinado. Haga clic en Configuración. En la lista Lista de
elementos por página, cambie el número de elementos por página de Todos
por un número.
h. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Los datos de Proveedor de datos de interfaz de usuario se visualizan como una
gráfica circular en la consola.
Visualización de mashups de datos de dos servicios web en una
tabla
Puede utilizar políticas de Netcool/Impact para crear mashups de datos de
distintos orígenes, como por ejemplo servicios web. También puede utilizar la
consola y Proveedor de datos de interfaz de usuario para visualizar los datos de
estos mashups.
Acerca de esta tarea
El ejemplo siguiente utiliza una política creada en Netcool/Impact para recuperar
datos de dos servicios web distintos. La política utiliza una matriz para agrupar los
resultados. Una vez que se haya creado la política, puede utilizar un widget Tabla
para visualizar el mashup de datos.
Procedimiento
1. En el editor de políticas, cree una política denominada
TestArrayOfObjectsWebService. Por ejemplo, cree la política siguiente. Esta
política se basa en el WSDL en http://wsf.cdyne.com/WeatherWS/
Weather.asmx?WSDL. Cree la política de la forma siguiente:
a. Defina el paquete que se ha definido al compilar el archivo WSDL en
Netcool/Impact.
WSSetDefaultPKGName(’weather’);
b. Especifique los parámetros.
GetCityWeatherByZIPDocument=WSNewObject("com.cdyne.ws.weatherws.
GetCityWeatherByZIPDocument");
_GetCityWeatherByZIP=WSNewSubObject(GetCityWeatherByZIPDocument,
"GetCityWeatherByZIP");
_ZIP = ’07002’;
_GetCityWeatherByZIP[’ZIP’] = _ZIP;
WSParams = {GetCityWeatherByZIPDocument};
c. Especifique el nombre de servicio web, punto final y método.
WSService = ’Weather’;
WSEndPoint = ’http://wsf.cdyne.com/WeatherWS/Weather.asmx’;
WSMethod = ’GetCityWeatherByZIP’;
d. Utilice la función de políticas GetbyXpath para obtener el valor para el
elemento que desea.
nsMapping= NewObject();
nsMapping.tns = "http://ws.cdyne.com/WeatherWS/";
nsMapping.xsd="http://www.w3.org/2001/XMLSchema";nsMapping.soap="http://www.w3.org/2003/05/soap-envelope" ;
nsMapping.xsi="http://www.w3.org/2001/XMLSchema-instance";
log("Se va a invocar la llamada de servicio web GetCityWeatherByZIP ......");
WSInvokeDLResult = WSInvokeDL(WSService, WSEndPoint, WSMethod, WSParams);
192
Netcool/Impact: Guía de soluciones
log("Resultado devuelto de la llamada de servicio web GetCityWeatherByZIP: " +WSInvokeDLResult);
Result1=GetByXPath(""+WSInvokeDLResult, nsMapping, xPathExpr);
Object1=NewObject();
Object1.City=Result1.Result.City[0];
Object1.State=Result1.Result.State[0];
Object1.Temperature=Result1.Result.Temperature[0];
e. Inicie la llamada WebService.
log("Se va a invocar la llamada de servicio web GetCityWeatherByZIP ......");
WSInvokeDLResult = WSInvokeDL(WSService, WSEndPoint, WSMethod, WSParams);
log("Resultado devuelto de la llamada de servicio web GetCityWeatherByZIP: " +WSInvokeDLResult);
f. Defina otra llamada.
_ZIP = ’23455’;
_GetCityWeatherByZIP[’ZIP’] = _ZIP;
WSParams = {GetCityWeatherByZIPDocument};
log("Se va a invocar la llamada de servicio web GetCityWeatherByZIP ......");
WSInvokeDLResult = WSInvokeDL(WSService, WSEndPoint, WSMethod, WSParams);
log("Resultado devuelto de la llamada de servicio web GetCityWeatherByZIP: " +WSInvokeDLResult);
//Recuperar los valores de los elementos y asignarlos a un objeto
xPathExpr = "//tns:State/text() |//tns:City/text() |//tns:Temperature/text()";
g. Defina y asigne valores a los objetos de Impact.
xPathExpr = "//tns:State/text() |//tns:City/text() |//tns:Temperature/text()";
Result2=GetByXPath(""+WSInvokeDLResult, nsMapping, xPathExpr);
Object2=NewObject();
Object2.City=Result2.Result.City[0];
Object2.State=Result2.Result.State[0];
Object2.Temperature=Result2.Result.Temperature[0];
CustomObjs= {Object1,Object2};
log(CustomObjs);
2. Defina los parámetros de salida de usuario para la matriz de objetos.
Debe crear los siguientes parámetros de salida de usuario para la matriz que
contiene la política que ha creado. En el editor de políticas, pulse el icono
Configurar parámetros de usuario para crear los parámetros de salida para la
matriz de objetos.
Tabla 53. Parámetros de salida de MyArrayObj1
Campo
Entrada de usuario
Nombre
MyArrayofCustomObjects
Nombre de variable de política
CustomObjs
Formato
Matriz de objeto de Impact
Debe especificar el nombre exacto de la matriz, tal como se muestra en la
política en el campo Nombre de variable de política.
3. Cree una página.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para matriz de objetos en el campo Nombre de
página.
d. Para guardar la página, pulse Aceptar.
4. Cree un widget Tabla.
a. Abra la página Página para matriz de objetos que ha creado.
b. Arrastre el widget Tabla al área de contenido.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
193
c. Para configurar los datos de widget, pulse el icono de flecha abajo y pulse
Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos
MyArrayofCustomObjects que pertenece al origen de datos
TestArrayOfObjectsWebService. La información del conjunto de datos sólo
se visualiza tras el intervalo de renovación definido. El valor
predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. De forma
predeterminada, el sistema visualiza todas las columnas disponibles. Puede
cambiar las columnas visualizadas en la sección Valores de visualización de
la interfaz de usuario. También puede seleccionar las opciones de selección
de fila y tipo de selección de fila.
f. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Al abrir el widget Tabla, se visualizan en una tabla los datos de dos orígenes
distintos.
Visualización de mashups de datos con una matriz de objetos de
impacto
Puede utilizar las políticas de Netcool/Impact para crear mashups de datos de la
función de políticas DirectSQL y otros orígenes. Puede utilizar la consola y
Proveedor de datos de interfaz de usuario para visualizar los datos de estos
mashups en una tabla.
Procedimiento
1. En el editor de políticas, cree una política denominada MultipleObjectsPolicy.
La política utiliza la función de política DirectSQL para recuperar los datos del
origen de datos defaultobjectserver. La política también recupera datos de
otro origen.
Cree la siguiente política denominada MultipleObjectsPolicy.
Log("Política de prueba con varios objetos distintos...");
NodesVarJS=DirectSQL(’defaultobjectserver’,"SELECT Node,Identifier,
Severity from alerts.status", null);
Log("ClassOf() " + ClassOf(NodesVarJS));
Obj1=NewObject();
Obj1.fname="MyFirstName";
Obj1.lname="MyLastName";
Obj1.city="MyCity";
MyObjsAll={Obj1};
i=0;
while(i < length(NodesVarJS) ) {
O = newObject();
O.Node=NodesVarJS[i].Node;
O.Identifier=NodesVarJS[i].Identifier;
O.Severity=NodesVarJS[i].Severity;
MyObjsAll = MyObjsAll + {O};
i = i +1;
}
Log("MyObjs is " + MyObjsAll);
2. Defina los parámetros de salida de usuario para la matriz de objetos en la
política.
194
Netcool/Impact: Guía de soluciones
En el editor de políticas, pulse el icono Configurar parámetros de usuario para
crearlos parámetros de salida para la matriz de objetos.
Tabla 54. Parámetro de salida de MyObjsAll
Campo
Entrada de usuario
Nombre
MyArrayofObjects
Nombre de variable de política
MyObjsAll
Formato
Matriz de objeto de Impact
Debe especificar el nombre exacto de la matriz, tal como se muestra en la
política en el campo Nombre de variable de política.
3. Cree una página.
v Abra la consola.
v Para crear una página, pulse Valores > Nueva página.
v Especifique Página para tabla en el campo Nombre de página.
v Guarde la página.
4. Cree un widget Tabla.
a. Abra la página Página para tabla que ha creado.
b. Arrastre el widget Tabla al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos
MyArrayofObjects que pertenece al origen de datos MultipleObjectsPolicy.
La información del conjunto de datos sólo se visualiza tras el intervalo de
renovación definido. El valor predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. De forma
predeterminada, el sistema visualiza todas las columnas disponibles. Puede
cambiar las columnas visualizadas en la sección Valores de visualización de
la interfaz de usuario. También puede seleccionar las opciones de selección
de fila y tipo de selección de fila.
f. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Al visualizar el widget Tabla, los datos de la función de políticas DirectSQL y el
otro origen se visualizan en una tabla.
Visualización de datos generados por la función de políticas
GetByFilter en una lista
Puede utilizar el widget de lista para visualizar datos de una política de
Netcool/Impact que contiene la función de políticas GetByFilter en la consola.
Procedimiento
1. En el editor de políticas de Netcool/Impact, cree una política de
Netcool/Impact.
Cree una política denominada IPLGetByFilterPolicy que incluya la función de
políticas GetByFilter. Desea visualizar los datos generados por la función de
políticas. En este ejemplo, el filtro se define estadísticamente en la política. En
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
195
una situación en el mundo real, podría pasar los valores dinámicamente de
Proveedor de datos de interfaz de usuario a la función de políticas.
Log (“Executing IPL Impact Policy”);
filter = "SERVICEREQUESTIDENTIFIER = 1";
GetbyFilter ('dataTypeforDemoUIDP’, filter, false);
2.
Defina el parámetro de salida para los elementos de datos. Este parámetro
pasa a estar disponible a Proveedor de datos de interfaz de usuario y se
visualiza como un tipo de datos en la consola.
En el editor de políticas, pulse el icono Configurar parámetros de usuario y el
pulsador Parámetro de salida de política:Nuevo para crear los parámetros de
salida para los elementos de datos.
Tabla 55. Parámetros de salida de usuario para elementos de datos
Campo
Entrada
Nombre
DataFromPolicy
Nombre de variable de política
DataItems
Formato
Datatype
Nombre de origen de datos
localDB2UIDPTest
Nombre de tipo de datos
dataTypeforUIDPdemo
3. Cree una página en la consola.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para lista en el campo Nombre de página.
d. Para guardar la página, pulse Aceptar.
4. Cree un widget de lista.
a. Abra la página Página para lista que ha creado.
b. Arrastre el widget Lista al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos DataFromPolicy
perteneciente al origen de datos IPLGetByFilterPolicy. La información del
conjunto de datos sólo se visualiza tras el intervalo de renovación definido.
El valor predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Debe
seleccionar valores para la etiqueta, el estado, la descripción y la indicación
de fecha y hora. También puede configurar diversos valores opcionales
como el tamaño de la página.
f. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Al visualizar el widget se ejecutará la política. La información incluida en los
resultados de política se añade al widget y se visualiza como lista.
196
Netcool/Impact: Guía de soluciones
Visualización de datos generados por la función de políticas
DirectSQL en un indicador analógico
Puede utilizar el siguiente widget de indicador analógico para visualizar datos de
una política de Netcool/Impact que contiene la función de políticas DirectSQL en
la consola.
Procedimiento
1. En el editor de políticas en Netcool/Impact, cree una política que utilice la
función de políticas DirectSQL.
Cree la siguiente política que incluye la función de políticas DirectSQL
denominada TestDirectSQL:
Log(“TestDirectSQL);
query= "select SUM(VALUE) as sumvalue, HISTORYRESOURCENAME, METRICNAME ,
( HISTORYRESOURCENAME || METRICNAME ) as key from
TBSMHISTORY.HISTORY_VIEW_RESOURCE_METRIC_VALUE;
DirectSQL (’directSQLSample’.query.false);
Esta política accede a los datos de una tabla de base de datos y suma una
columna determinada de la tabla para crear un valor de suma. La política
también agrupa diversas columnas.
2. Defina los parámetros de salida para la política.
Para definir los parámetros de salida para la política, pulse el icono Configurar
parámetros de usuario.
Tabla 56. Parámetros de salida para la política IPLDirectSQL
Campo
Entrada
Nombre
IPLDirectSQL
Nombre de variable de política
DataItems
Formato
DirectSQL
Debe crear también nuevos valores de esquema personalizado para representar
los valores contenidos en los campos de la función de políticas DirectSQL. Tras
seleccionar DirectSQL en el campo Formato, el sistema visualiza el icono Abrir
el Editor de definiciones de esquema. Para crear un valor, pulse el icono. Debe
especificar un nombre para cada valor y seleccionar un formato. Para este
ejemplo, cree los siguientes valores de esquema personalizado:
Tabla 57. Valores de esquema personalizado para el parámetro de salida IPLDirectSQL
Nombre
Valor
HISTORYRESOURCENAME
Serie
METRICNAME
Serie
sumvalue
Flotante
3. Cree una página.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para indicador analógico en el campo Nombre de
página.
d. Para guardar la página, pulse Aceptar.
4. Cree un widget de indicador analógico
a. Abra la página Página para indicador analógico que ha creado.
b. Arrastre el widget Indicador analógico al área de contenido.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
197
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos IPLDirectSQL
perteneciente al origen de datos TestDirectSQL. La información del
conjunto de datos sólo se visualiza tras el intervalo de renovación definido.
El valor predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Seleccione el
valor que desea visualizar en el indicador en el campo Valor. En este
ejemplo, especifica SUMVALUE en el campo. También puede seleccionar
diversos otros valores opcionales para el indicador como por ejemplo un
valor mínimo, un valor máximo y una unidad de medida.
f. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Al visualizar el widget, la política se ejecuta y la información contenida en los
resultados de política se visualiza como indicador.
Visualización de datos con widgets de árbol y topología
Puede utilizar los widgets de topología y árbol con Proveedor de datos de interfaz
de usuario para visualizar datos jerárquicos y topológicos de una política de
Netcool/Impact en la consola.
Acerca de esta tarea
El widget de árbol y topología se utiliza para visualizar una jerarquía con datos
topológicos en la consola. Este ejemplo muestra cómo hacerlo para una política
específica. Para obtener más información sobre los requisitos de utilización de estos
widgets, consulte “Integración del widget de árbol con un objeto de Impact o una
matriz de objetos de Impact” en la página 181 y “Integración de datos de una
política con el widget de topología” en la página 184.
Procedimiento
1. En el editor de políticas en Netcool/Impact, cree una política denominada
TestTreeTopoPolicy.
La política utiliza la función de políticas ArrayofImpactObjects para recuperar
información sobre las direcciones. Este información es jerárquica. Las entradas
se ordenan por número, ciudad y país. También es recomendable añadir
información topográfica sobre el estado de una entrada a la política.
MyObject1=NewObject();
MyObject1.country="United States";
MyObject1.city="New York";
MyObject2=NewObject();
MyObject2.country="United States";
MyObject2.city="Philadelphia";
MyObject3=NewObject();
MyObject3.country="England";
MyObject3.city="London";
MyArrayOfObjects={MyObject1,MyObject2,MyObject3};
198
Netcool/Impact: Guía de soluciones
2. A continuación, debe hacer que la política sea compatible con el widget de
árbol. Para hacer que la política sea compatible con el widget de árbol, debe
añadir los parámetros UITreeNodeId y UITreeNodeParent a la política.
MyObject1=NewObject();
MyObject1.UITreeNodeId=0;
MyObject1.country="United States";
MyObject1.city="New York";
MyObject2=NewObject();
MyObject2.UITreeNodeId=1;
MyObject2.UITreeNodeParent=0;
MyObject2.country="United States";
MyObject2.city="Philadelphia";
MyObject3=NewObject();
MyObject3.UITreeNodeId=2;
MyObject3.UITreeNodeParent=1;
MyObject3.country="England";
MyObject3.city="London";
MyArrayOfObjects={MyObject1,MyObject2,MyObject3}
3. A continuación, debe hacer que la política sea compatible con el widget de
topología. Para hacer que la política sea compatible con el widget de árbol,
debe añadir los campos UITreeNodeType, UITreeNodeLabel y UITreeNodeStatus a
la política.
MyObject1=NewObject();
MyObject1.UITreeNodeId=0;
MyObject1.country="United States";
MyObject1.city="New York";
UITreeNodeType="GRAPH";
UITreeNodeLabel="NY";
UITreeNodeStatus="Major";
MyObject2=NewObject();
MyObject2.UITreeNodeId=1;
MyObject2.UITreeNodeParent=0;
MyObject2.country="United States";
MyObject2.city="Philadelphia";
UITreeNodeLabel="PA";
UITreeNodeStatus="Minor";
MyObject3=NewObject();
MyObject3.UITreeNodeId=2;
MyObject3.UITreeNodeParent=1;
MyObject3.country="England";
MyObject3.city="London";
UITreeNodeLabel="LN";
UITreeNodeStatus="Warning";
MyArrayOfObjects={MyObject1,MyObject2,MyObject3};
4. Defina los parámetros de salida de usuario para la matriz de objetos en la
política.
Tabla 58. Parámetros de salida de usuario para MyObjArray
Campo
Entrada
Nombre
MyObjArray
Nombre de variable de política
MyArrayOfObjects
Formato
Matriz de objeto de Impact
5. Cree una página en la consola.
a. Abra la consola.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
199
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para árbol y topología en el campo Nombre de
página.
d. Para guardar la página, pulse Aceptar.
6. Cree un widget de topología y árbol en la consola.
a. Abra la página Página para árbol y topología que ha creado.
b. Arrastre el widget Árbol al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos MyObjArray
que pertenece al origen de datos TestTreeTopoPolicy. La información del
conjunto de datos sólo se visualiza tras el intervalo de renovación definido.
El valor predeterminado es de 5 minutos.
e. Se visualiza la ventana Valores de visualización. Para asegurarse de que la
política se ejecuta cuando se visualiza el widget, seleccione el recuadro de
selección executePolicy. Pulse Aceptar.
f. Para guardar el widget, pulse el botón Guardar y salir de la barra de
herramientas.
g. Arrastre el widget Topología al área de contenido.
h. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
i. Seleccione el conjunto de datos. Seleccione el tipo de datos MyObjArray que
pertenece al origen de datos TestTreeTopoPolicy. La información del
conjunto de datos sólo se visualiza tras el intervalo de renovación definido.
El valor predeterminado es de 5 minutos.
j. Se visualiza la ventana Valores de visualización. Para asegurarse de que la
política se ejecuta cuando se visualiza el widget, seleccione el recuadro de
selección executePolicy. Pulse Aceptar.
k. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Los datos de Proveedor de datos de interfaz de usuario se visualizan en la consola
junto con el estado.
Filtrado de la salida de datos por una política en la consola
Si visualiza datos de una política que contiene parámetros de tiempo de ejecución,
puede utilizar los parámetros de tiempo de ejecución para filtrar los valores que se
visualizan en la consola.
Procedimiento
1. Cree una política que contenga parámetros de tiempo de ejecución.
En este ejemplo, cree una política denominada TestKey que contenga la función
de políticas GetByKey. El parámetro de tiempo de ejecución es el parámetro Key.
DataType = "Node";
MaxNum = 1;
MyCustomers = GetByKey(DataType, Key, MaxNum);
2. Cree el parámetro de tiempo de ejecución del usuario Key. En el editor de
políticas, pulse el icono Configurar parámetros de usuario para crear el
parámetro de tiempo de ejecución de usuario.
200
Netcool/Impact: Guía de soluciones
Tabla 59. Parámetro de tiempo de ejecución de usuario de nodo
Campo
Entrada
Nombre
Node
Nombre de variable de política
Clave
Formato
Serie
3. Cree una página.
v Abra la consola.
v Para crear una página, pulse Valores > Nueva página.
v Especifique Página para gráfica de barras en el campo Nombre de página.
v Guarde la página.
4. Cree un widget de gráfica de barras.
a. Abra la página Página para gráfica de barras que ha creado.
b. Arrastre el widget Gráfica de barras al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos DataFromPolicy
perteneciente al origen de datos TestKey. La información del conjunto de
datos sólo se visualiza tras el intervalo de renovación definido. El valor
predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización.
f. Los parámetros de tiempo de ejecución disponibles para la política se listan
en Configurar conjunto de datos opcional. Puede especificar aquí los
valores que desea filtrar. En este ejemplo, el sistema visualiza un campo
denominado Clave. Si especifica aquí un valor, por ejemplo, R12345, sólo se
visualizan los datos de las filas que contienen el valor de campo de clave
R12345. De esta forma, puede filtrar los valores para los parámetros de
tiempo de ejecución en la consola.
g. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
h. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Cómo pasar valores de parámetros de un widget a una política
Puede utilizar widgets para pasar valores como parámetros de tiempo de ejecución
a políticas en Netcool/Impact.
Acerca de esta tarea
En este ejemplo, desea poder enviar un correo electrónico que contiene
información contextual de un widget Tabla. La información se pasa como un valor
de parámetro de tiempo de ejecución del widget en la consola a la política en
Netcool/Impact.
Este ejemplo utiliza el widget de conexión. Puede experimentar problemas al
arrastrar y soltar el widget. Éste es un problema conocido con Tivoli Integrated
Portal. Para obtener más información, consulte http://www-01.ibm.com/support/
docview.wss?uid=swg21626092.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
201
Procedimiento
1. Cree una política. Por ejemplo, cree la siguiente política denominada
DB2Emailpolicy que recupera valores para algunas filas de una tabla de DB2 y
envía estos valores a una dirección de correo electrónico:
Address = "srodriguez@example.com";
Subject = "Notificación de Netcool/Impact";
Message = EventContainer.Node + " ha indicado la condición de error siguiente: "
+ EventContainer.Summary;
Sender = "impact";
ExecuteOnQueue = false;
SendEmail(null, Address, Subject, Message, Sender, ExecuteOnQueue);
2. Cree una página en la consola.
a. Abra la consola.
b. Pulse Valores > Página.
c. Especifique Pageforbutton en el campo Nombre de página.
d. Para guardar la página, pulse Aceptar.
3. Cree un widget Tabla que visualice los datos de la base de datos DB2.
a. Abra la página Pageforbutton.
b. Arrastre el widget Tabla al área de contenido.
c. Para configurar los datos de widget, pulse el icono de flecha abajo y pulse
Editar.
d. Seleccione el conjunto de datos. Utilice el recuadro de búsqueda o el botón
Mostrar todo para buscar el conjunto de datos que representa la tabla de
base de datos DB2.
e. Para guardar el widget, pulse el botón Guardar.
4. Cree un widget Botón. Especifique el nombre del botón y especifique el
parámetro que desea visualizar en la interfaz de usuario de la consola.
a. Arrastre el widget Botón que ha creado en el área de contenido.
b. Especifique un nombre. En este ejemplo, especifique Emailbutton.
c. Seleccione el conjunto de datos. En este ejemplo, utilice el recuadro de
búsqueda o el botón Mostrar todo para buscar el conjunto de datos que
representa la política que ha creado y selecciónelo.
d. Para asegurarse de que se ejecute la política cuando el usuario pulse el
botón, seleccione el botón de selección executePolicy.
e. Para guardar el widget Botón, pulse Guardar.
5. Cree una conexión.
a. Pulse el icono Mostrar conexión y pulse el botón Nueva conexión.
b. Seleccione el widget Tabla como el suceso de origen de la nueva conexión.
Seleccione Tabla > NodeClickOn.
c. Seleccione el destino de la conexión. Seleccione el widget Botón que ha
creado.
d. Seleccione Ninguno para la transformación.
e. Para guardar la conexión, pulse Aceptar y pulse el botón Guardar en la
barra de herramientas de la página.
Resultados
Después de completar esta tarea, el botón Enviar se visualiza en la consola.
Cuando un usuario pulsa el botón Enviar, la información contenida en la fila de la
tabla se envía como un correo electrónico a la dirección especificada por la política.
202
Netcool/Impact: Guía de soluciones
Cómo pasar valores de parámetro de una tabla a un indicador
Este ejemplo demuestra cómo puede utilizar políticas Netcool/Impact para pasar
variables como parámetros de tiempo de ejecución de un widget a una política y a
otro widget.
Acerca de esta tarea
En este ejemplo, los usuarios desean seleccionar filas en una tabla y visualizar el
estado para la fila en un widget de indicador. Cree 2 políticas Netcool/Impact para
facilitar esto. Una política es la política de publicador y proporciona datos en un
parámetro de salida para la segunda política, la política de suscriptor. La política
de suscriptor recibe datos de la política de publicador en un parámetro de tiempo
de ejecución de política y envía los resultados como parámetros de salida. Los
datos contenidos en el parámetro de salida se visualizan a continuación como un
indicador en la consola.
La política de publicador recupera los datos SiteStatus de ObjectServer. La
política de suscriptor recupera datos relacionados de la base de datos DB2.
Procedimiento
1. Cree la política de publicador.
La política siguiente se denomina PolicyEventingPublisher y utilice la función
de política DirectSQL para recuperar datos del origen de datos
defaultobjectserver. Debe crear un nuevo campo de entero llamado
SiteStatus en el ObjectServer si todavía no lo ha hecho.
Log("Policies Eventing From OS...");
DataFromOS=DirectSQL(’defaultobjectserver’,
"SELECT SiteStatus,Node,Identifier from alerts.status",false);
Cree el parámetro de salida para que el widget pueda visualizar los datos.
Tabla 60. Parámetro de salida para DatafromOS
Campo
Entrada
Nombre
DatafromOS
Nombre de variable de política
DatafromOS
Formato
DirectSQL / Tipo de datos de proveedor de
IU
Cree los valores de esquema personalizados para los campos que desea
visualizar en la consola. Debe crear 3 valores de esquema personalizado.
También debe seleccionar la casilla de verificación Campo clave para el valor
SiteStatus.
Tabla 61. Valor de esquema personalizado para SiteStatus
Campo
Entrada
Nombre
SiteStatus
Formato
Entero
Tabla 62. Valor de esquema personalizado para Nodo
Campo
Entrada
Nombre
Node
Formato
Serie
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
203
Tabla 63. Esquema personalizado valor para identificador
Campo
Entrada
Nombre
Identifier
Formato
Serie
2. Cree la política de suscriptor.
La política siguiente se denomina PolicyEventingSubscriber y utiliza la
función GetByFilter para recuperar el valor de SiteStatus emitido por la
política de publicador. La política de publicador recupera los datos SiteStatus
de ObjectServer. La política de suscriptor recupera datos relacionados de la
base de datos DB2.
Log("Demo Policies Eventing From DB2...");
Filter="SiteStatus="+ SiteStatus;
DataFromDB2=GetByFilter(’MachineInfo’,Filter,false);
Log(DataFromDB2);
Cree el parámetro de tiempo de ejecución de política.
Tabla 64. Parámetro de tiempo de ejecución SiteStatus
Campo
Entrada
Nombre
SiteStatus
Nombre de variable de política
SiteStatus
Formato
DirectSQL / Tipo de datos de proveedor de
IU
Cree el parámetro de tiempo de salida de política.
Tabla 65. Parámetro de salida DatafromDB2
Campo
Entrada
Nombre
DatafromDB2
Nombre de variable de política
DatafromDB2
Formato
Datatype
Nombre de origen de datos
DB2Source
Nombre de tipo de datos
MachineInfo
3. Cree una página en la consola.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique PageforMachineInfo en el campo Nombre de página.
d. Guarde la página.
4. Cree un widget Tabla.
a. Abra la página PageforMachineInfo que ha creado.
b. Arrastre el widget Tabla al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos DatafromOS
que pertenece al origen de datos PolicyEventingPublisher. El tipo de datos
sólo se visualiza tras el intervalo de renovación definido. El valor
predeterminado es de 5 minutos.
204
Netcool/Impact: Guía de soluciones
e. Se visualiza la interfaz de usuario Valores de visualización. De forma
predeterminada, el sistema visualiza todas las columnas disponibles. Puede
cambiar las columnas visualizadas en la sección Valores de visualización de
la interfaz de usuario. También puede seleccionar las opciones de selección
de fila y tipo de selección de fila.
f. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
5. Cree un widget de indicador.
a. Abra la página PageforMachineInfo que ha creado.
b. Arrastre el widget Indicador analógico al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos DatafromDB2
que pertenece al origen de datos PolicyEventingSubscriber. El tipo de
datos sólo se visualiza tras el intervalo de renovación definido. El valor
predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Seleccione el
valor que desea visualizar en el indicador en el campo Valor. En este
ejemplo, seleccione SiteStatus de la lista. También puede seleccionar
diversos otros valores opcionales para el indicador como por ejemplo un
valor mínimo, un valor máximo y una unidad de medida.
f. Para asegurarse de que la política se ejecuta cuando se visualiza el widget,
seleccione el recuadro de selección executePolicy. Pulse Aceptar.
g. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Cuando un usuario selecciona una fila en el widget de tabla, se muestra SiteStatus
en el widget de indicador.
Visualización de un mashup de datos desde dos orígenes de
IBM Tivoli Monitoring
Puede utilizar Netcool/Impact para visualizar datos desde dos orígenes diferentes
en IBM Tivoli Monitoring.
Antes de empezar
Encuentre los detalles de configuración de cada Proveedor de datos de interfaz de
usuario que desea utilizar. Por ejemplo, si desea conectar con un sistema IBM
Tivoli Monitoring, debe recuperar la información siguiente para Tivoli Enterprise
Monitoring Server Proveedor de datos de interfaz de usuario :
v Usuario
v Password
v Puerto
v URL base
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
205
Acerca de esta tarea
Consejo: También puede utilizar este procedimiento para obtener datos de Tivoli
Monitoring 6.3 para fines de gestión de sucesos, la única diferencia es que omite el
paso que describe cómo crear los parámetros de salida de usuario para las
políticas.
Procedimiento
1. Utilice DSA del Proveedor de datos de interfaz de usuario para crear dos
orígenes de datos. Cada origen de datos se conecta con un sistema IBM Tivoli
Monitoring diferente. Por ejemplo, cree los orígenes de datos siguientes:
v El origen de datos 1 recupera datos de ITM1
v El origen de datos 2 recupera datos de ITM2
a. Cree el origen de datos que recupera datos de ITM1:
1) Especifique ITM en el campo Nombre de origen de datos.
2) Especifique el nombre de usuario y la contraseña para la base de datos.
3) Complete los otros campos, según se requiera.
4) Guarde el origen de datos.
b. Cree el origen de datos que recupera datos de ITM2:
1) Especifique ITM en el campo Nombre de origen de datos.
2) Especifique el nombre de usuario y la contraseña para la base de datos.
3) Complete los otros campos, según se requiera.
4) Guarde el origen de datos.
Para obtener más información sobre cómo crear un origen de datos para DSA
de Proveedor de datos de interfaz de usuario , consulte la sección sobre la
creación de un origen de datos de Proveedor de datos de interfaz de usuario en
la Guía de DSA de Netcool/Impact.
2. Cree dos tipos de datos para cada origen de datos que ha creado en el paso
anterior. Más adelante, combine los datos de dos tipos de datos que pertenecen
al mismo origen de datos en un solo objeto. A continuación, combine los datos
de dos objetos de modo que los datos de diferentes sistemas se fusionen. Por
ejemplo, cree los tipos de datos siguientes:
v Datatype1A - seleccione Tivoli Enterprise Monitoring Agent
v Datatype1B - seleccione Tivoli Enterprise Monitoring Agent
v Datatype2A - seleccione Tivoli Enterprise Monitoring Agent
v Datatype2B - seleccione Tivoli Enterprise Monitoring Agent
a. Cree los tipos de datos de la forma siguiente, cambiando el nombre de cada
tipo de datos:
1) Especifique Datatype1A como nombre y complete los campos necesarios.
2) Para habilitar el tipo de datos, seleccione la casilla de verificación
Habilitado.
3) Seleccione los campos de clave para el tipo de datos.
4) Guarde el tipo de datos.
Para obtener más información sobre cómo crear un tipo de datos para DSA de
Proveedor de datos de interfaz de usuario , consulte la sección sobre la creación
de un tipo de datos de Proveedor de datos de interfaz de usuario en la Guía de
DSA de Netcool/Impact.
206
Netcool/Impact: Guía de soluciones
3. Para combinar los datos de diferentes orígenes, cree una política en
Netcool/Impact que utilice la función GetByFilter. Para este ejemplo, debe
crear las matrices siguientes para combinar los datos de diferentes orígenes:
v Array1A = GetByFilter()
v Array1B = GetByFilter()
v Array2A = GetByFilter()
v Array2B = GetByFilter()
Por ejemplo, la política siguiente utiliza la función GetByFilter para combinar
los datos del origen de datos ITM_DS1 en un solo objeto.
a. El parámetro de salida de la política es cpuLinuxITM={};.
b. Datatype1A recupera datos de Tivoli Enterprise Monitoring Agent y
también recupera los datos de dirección IP de cada nodo:
ipaddress01="";
DataType="datatype1A";
Filter="&param_SourceToken=paramValue";
iparray=GetByFilter(DataType, Filter, false);
count=0;
while(count<Length(iparray)){
if( (iparray[count].IPVERSION != "IPv6")&&(iparray[count].
IPADDRESS!="127.0.0.1")){
ipaddress01= iparray[count].IPADDRESS;
}
count = count +1;
}
c. Datatype1B recupera datos de un Tivoli Enterprise Monitoring Agent y
también proporciona datos de consumo de procesador para cada nodo. La
política crea una matriz de métricas para cada nodo supervisado. También
mejora esta información con la dirección IP:
DataType="datatype1B";
Filter="&param_SourceToken=paramValue&sort=BUSYCPU";
MyFilteredItems = GetByFilter( DataType, Filter, false );
index = 0;
if(Num > index){
while(index<Num){
cpu=NewObject();
cpu.TIMESTAMP= MyFilteredItems[index].TIMESTAMP;
cpu.ORIGINNODE= MyFilteredItems[index].ORIGINNODE;
cpu.BUSYCPU= MyFilteredItems[index].BUSYCPU;
cpu.IPADDRESS=ipaddress01;
cpuLinuxITM = cpuLinuxITM+{cpu};
index=index+1;
}
}
Log(" Finished collecting cpu usage from Metrics Agant :" + DataType );
Para obtener más información sobre la utilización de la función GetByFilter
con el Proveedor de datos de interfaz de usuario , consulte el tema sobre cómo
acceder a salida de tipos de datos mediante la función GetByFilter en
Netcool/Impact Solutions Guide.
4. Cree los parámetros de salida de usuario para las políticas. En este ejemplo,
cpuLinuxITM es el parámetro de salida que se define en la política. Debe crear
un parámetro de salida para cpuLinuxITM tal como se describe en la tabla. Para
crear un parámetro de salida de usuario, abra el editor de políticas y pulse el
icono Configurar parámetros de usuario y el botón Parámetro de salida de
política:Nuevo.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
207
Tabla 66. Parámetro de salida ITM1
Campo
Entrada
Nombre
ITM1
Nombre de variable de política
cpuLinuxITM
Formato
Matriz de objetos de Impact
Este parámetro garantiza que la política se expone como parte de
Netcool/Impact Proveedor de datos de interfaz de usuario .
Para obtener información sobre cómo configurar parámetros de usuario,
consulte el tema sobre cómo configurar parámetros de usuarios en
Netcool/Impact Solutions Guide.
5. Cree un origen de datos y un tipo de datos que se basen en la política. En este
ejemplo, cree el origen de datos como sigue:
a. Seleccione ITM_mashup_policy en la lista del campo Nombre de origen de
datos.
b. Especifique el nombre de usuario y la contraseña para la base de datos.
c. Seleccione Netcool/Impact Proveedor de datos de interfaz de usuario ,
Impact_NCICLUSTER, como proveedor.
d. Complete los otros campos, según se requiera.
e. Guarde el origen de datos.
Cree el tipo de datos de la forma siguiente:
a. Especifique ITM_mashup_dt como nombre y complete los pasos necesarios.
b. Para garantizar que el tipo de datos es compatible con el proveedor de
datos de interfaz de usuario, seleccione la casilla de verificación Proveedor
de datos de IU: habilitado.
c. Seleccione los campos de clave para el tipo de datos.
d. Guarde el tipo de datos.
6. Para confirmar que la política devuelve los datos correctos cuando se ejecuta,
pulse con el botón derecho del ratón el tipo de datos y seleccione Ver
elementos de datos. Especifique &executePolicy=true en el filtro y actualice.
7. Cree una página en la consola.
a. Abra la consola.
b. Para crear una página, pulse Valores > Nueva página.
c. Especifique Página para mashup ITM en el campo Nombre de página.
d. Guarde la página.
8. Cree un widget Tabla que visualice los datos del tipo de datos de la política.
a. Abra la página Página para mashup de ITM que ha creado.
b. Arrastre el widget Tabla al área de contenido.
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos ITM_mashup_dt
que pertenece al origen de datos ITM_mashup_policy. El tipo de datos sólo
se visualiza tras el intervalo de renovación definido. El valor
predeterminado es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Especifique los
valores que desea utilizar. Puede seleccionar varias líneas. También puede
seleccionar un texto para que se visualice como ayuda contextual. Pulse
Aceptar.
208
Netcool/Impact: Guía de soluciones
f. Para guardar el widget, pulse el botón Guardar y salir en la barra de
herramientas.
Resultados
Después de crear el widget de tabla, los mismos datos que se han visualizado en el
paso 6 de Netcool/Impact se visualizan en la consola.
Visualización de datos de los paneles de instrumentos de autoservicio
de Netcool/Impact
El widget de paneles de instrumentos de autoservicio de Netcool/Impact está
diseñado para permitir a los usuarios o administradores crear paneles de
instrumentos. Los paneles de instrumentos de autoservicio pueden aceptar entrada
del usuario mediante un widget Formulario de entrada personalizable y pueden
controlar las acciones del usuario mediante un widget Botón. Estos dos widgets
interactúan con Netcool/Impact mediante la interfaz de la API Rest de Netcool.
Netcool/Impact 6.1.1.1 tiene un proveedor de datos de interfaz de usuario que
hace que los datos de Netcool/Impact estén disponibles para que los consuman los
widgets de panel de instrumentos de IBM Dashboard Applications Services Hub.
El proveedor de datos de interfaz de usuario funciona bien para paneles de
instrumentos que estén pensados para uso de sólo lectura pero que no pueden
interactuar dinámicamente con políticas de Netcool/Impact. Por ejemplo, puede
crear un panel de instrumentos con un widget Tabla que visualice todos los tickets
de problema gestionados por Netcool/Impact. Sin embargo, no puede interactuar
con los tickets de problema para crear un ticket.
Cuando los widgets de paneles de instrumentos de autoservicio de Netcool/Impact
se instalan en la consola, tiene la opción de añadir a las visualizaciones existentes.
Puede actualizar los datos mediante la ejecución de políticas de Netcool/Impact y
realizar determinadas acciones en un conjunto de datos.
Instalación de widgets de paneles de instrumentos de
autoservicio de Netcool/Impact
Para crear paneles de instrumentos personalizados para Netcool/Impact para ver
en Jazz for Service Management, puede añadir widgets específicos de
Netcool/Impact para ampliar las prestaciones de los paneles de instrumentos que
cree.
Antes de empezar
Para instalar el archivo Impact_SSD_Dashlet.war de Netcool/Impact en Dashboard
Application Services Hub Server, debe tener el entorno siguiente.
v Un servidor con Netcool/Impact 6.1.1.1 instalado.
v Un servidor con IBM Dashboard Applications Services Hub instalado y
configurado con una conexión de datos al servidor Netcool/Impact 6.1.1.1. Para
obtener información sobre cómo configurar una conexión entre el servidor
Impact y Jazz for Service Management, consulte “Configuración de la conexión
remota entre Proveedor de datos de interfaz de usuario y la consola” en la
página 170.
Para obtener más información sobre Jazz for Service Management, consulte el
centro de información de Jazz for Service Management disponible en el siguiente
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
209
URL: http://pic.dhe.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=
%2Fcom.ibm.psc.doc_1.1.0%2Fpsc_ic-homepage.html.
Procedimiento
1. Inicie la sesión en el servidor Impact.
2. Vaya al directorio add-ons, %IMPACT%/add-ons/ssd.
3. Copie el archivo Impact_SSD_Dashlet.war en Dashboard Application Services
Hub Server. Anote la ubicación donde descarga el archivo. Por ejemplo,
C:\build\Impact_SSD_Dashlet.war.
4. En Dashboard Application Services Hub Server, ejecute la herramienta wsadmin
mediante uno de los mandatos siguientes:
v UNIX: %INSTALL%/JazzSM/profile/bin/wsadmin.sh
v Windows: %INSTALL%/JazzSM/profile/bin/wsadmin.bat
Donde %INSTALL% es la ubicación de instalación de Jazz for Service
Management.
5. Ejecute el mandato siguiente todo en una misma línea para instalar el archivo
Impact_SSD_Dashlet.war.
$AdminApp update isc modulefile
{-operation addupdate -contents "<ImpactSSDWar>"
-custom paavalidation=true
-contenturi Impact_SSD_Dashlet.war
-usedefaultbindings
-contextroot /Impact_SSD_Dashlet
-MapWebModToVH {{.* .* default_host}}}
Donde <ImpactSSDWar> es la ubicación del archivo war copiado. Por ejemplo,
C:\build\Impact_SSD_Dashlet.war.
6. Si el mandato wsadmin se ejecuta correctamente sin errores, utilice el mandato
siguiente para guardar los cambios:
$AdminConfig save
7. Utilice uno de los mandatos siguientes para reiniciar Dashboard Application
Services Hub Server:
v UNIX:
%INSTALL%/JazzSM/profile/bin/stopServer.sh server1
%INSTALL%/JazzSM/profile/bin/startServer.sh server1
v Windows:
%INSTALL%/JazzSM/profile/bin/stopServer.bat server1
%INSTALL%/JazzSM/profile/bin/startServer.bat server1
Desinstalación de los widgets de paneles de instrumentos de
autoservicio de Netcool/Impact
Cómo desinstalar la característica de widgets de paneles de instrumentos de
autoservicio de Jazz for Service Management.
Antes de empezar
Debe eliminar las dependencias de los widgets de paneles de instrumentos de
autoservicio de Netcool/Impact de las páginas o portlets existentes en Jazz for
Service Management. A continuación, suprima las instancias de los widgets de
paneles de instrumentos de Netcool/Impact de la página o los portlets de Jazz for
Service Management. Para obtener información sobre cómo suprimir páginas o
portlets, consulte la Ayuda en línea de IBM® Dashboard Application Services Hub.
210
Netcool/Impact: Guía de soluciones
Procedimiento
1. En Dashboard Application Services Hub Server, utilice uno de los mandatos
siguientes para ejecutar la herramienta wsadmin:
v UNIX: %INSTALL%/JazzSM/profile/bin/wsadmin.sh
v Windows: %INSTALL%/JazzSM/profile/bin/wsadmin.bat
2. Ejecute el mandato siguiente para desinstalar el archivo
Impact_SSD_Dashlet.war.
$AdminApp update isc modulefile
{-operation delete -contenturi Impact_SSD_Dashlet.war }
3. Si el mandato wsadmin se ejecuta satisfactoriamente sin errores, ejecute el
mandato siguiente para guardar los cambios:
$AdminConfig save
4. Utilice unos de los mandatos siguientes para reiniciar Dashboard Application
Services Hub Server.
v UNIX:
%INSTALL%/JazzSM/profile/bin/stopServer.sh server1
%INSTALL%/JazzSM/profile/bin/startServer.sh server1
v Windows:
%INSTALL%/JazzSM/profile/bin/stopServer.bat server1
%INSTALL%/JazzSM/profile/bin/startServer.bat server1
Edición de un widget Formulario de entrada
El widget Formulario de entrada es un control de formulario que puede ejecutar
políticas de Netcool/Impact con parámetros de tiempo de ejecución definidos por
el usuario. El widget Formulario de entrada genera dinámicamente un formulario
con un conjunto de campos de entrada que corresponden a los parámetros de
tiempo de ejecución de la política.
Al enviar el formulario, se ejecuta la política asociada con los parámetros de
tiempo de ejecución de los campos de entrada del formulario.
y seleccione Editar.
1. En la barra del título, pulse el icono Editar opciones
2. Elija la política de Netcool/Impact que desea ejecutar. Puede buscar la política
completando el campo de búsqueda con un nombre completo o parcial y
pulsando Buscar. También puede visualizar la lista completa de conjuntos de
datos disponibles pulsando el botón Mostrar todo en el centro del panel de
resultados.
3. Seleccione ese conjunto de datos y pulse la flecha derecha para mostrar la
página Valores de visualización. En la página Valores de visualización, puede
configurar el título del botón y los parámetros de política de Netcool/Impact.
4. En la sección Valores necesarios, seleccione la opción executePolicy.
5. Opcional. Seleccione Valores opcionales y añada el nombre del formulario al
campo Título. El título también se utiliza para la etiqueta del botón de envío
de formulario.
6. Opcional. Configurar parámetros de conjunto de datos opcionales: también
puede establecer valores predeterminados para los parámetros de tiempo de
ejecución conectados a la política de Netcool/Impact. El widget Formulario de
entrada llena el formulario de parámetros de tiempo de ejecución con los
valores predeterminados que se establezcan aquí.
7. Pulse Aceptar para implementar los cambios o en Cancelar para desecharlos.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
211
8. En el panel de instrumentos, pulse el botón en el widget para ejecutar la
política. Los parámetros de tiempo de ejecución se pasan a la política como
parámetros de ejecución de política. Los resultados se visualizan en el widget.
Consejo: En el formulario de entrada, puede cambiar manualmente los valores de
los campos del formulario, pulsar en los botones y ejecutar de nuevo la política y
mostrar los resultados en el panel de instrumentos.
Edición de un widget Botón
El widget Botón se puede utilizar en una vista de operador para ejecutar una
política. Puede editar el widget Botón para utilizar los parámetros de tiempo de
ejecución establecidos por la política conectada al botón.
y seleccione Editar.
1. En la barra del título, pulse el icono Editar opciones
2. Elija la política de Netcool/Impact que desea ejecutar. Puede buscar la política
completando el campo de búsqueda con un nombre completo o parcial y
pulsando Buscar. También puede visualizar la lista completa de conjuntos de
datos disponibles pulsando el botón Mostrar todo en el centro del panel de
resultados.
3. Seleccione ese conjunto de datos y pulse la flecha derecha para mostrar la
página Valores de visualización. En la página Valores de visualización, puede
configurar el título del botón y los parámetros de política de Netcool/Impact.
4. En la sección Valores necesarios, seleccione la opción executePolicy.
5. Opcional. Seleccione Valores opcionales y añada el nombre del botón al campo
Título. El título también se utiliza para la etiqueta del botón de envío de
formulario.
6. Opcional.Configurar parámetros de conjunto de datos opcionales: también
puede establecer valores predeterminados para los parámetros de tiempo de
ejecución conectados a la política de Netcool/Impact.
7. Pulse Aceptar para implementar los cambios o en Cancelar para desecharlos.
8. En el panel de instrumentos, pulse el botón en el widget para ejecutar la
política. Los parámetros de tiempo de ejecución se pasan a la política como
parámetros de ejecución de política. Los resultados se visualizan en el widget.
Consejo: Para cambiar los valores de los parámetros de tiempo de ejecución, debe
editar el widget Botón y cambiar los parámetros de la página Valores de
visualización antes de ejecutar de nuevo la política desde el panel de
instrumentos.
Configuración del widget Botón para recibir datos de otros
widgets
El widget Botón puede recibir datos de otros widgets. Por ejemplo, en la consola
puede crear una conexión entre el widget Botón y un widget Tabla. Estas
conexiones entre widgets comparten información y abren páginas en contexto. Al
pulsar una fila en el widget Tabla, el widge Botón procesa los datos. Al pulsar el
botón en el widget Botón, estos datos de la fila de tabla se procesan. A
continuación, los datos se envían a la política como parámetros de tiempo de
ejecución.
Acerca de esta tarea
Este ejemplo utiliza un widget Botón y un widget Tabla. Puede utilizar el mismo
proceso con un widget Botón y cualquier otro widget.
212
Netcool/Impact: Guía de soluciones
Procedimiento
1. En
a.
b.
c.
Netcool/Impact, cree un origen de datos DB2.
Especifique NewDataSource en el campo Nombre de origen de datos.
Especifique el nombre de usuario y la contraseña para la base de datos.
Complete los otros campos, según se requiera.
d. Guarde el origen de datos.
2. Cree un tipo de datos para el origen de datos DB2.
a. Especifique NewDataType como nombre y complete los campos necesarios.
b. Para asegurarse de que el tipo de datos es compatible con Proveedor de
datos de interfaz de usuario , seleccione el recuadro de selección Proveedor
de datos de interfaz de usuario: habilitado.
c. Seleccione los campos de clave para el tipo de datos.
d. Guarde el tipo de datos.
3. Cree la política de destino.
a. En el editor de políticas de Netcool/Impact, cree una política de
Netcool/Impact.
b. Defina la política siguiente:
Log (“Executing IPL Impact Policy”);
filter = “SERVICEREQUESTIDENTIFIER = ” + inputParamID;
GetbyFilter (’NewDataType’, filter, false);
c. Guarde la política y dele el nombre PolicyForButtonWidget.
4. Cree el parámetro de tiempo de ejecución para la política.
a. En el editor de políticas, pulse el icono Configurar parámetros de usuario
para crear el parámetro de tiempo de ejecución.
b. Nombre el parámetro de tiempo de ejecución inputParamID.
c. Especifique Long para el campo Formato.
d. Pulse Aceptar.
e. Guarde la política.
5. Cree una página en la consola.
a. Abra la consola.
b. Para crear una página, pulse Valores>Nueva página.
c. Especifique un nombre para la página en el campo Nombre de página.
d. Guarde la página.
6. Cree un widget Botón en la consola.
a. Abra la nueva página que ha creado.
b. Abra la carpeta de widgets de Impact y arrastre el widget Botón al área de
contenido.
c. Para configurar los datos de widget, pulse el icono de flecha abajo y pulse
Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione la política
PolicyForButtonWidget que ha creado anteriormente.
e. Se visualiza la interfaz de usuario Valores de visualización. Pulse Aceptar.
f. Para guardar el widget Botón, pulse el botón Guardar en la barra de
herramientas de la página.
7. Cree un widget Tabla en la consola.
a. Abra la nueva página que ha creado.
b. Arrastre el widget Tabla al área de contenido.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
213
c. Para configurar los datos del widget, púlselo. Pulse el icono flecha abajo y
pulse Editar. Se visualiza la ventana Seleccionar un conjunto de datos.
d. Seleccione el conjunto de datos. Seleccione el tipo de datos NewDataType
que pertenece al origen de datos NewDataSource. El tipo de datos sólo se
visualiza tras el intervalo de renovación definido. El valor predeterminado
es de 5 minutos.
e. Se visualiza la interfaz de usuario Valores de visualización. Pulse Aceptar.
f. Para guardar el widget Tabla, pulse Guardar en la barra de herramientas de
la página.
8. Cree una conexión entre los widgets Botón y Tabla.
a. Para abrir el asistente de conexiones, pulse el botón Mostrar conexiones en
la barra de herramientas de la página.
b. Pulse el botón Nueva conexión.
c. En la página Seleccionar suceso de origen para nueva conexión, identifique
el widget Tabla en la lista de Sucesos de origen disponibles y seleccione el
suceso NodeClickedOn.
d. Pulse Aceptar.
e. En la página Seleccionar destino para nueva conexión, seleccione el widget
Botón en la lista de Destinos disponibles.
f. Pulse Aceptar en las dos páginas siguientes para crear una conexión entre
los widgets Botón y Tabla.
Resultados
Al pulsar una fila en el widget Tabla, se genera un suceso NodeClickedOn. El
widget Botón procesa el suceso extrayendo los datos de la fila de tabla pulsada. Al
pulsar el botón en el widget Botón, ejecuta la política configurada en el widget.
Los datos pasan de la fila de tabla a la política como valores de tiempo de
ejecución de política. La función GetByFilter se ejecuta y utiliza el parámetro de
tiempo de ejecución proporcionado por la fila de tabla.
Temas de referencia
Puede utilizar URL personalizados y Proveedor de datos de interfaz de usuario
para acceder directamente a los datos. También puede personalizar Proveedor de
datos de interfaz de usuario y habilitar el soporte de modelos de datos grandes.
Soporte de modelos de datos grandes para Proveedor de
datos de interfaz de usuario
Puede utilizar Proveedor de datos de interfaz de usuario con modelos de datos
grandes basados en las bases de datos soportadas.
El soporte de modelos de datos grandes se utiliza para facilitar la integración de
Proveedor de datos de interfaz de usuario con tablas de base de datos que utilizan
filtrado y paginación para limitar el número de filas.
Se da soporte a las siguientes bases de datos y tipos de datos asociados y la
integración de modelos de datos grandes está habilitada de forma predeterminada:
v DB2
v Derby
v HSQLDB
v Informix
214
Netcool/Impact: Guía de soluciones
v
v
v
v
MySQL
MS-SQLServer
Oracle
PostgreSQL
Para obtener información sobre cómo habilitar e inhabilitar modelos de datos
grandes, consulte “Inhabilitación y habilitación de modelos de datos grandes”.
Restricciones
v No se da soporte a bases de datos Sybase y sus tipos de datos asociados. Puede
limitar los datos utilizando los filtros de entrada en el tipo de datos o en el
widget.
Importante: Si accede a un tipo de datos Netcool/OMNIbus o Sybase que tiene
un gran número de filas, por ejemplo más de 10.000, puede llegar a quedarse sin
memoria. Se pueden producir problemas de falta de memoria porque todas las
filas de datos que se capturan de la base de datos utilicen la memoria de
almacenamiento dinámico disponible asignada por la máquina virtual Java. Si
tiene la intención de acceder a grandes cantidades de datos para un tipo de
datos Netcool/OMNIbus o Sybase, considere incrementar los valores de la
memoria de almacenamiento dinámico para TIPProfile e ImpactProfile a partir
de sus valores predeterminados. Para obtener información sobre el cambio de los
valores de la memoria de almacenamiento dinámico, consulte la sección
Supervisión del estado de la memoria de la Guía de administración.
v Si desea integrar Proveedor de datos de interfaz de usuario con modelos de
datos grandes, no debe utilizar UIDPROWNUM como un nombre de campo en la
base de datos Oracle o DB2. El campo AS UIDPROWNUM se añade a la consulta para
bases de datos Oracle y DB2. Como resultado, este campo se reserva para que lo
utilice la consulta que está asociada con estos tipos de bases de datos.
v La base de datos MS-SQLServer utiliza el primer campo del tipo de datos en la
consulta. No hay campos reservados para este tipo de base de datos.
v Si la paginación está habilitada en Tivoli Integrated Portal o en el URL,
Netcool/Impact no almacena esta información en la memoria. En lugar de ello,
Netcool/Impact recupera las filas directamente de la base de datos para evitar
efectos adversos en el rendimiento y la memoria.
Inhabilitación y habilitación de modelos de datos grandes
Puede habilitar e inhabilitar Proveedor de datos de interfaz de usuario de forma
que no sea compatible con modelos de datos grandes.
Acerca de esta tarea
De forma predeterminada la integración de modelos de datos grandes está
habilitada para las siguientes bases de datos.
v DB2
v Derby
v HSQLDB
v Informix
v MySQL
v MS-SQLServer
v Oracle
v PostgreSQL
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
215
Procedimiento
1. Para inhabilitar la integración de Proveedor de datos de interfaz de usuario y
los modelos de datos grandes, cambie
impact.uidataprovider.largetablemodel=true por
impact.uidataprovider.largetablemodel=false en el archivo server.props.
Consejo: Si este parámetro no existe, puede añadirlo al archivo server.props.
2. Reinicie el Servidor GUI.
Habilitación e inhabilitación del modelo de datos grandes para Objectserver:
La integración del modelo de datos grandes está inhabilitada de forma
predeterminada para ObjectServer y no está soportada a menos que utilice
Netcool/OMNIbus versión 7.4.0, fixpack 1. Este fixpack tiene funciones que se
pueden utilizar para la paginación en ObjectServer.
Antes de empezar
Antes de iniciar esta tarea, debe detener Servidor GUI.
En sistemas operativos UNIX, especifique el mandato siguiente en el indicador de
mandatos:
$IMPACT_HOME/bin/ewasGUIStartStop.sh stop
[-username adminuser -password adminpassword]
En sistemas operativos Windows, utilice Ampliación de servicios en Microsoft
Management Console. En la ventana Ampliación de servicios, pulse con el botón
derecho sobre Tivoli Integrated Portal y seleccione Propiedades. En el recuadro de
diálogo Propiedades, pulse Detener y, a continuación, pulse Aceptar.
Acerca de esta tarea
Para obtener información sobre Netcool/OMNIbus versión 7.4.0. fixpack 1,
consulte http://publib.boulder.ibm.com/infocenter/tivihelp/v8r1/topic/
com.ibm.netcool_OMNIbus.doc_7.4.0/omnibus/wip/welcome.htm.
Procedimiento
1. Para habilitar la integración de Proveedor de datos de interfaz de usuario y
modelos de datos grandes para ObjectServer, cambie la propiedad
impact.uidataprovider.largetablemodel.objectserver=false a
impact.uidataprovider.largetablemodel.objectserver=true en el archivo
server.props.
Si la propiedad no existe, puede crearla.
2. Reinicie el Servidor GUI.
v En sistemas UNIX, especifique el mandato siguiente en el indicador de
mandatos:
$IMPACT_HOME/bin/ewasGUIStartStop.sh start
[-username adminuser -password adminpassword]
v En sistemas Windows, utilice Ampliación de servicios en Microsoft
Management Console. En la ventana Ampliación de servicios, pulse con el
botón derecho sobre Tivoli Integrated Portal y seleccione Propiedades. En el
recuadro de diálogo Propiedades, pulse Iniciar y, a continuación, pulse
Aceptar.
216
Netcool/Impact: Guía de soluciones
Consejo: También puede utilizar el script startServer.sh en el directorio
$TIP_HOME/profiles/TIPProfile/bin.
Personalización de Proveedor de datos de interfaz de usuario
Tras habilitar Proveedor de datos de interfaz de usuario , puede personalizarlo
cambiando la velocidad de renovación, inicializando todos los elementos de datos
SQL y habilitando varios clústeres de Netcool/Impact que acceden al mismo
proveedor de Tivoli Integrated Portal.
Velocidad de renovación
Puede configurar la frecuencia con la que se renueva Proveedor de datos de
interfaz de usuario . Este intervalo se establece en cada 5 minutos. Para cambiar
este valor, añada la sentencia siguiente al archivo server.props que se encuentra
en la carpeta IMPACT_HOME/etc/:
impact.uidataprovider.refreshrate=<velocidad_renovación_en_milisegundos>
Por ejemplo, añada la sentencia siguiente para cambiar el intervalo de renovación a
3 minutos:
impact.uidataprovider.refreshrate=180000
Inicialización de elementos de datos SQL
Puede configurar Netcool/Impact de manera que de forma predeterminada los
elementos de datos SQL se inicialicen durante el inicio. Para ello, añada lo
siguiente al archivo server.props:
impact.uidataprovider.sql.initializenodes=true
Restricción: Este valor puede tener un efecto negativo en el rendimiento y el uso
de memoria. Esta restricción depende de la cantidad de datos que contiene el tipo
de datos. Por este motivo, de forma predeterminada este valor está inhabilitado.
Habilitar varios servidores
El despliegue puede incluir varios servidores Proveedor de datos de interfaz de
usuario en un clúster de servidores que acceden al mismo proveedor de Tivoli
Integrated Portal. Para integrar Proveedor de datos de interfaz de usuario con este
tipo de despliegue, debe configurar la carga del modelo de navegación de forma
que renueve periódicamente los datos de cada servidor Proveedor de datos de
interfaz de usuario . Para ello, añada la sentencia siguiente al archivo
server.props:
impact.uidataprovider.refreshclusters=true
Codificación de caracteres
De forma predeterminada, Netcool/Impact utilice codificación de caracteres UTF-8
para analizar los valores de parámetros y enviar estos valores a Proveedor de datos
de interfaz de usuario . Cambie este valor si, por ejemplo, desea utilizar caracteres
chinos junto con Proveedor de datos de interfaz de usuario . Para cambiar este
valor, concluya el servidor Tivoli Integrated Portal y añada la sentencia siguiente al
archivo server.props que se encuentra en la carpeta IMPACT_HOME/etc:
impact.uidataprovider.encoding=<juego_caracteres>
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
217
Inicie el servidor Tivoli Integrated Portal. Netcool/Impact utiliza la codificación
definida en la variable juego_caracteres para analizar los valores de los
parámetros.
Inhabilitación de Proveedor de datos de interfaz de usuario
De forma predeterminada, Proveedor de datos de interfaz de usuario está
habilitado en el perfil de Tivoli Integrated Portal. Para inhabilitar Proveedor de
datos de interfaz de usuario , añada la sentencia siguiente al archivo server.props
en la carpeta IMPACT_HOME/etc. Para añadir la sentencia, primero debe concluir el
Servidor GUI.
impact.uidataprovider.enable=false
Nota: En una instalación dividida, añada la sentencia al archivo server.props en
el servidor Tivoli Integrated Portal.
Para completar el cambio, reinicie el Servidor GUI.
Conversión de filtros de fecha para bases de datos conectadas
Netcool/Impact debe convertir los valores de filtro de la consola a un formato que
sea compatible con las consultas utilizadas para las distintas bases de datos. Se
requiere la conversión porque la consola utiliza milisegundos como formato
genérico para enviar las fechas. Esta conversión la controla la propiedad
impact.uidataprovider.dateformat del archivo server.props en la carpeta
IMPACT_HOME/etc. El patrón predeterminado es aaaa-MM-dd HH:mm:ss.SSS. Por
ejemplo, si filtra para el 1 de enero de 2012, Netcool/Impact convierte el valor de
filtro a 2012-01-01 00:00:00.000.
Para cambiar el patrón predeterminado, modifique la propiedad
impact.uidataprovider.dateformat del archivo server.props en la carpeta
IMPACT_HOME/etc.
Acceso a Netcool/Impact Proveedor de datos de interfaz de
usuario
Puede utilizar un URL para acceder a los datos de Proveedor de datos de interfaz
de usuario proporcionados por Netcool/Impact.
Procedimiento
Utilice el siguiente URL para acceder a Netcool/ImpactProveedor de datos de
interfaz de usuario
https:/<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
nombre_proveedor
nombre_host es la máquina donde se está ejecutando Tivoli Integrated Portal.
puerto es el puerto https de Tivoli Integrated Portal, el valor predeterminado es
16311
Nota:
De forma predeterminada, Netcool/ImpactProveedor de datos de interfaz de
usuario registra el nombre Impact_NCICLUSTER. Si ha registrado otro nombre de
clúster durante la instalación, Proveedor de datos de interfaz de usuario registra
este nombre como Impact_<nombre_clúster>.
218
Netcool/Impact: Guía de soluciones
Ejemplo
Por ejemplo, puede utilizar el URL siguiente para acceder a Proveedor de datos de
interfaz de usuario :
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER
Acceso a orígenes de datos desde un Proveedor de datos de
interfaz de usuario
Puede utilizar un URL para acceder a los orígenes de datos que proporciona
Netcool/Impact cuando funciona como un Proveedor de datos de interfaz de
usuario .
Procedimiento
Utilice el siguiente URL para acceder a los orígenes de datos:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/<nombre_origen_datos>
Ejemplo
Si configura el origen de datos defaultobjectserver en Netcool/Impact para que
apunte a una instalación de Netcool/OMNIbus, utiliza el siguiente URL para
acceder a él:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver
Acceso a conjuntos de datos desde un Proveedor de datos de
interfaz de usuario
Se utiliza un URL para acceder a los conjuntos de datos proporcionados por un
Proveedor de datos de interfaz de usuario . Los conjuntos de datos proporcionados
por Proveedor de datos de interfaz de usuario se pueden basar en tipos de datos
SQL, internos o SNMP.
Procedimiento
Utilice el siguiente URL para acceder a conjuntos de datos proporcionados por
Proveedor de datos de interfaz de usuario :
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/Impact_NCICLUSTER
/datasources/<ID_origen_datos>/datasets
Este URL devuelve los conjuntos de datos pertenecientes a un origen de datos.
Utilice el siguiente URL para acceder a un conjunto de datos específico:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/Impact_NCICLUSTER
/datasources/<ID_origen_datos>/datasets/<ID_conjunto_datos>
Utilice el URL siguiente para acceder a las filas de las tablas:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/Impact_NCICLUSTER
/datasources/<ID_origen_datos>/datasets/<ID_conjunto_datos>/items
Nota: Si el campo de clave de la tabla es un identificador exclusivo, este URL
devuelve todas las filas. Si la tabla contiene campos de clave que no son
identificadores exclusivos, estas filas no se devuelven.
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
219
Ejemplo
Se utiliza el URL siguiente para acceder a conjuntos de datos del origen de datos
defaultobjectserver:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver/datasets
Puede crear los siguientes conjuntos de datos para el origen de datos
defaultobjectserver:
v El tipo de datos ALERTS apunta a alerts.status
v El tipo de datos JOURNALS apunta a alerts.journals
Se utiliza el siguiente URL para acceder al conjunto de datos ALERTS:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver/datasets/ALERTS
Se utiliza el siguiente URL para acceder al ID de elemento para el conjunto de
datos ALERTS:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver/datasets/ALERTS/items
Al crear un tipo de datos en Netcool/Impact, designa como mínimo un campo
como el campo de clave. En este ejemplo, elige Identificador como el campo de
clave para el conjunto de datos ALERTS. Se utiliza el siguiente URL para acceder a
los datos donde el identificador es Impact123:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver/datasets/ALERTS/items/Impact123
Se utiliza el siguiente URL para acceder a las propiedades Serial y Severity de este
suceso:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver/datasets/ALERTS/items/
Impact123?properties=Serial,Severity
Se utiliza el siguiente URL para acceder a los datos de todas las columnas de la fila
donde el identificador es Impact123:
https://example.com:16311/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/defaultobjectserver/datasets/ALERTS/items/Impact123?properties=all
Problemas conocidos con JavaScript y Proveedor de datos de
interfaz de usuario
Cómo resolver problemas conocidos con parámetros de salida de usuario en una
política JavaScript y Proveedor de datos de interfaz de usuario .
Cuando expone un parámetro de salida de usuario dentro de una política de
JavaScript, los datos de parámetro de salida de usuario estarán en blanco cuando
los consulte Proveedor de datos de interfaz de usuario . Para resolver este
problema, es necesario suprimir algunos objetos dentro de la política de JavaScript,
incluyendo funciones de JavaScript y objetos Java, normalmente al final de la
función o la política.
Por ejemplo, es necesario suprimir la función de JavaScript siguiente para que los
parámetros de salida de usuario se devuelvan satisfactoriamente de Proveedor de
datos de interfaz de usuario .
220
Netcool/Impact: Guía de soluciones
function myFunction() {
//.....
}
delete myFunction;
Además, también es necesario suprimir cualesquiera objetos Java creados dentro de
la política de JavaScript. Por ejemplo:
var myString = NewJavaObject("java.lang.String", ["myString"]);
//.....
delete myString;
Si el objeto Java contiene la información que se debe utilizar en un parámetro de
salida de usuario. Es necesario almacenar el valor del objeto Java mediante una
función de política Netcool/Impact para convertir el objeto Java en el tipo de
variable correcto.
var myString = NewJavaObject("java.lang.String", ["myString"]);
//.....
var outputString = String(myString);
delete myString;
Si la variable se devuelve de una invocación de una función o una llamada,
también debe suprimir ese objeto.
Ejecución de políticas y acceso a parámetros de salida
Puede utilizar un URL para ejecutar una política y hacer que los parámetros de
salida de esa política, como variables, objetos o variables generadas por la función
GetByFilter estén disponibles para Proveedor de datos de interfaz de usuario .
Procedimiento
Para ejecutar una política y hacer que los parámetros de salida estén disponibles
para Proveedor de datos de interfaz de usuario , añada executePolicy=true al
URL siguiente:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/Impact_NCICLUSTER/
datasources/IMPACT_POLICY_<nombre_política>/datasets/
<nombre_política>_policy_variables/items?executePolicy=true
Ejemplo
Puede utilizar un URL para ejecutar una política y hacer que el parámetro de
salida esté disponible para Proveedor de datos de interfaz de usuario . Crea una
política denominada Test_Policy.
Añade executePolicy=true al URL siguiente para ejecutar la política Test_Policy y
hacer que los parámetros de salida estén disponibles para Proveedor de datos de
interfaz de usuario :
https://example.com:16311/ibm/tivoli/rest/providers/
Impact_NCICLUSTER/datasources/IMPACT_POLICY_Test_Policy/
datasets/Test_Policy_policy_variables/items?executePolicy=true
URL de Proveedor de datos de interfaz de usuario
Utilice los URL siguientes para acceder a datos de Netcool/Impact disponibles
para Proveedor de datos de interfaz de usuario .
Acceda a Proveedor de datos de interfaz de usuario :
https:/<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
<nombre_proveedor>
Capítulo 14. Utilización de Netcool/Impact Proveedor de datos de interfaz de usuario
221
Acceda a un origen de datos:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER/datasources/<nombre_origen_datos>
Acceda a todos los tipos de datos que pertenecen a un origen de datos
determinado:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER/datasources/<ID_origen_datos>/datasets
Acceda a un conjunto de datos específico:
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER/datasources/<ID_origen_datos>/datasets/
<ID_conjunto_datos>
Acceda a las filas de una tabla de base de datos
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER/datasources/<ID_origen_datos>/datasets/
<ID_conjunto_datos>/items
Ejecute una política y haga que los parámetros de salida estén disponibles para
Proveedor de datos de interfaz de usuario :
https://<nombre_host>:<puerto>/ibm/tivoli/rest/providers/
Impact_NCICLUSTER/ datasources/IMPACT_POLICY_<nombre_política>/
datasets/ <nombre_política>_policy_variables/
items?executePolicy=true
222
Netcool/Impact: Guía de soluciones
Capítulo 15. Utilización de OSLC para Netcool/Impact
Puede utilizar Open Services for Lifecycle Collaboration (OSLC) para
Netcool/Impact para integrar Netcool/Impact con otros proveedores y clientes
OSLC. Netcool/Impact también funciona como un cliente de datos OSLC. Puede
utilizar estas prestaciones para integrar Netcool/Impact con productos y datos
compatibles.
Netcool/Impact 6.1.1.1 contiene una implementación de Open Services for
Lifecycle Collaboration (OSLC) Core Specification versión 2.0. Para obtener más
información sobre OSLC, consulte OSLC Core Specification (http://openservices.net/bin/view/Main/OslcCoreSpecification).
Netcool/Impact no da soporte a diálogos de interfaz de usuario delegados o a
fábricas de creación. Netcool/Impact da soporte sólo a la representación RDF/XML
de OSLC y a los siguientes aspectos de OSLC Core Specification v2:
v Proveedor de servicios OSLC
v Prestación de consulta OSLC
v Forma de recurso OSLC
v Recurso OSLC
Escenarios de uso
Netcool/Impact puede actuar como un proveedor OSLC y un cliente OSLC. Puede
utilizar Netcool/Impact como un adaptador OSLC genérico para otros proveedores
de servicios OSLC y que no sean OSLC.
Formatos de respuesta
Netcool/Impact utiliza el formato RDF/XML para todas las respuestas OSLC, tal
como requiere OSLC Core Specification v2.
Importante: Cuando se visualiza en algunos navegadores web, como Mozilla
Firefox, el RDF/XML en bruto se convierte automáticamente al formato RDF/XML
abreviado, que omite los nodos en blanco. Para obtener más información, consulte
RDF/XML Syntax Specification (http://www.w3.org/TR/REC-rdf-syntax/#sectionSyntax-blank-nodes)
El RDF/XML en bruto y la versión abreviada son semánticamente idénticos. Puede
utilizar Internet Explorer, Mozilla Firefox, la función GetHTTP de Netcool/Impact o
el programa de utilidad curl de Linux para recuperar el XML/RDF en bruto.
Nota: Si trabaja con la GUI de Netcool/Impact en el navegador Mozilla Firefox y
abre simultáneamente una segunda instancia para ver un URL de OSLC, el sistema
le cierra la sesión en la primera instancia. Para evitar este problema, debe crear un
segundo perfil en Mozilla Firefox para ver los URL de OSLC. Para obtener más
información sobre cómo hacerlo, consulte la sección de la ayuda sobre perfiles en
el sitio web de Mozilla (http://support.mozilla.org/en-US/kb/profile-managercreate-and-remove-firefox-profiles).
© Copyright IBM Corp. 2006, 2014
223
Jazz for Service Management
OSLC requiere Netcool/Impact 6.1.1 o superior. OSLC también requiere Jazz for
Service Management, que se empaqueta con Netcool/Impact 6.1.1. Puede utilizar el
instalador proporcionado con Jazz for Service Management para instalarlo por
separado.
Para utilizar OSLC, primero debe instalar el componente Servicios de registro de
Jazz for Service Management. Para obtener más información, consulte
http://pic.dhe.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm.psc.doc_1.1.0/
psc_ic-homepage.html
Introducción a OSLC
Antes de utilizar OSLC para Netcool/Impact, lea esta información sobre los
detalles de esta implementación.
El gráfico siguiente describe un ejemplo de una arquitectura típica de sistema para
OSLC:
La instalación que se ilustra en el gráfico muestra cómo Netcool/Impact utiliza los
servicios de registro de Jazz for Service Management para proporcionar soporte de
vista previa contextual a TBSM. TBSM recupera la lista de proveedores de servicios
de un recurso del servidor donde el componente de Servicios de registro de Jazz
224
Netcool/Impact: Guía de soluciones
de la gestión de servicios se encuentra. TBSM se conecta a un proveedor de
servicios especificado en el sistema de fondo de Netcool/Impact donde se ha
creado el proveedor de servicios. El sistema de fondo se conecta a los orígenes de
datos y políticas que proporcionan datos y generan la información de ventana de
vista previa contextual, incluido el URL que se utiliza para recuperar el contenido
de vista previa contextual. El URL puede ser el frontend de Netcool/Impact que
utiliza las vistas de operador para representar el propio contenido de la ventana de
vista previa contextual.
Recursos e identificadores OSLC
OSLC para Netcool/Impact sigue las especificaciones OSLC respecto a los recursos
e identificadores OSLC. Sin embargo, hay algunos aspectos importantes que se
deben tener en cuenta antes de empezar a utilizar OSLC para Netcool/Impact.
Siguiendo la especificación OSLC, los URI generados por Netcool/Impact en
documentos OSLC son opacos. Los únicos URI válidos son los URI que se
descubren mediante un registro de proveedor de servicios OSLC o desde un
documento OSLC anterior.
Por ejemplo, si el URI para un recurso denominado Person es
http://<servidor>/person, no se puede asumir que http://<servidor>/dog es el
URI correcto para un recurso denominado Dog. Este documento proporciona URI
como ejemplos pero estos no implican URI que funcionen en ningún sistema
determinado.
Todos los URI de Netcool/Impact utilizan el esquema http:// o https://.
Como los URI son opacos, el recurso http://<servidor>/ y el recurso
https://<servidor>/ son dos recursos distintos.
Aunque todos los URI pueden utilizar el esquema http o https, no todos los URI
se pueden resolver como un recurso HTTP.
Si es posible, el término URI se utiliza para indicar identificadores, que se pueden
o no resolver en un documento determinado, y el término URL para hacer
referencia a recursos que se resuelven en un documento.
Puede utilizar autenticación HTTP o HTTPS por seguridad. Si utiliza autenticación
básica HTTP, las credenciales de seguridad están disponible en la red como texto
simple. HTTPS es el método preferido dado que las credenciales de seguridad no
están disponibles como texto simple.
Roles de OSLC
Puede utilizar los roles bsmAdministrator e impactOSLCDataProviderUser para
regular el acceso al proveedor de servicios OSLC.
Se asigna el rol bsmAdministrator al administrador de Netcool/Impact, quien, en la
mayoría de los casos, es el administrador de Tivoli Integrated Portal.
Para añadir usuarios a los roles, utilice el script $IMPACT_HOME/bin/jython/
mapRole.py. Para añadir usuarios o grupos al rol impactOSLCDataProviderUser,
utilice el mandato siguiente:
wsadmin -lang jython -f mapRole.py -A NCI -r impactOSLCDataProviderUser
-g “group1|group2|group3” -u "user1|user2|user3"
Capítulo 15. Utilización de OSLC para Netcool/Impact
225
Nota: Debe utuilizar un único script para añadir el usuario al rol y añadir el rol al
grupo. Si utiliza distintos scripts, la segunda correlación se sobrescribe a primera.
Si utiliza autenticación basada en archivo para los usuarios y grupos, los usuarios
y grupos que se asignan al rol OSLC no se replican automáticamente en el
Servidor Impact. Debe añadir estos roles manualmente. Para añadir los usuarios y
grupos al Servidor Impact, utilice la consola de administración de WebSphere
Application Server disponible en el URL siguiente:
https://<host_servidor_Impact>:9086/ibm/console/logon.jsp
Si utiliza el servidor de objetos o Lightweight Directory Access Protocol (LDAP)
para la autenticación de sus usuarios y grupos, los usuarios y grupos que se
asignan al rol OSLC se replican automáticamente en el Servidor Impact.
Si cambia el registro de usuarios actual, debe reiniciar el servidor WebSphere de
perfiles de Netcool/Impact.
Ejemplo
Puede utilizar el mandato siguiente para añadir el usuario oslcuser al rol
impactOSLCDataProviderUser para un sistema operativo Linux:
/opt/IBM/tivoli/tipv2/profiles/ImpactProfile/bin/wsadmin.sh -lang jython
-f /opt/IBM/tivoli/impact/bin/jython/mapRole.py
-A NCI -r impactOSLCDataProviderUser -u "tipadmin|oslcuser"
Utilización de tipos de datos y OSLC
Puede utilizar la siguiente información para integrar el proveedor OSLC de
Netcool/Impact y tipos de datos.
No puede utilizar un nombre de visualización que contenga caracteres especiales
con OSLC. Debe especificar un nombre de visualización que no contenga caracteres
especiales. Para editar el nombre de visualización:
1. Abra Netcool/Impact y seleccione Configuración del sistema >
Automatización de sucesos > Modelo de datos.
2. Pulse en el origen de datos al que pertenece el tipo de datos.
3. Seleccione la fila que contiene el nombre de visualización que utiliza caracteres
especiales y pulse Editar fila actual.
4. Sustituya los caracteres especiales en el nombre de visualización y guarde los
cambios.
Acceso a tipos de datos de Netcool/Impact como recursos
OSLC
Para permitir que Netcool/Impact acceda a un tipo de datos como un recurso
OSLC, debe añadir el tipo de datos al archivo NCI_oslc.props en
<DIR_INICIO_IMPACT>/etc/.
Acerca de esta tarea
En este escenario, los recursos OSLC que devuelve la consulta son elementos de
datos de Netcool/Impact, que son filas de la base de datos subyacente.
226
Netcool/Impact: Guía de soluciones
Procedimiento
1. Añada una propiedad para cada tipo de datos de Netcool/Impact que desee
que esté disponible como recursos OSLC al archivo NCI_oslc.props en
<DIR_INICIO_IMPACT>/etc/. NCI es el nombre predeterminado del Servidor
Impact. Añada la propiedad con el formato siguiente:
oslc.data.<componente_vía_acceso>=<nombre_tipo_datos>
donde <componente_vía_acceso> es el componente de vía de acceso del URI
que desea utilizar, y <nombre_tipo_datos> es el nombre del tipo de datos que
desea utilizar.
Por ejemplo, si añade oslc.data.staff=Employees al archivo de propiedades,
puede utilizar el URL siguiente para acceder al tipo de datos Employees:
http://example.com:9080/NCI_NCICLUSTER_oslc/data/staff
donde NCI es el nombre de Servidor Impact predeterminado y NCICLUSTER es el
nombre de clúster de Netcool/Impact.
2. Reinicie el Servidor Impact.
Ejemplo
El ejemplo siguiente muestra cómo crear un tipo de datos para una tabla de DB2 y
cómo añadir la información al archivo NCI_oslc.props.
En este ejemplo, la tabla de DB2 tiene información para una tabla denominada
People:
db2 => describe table People
Nombre columna
------------------------------ID
FIRST_NAME
LAST_NAME
COMPANY
BIRTHDAY
Esq. tipo
datos
--------SYSIBM
SYSIBM
SYSIBM
SYSIBM
SYSIBM
Longitud
Nombre tipo datos columna
Esc.
------------------- ---------- ----INTEGER
4
0
VARCHAR
255
0
VARCHAR
255
0
VARCHAR
255
0
DATE
4
0
Nulos
-----Sí
Sí
Sí
Sí
Sí
1. Cree un tipo de datos de Netcool/Impact que represente la información en la
tabla de DB2 y añada la información como campos al tipo de datos:
a. En el árbol de navegación, expanda Configuración del sistema >
Automatización de sucesos > Modelo de datos, para abrir el separador
Modelo de datos.
b. Seleccione el origen de datos para el que desea crear un tipo de datos, pulse
con el botón derecho en el origen de datos y pulse Nuevo tipo de datos.
c. En el campo Nombre de tipo de datos, proporcione un nombre al tipo de
datos, por ejemplo, Employees.
d. Seleccione el Nombre de origen de datos del menú de lista, en este ejemplo
DB2.
e. Seleccione el recuadro de selección Habilitado para activar el tipo de datos
de forma que esté disponible para su uso en políticas.
f. Seleccione el nombre de Tabla base en el menú de lista.
g. Pulse Renovar para añadir los campos de la tabla de ejemplo de DB2 al tipo
de datos.
h. Seleccione como mínimo un Campo de clave. Los campos de clave son
campos cuyo valor o combinación de valores se puede utilizar para
identificar elementos de datos exclusivos en un tipo de datos.
i. Pulse Guardar.
Capítulo 15. Utilización de OSLC para Netcool/Impact
227
2. Especifique el tipo de datos en el archivo NCI_oslc.props, por ejemplo,
oslc.staff=Employees.
3. Reinicie el Servidor Impact.
Recuperación de recursos OSLC que representan elementos
de datos de Netcool/Impact
Las colecciones de recursos OSLC se utilizan para representar elementos de datos
de Netcool/Impact. Se utiliza un URL para recuperar estas colecciones de recursos.
Antes de empezar
Utilice sólo tipos de datos compatibles con métodos recomendados de base de
datos estándar. Los campos de clave deben ser exclusivos, no nulos y no deben
cambiar con el tiempo. Si los valores de clave cambian, el URI de OSLC también
cambia.
Procedimiento
Utilice un URL como el siguiente para recuperar las colecciones de recursos OSLC
que representan los elementos de datos:
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/data/<tipo_datos>
donde <tipo_datos> está definido en el archivo NCI_oslc.props.
Resultados
Netcool/Impact correlaciona las filas de la base de datos con recursos OSLC y
correlaciona las columnas con propiedades de recursos OSLC. El URL para cada
elemento de datos utiliza los valores de clave en forma de parámetros de matriz
HTTP para identificar de forma exclusiva el elemento de datos. Los valores de
clave se definen en la configuración de tipo de datos de Netcool/Impact. Por
ejemplo, un elemento de datos con varias claves resultaría en un URI como el
siguiente:
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/data/people/item;
<clave1=valor1>;<clave2=valor2>
Cada valor no nulo de la base de datos se representa como un triple RDF que
consta del elemento de datos, el valor y la propiedad derivada del nombre de
columna. Los valores nulos se representan en OSLC mediante la ausencia de la
propiedad derivada del nombre de columna.
Ejemplo
Por ejemplo, puede utilizar el siguiente URL para acceder al tipo de datos
employee configurado para utilizar el componente de vía de acceso people:
http://example.com:9080/NCICLUSTER_NCI_oslc/data/people/
El URL devuelve una colección de recursos OSLC que se basan en las filas de la
tabla de base de datos. El ejemplo siguiente muestra los resultados de dos
elementos de datos que pertenecen al tipo de datos employee:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:people="http://jazz.net/ns/ism/event/impact#data/people/"
228
Netcool/Impact: Guía de soluciones
xmlns:impact="http://jazz.net/ns/ism/event/impact#/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:oslc="http://open-services.net/ns/core#">
<oslc:ResponseInfo rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/people">
<rdfs:member>
<people:people rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc
/data/people/item;ID=2">
<people:ID>2</people:ID>
<people:FIRST_NAME>George</people:FIRST_NAME>
<people:LAST_NAME>Friend</people:LAST_NAME>
</people:people>
</rdfs:member>
<rdfs:member>
<people:people rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc
/data/people/item;ID=1">
<people:FIRST_NAME>Michael</people:FIRST_NAME>
<people:LAST_NAME>Ryan</people:LAST_NAME>
<people:ID>1</people:ID>
</people:people>
</rdfs:member>
<oslc:totalCount>2</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
Visualización de resultados para identificador de clave
exclusiva
A cada recurso que se devuelve se asigna una clave exclusiva que identifica el
recurso en los resultados y que tiene determinada información asociada. Puede
utilizar un URL para visualizar la información asociada a un identificador
específico.
Ejemplo
Utiliza el URL siguiente para visualizar la información asociada a una clave de
recurso determinada, en este caso 1010:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/example/
myGetFilter/item;ID=1010
Este URL devuelve los resultados siguientes:
<rdf:RDF>
<examplePolicy:myGetFilter rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/
policy/example/myGetFilter/item;ID=1010">
<myGetFilter:NAME>Brian Doe</myGetFilter:NAME>
<myGetFilter:STARTED>1980-08-11</myGetFilter:STARTED>
<myGetFilter:MANAGER>1001</myGetFilter:MANAGER>
<myGetFilter:ID>1010</myGetFilter:ID>
<myGetFilter:DEPT>Documentation</myGetFilter:DEPT>
</examplePolicy:myGetFilter>
</rdf:RDF>
Formas de recursos OSLC para tipos de datos
La forma de recurso OSLC representa la estructura del esquema SQL que está
utilizando el tipo de datos Netcool/Impact. Netcool/Impact produce
automáticamente una forma de recurso OSLC para los tipos de datos especificados,
extrayendo los datos de la tabla de base de datos subyacente.
Tabla 67. Correlación con propiedades de forma de recurso OSLC
Parámetros de forma de recurso OSLC
Se correlaciona con Netcool/Impact
dcterms:title
Nombre de tipo de datos
Capítulo 15. Utilización de OSLC para Netcool/Impact
229
Tabla 67. Correlación con propiedades de forma de recurso OSLC (continuación)
Parámetros de forma de recurso OSLC
Se correlaciona con Netcool/Impact
oslc:describes
http://jazz.net/ns/ism/events/impact/
data/<componente_vía_acceso>
Tabla 68. Propiedades de OSLC generadas por los parámetros de tipo de datos de
Netcool/Impact
Propiedad OSLC
Tipo de datos de Netcool/Impact
oslc:readOnly
Siempre 'true'
oslc:valueType
Para obtener más información, consulte la
publicación Tabla 69.
dcterms:title
Nombre de visualización de la columna
oslc:propertyDefinition
http://jazz.net/ns/ism/events/impact/
data/
<componente_vía_acceso>#<nombre_columna>
oslc:occurs
oslc:ZeroOrOne
oslc:name
Nombre de columna
dcterms:description
Descripción de la columna
Tabla 69. Correlación de tipos de datos OSLC:
Tipos de columna de Netcool/Impact
Tipos de valores de OSLC
Serie
http://www.w3.org/2001/XMLSchema#string
Entero, largo
http://www.w3.org/2001/XMLSchema#integer
Indicación de fecha y hora
http://www.w3.org/2001/
XMLSchema#dateTime
Flotante
http://www.w3.org/2001/XMLSchema#float
Doble
http://www.w3.org/2001/XMLSchema#double
Booleano
http://www.w3.org/2001/XMLSchema#boolean
Cualquier otro
http://www.w3.org/2001/XMLSchema#string
Visualización de la forma del recurso OSLC para el tipo de datos
La forma del recurso OSLC para un tipo de datos se visualiza en la propiedad
oslc:ResourceShape.
Ejemplo
El ejemplo siguiente contiene la forma del recurso OSLC para el tipo de datos
Employees que se ha creado para una tabla de DB2 denominada People en el
formato RDF abreviado.
El URI de recurso es:
http://<host>:9080/NCICLUSTER_NCI_oslc/data/resouceShapes/staff
El URI devuelve el RDF siguiente:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
230
Netcool/Impact: Guía de soluciones
xmlns:oslc="http://open-services.net/ns/core#">
<oslc:ResourceShape rdf:about=
"http://<host>:9080/NCICLUSTER_NCI_oslc/data/resourceShapes/staff">
<dcterms:title>Employees/dcterms:title>
<oslc:property>
<oslc:Property>
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource=
"http://www.w3.org/2001/XMLSchema#string"/>
<dcterms:title>LAST_NAME</dcterms:title>
<oslc:propertyDefinition rdf:resource=
"http://jazz.net/ns/ism/events/impact/data/staff/LAST_NAME"/>
<oslc:occurs rdf:resource=
"http://open-services.net/ns/core#Exactly-one"/>
<oslc:name>LAST_NAME</oslc:name>
<dcterms:description>LAST_NAME</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property>
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource=
"http://www.w3.org/2001/XMLSchema#integer"/>
<dcterms:title>ID</dcterms:title>
<oslc:propertyDefinition rdf:resource=
"http://jazz.net/ns/ism/events/impact/data/staff/ID"/>
<oslc:occurs rdf:resource=
"http://open-services.net/ns/core#Exactly-one"/>
<oslc:name>ID</oslc:name>
<dcterms:description>ID</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property>
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource=
"http://www.w3.org/2001/XMLSchema#string"/>
<dcterms:title>FIRST_NAME</dcterms:title>
<oslc:propertyDefinition rdf:resource=
"http://jazz.net/ns/ism/events/impact/data/staff/FIRST_NAME"/>
<oslc:occurs rdf:resource=
"http://open-services.net/ns/core#Exactly-one"/>
<oslc:name>FIRST_NAME</oslc:name>
<dcterms:description>FIRST_NAME</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property>
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource=
"http://www.w3.org/2001/XMLSchema#string"/>
<dcterms:title>COMPANY</dcterms:title>
<oslc:propertyDefinition rdf:resource=
"http://jazz.net/ns/ism/events/impact/data/staff/COMPANY"/>
<oslc:occurs rdf:resource=
"http://open-services.net/ns/core#Exactly-one"/>
<oslc:name>COMPANY</oslc:name>
<dcterms:description>COMPANY</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
Capítulo 15. Utilización de OSLC para Netcool/Impact
231
<oslc:Property>
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource=
"http://www.w3.org/2001/XMLSchema#dateTime"/>
<dcterms:title>BIRTHDAY</dcterms:title>
<oslc:propertyDefinition rdf:resource=
"http://jazz.net/ns/ism/events/impact/data/staff/BIRTHDAY"/>
<oslc:occurs rdf:resource=
"http://open-services.net/ns/core#Exactly-one"/>
<oslc:name>BIRTHDAY</oslc:name>
<dcterms:description>BIRTHDAY</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:describes rdf:resource=
"http://jazz.net/ns/ism/events/impact/data/staff"/>
</oslc:ResourceShape>
</rdf:RDF>
Configuración de URI personalizados para tipos de datos y
parámetros de salida de usuario
Netcool/Impact puede actuar como proxy a sistemas que no sean OSLC. Para
facilitar esta función, puede utilizar Netcool/Impact para representar datos de una
base de datos como recursos OSLC.
Acerca de esta tarea
Utilice los URI personalizados para representar las columnas de tipo de datos.
Debe añadir estos URI personalizados al archivo de configuración OSLC para
facilitar la correlación.
Restricción:
Todos los URI de espacio de nombres que especifique deben incluir http. No
puede utilizar https.
Procedimiento
Añada la sentencia siguiente al archivo NCI_oslc.props para especificar un URI de
tipo determinado para un tipo de datos:
oslc.data.<vía_acceso>.uri=<uri>
Opcionalmente, puede añadir la sentencia siguiente para especificar un nombre de
columna:
oslc.data.<vía_acceso>.<nombre_columna>.uri=<uri>
También puede añadir la sentencia siguiente para especificar un prefijo
determinado a un espacio de nombres:
oslc.data.<vía_acceso>.namespaces.<prefijo>=<uri>
Si no especifica un prefijo, el RDF que se devuelve automáticamente muestra el
prefijo generado para el espacio de nombres.
Ejemplo
El siguiente ejemplo de código muestra cómo se puede representar una tabla de
empleados en una especificación de amigo de un amigo (FOAF) añadiendo las
siguientes sentencias al archivo NCI_oslc.props:
232
Netcool/Impact: Guía de soluciones
oslc.data.staff=Employees
oslc.data.staff.uri=http://xmlns.com/foaf/0.1/Person
oslc.data.staff.NAME.uri=http://xmlns.com/foaf/0.1/name
oslc.data.staff.BIRTHDAY.uri=http://xmlns.com/foaf/0.1/birthday
oslc.data.staff.PHOTO.uri=http://xmlns.com/foaf/0.1/img
oslc.data.staff.STAFFPAGE.uri=http://xmlns.com/foaf/0.1/homepage
oslc.data.staff.EMAIL.uri=http://xmlns.com/foaf/0.1/mbox
Cuando el usuario consulta el recurso OSLC http://example.com:9080/
NCICLUSTER_NCI_oslc/data/staff/jdoe, se devuelve el RDF siguiente.
Nota: El RDF de ejemplo es una aproximación. Además, como el usuario no ha
especificado el prefijo y el espacio de nombres, el RDF muestra automáticamente el
prefijo generado para el espacio de nombres. En este ejemplo, el espacio de
nombres es j.0 y el prefijo es http://xmlns.com/foaf/0.1/.
<?xml version="1.0"?>
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.0="http://xmlns.com/foaf/0.1/"
xmlns:impact="http://jazz.net/ns/ism/events/impact#/"
xmlns:oslc="http://open-services.net/ns/core#"">
<j.0:Person rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/data/staff/jdoe"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<j.0:name>John Doe</foaf:name>
<j.0:homepage rdf:resource="http://example.com" />
<j.0:mbox rdf:resource="john.doe@example.com" />
<j.0:img rdf:resource="http://example.com/images/jdoe.jpg"/>
<j.0:birthday>19770801</foaf:birthday>
</foaf:Person>
</rdf:RDF>
El siguiente ejemplo de código muestra cómo especificar un prefijo determinado
para un espacio de nombres. En primer lugar, debe especificar el prefijo y el
espacio de nombres:
oslc.data.staff.namespaces.foaf=http://xmlns.com/foaf/0.1/
Cuando el usuario consulta el recurso OSLC http://example.com:9080/
NCICLUSTER_NCI_oslc/data/staff/jdoe, se devuelve el RDF siguiente.
Nota: El RDF de ejemplo es una aproximación.
<?xml version="1.0"?>
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:impact="http://jazz.net/ns/ism/events/impact#/"
xmlns:oslc="http://open-services.net/ns/core#"">
<foaf:Person rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/data/staff/jdoe"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<foaf:name>John Doe</foaf:name>
<foaf:homepage rdf:resource="http://example.com" />
<foaf:mbox rdf:resource="john.doe@example.com" />
<foaf:img rdf:resource="/images/jdoe.jpg" />
<foaf:birthday>19770801</foaf:birthday>
</foaf:Person>
</rdf:RDF>
Capítulo 15. Utilización de OSLC para Netcool/Impact
233
Utilización del proveedor de servicios OSLC
Para permitir que otras aplicaciones que sean consumidoras de OSLC utilicen
datos OSLC de Netcool/Impact, debe crear el proveedor de servicios OSLC,
registrar el proveedor de servicios con el Servicio de registro proporcionado por
Jazz for Service Management y registrar los recursos OSLC en el proveedor de
servicios OSLC.
Para permitir que otras aplicaciones que sean consumidoras de OSLC utilicen
datos OSLC de Netcool/Impact, debe completar las tareas siguientes:
1. Cree el proveedor de servicios OSLC. Consulte “Creación de proveedores de
servicios OSLC en Netcool/Impact”.
2. Registre el proveedor de servicios OSLC en el Servicio de registro
proporcionado por Jazz for Service Management. Consulte “Registro de
proveedores de servicios OSLC en Netcool/Impact” en la página 236.
3. Registre los recursos OSLC en el proveedor de servicios OSLC. Consulte
“Registro de recursos OSLC” en la página 238.
El Servicio de registro es un servicio de integración que forma parte del producto
Jazz for Service Management. El Servicio de registro contiene dos directorios, el
registro de proveedor y el registro de recurso. Como parte de la implementación
de OSLC para Netcool/Impact, debe registrar el proveedor de servicios y los
recursos OSLC en el registro del recurso.
Para obtener más información sobre el Servicio de registro y Jazz para la gestión
de servicios, consultehttp://pic.dhe.ibm.com/infocenter/tivihelp/v3r1/topic/
com.ibm.psc.doc_1.1.0/psc_ic-homepage.html.
Si está registrando los recursos OSLC en el Servicio de registro proporcionado por
Jazz for Service Management, debe utilizar recursos y modelos RDF que coincidan
con las especificaciones definidas en el vocabulario de tipo de recurso común
(CRTV). Para obtener más información, consulte la sección sobre el vocabulario de
tipo de recurso común en la guía de Servicios de registro (https://www.ibm.com/
developerworks/mydeveloperworks/wikis/home?lang=en#/wiki/
W8b1151be2b42_4819_998e_f7de7db7bfa2/page/Milestone%20documentation).
Los ejemplos de esta documentación utilizan el espacio de nombres crtv. Para
integrar el proveedor de servicios OSLC de Netcool/Impact con el Servicio de
registro proporcionado por Jazz for Service Management, debe utilizar el espacio
de nombres crtv. Si no desea integrar el proveedor de servicios OSLC con el
Servicio de registro proporcionado por Jazz for Service Management, debe cambiar
el espacio de nombres. Para obtener más información sobre cómo definir un
espacio de nombres personalizado, consulte “Configuración de URI personalizados
para tipos de datos y parámetros de salida de usuario” en la página 232.
Creación de proveedores de servicios OSLC en
Netcool/Impact
Para utilizar Netcool/Impact para registrar recursos OSLC en el servicio de
registro proporcionado por Jazz for Service Management, debe crear un proveedor
de servicios OSLC en Netcool/Impact. Para crear un proveedor de servicios OSLC,
actualice el archivo de configuración NCI_oslc.props.
234
Netcool/Impact: Guía de soluciones
Acerca de esta tarea
La definición de proveedor de servicios se basa en la colección de recursos OSLC
con la que está asociada. Una colección de recursos OSLC puede compartir un
único proveedor o puede utilizar varios proveedores.
Aunque puede utilizar funciones de políticas RDF para crear manualmente el
proveedor de servicios, normalmente utiliza Netcool/Impact para generar
automáticamente un proveedor de servicios.
Procedimiento
1. Para definir un proveedor de servicios, añada la sentencia siguiente al archivo
de configuración NCI_oslc.props:
oslc.<tipo>.<vía_acceso>.provider=<nombre_proveedor>
oslc.provider.<nombre_proveedor>.title=<título>
oslc.provider.<nombre_proveedor>.description=<descripción>
Por ejemplo:
oslc.data.computer=RESERVATION
oslc.data.computer.provider=provider01
...
oslc.provider.provider01.title=Customer-x Product-y OSLC Service Provider
oslc.provider.provider01.description=Customer-x Product-y OSLC Service Provider
2. Los recursos OSLC pueden compartir un servicio OSLC o pueden utilizar
distintos servicios OSLC. Esto lo controla el nombre de dominio especificado.
Para especificar un dominio y un título para un recurso, añada la sentencia
siguiente al archivo de configuración NCI_oslc.props:
oslc.<tipo>.<vía_acceso>.provider.domain=<URI_dominio>
oslc.<tipo>.<vía_acceso>.provider.title=<título>
Por ejemplo:
oslc.data.computer=RESERVATION
...
oslc.data.computer.provider=provider01
oslc.data.computer.provider.domain=http://domainx/
oslc.data.computer.provider.title=Computer Title
Si especifica el mismo proveedor de servicios y nombre de dominio para dos
recursos OSLC, ambos recursos comparten un único servicio OSLC. Si dos
recursos utilizan el mismo proveedor de servicios pero tiene dominios distintos,
los recursos utilizan distintos servicios OSLC. Si no se especifica ningún
dominio, el sistema utiliza el URI de espacio de nombres predeterminado de
Netcool/Impact para esta vía de acceso.
3. Utilice este URL para ver los proveedores de servicios:
https://<servidor>:9081/NCICLUSTER_NCI_oslc/provider
Los resultados se devuelven como un RDF. Por ejemplo:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:oslc="http://open-services.net/ns/core#">
<rdf:Description rdf:about="https://<servidor>:9081/NCICLUSTER_NCI_oslc/
provider">
<rdfs:member>
<oslc:ServiceProvider rdf:about="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/provider/provider02">
<oslc:service>
Capítulo 15. Utilización de OSLC para Netcool/Impact
235
<oslc:Service>
<oslc:queryCapability>
<oslc:QueryCapability>
<dcterms:title>Query Capability - http://policy.js/xmlns/
directSQL</dcterms:title>
<oslc:resourceType rdf:resource="http://policy.js/xmlns/
directSQL"/>
<oslc:resourceShape rdf:resource="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/policy/resourceShapes/testBry/myDirectSQL1"/>
<oslc:queryBase rdf:resource="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/policy/testBry/myDirectSQL1"/>
</oslc:QueryCapability>
</oslc:queryCapability>
<oslc:domain rdf:resource="http://domainy/"/>
</oslc:Service>
</oslc:service>
</oslc:ServiceProvider>
</rdfs:member>
<rdfs:member>
<oslc:ServiceProvider rdf:about="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/provider/provider01">
<dcterms:title>Customer-x Product-y OSLC Service Provider
</dcterms:title>
<dcterms:description>Customer-x Product-y OSLC Service Provider
</dcterms:description>
<oslc:service>
<oslc:Service>
<oslc:queryCapability>
<oslc:QueryCapability>
<dcterms:title>Query Capability - http://jazz.net/ns/ism/events/
impact/data/managers</dcterms:title>
<oslc:resourceType rdf:resource="http://jazz.net/ns/ism/
event/impact/data/managers"/>
<oslc:resourceShape rdf:resource="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/data/resourceShapes/managers"/>
<oslc:queryBase rdf:resource="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/data/managers"/>
</oslc:QueryCapability>
</oslc:queryCapability>
<oslc:queryCapability>
<oslc:QueryCapability>
<dcterms:title>Managers Title</dcterms:title>
<oslc:resourceType rdf:resource="http://open-services.net/ns/
crtv#ComputerSystem"/>
<oslc:resourceShape rdf:resource="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/data/resourceShapes/computer"/>
<oslc:queryBase rdf:resource="https://<ip del servidor>:9081/
NCICLUSTER_NCI_oslc/data/computer"/>
</oslc:QueryCapability>
</oslc:queryCapability>
<oslc:domain rdf:resource="http://domainx/"/>
</oslc:Service>
</oslc:service>
</oslc:ServiceProvider>
</rdfs:member>
</rdf:Description>
</rdf:RDF>
Registro de proveedores de servicios OSLC en Netcool/Impact
Para especificar la información de servidor de registro en el archivo
NCI_oslc.props, añada la propiedad de servidor de registro OSLC al archivo
NCI_oslc.props.
236
Netcool/Impact: Guía de soluciones
Antes de empezar
Para especificar la información de servidor de registro en el archivo
NCI_oslc.props, primero debe crear un proveedor de servicios. Consulte “Creación
de proveedores de servicios OSLC en Netcool/Impact” en la página 234.
Procedimiento
1. Especifique el servidor de registro, nombre de usuario y contraseña. Si el
servidor de registro no requiere un nombre de usuario y contraseña, no
necesita especificarlos.
Para especificar el servidor de registro, añada la sentencia siguiente al archivo
NCI_oslc.props:
impact.oslc.registry.server=<RegistryserverproviderregistryURL>
donde <URL_registro_proveedor_servidor_registro> es el URL de registro del
proveedor de servidor de registro.
Para especificar el usuario de servidor de registro, añada la sentencia siguiente
al archivo NCI_oslc.props:
impact.oslc.registry.username=<OSLCproviderregistryserver
username>
Para especificar la contraseña del servidor de registro, añada la sentencia
siguiente al archivo NCI_oslc.props:
impact.oslc.registry.password=<OSLCproviderregistryserver
password>
donde <contraseña_servidor_registro_proveedor_OSLC> es la contraseña del
servidor de registro de proveedor OSLC en formato cifrado.
Para localizar el formato cifrado de la contraseña, ejecute el programa
nci_crypt en el directorio impact/bin. Por ejemplo:
nci_crypt password
{aes}DE865CEE122E844A2823266AB339E91D
En este ejemplo, el parámetro de contraseña utiliza la serie completa,
{aes}DE865CEE122E844A2823266AB339E91D, como contraseña.
2. Reinicie Netcool/Impact para registrar los proveedores de servicios. Tras el
reinicio, Netcool/Impact registra los proveedores de servicios en el registro de
servicio. Si el proveedor de servicios se ha registrado satisfactoriamente, los
recursos pertenecientes al proveedor de servicios contienen una nueva
propiedad, oslc:serviceProvider. Se visualiza la propiedad
oslc:serviceProvider al ir al URI que contiene los recursos asociados con el
proveedor.
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:RESERVATION="http://jazz.net/ns/ism/events/impact/data/computer/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:crtv="http://open-services.net/ns/crtv#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/events/impact/">
<crtv:ComputerSystem rdf:about="http://<servidor_impact>:9080/NCICLUSTER_NCI_oslc/
data/computer/item;ID=4">
<crtv:serialNumber>IBM00003SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://<servidor-registro>:9080/oslc/
providers/6015"/>
<RESERVATION:RESERVED_DATE>2012-07-16</RESERVATION:RESERVED_DATE>
<RESERVATION:RESERVED_BY>Michael Morton</RESERVATION:RESERVED_BY>
Capítulo 15. Utilización de OSLC para Netcool/Impact
237
<RESERVATION:RELEASE_DATE>2013-03-06</RESERVATION:RELEASE_DATE>
<RESERVATION:ID>4</RESERVATION:ID>
</crtv:ComputerSystem>
</rdf:RDF>
3. Registre el recurso en el servidor de registro. Netcool/Impact no registra
automáticamente recursos. Consulte “Registro de recursos OSLC”.
Registro de recursos OSLC
Netcool/Impact no registra automáticamente recursos OSLC en el registro de
servicios.
Acerca de esta tarea
Si está registrando recursos OSLC en el Servicio de registro proporcionado por Jazz
for Service Management, debe utilizar recursos y modelos RDF que coincidan con
las especificaciones del vocabulario de tipo de recurso común (CRTV). Para obtener
más información, consulte la sección sobre el vocabulario de tipo de recurso común
en la guía de Servicios de registro (http://pic.dhe.ibm.com/infocenter/tivihelp/
v3r1/topic/com.ibm.psc.doc_1.1.0/psc_ic-homepage.html).
Si desea ver el registro de recurso para recursos OSLC que registra en el Servicio
de registro proporcionado por Jazz for Service Management, debe incluir el espacio
de nombres crtv en el URL.
Procedimiento
Para registrar recursos OSLC, puede utilizar uno de los dos métodos siguientes:
v Utilice la función de políticas RDFRegister en una política para registrar el
recurso. Para obtener más información, consulte “RDFRegister” en la página 243.
v Utilice la función de políticas GetHTTP para realizar una función HTTP POST en
el recurso o lista de miembros de recurso. Debe definir el parámetro Method
como POST. También puede utilizar la sintaxis de consulta de OSLC para limitar
las propiedades registradas como parte del recurso.
Resultados
Tras ejecutar la política que contiene la función de políticas, Netcool/Impact
intenta registrar los miembros de lista de recursos o recurso en la función de
políticas.
Netcool/Impact devuelve también el estado de respuesta, la cabecera de ubicación
y el texto del cuerpo del servidor de registro al cliente. La cabecera de ubicación
visualiza la ubicación del registro de recursos para cada recurso que se ha
registrado. El contenido del cuerpo incluido en la respuesta especifica la ubicación
de cada registro para cada recurso que se ha registrado.
Si se registra correctamente un único recurso, el sistema visualiza un mensaje
Código de estado 201 (Creado). Si se registran varios recursos correctamente, el
sistema visualiza un mensaje Código de estado 200 (Correcto).
Cuando registra varios recursos, Netcool/Impact también devuelve las cabeceras
siguientes y el texto del cuerpo de la respuesta del servidor de registro al cliente:
238
Netcool/Impact: Guía de soluciones
v NextPage: si existe una página siguiente de recursos, la cabecera contiene el URI
de ubicación del siguiente conjunto de recursos. Si no existe ninguna página
siguiente, la respuesta no contiene esta cabecera.
v TotalCount: número total de recursos en todas las páginas. Esta cabecera se
devuelve cuando registra varios recursos.
El registro correcto de un recurso OSLC genera dos registros. Se crea un registro en
el registro de recurso. También se crea un registro de recurso y este registro está
disponible mediante el URI de recurso.
Para ver los registros del registro de recurso utilizados por el Servicio de registro,
añada /rr/registration/collection al URI. Por ejemplo:
http://example.com:9080/oslc/rr/registration/collection
Para ver los recursos registrados para un proveedor de servicios, como el Servicio
de registro, añada /rr/collection al URL del Servicio de registro. Por ejemplo:
http://example.com:9080/oslc/rr/collection?oslc.select=*
Si se registra el mismo recurso en dos instancias distintas porque pertenecen a dos
proveedores de servicios distintos, se crean dos registros pero sólo un único
registro de recurso y está disponible mediante un único URI de recurso.
Si está integrando OSLC con el Servicio de registro y los recursos OSLC no se
visualizan en esta colección, compruebe que los recursos utilizados coincidan con
las directrices de modelado y utilicen el vocabulario de tipo de recurso común
(CRTV). Compruebe también que el URL del recurso contenga el espacio de
nombres crtv.
Ejemplo de un único recurso
Por ejemplo, considere el recurso que se encuentra en el URL siguiente:
http://<servidor_Impact>:9080/NCICLUSTER_NCI_oslc/data/
computer/item;ID=4
Esto devuelve el siguiente RDF:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:RESERVATION="http://jazz.net/ns/ism/event/impact/
data/computer/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:crtv="http://open-services.net/ns/crtv#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#">
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>:9080/
NCICLUSTER_NCI_oslc/data/computer/item;ID=4">
<crtv:serialNumber>IBM00003SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://
<servidor_registro>:9080/oslc/providers/6015"/>
<RESERVATION:RESERVED_DATE>2012-07-16</RESERVATION:RESERVED_DATE>
<RESERVATION:RESERVED_BY>Michael Morton</RESERVATION:RESERVED_BY>
<RESERVATION:RELEASE_DATE>2013-03-06</RESERVATION:RELEASE_DATE>
<RESERVATION:ID>4</RESERVATION:ID>
</crtv:ComputerSystem>
</rdf:RDF>
Utilice la sintaxis de consulta en el URL para limitar las propiedades a
crtv:serialNumber, crtv:model, crtv:manufacturer y oslc:serviceProvider:
Capítulo 15. Utilización de OSLC para Netcool/Impact
239
http://<servidor_Impact>:9080/NCICLUSTER_NCI_oslc/data/computer/
item;ID=4?oslc.properties=crtv:serialNumber,oslc:serviceProvider,
crtv:manufacturer,crtv:model
Este URL devuelve el siguiente RDF:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:RESERVATION="http://jazz.net/ns/ism/event/impact/data/
computer/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:crtv="http://open-services.net/ns/crtv#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#">
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>:9080/
NCICLUSTER_NCI_oslc/data/computer/item;ID=4">
<crtv:serialNumber>IBM00003SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://<servidor_registro>:9080/
oslc/providers/6015"/>
</crtv:ComputerSystem>
</rdf:RDF>
Utilice la política siguiente para llevar a cabo una función POST en el URI del
recurso. La función POST registra el recurso con el registro de recurso asociado con
la propiedad serviceProvider que se define en el recurso.
Log("SCR_RegisterSystems: Entering policy");
HTTPHost="impactserver";
HTTPPort=9080;
Protocol="http";
Path="/NCICLUSTER_NCI_oslc/data/computer/item;ID=4?oslc.properties
=crtv:serialNumber,
oslc:serviceProvider,crtv:manufacturer,crtv:model";
ChannelKey="tom";
//Method="GET"; //Retrieves the Systems
Method="POST"; //Registers the Systems
AuthHandlerActionTreeName="";
FilesToSend=newobject();
HeadersToSend=newobject();
HttpProperties=newobject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="password";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName,
null, FilesToSend, HeadersToSend, HttpProperties);
Log(CurrentContext());Log("SCR_RegisterSystems: HTTP Response: " + x);
Una vez que se haya ejecutado la política y que se haya registrado el recurso, la
ubicación del registro de inscripción en el servidor de Servicios de registro se
detalla en la cabecera Location.
Registro de varios recursos
Puede utilizar también Netcool/Impact para registrar varios recursos en el registro
de recursos.
Ejemplo
El URL siguiente contiene un conjunto de miembros de recurso para registrar:
http://<servidor_Impact>:9080/NCICLUSTER_NCI_oslc/data/computer/
Este URL devuelve el siguiente RDF:
240
Netcool/Impact: Guía de soluciones
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:RESERVATION="http://jazz.net/ns/ism/event/impact/data/computer/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:crtv="http://open-services.net/ns/crtv#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#">
<rdf:Description rdf:about="http://<servidor_impact>:9080/
NCICLUSTER_NCI_oslc/data/computer/">
<rdfs:member>
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>:
9080/NCICLUSTER_NCI_oslc/data/computer/item;ID=4">
<crtv:serialNumber>IBM00003SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://<registry-server>:9080/
oslc/providers/6015"/>
<RESERVATION:RESERVED_DATE>2012-07-16</RESERVATION:RESERVED_DATE>
<RESERVATION:RESERVED_BY>Michael Morton</RESERVATION:RESERVED_BY>
<RESERVATION:RELEASE_DATE>2013-03-06</RESERVATION:RELEASE_DATE>
<RESERVATION:ID>4</RESERVATION:ID>
</crtv:ComputerSystem>
</rdfs:member>
<rdfs:member>
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>
:9080/NCICLUSTER_NCI_oslc/data/computer/item;ID=3">
<crtv:serialNumber>IBM00002SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://
<servidor_registro>:9080/oslc/providers/6015"/>
<RESERVATION:RESERVED_DATE>2011-02-20</RESERVATION:RESERVED_DATE>
<RESERVATION:RESERVED_BY>Sandra Burton</RESERVATION:RESERVED_BY>
<RESERVATION:RELEASE_DATE>2013-01-30</RESERVATION:RELEASE_DATE>
<RESERVATION:ID>3</RESERVATION:ID>
</crtv:ComputerSystem>
</rdfs:member>
<rdfs:member>
<crtv:ComputerSystem rdf:about="http://<servidor_impact>:9080/
NCICLUSTER_NCI_oslc/data/computer/item;ID=0">
<crtv:serialNumber>IBM00001SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://
<servidor_registro>:9080/oslc/providers/6015"/>
<RESERVATION:RESERVED_DATE>2012-08-11</RESERVATION:RESERVED_DATE>
<RESERVATION:RESERVED_BY>John Lewis</RESERVATION:RESERVED_BY>
<RESERVATION:RELEASE_DATE>2013-04-12</RESERVATION:RELEASE_DATE>
<RESERVATION:ID>0</RESERVATION:ID>
</crtv:ComputerSystem>
</rdfs:member>
</rdf:Description>
<oslc:ResponseInfo rdf:about="http://<servidor_impact>9080/
NCICLUSTER_NCI_oslc/data/computer/?oslc.paging=true&oslc.pageSize=100">
<oslc:totalCount>3</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
Dado que esta lista contiene una lista de miembros de recurso, puede utilizar el
parámetro de consulta oslc.select para limitar las propiedades de cada miembro
de recurso:
http://<servidor_Impact>:9080/NCICLUSTER_NCI_oslc/data/
computer?oslc.select=crtv:serialNumber,crtv:manufacturer,crtv:model,
oslc:serviceProvider
El URL devuelve el siguiente RDF:
Capítulo 15. Utilización de OSLC para Netcool/Impact
241
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:RESERVATION="http://jazz.net/ns/ism/event/impact/data/computer/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:crtv="http://open-services.net/ns/crtv#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#">
<oslc:ResponseInfo rdf:about="http://<servidor_Impact>:9080/
NCICLUSTER_NCI_oslc/data/computer?oslc.select=crtv:serialNumber,
crtv:manufacturer,crtv:model,oslc:serviceProvider&
oslc.paging=true&oslc.pageSize=100">
<oslc:totalCount>3</oslc:totalCount>
</oslc:ResponseInfo>
<rdf:Description rdf:about="http://<servidor_Impact>:9080/
NCICLUSTER_NCI_oslc/data/computer?oslc.select=crtv:serialNumber,
crtv:manufacturer,crtv:model,oslc:serviceProvider">
<rdfs:member>
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>:
9080/NCICLUSTER_NCI_oslc/data/computer/item;ID=4">
<crtv:serialNumber>IBM00003SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://<registry-server>:
9080/oslc/providers/6015"/>
</crtv:ComputerSystem>
</rdfs:member>
<rdfs:member>
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>:
9080/NCICLUSTER_NCI_oslc/data/computer/item;ID=3">
<crtv:serialNumber>IBM00002SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://<servidor_registro>:
9080/oslc/providers/6015"/>
</crtv:ComputerSystem>
</rdfs:member>
<rdfs:member>
<crtv:ComputerSystem rdf:about="http://<servidor_Impact>:
9080/NCICLUSTER_NCI_oslc/data/computer/item;ID=0">
<crtv:serialNumber>IBM00001SN</crtv:serialNumber>
<crtv:model>IBM Model01</crtv:model>
<crtv:manufacturer>IBM Manufacturer01</crtv:manufacturer>
<oslc:serviceProvider rdf:resource="http://<registry-server>:
9080/oslc/providers/6015"/>
</crtv:ComputerSystem>
</rdfs:member>
</rdf:Description>
</rdf:RDF>
Utilice la política siguiente para llevar a cabo una función POST en el URI de los
recursos. La función POST registra los registros con el registro de recurso asociado
con la propiedad serviceProvider que se define en el recurso.
Log("SCR_RegisterSystems: Entering policy");
HTTPHost="impactserver";
HTTPPort=9080;
Protocol="http";
Path="/NCICLUSTER_NCI_oslc/data/computer?oslc.paging
=true&oslc.pageSize=100";
ChannelKey="tom";
//Method="GET";
//Retreives the Systems Method="POST";
//Registers the Systems AuthHandlerActionTreeName="";
FilesToSend=newobject();
HeadersToSend=newobject();
HttpProperties=newobject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="password";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
242
Netcool/Impact: Guía de soluciones
AuthHandlerActionTreeName, null,
FilesToSend, HeadersToSend, HttpProperties); Log(CurrentContext());
Log("SCR_RegisterSystems: HTTP Response: " + x);
Si es correcto, el sistema visualiza un mensaje de confirmación. Netcool/Impact
también devuelve al cliente la cabecera, el texto del cuerpo y otra información
contenida en la respuesta desde el servidor de registro. La cabecera y el texto del
cuerpo especifican la ubicación de cada uno de los registros para cada uno de los
recursos que se ha registrado.
RDFRegister
Puede utilizar la función RDFRegister para ayudarle a registrar los proveedores de
servicios o los recursos OSLC con el servidor de registro.
Antes de poder registrar un proveedor de servicios o un recurso, debe utilizar las
otras funciones de política RDF para crear un modelo RDF que cumpla los
requisitos de OSLC y de servicios de registro.
Después de haber creado el modelo RDF, utilice la función RDFRegister para
registrar el RDF con el registro de recursos incluido en el servicio de integración de
servicios de registro.
Si el proveedor de servicios o el recurso OSLC se ha registrado correctamente, la
función RDFRegister devuelve la ubicación del recurso del registro de registro. Las
variables siguientes y sus valores de retorno también se devuelven para
proporcionar información adicional:
v ResultCode contiene el código de resultado para la respuesta.
v HeadersReceived contiene las cabeceras recibidas en la respuesta.
v HeadersSent contiene las cabeceras enviadas en la respuesta.
v ResponseBody contiene el texto del cuerpo de respuesta.
Si los parámetros de consulta se establecen en el URL y utiliza la función de la
política RDFRegister para registrar un proveedor de servicios, debe añadir
manualmente la ubicación del proveedor de servicios a la política. Por ejemplo:
RDFStatement(newModel, manu[0].subject, "http://open-services.net/ns/
core#serviceProvider", serviceProviderURL, true);
Si utiliza la serie de consulta dentro de la ruta, también debe asegurarse de que el
parámetro FormParameters está establecido en nulo. Por ejemplo:
FormParameters=null;
Finalmente, debe asegurarse de que la política contiene información de paginación.
Por ejemplo:
Path="/NCICLUSTER_NCI_oslc/data/mysql1?oslc.paging=true&oslc.pageSize=100";
Si no se realiza correctamente, el valor de retorno del registro de la ubicación de
recurso es nulo. Se devuelve la información del código de error en las variables
ErrorReason y ResultCode.
Sintaxis
La función RDFRegister tiene la función siguiente:
[ Serie =] RDFRegister(URI, Username , Password, Model)
Capítulo 15. Utilización de OSLC para Netcool/Impact
243
donde Username puede ser una serie nula o vacía para especificar que no es
necesaria la autenticación.
Parámetros
La función RDFRegister tiene los parámetros siguientes:
Tabla 70. Parámetros de la función RDFRegister
Parámetro
Tipo
Descripción
URI
Serie
El URI de la fábrica de
creación del servidor de
servicios de registro
Username
Serie
Nombre de usuario para el
servidor de servicios de
registro
Password
Serie
Contraseña para el servidor
de servicios de registro
Model
Modelo
Modelo que contiene el RDF
Ejemplo
El ejemplo siguiente registra manualmente un proveedor de servicios y un
conjunto de recursos que ha expuesto el proveedor de servidores OSLC en
Netcool/Impact.
La información del servidor de servicios de registro es:
RegistryServerProviderCFUri="http://<servidor_servicios_registro>:
9080/oslc/pr/collection";
RegistryServerResourceCFUri="http://<servidor_servicios_registro>:
9080/oslc/rr/registration/collection";
RegistryServerUsername="system";
RegistryServerPassword="manager";
La información del servidor Netcool/Impact es:
HTTPHost="<servidor_impact>";
HTTPPort=9080;
Protocol="http";
Path1="/NCICLUSTER_NCI_oslc/provider/provider01";
Path2="/NCICLUSTER_NCI_oslc/data/computer";
ChannelKey="";
Method="GET";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
HttpProperties.AuthenticationScheme="basic";
Obtener el RDF del proveedor de servicios desde Netcool/Impact:
serviceProviderResponse=GetHTTP(HTTPHost,HTTPPort, Protocol, Path1,
ChannelKey,Method, AuthHandlerActionTreeName, null, FilesToSend,
HeadersToSend, HttpProperties);
Crear un modelo RDF basándose en la respuesta del proveedor de servicios:
serviceProviderModel=RDFParse(serviceProviderResponse)
244
Netcool/Impact: Guía de soluciones
Registrar el proveedor de servicios en el registro del proveedor:
serviceProviderURL = RDFRegister(RegistryServerProviderCFUri,
RegistryServerUsername, RegistryServerPassword,serviceProviderModel);
log("Provider Registry-Service Provider URL: " + serviceProviderURL);
Obtener todos los recursos del sistema del ordenador desde Netcool/Impact:
allResources=GetHTTP(HTTPHost,HTTPPort, Protocol, Path2, ChannelKey,
Method,AuthHandlerActionTreeName, null, FilesToSend, HeadersToSend,
HttpProperties);
Crear un modelo RDF basándose en la respuesta del proveedor de servicios:
allResourceModel=RDFParse(allResources);
Registrar cada sistema del ordenador y un conjunto de propiedades con el registro
de recurso:
statements=RDFSelect(allResourceModel, null, "http://jazz.net/ns/ism/
events/impact/data/computer/ID", null);
size=Length(statements);
count=0;
while(count<size) {
Path3=statements[count].subject;
//Obtener el recurso del sistema del ordenador individual
resourceResponse=GetHTTP(HTTPHost,HTTPPort, Protocol, Path3, ChannelKey,
Method,AuthHandlerActionTreeName, null, FilesToSend, HeadersToSend,
HttpProperties);
resourceModel=RDFParse(resourceResponse);
Crear un modelo que contenga las propiedades y los datos que desea registrar:
newModel=RDFModel();
manu=RDFSelect(resourceModel, null, "http://open-services.net/ns/
crtv#manufacturer",null);
model=RDFSelect(resourceModel, null, "http://open-services.net/ns/
crtv#model", null);
serial=RDFSelect(resourceModel, null, "http://open-services.net/ns/
crtv#serialNumber", null);
RDFModelUpdateNS(newModel, "crtv", "http://open-services.net/ns/crtv#");
RDFModelUpdateNS(newModel, "oslc","http://open-services.net/ns/core#");
RDFStatement(newModel, manu[0].subject, "http://www.w3.org/1999/02/
22-rdf-syntax-ns#type",
"http://open-services.net/ns/crtv#ComputerSystem", true);
RDFStatement(newModel, manu[0].subject, manu[0].predicate, manu[0].object,
RDFNodeIsResource(manu[0].object));
RDFStatement(newModel, manu[0].subject, model[0].predicate, model[0].object,
RDFNodeIsResource(manu[0].object));
RDFStatement(newModel, manu[0].subject, serial[0].predicate,
serial[0].object, RDFNodeIsResource(manu[0].object));
Actualizar el modelo con la ubicación del proveedor de servicios:
RDFStatement(newModel, manu[0].subject, "http://open-services.net/ns/
core#serviceProvider", serviceProviderURL, true);
Registrar el recurso en el registro de recursos:
resourceURL = RDFRegister(RegistryServerResourceCFUri,
RegistryServerUsername, RegistryServerPassword, newModel);
log("Resource Registry-Resource URL: " +resourceURL);
count=count+1;
}
Capítulo 15. Utilización de OSLC para Netcool/Impact
245
RDFUnRegister
Para eliminar el registro del registro de un proveedor de servicios o recurso del
servidor de registro, utilice la función RDFUnRegister para proporcionar la
ubicación del registro del registro, el nombre de usuario y la contraseña del
servidor de servicios de registro y el registro de registro que desea eliminar.
Antes de poder eliminar el registro de registro de un proveedor de servicios, debe
eliminar todos los registros de registro para los recursos de OSLC asociados.
Si se realiza correctamente, la función RDFUnRegister devuelve el código de
mensaje 204 y el valor true (verdadero). Las variables siguientes y sus valores de
retorno también se devuelven para proporcionar información adicional:
v ResultCode contiene el código de resultado para la respuesta.
v HeadersReceived contiene las cabeceras recibidas en la respuesta.
v HeadersSent contiene las cabeceras enviadas en la respuesta.
v ResponseBody contiene el texto del cuerpo de respuesta.
Si no se realiza correctamente, el valor de retorno del registro de registro de la
ubicación de recurso es false (falso). La información del código de error se
devuelve en las variables ErrorReason y ResultCode.
Sintaxis
La función RDFUnRegister tiene los parámetros siguientes:
[ Serie =] RDFUnRegister(URI, Username , Password)
donde Username puede ser una serie nula o vacía para especificar que no es
necesaria la autenticación.
Parámetros
Tabla 71. Parámetros de parámetro de la función RDFUnRegister
Parámetro
Tipo
Descripción
URI
Serie
Ubicación que contiene el
registro de registro para el
recurso o el proveedor de
servicios
Username
Serie
Nombre de usuario para el
servidor de servicios de
registro
Password
Serie
Contraseña para el servidor
de servicios de registro
Ejemplo de cómo eliminar el registro de un proveedor de servicios
El ejemplo siguiente demuestra cómo eliminar el registro del proveedor de
servicios.
La ubicación del proveedor de servicios es:
http://<servidor_registro>:9080/oslc/providers/6577
Utilice la función RDFUnRegister para eliminar el registro. Por ejemplo:
246
Netcool/Impact: Guía de soluciones
//Información del servidor de registro
ServiceProviderUri="http://<servidor_registro>:9080/oslc/
providers/6577";
RegistryServerUsername="system";
RegistryServerPassword="manager";result = RDFUnRegister(ServiceProviderUri, RegistryServerUsername,
RegistryServerPassword);
Ejemplo de cómo eliminar el registro de un recurso OSLC
El ejemplo siguiente demuestra cómo utilizar la función de la política para eliminar
el registro de un recurso OSLC.
registrationURL = "http://nc004075.romelab.it.ibm.com:16310/oslc/registration/
1351071987349";
providerURL = "http://nc004075.romelab.it.ibm.com:16310/oslc/providers/
1351071987343";
RegistryServerUsername="smadmin";
RegistryServerPassword="tbsm01bm";
returnString = RDFUnRegister (registrationURL, RegistryServerUsername,
RegistryServerPassword);
Utilización de políticas de Netcool/Impact y OSLC
Puede integrar el proveedor OSLC de Netcool/Impact y políticas de
Netcool/Impact.
Acceso a parámetros de usuario de salida como recursos
OSLC
Para utilizar el proveedor OSLC de Netcool/Impact para ejecutar políticas de
Netcool/Impact y acceder a los resultados, debe editar el archivo NCI_oslc.props
que se encuentra en el directorio IMPACT_HOME/etc.
Acerca de esta tarea
Netcool/Impact devuelve dos tipos de objetos RDF, literales y recursos. Los
literales RDF contiene un valor real. Los recursos RDF se devuelven como URL a
los que puede acceder para encontrar información sobre un objeto.
Procedimiento
1. Para acceder a los resultados de política de Netcool/Impact, edite el archivo
NCI_oslc.props que se encuentra en el directorio IMPACT_HOME/etc, donde NCI
es el nombre de su Servidor Impact. Añada la sentencia siguiente para cada
política a la que desee acceder:
oslc.policy.<componente_vía_acceso>=<nombre_política>
2. Reinicie el Servidor Impact.
Ejemplo
Por ejemplo, añade lo siguiente al archivo NCI_oslc.props para acceder a la
política SNMPTableTest:
oslc.policy.tabletest=SNMPTableTest
Utilice el siguiente URL para ejecutar la política y que se devuelvan los resultados:
http://example.com:9080/NCI_NCICLUSTER_oslc/policy/tabletest
Capítulo 15. Utilización de OSLC para Netcool/Impact
247
donde NCI es el nombre del Servidor Impact y NCICLSUTER es el nombre del clúster
de Netcool/Impact.
Al acceder al URL, la política se ejecuta y los parámetros de usuario de salida
están disponibles como recursos RDF.
OSLC y salida de variables por resultados de política
Las variables simples, como serie, entero, doble, flotante, booleano e indicación de
fecha y hora están disponibles como literales RDF. Las variables más complejas
como por ejemplo objetos de Impact, matrices y resultados de funciones se
visualizan como recursos RDF con un enlace de RDF que contiene detalles internos
de la variable.
Este ejemplo muestra los parámetros de salida de usuario de la política Example.
Los resultados de esta política contienen tanto literales como recursos RDF. El
siguiente URL desencadena la ejecución de política y hace que los resultados estén
disponibles como recursos OSLC:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/example/
La información se devuelve como:
<rdf:RDF
<examplePolicy:example rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example">
<example:myArrayStr rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myArrayStr"/>
<example:myObject rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObject"/>
<example:myObjArray rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray"/>
<example:myGetFilter rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myGetFilter"/>
<example:MyAlerts rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/MyAlerts"/>
<example:myString>Brian</example:myString>
<example:myDouble>22.5</example:myDouble>
<example:myFloat>100.55</example:myFloat>
<example:myInteger>32</example:myInteger>
<example:myBoolean>true</example:myBoolean>
</examplePolicy:example>
</rdf:RDF>
Las variables más complejas de este ejemplo, como myObject, myArrayStr,
myObjArray y myGetFilter, se visualizan como enlaces a recursos. Las otras
variables son variables simples, como myString, myDouble, myFloat, myInteger y
myBoolean, que se visualizan como literales junto con sus valores.
El URL siguiente se utiliza para acceder al URL de recurso de objetos de
Netcool/Impact, representados por la variable myObject:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/example/myObject
El URL de recurso devuelve los resultados como:
<rdf:RDF>
<examplePolicy:myObject rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/
policy/example/myObject">
<myObject:bmi>24.5</myObject:bmi>
<myObject:lname>Doe</myObject:lname>
<myObject:fname>John</myObject:fname>
<myObject:age>25</myObject:age>
248
Netcool/Impact: Guía de soluciones
<oslc:totalCount>1</oslc:totalCount>
<rdf:type rdf:resource="http://open-services.net/ns/core#ResponseInfo"/>
</examplePolicy:myObject>
</rdf:RDF>
Acceso a matrices de variables desde resultados de política
Para acceder a una matriz de variables contenidas en un resultado de política en
un contexto de OSLC, utiliza un URL que contiene el nombre de variable.
Antes de empezar
El prefijo de matriz predeterminado es oslc_pos. Para cambiar este valor, añada la
siguiente definición al archivo NCI_oslc.props:
oslc.policy.<componente_vía_acceso>.arrayprefix=<prefijo>.
Por ejemplo, añada la siguiente definición al archivo NCI_oslc.props para cambiar
el prefijo a pos para el componente de vía de acceso de example:
oslc.properties.example.arrayprefix=pos
Procedimiento
Para acceder al URL del recurso utilizado para una matriz de objetos, representada
en este ejemplo por la variable myArrayStr, utilice el URL siguiente:
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/policy/
example/myArrayStr
Resultados
Este URL devuelve los resultados siguientes:
<rdf:RDF>
<examplePolicy:myArrayStr rdf:about="http://<servidor>:<puerto>/
NCICLUSTER_NCI_oslc/policy/example/myArrayStr">
<myArrayStr:oslc_pos_2>Hi</myArrayStr:oslc_pos_2>
<myArrayStr:oslc_pos_1>Hey</myArrayStr:oslc_pos_1>
<myArrayStr:oslc_pos_0>Hello</myArrayStr:oslc_pos_0>
<oslc:totalCount>1</oslc:totalCount>
<rdf:type rdf:resource="http://open-services.net/ns/core#ResponseInfo"/>
</examplePolicy:myArrayStr>
</rdf:RDF>
Si una variable de matriz contiene varios objetos de Netcool/Impact, se creará un
recurso que contiene un enlace a varios recursos. Cada uno de estos recursos
contiene un enlace al propio objeto de Netcool/Impact de la matriz.
Ejemplo
Utilice el URL siguiente para acceder a la matriz de variables representada por la
variable myObjArray:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/example/myObjArray/
Dado que esta matriz contiene varios objetos, el URL devuelve los resultados
siguientes:
<rdf:RDF>
<oslc:ResponseInfo rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray/">
<rdfs:member>
<examplePolicy:myObjArray rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray">
Capítulo 15. Utilización de OSLC para Netcool/Impact
249
<myObjArray:oslc_pos_2 rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray/oslc_pos_2"/>
<myObjArray:oslc_pos_1 rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray/oslc_pos_1"/>
<myObjArray:oslc_pos_0 rdf:resource="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray/oslc_pos_0"/>
</examplePolicy:myObjArray>
</rdfs:member>
<oslc:totalCount>1</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
Si accede al URL asociado a uno de los objetos de Netcool/Impact, se devuelven
los resultados siguientes:
<rdf:RDF>
<myObjArray:oslc_pos_1 rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/example/myObjArray/oslc_pos_1">
<oslc_pos_1:fname>Garrett</oslc_pos_1:fname>
<oslc_pos_1:bmi>33.1</oslc_pos_1:bmi>
<oslc_pos_1:age>30</oslc_pos_1:age>
</myObjArray:oslc_pos_1>
</rdf:RDF>
Visualización de las formas de recurso para resultados de
política
Las formas de recurso están disponibles para cualquier recurso OSLC generado por
el proveedor OSLC de Netcool/Impact. La forma de recurso define el conjunto de
propiedades de OSLC para una operación específica.
Procedimiento
Para visualizar la forma de recurso para cualquier objeto OSLC, añada
resourceShapes al URL.
Ejemplo
Por ejemplo, utiliza el URL siguiente para visualizar la definición de forma de
recurso para el recurso especificado:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/resourceShapes/
example/myGetFilter/item;ID=1010
Este URL devuelve los resultados siguientes que incluyen la definición de forma de
recurso:
<rdf:RDF
<oslc:ResourceShape rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/resourceShapes/example/myGetFilter">
<dcterms:title>examplePolicy</dcterms:title>
<oslc:property>
<oslc:Property rdf:about="http://xmlns.com/foaf/0.1/givenName">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<dcterms:title>NAME</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myGetFilter/NAME"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>NAME</oslc:name>
<dcterms:description>NAME</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myGetFilter/STARTED">
250
Netcool/Impact: Guía de soluciones
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
<dcterms:title>STARTED</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myGetFilter/STARTED"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>STARTED</oslc:name>
<dcterms:description>STARTED</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myGetFilter/MANAGER">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
<dcterms:title>MANAGER</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myGetFilter/MANAGER"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>MANAGER</oslc:name>
<dcterms:description>MANAGER</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myGetFilter/ID">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
<dcterms:title>ID</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myGetFilter/ID"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>ID</oslc:name>
<dcterms:description>ID</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myGetFilter/DEPT">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<dcterms:title>DEPT</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myGetFilter/DEPT"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>DEPT</oslc:name>
<dcterms:description>DEPT</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myGetFilter/CEASED">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
<dcterms:title>CEASED</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myGetFilter/CEASED"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>CEASED</oslc:name>
<dcterms:description>CEASED</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:describes rdf:resource="http://xmlns.com/foaf/0.1/Group"/>
</oslc:ResourceShape>
</rdf:RDF>
Capítulo 15. Utilización de OSLC para Netcool/Impact
251
Variables compatibles de OSLC y Proveedor de datos de interfaz
de usuario para resultados de política
El proveedor OSLC de Netcool/Impact y Proveedor de datos de interfaz de
usuario pueden ejecutar una política y hacer que los resultados estén disponibles
como un recurso compatible de OSLC o Proveedor de datos de interfaz de usuario
con valores de propiedades que contienen los parámetros de salida de usuario.
Se da soporte a los siguientes tipos de variables:
v
v
v
v
v
v
v
Serie
Entero
Doble
Flotante
Booleano
Indicación de fecha y hora
Objeto de Impact
v Largo (representado como un entero en OSLC)
También se da soporte a matrices de variables para cada una de estas variables.
Estas matrices deben ser del mismo tipo.
También se da soporte a las variables devueltas por las funciones GetByFilter y
DirectSQL.
Configuración de parámetros de usuario
Para utilizar Proveedor de datos de interfaz de usuario o OSLC con políticas de
Netcool/Impact, debe configurar parámetros de usuario para que los resultados de
política sean compatibles con Proveedor de datos de interfaz de usuario o
disponible como recursos OSLC.
Acerca de esta tarea
Puede crear parámetros de tiempo de ejecución de política o parámetros de salida
de política. Los parámetros de tiempo de ejecución de política representan los
parámetros de tiempo de ejecución que define en políticas. Por ejemplo, puede
utilizar un parámetro de tiempo de ejecución de política para pasar valores desde
una política otra en mashup de datos.
Los parámetros de salida de política representan los parámetros emitidos por
políticas. Por ejemplo, el Proveedor de datos de interfaz de usuario utiliza
parámetros de salida de política para visualizar datos de políticas en la consola.
Procedimiento
Para abrir el editor de parámetros de usuario de política en la barra de
herramientas del editor de políticas, pulse el icono Configurar parámetros de
usuario.
2. Para crear un parámetro de salida de política, pulse Nuevo parámetro de
salida:Nuevo. Para crear un parámetro de tiempo de ejecución de política,
pulse Nuevo parámetro de tiempo de ejecución:Nuevo. Los campos
obligatorios se indican mediante un asterisco (*). Debe especificar un nombre
exclusivo en el campo Nombre.
3. Defina las esquemas personalizados para los parámetros de salida, si es
necesario.
1.
252
Netcool/Impact: Guía de soluciones
Si está utilizando la función de políticas DirectSQL con OSLC, debe definir el
esquema personalizado para ella.
Si está utilizando DirectSQL, Objeto de Impact o Matriz de objeto de Impact
con Proveedor de datos de interfaz de usuario o el widget de gráfica, debe
definir el esquema personalizado para estos valores.
Para obtener más información, consulte “Creación de valores de esquema
personalizado para parámetros de salida” en la página 177
4. Para guardar los cambios en los parámetros y cerrar la ventana, pulse Aceptar.
Ejemplo
Este ejemplo muestra cómo crear parámetros de salida para una política. En primer
lugar, define una política simple, como la siguiente:
first_name = “Mark”;
zip_code = 12345;
Log(“Hello “ + first_name + “ living at “ + zip_code);
A continuación, define los parámetros de salida para esta política. En este caso, hay
dos parámetros de salida. Especifica la siguiente información:
Tabla 72. Parámetro de salida de PolicyDT1
Campo
Entrada de usuario
Nombre
Especifique un nombre exclusivo. Por
ejemplo, PolicyDT1.
Nombre de variable de política
first_name
Formato
Serie
Tabla 73. Parámetro de salida de PolicyDT2
Campo
Entrada de usuario
Nombre
Especifique un nombre exclusivo. Por
ejemplo, PolicyDT2
Nombre de variable de política
zip_code
Formato
Entero
Acceso a tipos de datos generados por la función GetByFilter
Si desea acceder a los resultados de la función GetByFilter, debe crear parámetros
de salida para el proveedor OSLC.
Procedimiento
1. Para abrir el editor de parámetros de usuario de política, pulse el icono
Configurar parámetros de usuario en la barra de herramientas del editor de
políticas. Puede crear parámetros de usuario de política para tiempo de
ejecución y salida. Para abrir la ventana Crear un nuevo parámetro de salida de
política, pulse Nuevo.
2. Seleccione tipo de datos como formato.
3. Especifique el nombre del elemento de datos al que se asigna la salida de la
función GetByFilter en el campo Nombre de variable de política.
4. Especifique el nombre del origen de datos en el campo Nombre de origen de
datos.
5. Especifique el nombre del tipo de datos en el campo Nombre de tipo de datos.
Capítulo 15. Utilización de OSLC para Netcool/Impact
253
Ejemplo
Este ejemplo muestra cómo hacer que la salida de la función GetByFilter esté
disponible para el proveedor OSLC de Netcool/Impact.
Crea un tipo de datos denominado ALERTS que pertenece al origen de datos
defaultobjectserver. Este tipo de datos pertenece a Netcool/OMNIbus y apunta a
alerts.status. El campo de clave es Identificador. Se asocian las siguientes cuatro
filas de datos al campo de clave:
v Event1
v Event2
v Event3
v Event4
Crea la política siguiente, denominada Test_Policy3:
MyAlerts = GetByFilter("ALERTS", "Severity > 0", false);
A continuación, define los parámetros de salida para la política, de la forma
siguiente:
Tabla 74. Parámetro de salida de PolicyData1
Campo
Entrada de usuario
Nombre
PolicyData1
Nombre de variable de política
MyAlerts
Formato
Datatype
Nombre de origen de datos
defaultobjectserver
Nombre de tipo de datos
ALERTS
Acceso a variables generadas por la función DirectSQL
Para acceder a variables generadas por la función de políticas DirectSQL, debe
crear parámetros de salida y valores de formato DirectSQL.
Acerca de esta tarea
Si la función de políticas DirectSQL genera una variable, Netcool/Impact crea un
recurso RDF. Este recurso contiene varias propiedades para cada parámetro de
salida definido.
Sólo se da soporte a las siguientes variables simples:
v Serie
v Doble
v Entero
v Largo
v Indicación de fecha y hora
v Booleano
Si los nombres de columna contienen caracteres especiales, deberá añadir una
sentencia que liste estos caracteres especiales al archivo NCI_server.props. Para
obtener más información, consulte el tema sobre la utilización de caracteres
especiales en nombres de columna en la sección sobre la resolución de problemas
de cuestiones generales de Netcool/Impact en la Guía de resolución de problemas.
254
Netcool/Impact: Guía de soluciones
Si las políticas que utiliza para proporcionar datos a OSLC contienen caracteres
especiales, deberá omitirlos. Para obtener más información, consulte el tema sobre
la utilización de caracteres especiales en políticas OSLC y Proveedor de datos de
interfaz de usuario en la sección sobre la resolución de problemas de OSLC en la
Guía de resolución de problemas.
Procedimiento
Para acceder a variables generadas por la función de políticas DirectSQL, cree un
parámetro de salida DirectSQL y defina los valores DirectSQL para este parámetro.
Para ver una descripción detallada de estos pasos, consulte “Creación de valores
de esquema personalizado para parámetros de salida” en la página 177.
Ejemplo
Este ejemplo muestra cómo acceder a variables generadas por la función de
políticas DirectSQL. Puede definir la siguiente política que utiliza la función
DirectSQL:
MyAlerts=DirectSQL(’Omnibus’,’select min(Serial) as min_serial,
max(Serial) as max_serial,count(<) as num_events from alerts.status’, false);
A continuación, defina el parámetro de salida DirectSQL tal como se describe en la
tabla. No necesita especificar un nombre de origen de datos o tipo de datos.
Tabla 75. Parámetro de salida DirectSQL
Campo
Entrada de usuario
Nombre
DirectSQL_OP1
Nombre de variable de política
DirectSQL_1
Formato
DirectSQL
Para crear los valores de formato DirectSQL, pulse el icono del editor DirectSQL.
Defina los valores de formato de la forma siguiente:
Tabla 76. Valores de formato DirectSQL
Nombre
Formato
Clave
min_serial
Doble
True
max_serial
Flotante
True
num_events
Entero
True
Utilice el URI siguiente para ejecutar la política y que se devuelvan los resultados:
http://example.com:9080/NCICLUSTER_NCI_oslc/
policy/examplePolicy/MyAlerts
Los resultados son:
<rdf:RDF
<oslc:ResponseInfo rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/
policy/examplePolicy/MyAlerts">
<rdfs:member>
<examplePolicy:MyAlerts rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/examplePolicy/MyAlerts/
item;min_serial=133;num_events=12;max_serial=521">
<MyAlerts:num_events>12</MyAlerts:num_events>
<MyAlerts:min_serial>133</MyAlerts:min_serial>
<MyAlerts:max_serial>521</MyAlerts:max_serial>
Capítulo 15. Utilización de OSLC para Netcool/Impact
255
</examplePolicy:MyAlerts>
</rdfs:member>
<oslc:totalCount>1</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
Los resultados contienen también la forma de recurso:
<rdf:RDF
<oslc:ResourceShape rdf:about="http://example.com:9080/
NCICLUSTER_NCI_oslc/policy/resourceShapes/example/MyAlerts">
<dcterms:title>examplePolicy</dcterms:title>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myDirectSQL/num_events">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
<dcterms:title>num_events</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myDirectSQL/num_events"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>num_events</oslc:name>
<dcterms:description>num_events</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myDirectSQL/min_serial">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
<dcterms:title>min_serial</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myDirectSQL/min_serial"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>min_serial</oslc:name>
<dcterms:description>min_serial</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:property>
<oslc:Property rdf:about="http://jazz.net/ns/ism/events/impact/policy/
example/myDirectSQL/max_serial">
<oslc:readOnly>true</oslc:readOnly>
<oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
<dcterms:title>max_serial</dcterms:title>
<oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/events/
impact/policy/example/myDirectSQL/max_serial"/>
<oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
<oslc:name>max_serial</oslc:name>
<dcterms:description>max_serial</dcterms:description>
</oslc:Property>
</oslc:property>
<oslc:describes rdf:resource="http://jazz.net/ns/ism/events/impact/
policy/example/"/>
</oslc:ResourceShape>
</rdf:RDF>
Creación de valores de esquema personalizado para parámetros de salida:
Al definir parámetros de salida que utilicen el formato DirectSQL, Matriz de
objetos Impact o Objeto Impact en el editor de parámetros de salida del usuario,
debe especificar también un nombre y un formato para cada campo incluido en los
objetos DirectSQL, Matriz de objetos Impact u Objeto Impact.
256
Netcool/Impact: Guía de soluciones
Acerca de esta tarea
Las definiciones de esquema personalizado las utiliza Netcool/Impact para
visualizar los datos en la consola y pasar valores a Proveedor de datos de interfaz
de usuario y OSLC. Puede crear los esquemas personalizados y seleccionar el
formato basado en los valores de cada campo incluido en el objeto. Por ejemplo,
puede crear una política que contenga dos campos en un objeto:
O1.city="NY"
O1.ZIP=07002
Puede definir los siguientes valores de esquema personalizado para esta política:
Tabla 77. Valores de esquema personalizado de City
Campo
Entrada
Nombre
Ciudad
Formato
Serie
Tabla 78. Valores de esquema personalizado de ZIP
Campo
Entrada
Nombre
ZIP
Formato
Entero
Si utiliza la función de política DirectSQL con Proveedor de datos de interfaz de
usuario o OSLC, debe definir un valor de esquema personalizado para cada valor
de DirectSQL que utilice.
Si desea utilizar el widget de gráfica para visualizar datos de un objeto Impact o
una matriz de objetos Impact con Proveedor de datos de interfaz de usuario y la
consola, puede definir valores de esquema personalizado para los campos
incluidos en los objetos. Los esquemas personalizados le ayudan a crear
descriptores para columnas en la gráfica durante la inicialización. Sin embargo, los
esquemas personalizados no son necesarios técnicamente. Si no define valores para
ninguno de estos dos formatos, el sistema vuelve a descubrir posteriormente cada
objeto Impact al crear campos individuales como el campo clave, UIObjectId, o el
campo para el widget de árbol, UITreeNodeId. No es necesario definir estos valores
para OSLC.
Procedimiento
1. En el editor de parámetros de usuario de política, elija DirectSQL, Objeto
Impact o Matriz de objetos Impact en el campo Formato.
2. El sistema visualiza el icono Abrir el editor de definiciones de esquema
junto al campo Definición de esquema. Para abrir el editor, pulse el icono.
3. Puede editar una entrada existente o puede crear una nueva. Para definir una
entrada nueva, pulse Nueva. Especifique un nombre y elija un formato
apropiado.
Para editar una entrada existente, pulse el icono Editar junto a la entrada que
desea editar.
4. Para marcar una entrada como un campo clave, active el recuadro de selección
en la columna Campo clave. No debe definir el campo clave para objetos
Impact o una matriz de objetos Impact. En su lugar, el sistema utiliza
UIObjectId como campo clave.
Capítulo 15. Utilización de OSLC para Netcool/Impact
257
5. Para suprimir una entrada, seleccione la entrada y pulse Suprimir.
Configuración de URI personalizados para variables y
resultados de política
Puede asignar URI personalizados a parámetros de salida de usuario y política o a
variables para crear una correlación personalizada. Puede utilizar esta correlación
para representar un recurso en cualquier dominio.
Acerca de esta tarea
Netcool/Impact sólo da soporte a la correlación unívoca de parámetros de salida
de usuario a propiedades de OSLC.
Procedimiento
1. Para añadir un URI personalizado a un recurso de política, añada la siguiente
definición al archivo NCI_oslc.prop:
oslc.policy.<componente_vía_acceso>.uri=<uri>
2. Para añadir un URI personalizado a una variable, especifique la variable y el
componente de vía de acceso. Dado que hay varias capas de variables, debe
especificar cada variable hasta que llegue a la que desea:
oslc.policy.<componente_vía_acceso>.<nombre_variable>.uri=<uri>
oslc.policy.<componente_vía_acceso>.<nombre_variable>.<nombre_variable>
....<nombre_variable>.uri=uri
Ejemplo
El ejemplo siguiente muestra cómo se puede representar la política example en una
especificación de amigo de amigo (FOAF). Debe empezar añadiendo sentencias al
archivo NCI_oslc.props:
oslc.policy.example=examplePolicy
oslc.policy.example.namespaces.foaf=http://xmlns.com/foaf/0.1/
oslc.policy.example.uri=http://xmlns.com/foaf/0.1/Person
oslc.policy.example.myGetFilter.NAME.uri=http://xmlns.com/foaf/0.1/givenName
Utiliza este URL para consultar el recurso OSLC:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/example/myGetFilter
Este URL devuelve el RDF:
Nota: Este ejemplo es una aproximación con fines de muestra.
<rdf:RDF
<oslc:ResponseInfo rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/policy/
example/myGetFilter">
<rdfs:member>
<j.0:Person rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/policy/
example/myGetFilter/item;ID=1012">
<j.0:givenName>Kevin Doe</j.0:givenName>
<myGetFilter:STARTED>1976-07-06</myGetFilter:STARTED>
<myGetFilter:MANAGER>1001</myGetFilter:MANAGER>
<myGetFilter:ID>1012</myGetFilter:ID>
<myGetFilter:DEPT>Documentation</myGetFilter:DEPT>
</j.0:Person>
</rdfs:member>
<rdfs:member>
<j.0:Person rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/policy/
example/myGetFilter/item;ID=1010">
<j.0:givenName>Brian Doe</j.0:givenName>
258
Netcool/Impact: Guía de soluciones
<myGetFilter:STARTED>1980-08-11</myGetFilter:STARTED>
<myGetFilter:MANAGER>1001</myGetFilter:MANAGER>
<myGetFilter:ID>1010</myGetFilter:ID>
<myGetFilter:DEPT>Documentation</myGetFilter:DEPT>
</j.0:Person>
</rdfs:member>
<oslc:totalCount>2</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
En este ejemplo el usuario no ha definido el prefijo y el espacio de nombres. En
este caso, el RDF muestra el prefijo generado automáticamente para el espacio de
nombres j.0 para http://xmlns.com/foaf/0.1/.
Especifica un prefijo para un espacio de nombres con este formato:
oslc.policy.<vía_acceso>.namespaces.<prefijo>=<uri>
Para este ejemplo, añade esta sentencia:
oslc.policy.example.namespaces.foaf=http://xmlns.com/foaf/0.1/
Cuando utiliza el URL siguiente para consultar el recurso OSLC, el RDF se genera
con el prefijo que ha especificado:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/example/myGetFilter
Este URL se devuelve como:
<rdf:RDF
<oslc:ResponseInfo rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/policy/
example/myGetFilter">
<rdfs:member>
<foaf:Person rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/policy/
example/myGetFilter/item;ID=1012">
<foaf:givenName>Kevin Doe</foaf:givenName>
<myGetFilter:STARTED>1976-07-06</myGetFilter:STARTED>
<myGetFilter:MANAGER>1001</myGetFilter:MANAGER>
<myGetFilter:ID>1012</myGetFilter:ID>
<myGetFilter:DEPT>Documentation</myGetFilter:DEPT>
</foaf:Person>
</rdfs:member>
<rdfs:member>
<foaf:Person rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/policy/
example/myGetFilter/item;ID=1010">
<foaf:givenName>Brian Doe</foaf:givenName>
<myGetFilter:STARTED>1980-08-11</myGetFilter:STARTED>
<myGetFilter:MANAGER>1001</myGetFilter:MANAGER>
<myGetFilter:ID>1010</myGetFilter:ID>
<myGetFilter:DEPT>Documentation</myGetFilter:DEPT>
</foaf:Person>
</rdfs:member>
<oslc:totalCount>2</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
Cómo pasar valores de argumentos a una política
Puede utilizar series de consulta de URL para pasar valores de argumentos en
forma de una serie a una política. Puede acceder a estos valores creando un
parámetro de salida de usuario para cada uno de los argumentos.
Procedimiento
Utilice el URL siguiente para pasar valores de argumentos a una política:
Capítulo 15. Utilización de OSLC para Netcool/Impact
259
http://<host>:<puerto>/NCI_NCICLUSTER_oslc/política/
<nombre_vía_acceso>?arg1=<valor>&arg2=<valor>
Restricción: Los URL inusualmente largos pueden causar problemas. Esto depende
del navegador y de los valores de Websphere Application Server. Para evitar estos
problemas, limite el tamaño de los valores de las variables que se pasan mediante
la serie de consulta.
Resultados
Después de acceder a este URL, la política se ejecuta. Si no define parámetros de
usuario de salida, los parámetros de usuario están disponibles como propiedades
en un recurso OSLC.
Ejemplo
Por ejemplo, puede utilizar el URL siguiente para pasar la variable arg1 con el
valor de serie table1 a la política definida en la vía de acceso tableset:
http://example.com:9080/NCI_NCICLUSTER_oslc/policy/tableset?arg1=table1
Configuración de vistas previas contextuales para recursos OSLC
Puede habilitar las vistas previas contextuales para recursos OSLC. Puede
configurar un título y otros aspectos de la vista previa contextual, como por
ejemplo el tamaño de la ventana.
Acerca de esta tarea
Para obtener más información sobre cómo utilizar vistas previas contextuales para
OSLC, abra Open Services for Lifecycle Collaboration Core Specification Version
2.0 UI Preview (http://open-services.net/bin/view/Main/OslcCoreUiPreview)
Procedimiento
Para configurar las vistas previas contextuales, añada un conjunto de propiedades
para cada recurso OSLC al archivo NCI_oslc.props. Puede utilizar cualquier
combinación de estas propiedades. Algunas de estas propiedades sólo se visualizan
si existe el parámetro de icono o documento en el recurso OSLC. Para ver una
descripción detallada de estas propiedades, consulte “Propiedades de vista previa
contextual para recursos OSLC” en la página 262.
Resultados
Cada conjunto de propiedades que define para un recurso OSLC genera una
representación XML compacta de la vista previa contextual. Este XML compacto se
utiliza para ayudar a generar el contenido de la ventana de vista previa contextual
en otras aplicaciones. Cada conjunto de propiedades puede contener variables.
Cuando se genera el XML, las variables se sustituyen con los valores de
propiedades del recurso OSLC con el formato siguiente:
$<prefijo_espacio_nombres>:<nombre_propiedad>
Por ejemplo:
$RESERVATION:HOSTNAME
$RESERVATION:ID
260
Netcool/Impact: Guía de soluciones
Para ver todas las posibles variables para un recurso OSLC, utilice el URI de
recurso OSLC para ver la representación del XML completo.
Si un recurso no existe o se produce un error, el sistema visualiza un código de
error 400 y un mensaje que explica el problema.
Si el recurso no da soporte a vistas previas contextuales, por ejemplo, si el recurso
contiene listas rdfs:member, el sistema visualiza un código de error 406 No
aceptable.
Si no se han definido parámetros de vista previa contextual para el recurso, el
sistema visualiza un XML compacto que no contiene parámetros que no sean los
del URI.
Si utiliza la vista previa contextual con un producto de terceros como TBSM, puede
añadir application/x-oslc-compact+xml al URL como una cabecera HTTP Accept
para visualizar el documento XML compacto de vista previa contextual en la
respuesta.
Ejemplo
El ejemplo siguiente muestra cómo configurar la vista previa contextual para un
recurso OSLC basado en una tabla de base de datos denominada RESERVATION.
Los siguientes valores de vista previa contextual se definen en el archivo
NCI_oslc.props:
oslc.data.computer=RESERVATION
oslc.data.computer.uri=http://open-services.net/ns/crtv#ComputerSystem
oslc.data.computer.MODEL.uri=http://open-services.net/ns/crtv#model
oslc.data.computer.MANUFACTURER.uri=http://open-services.net/ns/crtv#manufacturer
oslc.data.computer.SERIALNUMBER.uri=http://open-services.net/ns/crtv#serialNumber
oslc.data.computer.namespaces.crtv=http://open-services.net/ns/crtv#
oslc.data.computer.provider=provider01
oslc.data.computer.provider.domain=http://domainx/
oslc.data.computer.preview.title=Computer Reservation System - $RESERVATION:HOSTNAME
oslc.data.computer.preview.shortTitle=Reservation
oslc.data.computer.preview.largePreview.document=https://<servidor_impact>:
16311/opview/displays/NCICLUSTER-Reservations.html?id=$RESERVATION:ID
oslc.data.computer.preview.largePreview.hintWidth=31.250em
oslc.data.computer.preview.largePreview.hintHeight=21.875em
A continuación, derive el contenido de vista previa contextual. En este ejemplo,
utilice un operador de Netcool/Impact. En este caso, se generan dos variables en el
XML compacto:
$RESERVATION:HOSTNAME
$RESERVATION:ID
Estas variables se convierten a los valores de las propiedades según los datos del
recurso OSLC:
$RESERVATION:HOSTNAME =
$RESERVATION:ID = 4
mycomputer.ibm.com
Cuando utiliza un método HTTP GET en el URL de recurso con la cabecera HTTP
Accept application/x-oslc-compact+xml, se devuelve el siguiente RDF:
<?xml version="1.0"?>
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:oslc="http://open-services.net/ns/core#">
<oslc:Compact rdf:about="http://example.com:9080/NCICLUSTER_NCI_oslc/data/
Capítulo 15. Utilización de OSLC para Netcool/Impact
261
computer/item;ID=4">
<dcterms:title>Computer Reservation System - mycomputer.ibm.com</dcterms:title>
<oslc:shortTitle>Reservation</oslc:shortTitle>
<oslc:largePreview>
<oslc:Preview>
<oslc:hintWidth>31.250em</oslc:hintWidth>
<oslc:hintHeight>21.875em</oslc:hintHeight>
<oslc:document rdf:resource="https://<impact-server>:16311/opview/displays/
NCICLUSTER-Reservations.html?id=4"/>
</oslc:Preview>
</oslc:largePreview>
</oslc:Compact>
</rdf:RDF>
Propiedades de vista previa contextual para recursos OSLC
Para configurar las vistas previas contextuales, añada los parámetros que se
muestran en las tablas al archivo NCI_oslc.props. Algunos de estos parámetros
sólo se visualizan si existe el parámetro de icono o documento en el recurso OSLC.
Tabla 79. Parámetros de vista previa contextual
Sentencia
Descripción
oslc.<tipo>.<vía_acceso>.preview.title =
<título_largo>
donde <título_largo> especifica la serie del
título largo que se utiliza para la vista previa
contextual.
oslc.<tipo>.
<vía_acceso>.preview.shortTitle
= <título_corto>
donde <título_corto> especifica la serie del
título corto que se utiliza para la vista previa
contextual.
En un ejemplo de implementación con
TBSM, esta sentencia proporciona el nombre
de ficha para la visualización previa
mediante puntero.
oslc.<tipo>.<vía_acceso>.preview.icon =
<URIof16x16image>
donde <URIof16x16image> especifica el URI
de una imagen 16x16.
oslc.<tipo>.<vía_acceso>.preview.largePreview.
donde <URI_documento_vista_previa>
document = <URI_documento_vista_previa>
especifica el URI utilizado para el
documento de vista previa HTML.
oslc.<tipo>.<vía_acceso>.preview.smallPreview.
donde <URI_documento_vista_previa>
document = <URI_documento_vista_previa>
especifica el URI del documento de vista
previa HTML.
En un ejemplo de implementación con
TBSM, esta sentencia especifica el contenido
representado dentro de la visualización
previa mediante puntero.
Tabla 80. Parámetros de vista previa contextual para parámetro de icono
Sentencia
Descripción
oslc.<tipo>.
<vía_acceso>.preview.
iconTitle = <título_icono>
donde <título_icono> especifica el título que
se utiliza para el icono.
oslc.<tipo>.<vía_acceso>.preview.iconAltLabel
donde <etiqueta_alternativa> especifica una
= <etiqueta_alternativa>
etiqueta alternativa para el icono.
262
Netcool/Impact: Guía de soluciones
Tabla 81. Parámetros de vista previa contextual para parámetro de documento
Sentencia
Descripción
oslc.<tipo>.<víAcc.>.preview.largePreview. donde <ancho_ventana_vista_previa>
hintWidth =
especifica el ancho de la ventana de vista
<ancho_ventana_vista_previa>
previa. Por ejemplo, 31,250 em.
oslc.<tipo>.<víAcc.>.preview.largePreview. donde <altura_ventana_vista_previa>
hintHeight =
especifica la altura de la ventana de vista
<altura_ventana_vista_previa>
previa. Por ejemplo, 21,785 em.
oslc.<tipo>.<víAcc.>.preview.largePreview. donde <altura_inicial_ventana_vista_previa>
initialHeight =
especifica la altura de la ventana de vista
<altura_inicial_ventana_vista_previa>
previa cuando se visualiza por primera vez.
Por ejemplo, 21,785 em.
oslc.<tipo>.<víAcc.>.preview.smallPreview. donde <ancho_ventana_vista_previa>
hintWidth =
especifica el ancho de la ventana de vista
<ancho_ventana_vista_previa>
previa pequeña. Por ejemplo, 31,250 em.
En un ejemplo de implementación con
TBSM, esta sentencia especifica la anchura
de la ventana de la visualización previa
mediante puntero.
oslc.<tipo>.<víAcc.>.preview.smallPreview. donde <altura_ventana_vista_previa>
hintHeight =
especifica la altura de la ventana de vista
<altura_ventana_vista_previa>
previa pequeña. Por ejemplo, 21,785 em.
En un ejemplo de implementación con
TBSM, esta sentencia especifica la altura de
la ventana de la visualización previa
mediante puntero.
oslc.<tipo>.<víAcc.>.preview.smallPreview. donde <altura_inicial_ventana_vista_previa>
initialHeight =
especifica la altura de la ventana de vista
<altura_inicial_ventana_vista_previa>
previa pequeña cuando se visualiza por
primera vez. Por ejemplo, 21,785 em.
donde <tipo> es el tipo de recurso OSLC. Puede ser datos o una política.
<víAcc.> es la vía de acceso de recurso OSLC.
Escenario de ejemplo: utilización de OSLC con políticas de
Netcool/Impact
Lea este escenario de ejemplo para ver una descripción general de cómo puede
utilizar las políticas de Netcool/Impact para crear recursos y proveedores de
servicios OSLC, y registrar el proveedor y los recursos en el componente Servicios
de registro de Jazz for Service Management.
Antes de empezar
Para utilizar OSLC, primero debe instalar el componente Servicios de registro de
Jazz for Service Management. Para obtener más información, consulte
http://pic.dhe.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm.psc.doc_1.1.0/
psc_ic-homepage.html.
Capítulo 15. Utilización de OSLC para Netcool/Impact
263
Acerca de esta tarea
El componente Servicios de registro de Jazz for Service Management incluye dos
registros, el registro de recurso y el registro de proveedor. En primer lugar, este
ejemplo muestra cómo crear un proveedor de servicios y registrarlo en el registro
de proveedor. A continuación se crea un recurso OSLC y se registra en el registro
de recursos.
Procedimiento
1. Cree una política de Netcool/Impact que cree un proveedor de servicios y lo
registre en el registro de proveedor como parte del componente Servicios de
registro de Jazz for Service Management:
a. Defina la información de servidor para el servidor donde está instalado el
componente Servicios de registro de Jazz for Service Management:
RegistryServerProviderCFUri="http://<servidor_registro>:9080/oslc/pr/collection";
RegistryServerUsername="<usuario>";
RegistryServerPassword="<contraseña>";
b. Defina la información de proveedor de servicios:
dsTitle = "Customer-x Product-y OSLC Service Provider";
dsDescription = "Customer-x Product-y OSLC Service Provider";
provider = "http://<URL>/<miProveedor>";
domain = "http://<Dominio>/";
c. Utilice la función de políticas RDFModel para crear el modelo RDF de
proveedor de servicios:
serviceProviderModel = RDFModel();
d. Actualice las definiciones de espacio de nombres:
RDFModelUpdateNS(serviceProviderModel, "oslc","http://open-services.net/ns/core#");
RDFModelUpdateNS(serviceProviderModel, "dcterms","http://purl.org/dc/terms/");
e. Cree las sentencias RDF y añádalas al modelo:
RDFStatement(serviceProviderModel, provider, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
"http://open-services.net/ns/core#ServiceProvider", true);
RDFStatement(serviceProviderModel, provider, "http://purl.org/dc/terms/title", dsTitle, false);
RDFStatement(serviceProviderModel, provider, "http://purl.org/dc/terms/description",
dsDescription, false);
serviceStmt=RDFStatement(serviceProviderModel, null, "http://www.w3.org/1999/
02/22-rdf-syntax-ns#type", "http://open-services.net/ns/core#Service", true);
RDFStatement(serviceProviderModel, serviceStmt.getSubject, "http://open-services.net/ns/
core#domain", domain, true);
RDFStatement(serviceProviderModel, provider, "http://open-services.net/ns/core#service",
serviceStmt.getSubject, true);
log("---------Service Provider RDF---------");
log(RDFModelToString(serviceProviderModel, "RDF/XML-ABBREV"));
f. Utilice la función de políticas RDFRegister para registrar el proveedor de
servicios en el registro de proveedor.
serviceProviderURL = RDFRegister(RegistryServerProviderCFUri, RegistryServerUsername,
RegistryServerPassword, serviceProviderModel);
log("Proveedor de servicios registrado: " + serviceProviderURL);
2. Cree y registre un recurso OSLC en el registro de recursos:
a. Defina la información de servidor para el registro de recursos:
RegistryServerResourceCFUri="http://<servidor_registro>:9080/oslc/rr/
registration/collection";
RegistryServerUsername="<usuario>";
RegistryServerPassword="<contraseña>";
b. Defina el recurso OSLC. En este ejemplo representa un sistema:
computerSystem = "http://<URL_recurso_OSLC>/mySystemX";
name = "mySystemX";
manufacturer = "VMware";
serialNumber = "422ABA0619B0DE94B02E40870D6462AF";
model = "VMWAREVIRTUALPLATFORM";
El proveedor de servicios se encuentra en el URL siguiente. Puede recuperar
este URL después de registrar el proveedor de servicios:
264
Netcool/Impact: Guía de soluciones
"http://<servidor_registro>:9080/oslc/providers/1358241368487"
c. Cree el modelo RDF que representa el sistema:
computerSystemModel = RDFModel();
RDFModelUpdateNS(computerSystemModel, "crtv", "http://open-services.net/ns/crtv#");
RDFModelUpdateNS(computerSystemModel, "oslc","http://open-services.net/ns/core#");
RDFStatement(computerSystemModel, computerSystem, "http://www.w3.org/1999/02/
22-rdf-syntax-ns#type",
"http://open-services.net/ns/crtv#ComputerSystem", true);
RDFStatement(computerSystemModel, computerSystem, "http://open-services.net/
ns/crtv#name", name, false);
RDFStatement(computerSystemModel, computerSystem, "http://open-services.net/
ns/crtv#model", model, false);
RDFStatement(computerSystemModel, computerSystem, "http://open-services.net/
ns/crtv#manufacturer", manufacturer, false);
RDFStatement(computerSystemModel, computerSystem, "http://open-services.net/
ns/crtv#serialNumber", serialNumber, false);
RDFStatement(computerSystemModel, computerSystem, "http://open-services.net/
ns/core#serviceProvider", serviceProviderURL , true);
log("---------Computer System RDF---------");
log(RDFModelToString(computerSystemModel, "RDF/XML-ABBREV"));
d. Registre el sistema en el registro de recursos.
registrationRecordURL = RDFRegister(RegistryServerResourceCFUri, RegistryServerUsername,
RegistryServerPassword, computerSystemModel);
log("Proveedor de servicios registrado: " + registrationRecordURL);
Temas de consulta de OSLC
Lea la información de consulta siguiente para OSLC.
URL de OSLC
Se utilizan los URL siguientes para acceder a datos OSLC.
Acceso a elementos de datos
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/data/<tipo_datos>/
Recupere la forma de recurso OSLC para el tipo de datos
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/data/resourceShapes/
<tipo_datos>
Ejecute la política y devuelva los resultados
http://<servidor>:<puerto>/NCI_NCICLUSTER_oslc/policy/
<nombre_política>
Acceda a una matriz de variables de resultados de política
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/policy/
<nombre_política>/<matriz_variables>
Visualice los resultados para un identificador de clave exclusiva:
http://<servidor>:<puerto>/NCICLUSTER_NCI_oslc/policy/
<nombre_política>/<función>item;ID=<identificador_clave_exclusiva>
Paginación de OSLC
El proveedor OSLC de Netcool/Impact permite la paginación para facilitar y
optimizar la recuperación de grandes cantidades de datos.
La paginación está habilitada de forma predeterminada para elementos de datos y
políticas cuyas variables contienen elementos de datos. Para configurar
manualmente la paginación, añada los siguientes parámetros de consulta al URL:
?oslc.paging=true&oslc.page=<número_página>&oslc.pageSize=<tamaño_página>
v oslc.paging=true habilita la paginación. Este valor está habilitado de forma
predeterminada. Para inhabilitar la paginación, utilice oslc_paging=false.
Capítulo 15. Utilización de OSLC para Netcool/Impact
265
v oslc.page=<número_página> es el número de página. De forma predeterminada,
esta propiedad se establece en página 1.
v oslc.pageSize=<tamaño_página> es el tamaño de página. De forma
predeterminada, esta propiedad se establece en 100.
Los administradores pueden añadir la siguiente sentencia al archivo de
configuración NCI_server.props para establecer el límite predeterminado para el
tamaño de página:
impact.oslc.pagesize=<tamaño_página>
Si esta propiedad no está definida, se establece de forma predeterminada en 100.
Si el tamaño de página en el URL es mayor que el límite definido en el archivo de
configuración NCI_server.props, el tamaño está limitado al del conjunto en el
archivo de configuración NCI_server.props.
También puede añadir la propiedad oslc_paging=false en el URL para inhabilitar
la paginación. Si esta propiedad está establecida, se devuelve el conjunto de
resultados completo. Si se definen propiedades de paginación adicionales, estas
propiedades se ignoran. Si inhabilita la paginación y también habilita el soporte de
modelo de datos grandes, ello puede tener un efecto adverso en el rendimiento.
Información de respuesta
Se añaden dos propiedades a la información de respuesta: oslc:nextPage y
oslc:totalCount.
La propiedad oslc:nextPage no se devuelve cuando no hay ninguna página
siguiente. Si el tamaño de página del resultado es menor que la propiedad de
tamaño de página especificada, no se devuelve ninguna propiedad de página
siguiente.
La propiedad oslc:totalCount proporciona la información de recuento total entre
todas las páginas.
Ejemplo
Por ejemplo, el siguiente URL representa las variables de alerta correspondientes a
los sucesos de función GetByFilter:
http://example.com:9080/NCICLUSTER_NCI_oslc/policy/events/alerts?
oslc.paging=true&oslc.page=2&oslc.pageSize=25
En el URL, la paginación está habilitada. Los resultados de la variable están
incluidos en la segunda página. El tamaño de página está limitado a 25.
Seguridad de OSLC
La seguridad de OSLC está habilitada de forma predeterminada. Puede utilizar el
script configOSLCSecurity para inhabilitar la seguridad de OSLC.
Inhabilitación de la seguridad de OSLC
Para que la vista previa contextual funcione con otros productos como por ejemplo
TBSM, tiene las opciones siguientes.
v Habilite SSO o LDAP entre TBSM y Netcool/Impact. Un usuario también debe
tener acceso al rol de seguridad de OSLC.
266
Netcool/Impact: Guía de soluciones
v Inhabilite la seguridad de OSLC ejecutando el script de configOSLCSecurity.
Los scripts están en los directorios siguientes. Para Netcool/Impact
/opt/IBM/tivoli/impact/bin, para TBSM /opt/IBM/tivoli/tbsm/bin.
Para Windows, ejecute el mandato siguiente.
configOSLCSecurity.bat <disable> <Servidor> <nombre_de_usuario> <contraseña>
Para Netcool/Impact
configOSLCSecurity.bat disable NCI tipadmin tippass
Para TBSM
configOSLCSecurity.bat disable TBSM tipadmin tippass
Para UNIX, ejecute el mandato siguiente.
configOSLCSecurity.sh <disable> <Servidor> <nombre_de_usuario> <contraseña>
Para Netcool/Impact
./configOSLCSecurity.sh disable NCI tipadmin tippass
Para TBSM
./configOSLCSecurity.sh disable TBSM tipadmin tippass
Para habilitar la seguridad de OSLC, sustituya <disable> por <enable> para cada
mandato.
Soporte de la sintaxis de consulta de OSLC
Netcool/Impact da soporte a una versión de la sintaxis de consulta de OSLC. La
implementación en Netcool/Impact da soporte a los parámetros de consulta
oslc.properties y oslc.select.
Ambos parámetros de consulta tienen una funcionalidad muy similar. La única
diferencia es el significado de los identificadores. Si los identificadores pertenecen
al recurso del asunto inicial, utilice oslc.properties. Si los identificadores
pertenecen a una lista de miembros de un recurso, utilice oslc.select.
Para obtener más información sobre la sintaxis de consulta de OSLC, consulte la
especificación Open Services for Lifecycle Collaboration Core Specification Versión
2.0 (http://open-services.net/bin/view/Main/OslcCoreSpecification)
Parámetro de consulta oslc.properties
Utilice el parámetro de consulta oslc.properties para visualizar las propiedades
de un URI de recurso individual que no contenga ninguna lista rdfs:member.
Si los identificadores de los que desea limitar las propiedades pertenecen al objeto
de inicio, utilice el parámetro de consulta oslc.properties para limitar las
propiedades devueltas por los identificadores.
Ejemplo
Para visualizar las propiedades de un URI de recurso individual que no contiene
ninguna lista rdfs:member, utilice el parámetro de consulta oslc.properties:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/staff/item;
FNAME=%27Todd%27;LNAME=%27Bishop%27?oslc.properties=foaf:lastName,
foaf:firstName
Capítulo 15. Utilización de OSLC para Netcool/Impact
267
El URI devuelve lo siguiente:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:EMPLOYEES="http://jazz.net/ns/ism/event/impact/data/staff/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#"
xmlns:foaf="http://xmlns.com/foaf/">
<foaf:Person rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff/item;FNAME='Todd';LNAME='Bishop'">
<foaf:lastName>Bishop</foaf:lastName>
<foaf:firstName>Todd</foaf:firstName>
</foaf:Person>
</rdf:RDF>
Parámetro de consulta oslc.select
Si los identificadores de los que desea limitar las propiedades pertenecen a una
lista de miembros para un recurso, utilice el parámetro de consulta oslc.select.
Utilice oslc.select para completar las tareas siguientes:
v Limitar las propiedades de una lista de miembros que pertenece a un recurso
OSLC. Por ejemplo, para limitar las propiedades de una lista de miembros que
pertenece a un recurso OSLC generado a partir de un elemento de datos.
v Visualizar un recurso OSLC que contiene listas rdfs:member. Por ejemplo, para
visualizar los resultados de una variable de función de políticas.
Ejemplo de elementos de datos
Si consulta un URL que contiene una lista de recursos pertenecientes a una tabla
de base de datos, el sistema devuelve una lista rdfs:member para cada fila. Por
ejemplo, para consultar el tipo de datos staff y para limitar las propiedades
contenidas en la lista a las propiedades foaf:lastName y foaf:firstName, utilice el
parámetro de consulta oslc.select:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff?oslc.select=foaf:lastName,foaf:firstName
Este URL devuelve sólo las listas rdfs:member que contienen las propiedades
foaf:lastName y foaf:firstName:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:EMPLOYEES="http://jazz.net/ns/ism/event/impact/data/staff/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#"
xmlns:foaf="http://xmlns.com/foaf/">
<oslc:ResponseInfo rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff?oslc.select=foaf:lastName,foaf:firstName&
oslc.paging=true&oslc.pageSize=100">
<oslc:totalCount>5</oslc:totalCount>
</oslc:ResponseInfo>
<rdf:Description rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff?oslc.select=foaf:lastName,foaf:firstName">
<rdfs:member>
<foaf:Person rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff/item;FNAME='Mika';LNAME='Masion'">
<foaf:lastName>Masion</foaf:lastName>
<foaf:firstName>Mika</foaf:firstName>
</foaf:Person>
</rdfs:member>
268
Netcool/Impact: Guía de soluciones
<rdfs:member>
<foaf:Person rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff/item;FNAME='Kevin';LNAME='Doe'">
<foaf:lastName>Doe</foaf:lastName>
<foaf:firstName>Kevin</foaf:firstName>
</foaf:Person>
</rdfs:member>
<rdfs:member>
<foaf:Person rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff/item;FNAME='Todd';LNAME='Bishop'">
<foaf:lastName>Bishop</foaf:lastName>
<foaf:firstName>Todd</foaf:firstName>
</foaf:Person>
</rdfs:member>
<rdfs:member>
<foaf:Person rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff/item;FNAME='Miriam';LNAME='Masters'">
<foaf:lastName>Masters</foaf:lastName>
<foaf:firstName>Miriam</foaf:firstName>
</foaf:Person>
</rdfs:member>
<rdfs:member>
<foaf:Person rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/data/
staff/item;FNAME='Brian';LNAME='Doe'">
<foaf:lastName>Doe</foaf:lastName>
<foaf:firstName>Brian</foaf:firstName>
</foaf:Person>
</rdfs:member>
</rdf:Description>
</rdf:RDF>
Ejemplo de variable de política
Si el recurso inicial contiene las listas de miembros, utilice el parámetro de consulta
oslc.select. Por ejemplo, si el recurso contiene una variable de política como
MyDirectSQL, utilice oslc.select:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myDirectSQL2?
oslc.select=myDirectSQL2:num_events
Este URL devuelve los resultados siguientes:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:direct="http://policy.js/xmlns/directSQL/"
xmlns:test_ipl="http://jazz.net/ns/ism/event/impact/policy/ipl/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:myDirectSQL2="http://jazz.net/ns/ism/event/impact#policy/
ipl/myDirectSQL2/"
xmlns:impact="http://jazz.net/ns/ism/event/impact#"
xmlns:javascript="http://policy.js/xmlns/">
<rdf:Description rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/
policy/ipl/myDirectSQL2?
<oslc.select=myDirectSQL2:num_events">
<rdfs:member>
<test_ipl:myDirectSQL2 rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/
policy/ipl/
myDirectSQL2/item;min_serial=165248;num_events=928;max_serial=387781">
<myDirectSQL2:num_events>928</myDirectSQL2:num_events>
</test_ipl:myDirectSQL2>
</rdfs:member>
</rdf:Description>
<oslc:ResponseInfo rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/
ipl/myDirectSQL2?
Capítulo 15. Utilización de OSLC para Netcool/Impact
269
<oslc.select=myDirectSQL2:num_events&oslc.paging=true&oslc.pageSize=100">
<oslc:totalCount>1</oslc:totalCount>
</oslc:ResponseInfo>
</rdf:RDF>
Variables anidadas y consultas con comodín
Utilice las consultas con comodín para visualizar variables anidadas.
Para visualizar todas las variables y sus valores anidados, utilice la sentencia
siguiente:
oslc.properties=*
Para visualizar todas las variables, sus valores anidados y las funciones de
políticas, utilice la sentencia siguiente:
oslc.properties=*&oslc.select=*
Ejemplo
Por ejemplo, define una política y desea utilizar el siguiente URL para acceder a
ella:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl
El URL devuelve lo siguiente:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:direct="http://policy.js/xmlns/directSQL/"
xmlns:test_ipl="http://jazz.net/ns/ism/event/impact/policy/ipl/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#"
xmlns:javascript="http://policy.js/xmlns/">
<rdf:Description rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl">
<test_ipl:myTimestamp>20120818</test_ipl:myTimestamp>
<test_ipl:myString>test_ipl</test_ipl:myString>
<test_ipl:myInteger>55</test_ipl:myInteger>
<test_ipl:myImpactObjectArray rdf:resource="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray"/>
<test_ipl:myImpactObject1 rdf:resource="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObject1"/>
<test_ipl:myDouble>109.5</test_ipl:myDouble>
<rdf:type rdf:resource="http://jazz.net/ns/ism/event/impact/policy/ipl/"/>
</rdf:Description>
</rdf:RDF>
Este ejemplo contiene varios literales RDF como myTimestamp, myString y
myInteger. También contiene el recurso RDF myImpactObjectArray.
Utilice el URL siguiente para que se muestren todas las variables y sus valores
anidados:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/
ipl?oslc.properties=*
Esto devuelve los resultados siguientes:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myImpactObjectArray="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/"
xmlns:myImpactObject1="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObject1/"
270
Netcool/Impact: Guía de soluciones
xmlns:direct="http://policy.js/xmlns/directSQL/"
xmlns:test_ipl="http://jazz.net/ns/ism/event/impact/policy/ipl/"
xmlns:oslc_pos_2="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/oslc_pos_2/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:oslc_pos_1="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/oslc_pos_1/"
xmlns:oslc_pos_0="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/oslc_pos_0/"
xmlns:impact="http://jazz.net/ns/ism/event/impact#"
xmlns:javascript="http://policy.js/xmlns/">
<rdf:Description rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl">
<test_ipl:myTimestamp>20120818</test_ipl:myTimestamp>
<test_ipl:myString>test_ipl</test_ipl:myString>
<test_ipl:myInteger>55</test_ipl:myInteger>
<test_ipl:myImpactObjectArray>
<test_ipl:myImpactObjectArray rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray">
<myImpactObjectArray:oslc_pos_2>
<myImpactObjectArray:oslc_pos_2 rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray/oslc_pos_2">
<oslc_pos_2:lname>Doe</oslc_pos_2:lname>
<oslc_pos_2:fname>Kevin</oslc_pos_2:fname>
<oslc_pos_2:email>kdoe@us.ibm.com</oslc_pos_2:email>
<oslc_pos_2:birthday>1973-01-22</oslc_pos_2:birthday>
</myImpactObjectArray:oslc_pos_2>
</myImpactObjectArray:oslc_pos_2>
<myImpactObjectArray:oslc_pos_1>
<myImpactObjectArray:oslc_pos_1 rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray/oslc_pos_1">
<oslc_pos_1:lname>Doe</oslc_pos_1:lname>
<oslc_pos_1:fname>Danny</oslc_pos_1:fname>
<oslc_pos_1:email>doe@us.ibm.com</oslc_pos_1:email>
<oslc_pos_1:birthday>1976-05-12</oslc_pos_1:birthday>
</myImpactObjectArray:oslc_pos_1>
</myImpactObjectArray:oslc_pos_1>
<myImpactObjectArray:oslc_pos_0>
<myImpactObjectArray:oslc_pos_0 rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray/oslc_pos_0">
<oslc_pos_0:lname>Doe</oslc_pos_0:lname>
<oslc_pos_0:fname>John</oslc_pos_0:fname>
<oslc_pos_0:email>jdoe@us.ibm.com</oslc_pos_0:email>
<oslc_pos_0:birthday>1980-08-11</oslc_pos_0:birthday>
</myImpactObjectArray:oslc_pos_0>
</myImpactObjectArray:oslc_pos_0>
</test_ipl:myImpactObjectArray>
</test_ipl:myImpactObjectArray>
<test_ipl:myImpactObject1>
<test_ipl:myImpactObject1 rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObject1">
<myImpactObject1:lname>Doe</myImpactObject1:lname>
<myImpactObject1:fname>John</myImpactObject1:fname>
<myImpactObject1:email>jdoe@us.ibm.com</myImpactObject1:email>
<myImpactObject1:birthday>1980-08-11</myImpactObject1:birthday>
</test_ipl:myImpactObject1>
</test_ipl:myImpactObject1>
<test_ipl:myDouble>109.5</test_ipl:myDouble>
<rdf:type rdf:resource="http://jazz.net/ns/ism/event/impact/policy/ipl/"/>
</rdf:Description>
</rdf:RDF>
Tenga en cuenta que la matriz myImpactObjectArray se expande para mostrar cada
ImpactObject que contiene y los valores de las propiedades de cada uno de los
ImpactObjects.
Capítulo 15. Utilización de OSLC para Netcool/Impact
271
Para obtener un valor de propiedad específico para uno de los recursos, utilice un
URL que especifique las propiedades anidadas. Por ejemplo:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl?oslc.
properties=test_ipl:myImpactObjectArray{myImpactObjectArray:
oslc_pos_0{oslc_pos_0:lname,oslc_pos_0:fname}}
Este URL devuelve los resultados siguientes:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myImpactObjectArray="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/"
xmlns:myImpactObject1="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObject1/"
xmlns:direct="http://policy.js/xmlns/directSQL/"
xmlns:test_ipl="http://jazz.net/ns/ism/event/impact/policy/ipl/"
xmlns:oslc_pos_2="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/oslc_pos_2/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:oslc_pos_1="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/oslc_pos_1/"
xmlns:oslc_pos_0="http://jazz.net/ns/ism/event/impact/policy/
ipl/myImpactObjectArray/oslc_pos_0/"
xmlns:tivoli-impact="http://jazz.net/ns/ism/event/impact#"
xmlns:javascript="http://policy.js/xmlns/">
<rdf:Description rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/
policy/ipl">
<test_ipl:myImpactObjectArray>
<test_ipl:myImpactObjectArray rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray">
<myImpactObjectArray:oslc_pos_0>
<myImpactObjectArray:oslc_pos_0 rdf:about="http://<servidor>:9080/
NCICLUSTER_NCI_oslc/policy/ipl/myImpactObjectArray/oslc_pos_0">
<oslc_pos_0:lname>Doe</oslc_pos_0:lname>
<oslc_pos_0:fname>John</oslc_pos_0:fname>
</myImpactObjectArray:oslc_pos_0>
</myImpactObjectArray:oslc_pos_0>
</test_ipl:myImpactObjectArray>
</test_ipl:myImpactObjectArray>
<rdf:type rdf:resource="http://jazz.net/ns/ism/event/impact/policy/
ipl/"/>
</rdf:Description>
</rdf:RDF>
Para obtener recursos que contengan listas de miembros, como listas de miembros
contenidas en los resultados de las funciones de políticas DirectSQL y GetByFilter,
utilice una combinación de los parámetros de consulta oslc.properties y
oslc.select. Por ejemplo:
http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/
ipl?oslc.properties=*&oslc.select=test_ipl:myGetByFilter
{myGetByFilter:LNAME,myGetByFilter:FNAME}
Este URL devuelve el siguiente RDF:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:myGetByFilter="http://jazz.net/ns/ism/event/impact/policy/
ipl/myGetByFilter/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:direct="http://policy.js/xmlns/directSQL/"
xmlns:test_ipl="http://jazz.net/ns/ism/event/impact/policy/ipl/"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:impact="http://jazz.net/ns/ism/event/impact#"
272
Netcool/Impact: Guía de soluciones
xmlns:javascript="http://policy.js/xmlns/">
<rdf:Description rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/
policy/ipl">
<test_ipl:myTimestamp>20120818</test_ipl:myTimestamp>
<test_ipl:myString>test_ipl</test_ipl:myString>
<test_ipl:myInteger>55</test_ipl:myInteger>
<test_ipl:myGetByFilter>
<test_ipl:myGetByFilter
rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myGetByFilter">
<rdfs:member>
<test_ipl:myGetByFilter
rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myGetByFilter/
item;FNAME='Mika';LNAME='Masion'">
<myGetByFilter:LNAME>Masion</myGetByFilter:LNAME>
<myGetByFilter:FNAME>Mika</myGetByFilter:FNAME>
</test_ipl:myGetByFilter>
</rdfs:member>
<rdfs:member>
<test_ipl:myGetByFilter
rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myGetByFilter/
item;FNAME='Kevin';LNAME='Doe'">
<myGetByFilter:LNAME>Doe</myGetByFilter:LNAME>
<myGetByFilter:FNAME>Kevin</myGetByFilter:FNAME>
</test_ipl:myGetByFilter>
</rdfs:member>
<rdfs:member>
<test_ipl:myGetByFilter
rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myGetByFilter/
item;FNAME='Todd';LNAME='Bishop'">
<myGetByFilter:LNAME>Bishop</myGetByFilter:LNAME>
<myGetByFilter:FNAME>Todd</myGetByFilter:FNAME>
</test_ipl:myGetByFilter>
</rdfs:member>
<rdfs:member>
<test_ipl:myGetByFilter
rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myGetByFilter/
item;FNAME='Miriam';LNAME='Masters'">
<myGetByFilter:LNAME>Masters</myGetByFilter:LNAME>
<myGetByFilter:FNAME>Miriam</myGetByFilter:FNAME>
</test_ipl:myGetByFilter>
</rdfs:member>
<rdfs:member>
<test_ipl:myGetByFilter
rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/policy/ipl/myGetByFilter/
item;FNAME='Brian';LNAME='Doe'">
<myGetByFilter:LNAME>Doe</myGetByFilter:LNAME>
<myGetByFilter:FNAME>Brian</myGetByFilter:FNAME>
</test_ipl:myGetByFilter>
</rdfs:member>
<oslc:ResponseInfo>
<oslc:ResponseInfo rdf:about="http://<servidor>:9080/NCICLUSTER_NCI_oslc/
policy/ipl/myGetByFilter<oslc.paging=true&oslc.pageSize=100">
<oslc:totalCount>5</oslc:totalCount>
</oslc:ResponseInfo>
</oslc:ResponseInfo>
</test_ipl:myGetByFilter>
</test_ipl:myGetByFilter>
<test_ipl:myDouble>109.5</test_ipl:myDouble>
<rdf:type rdf:resource="http://jazz.net/ns/ism/event/impact#
policy/ipl/"/>
</rdf:Description>
</rdf:RDF>
Funciones de RDF
Puede utilizar funciones de RDF para que Netcool/Impact sea compatible con los
servicios abiertos para la colaboración del ciclo de vida (OSLC).
Capítulo 15. Utilización de OSLC para Netcool/Impact
273
RDFModel
Puede utilizar la función RDFModel para crear un modelo RDF sin ningún
parámetro de tiempo de ejecución.
Para crear un modelo RDF vacío, llame a la función RDFModel sin especificar
ningún parámetro de tiempo de ejecución. La función devuelve un modelo RDF
vacío.
Sintaxis
La función RDFModel tiene la sintaxis siguiente:
[Model =] RDFModel()
Parámetros
La función RDFModel no tiene parámetros de tiempo de ejecución.
RDFModelToString
Puede utilizar la función RDFModelToString para exportar un modelo RDF a una
serie en un lenguaje concreto.
Cuando cree o escriba un modelo RDF, puede utilizar la función RDFModelToString
para exportar un modelo a una serie en un lenguaje concreto. Puede definir un
objeto de modelo y una serie que contiene el lenguaje que se utiliza como
parámetros de tiempo de ejecución. Si la serie del lenguaje es una serie nula o
vacía, se utiliza el lenguaje predeterminado RDF/XML. Son compatibles las series
de lenguaje siguientes:
v
v
v
v
RDF/XML
RDF/XML-ABBREV
TURTLE
TTL
v N3
RDFModelToString devuelve una serie
Sintaxis
La función RDFModelToString tiene la sintaxis siguiente:
[Serie =] RDFModelToString (Model, Language)
Parámetros
La función RDFModelToString tiene los parámetros siguientes:
Tabla 82. Parámetros de la función RDFModelToString
Parámetro
Tipo
Descripción
Model
Modelo
Objeto de modelo para la
salida
Language
Serie
Tipo de lenguaje
El ejemplo siguiente actualizar los espacios de nombres en un modelo:
274
Netcool/Impact: Guía de soluciones
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend, HeadersToSend,
HttpProperties);
//Crear modelo de la carga útil de RDF
rdf=RDFParse(x);
//Recuperar todas las sentencias del modelo
allStatements=RDFSelect(rdf,null,null,null);
//RDF de salida en el registro mediante N3
log(RDFModelToString(rdf, “N3”));
//RDF de salida en el registro utilizando el lenguaje predeterminado (RDF/XML)
log(RDFModelToString(rdf, null));
RDFModelUpdateNS
Puede utilizar la función RDFModelUpdateNS para insertar, actualizar o eliminar un
espacio de nombres de un modelo RDF.
Cuando cree un modelo RDF, puede utilizar la función RDFModelUpdateNS para
insertar, actualizar o eliminar un espacio de nombres del modelo. Puede definir un
objeto de modelo, una serie de prefijo y una serie de URI como parámetros de
tiempo de ejecución. Si el URI es una serie nula o vacía, la función elimina la serie
de prefijo del modelo. Si el URI contiene una serie con un valor no vacío y existe
el prefijo, se actualiza el URI. Si el prefijo no existe, se añade un nuevo prefijo y
URI al modelo. RDFModelUpdateNS devuelve este modelo.
Sintaxis
La función RDFModelUpdateNS tiene la sintaxis siguiente:
[Modelo =] RDFModelUpdateNS (Model, Prefix, URI)
Parámetros
La función RDFModelUpdateNS tiene los parámetros siguientes:
Tabla 83. Parámetros de la función RDFModelUpdateNS
Parámetro
Tipo
Descripción
Model
Modelo
Objeto de modelo para
actualizar
Prefix
Serie
Contiene el prefijo que se va
a actualizar en el modelo
URI
Serie
Contiene el URI para asociar
con el prefijo
Capítulo 15. Utilización de OSLC para Netcool/Impact
275
El ejemplo siguiente actualizar los espacios de nombres en un modelo:
//Crear modelo
model = RDFModel();
//Actualizar o insertar espacio de nombres al modelo
RDFModelUpdateNS(model,"oslc","http://open-services.net/ns/core#");
RDFModelUpdateNS(model,"rdfs","http://www.w3.org/2000/01/rdf-schma#");
RDFModelUpdateNS(model,"dcterms","http://purl.org/dc/terms/");
El siguiente fragmento de código suprime un espacio de nombres del modelo existente:
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey,
Method, AuthHandlerActionTreeName, FormParameters,
FilesToSend, HeadersToSend, HttpProperties);
//Crear modelo de la carga útil de RDF
model=RDFParse(x);
//Suprimir espacio de nombres del modelo que tiene el prefijo 'oslc'
RDFModelUpdateNS(model, “oslc”, null);
RDFNodeIsResource
Puede utilizar la función RDFNodeIsResource para ayudar a otras funciones a leer y
analizar objetos que también son un recurso RDF. Puede definir un nodo RDF
como un parámetro de tiempo de ejecución en esta función. Si el objeto es un
recurso RDF, la función devuelve un valor verdadero. Si el objeto es un literal RDF,
la función devuelve un valor falso. Otras funciones pueden utilizar el modelo
devuelto por la función RDFNodeIsResource para seguir leyendo y analizando el
objeto RDF.
Sintaxis
La función RDFNodeIsResource tiene la sintaxis siguiente:
[Booleano =] RDFNodeIsResource (Object)
Parámetros
La función RDFNodeIsResource tiene los parámetros siguientes:
Tabla 84. Parámetros de la función RDFNodeIsResource
Parámetro
Tipo
Descripción
Object
Nodo RDF
Comprobación de tipo de
objeto RDF
El ejemplo siguiente muestra sentencias basadas en un RDF recuperado por la
función GetHTTP:
276
Netcool/Impact: Guía de soluciones
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend, HeadersToSend,
HttpProperties);
//Crear modelo de la carga útil de RDF
rdf=RDFParse(x);
//Recuperar todas las sentencias del modelo
allStatements=RDFSelect(rdf,null,null,null);
//Asunto, predicados y objetos de salida de todas las sentencias devueltas, cuyo
objeto es un literal, en el registro
Size=Length(allStatements);
log(Size);
Count=0;
While (Count < Size) {
if (!RDFNodeIsResource (allStatements [Count].object)) {
log (allStatements [Count].subject + " " + allStatements [Count].predicate + " "
+ allStatements [Count].object + ".");
}
Count = Count + 1;
}
RDFNodeIsAnon
Puede utilizar la función RDFNodeIsAnon para ayudar en la lectura y el análisis de
un RDF. La función RDFNodeIsAnon abarca un asunto/objeto que contiene un
RDFNode como un parámetro de tiempo de ejecución y devuelve true (verdadero) si
el recurso es anónimo. Si el valor de retorno es false (falso), el recurso RDF no es
anónimo. El modelo generado por la función puede ser utilizado después por otras
funciones para seguir leyendo y analizando el RDF.
RDFNodeIsAnon devuelve true o false, en función de si RDFNode es anónimo.
Sintaxis
La función RDFNodeIsAnon tiene la sintaxis siguiente:
[Booleano =] RDFNodeIsAnon (Node)
Parámetros
La función RDFNodeIsAnon tiene el parámetro siguiente:
Tabla 85. Parámetro RDFNodeIsAnon
Parámetro
Tipo
Descripción
Node
RDFNode
Asunto u objeto para
comprobar
Capítulo 15. Utilización de OSLC para Netcool/Impact
277
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="http";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=newobject();
FilesToSend=newobject();
HeadersToSend=newobject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend, HeadersToSend,
HttpProperties);
//Crear modelo de la carga útil de RDF
rdf=RDFParse(x);
//Recuperar todas las sentencias del modelo
allStatements=RDFSelect(rdf,null,null,null);
//Asunto, predicado y objetos de salida de todas las sentencias devueltas,
cuyo objeto es un literal, en el registro
Size=Length(allStatements);
Log(Size);
Count=0;
While (Count < Size) {
if (!RDFNodeIsAnon(allStatements[Count].subject)) {
log (allStatements [Count].subject + " " + allStatements [Count].predicate + " "
+ allStatements
[Count].object + ".");
}
Count = Count + 1;
}
RDFParse
Puede utilizar la función RDFParse para ayudar a otras funciones leer y analizar un
objeto RDF. Recupera los datos de una serie que contiene una carga útil de RDF y
devuelve un modelo que contiene la carga útil de RDF que se la ha pasado. Otras
funciones pueden utilizar este modelo para leer y analizar de forma adicional un
objeto RDF.
Sintaxis
La función RDFParse tiene la sintaxis siguiente:
[Modelo =] RDFParse(Payload)
Parámetros
La función RDFParse tiene los parámetros siguientes:
Tabla 86. Parámetro de la función RDFParse
278
Parámetro
Tipo
Descripción
Payload
Serie
Carga útil que contiene el
RDF
Netcool/Impact: Guía de soluciones
El ejemplo siguiente proporciona sentencias basándose en un RDF recuperado por
la función GetHTTP:
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend, HeadersToSend,
HttpProperties);
//Crear modelo de la carga útil de RDF
rdf=RDFParse(x);
RDFRegister
Puede utilizar la función RDFRegister para ayudarle a registrar los proveedores de
servicios o los recursos OSLC con el servidor de registro.
Antes de poder registrar un proveedor de servicios o un recurso, debe utilizar las
otras funciones de política RDF para crear un modelo RDF que cumpla los
requisitos de OSLC y de servicios de registro.
Después de haber creado el modelo RDF, utilice la función RDFRegister para
registrar el RDF con el registro de recursos incluido en el servicio de integración de
servicios de registro.
Si el proveedor de servicios o el recurso OSLC se ha registrado correctamente, la
función RDFRegister devuelve la ubicación del recurso del registro de registro. Las
variables siguientes y sus valores de retorno también se devuelven para
proporcionar información adicional:
v ResultCode contiene el código de resultado para la respuesta.
v HeadersReceived contiene las cabeceras recibidas en la respuesta.
v HeadersSent contiene las cabeceras enviadas en la respuesta.
v ResponseBody contiene el texto del cuerpo de respuesta.
Si los parámetros de consulta se establecen en el URL y utiliza la función de la
política RDFRegister para registrar un proveedor de servicios, debe añadir
manualmente la ubicación del proveedor de servicios a la política. Por ejemplo:
RDFStatement(newModel, manu[0].subject, "http://open-services.net/ns/
core#serviceProvider", serviceProviderURL, true);
Si utiliza la serie de consulta dentro de la ruta, también debe asegurarse de que el
parámetro FormParameters está establecido en nulo. Por ejemplo:
FormParameters=null;
Finalmente, debe asegurarse de que la política contiene información de paginación.
Por ejemplo:
Path="/NCICLUSTER_NCI_oslc/data/mysql1?oslc.paging=true&oslc.pageSize=100";
Capítulo 15. Utilización de OSLC para Netcool/Impact
279
Si no se realiza correctamente, el valor de retorno del registro de la ubicación de
recurso es nulo. Se devuelve la información del código de error en las variables
ErrorReason y ResultCode.
Sintaxis
La función RDFRegister tiene la función siguiente:
[ Serie =] RDFRegister(URI, Username , Password, Model)
donde Username puede ser una serie nula o vacía para especificar que no es
necesaria la autenticación.
Parámetros
La función RDFRegister tiene los parámetros siguientes:
Tabla 87. Parámetros de la función RDFRegister
Parámetro
Tipo
Descripción
URI
Serie
El URI de la fábrica de
creación del servidor de
servicios de registro
Username
Serie
Nombre de usuario para el
servidor de servicios de
registro
Password
Serie
Contraseña para el servidor
de servicios de registro
Model
Modelo
Modelo que contiene el RDF
Ejemplo
El ejemplo siguiente registra manualmente un proveedor de servicios y un
conjunto de recursos que ha expuesto el proveedor de servidores OSLC en
Netcool/Impact.
La información del servidor de servicios de registro es:
RegistryServerProviderCFUri="http://<servidor_servicios_registro>:
9080/oslc/pr/collection";
RegistryServerResourceCFUri="http://<servidor_servicios_registro>:
9080/oslc/rr/registration/collection";
RegistryServerUsername="system";
RegistryServerPassword="manager";
La información del servidor Netcool/Impact es:
HTTPHost="<servidor_impact>";
HTTPPort=9080;
Protocol="http";
Path1="/NCICLUSTER_NCI_oslc/provider/provider01";
Path2="/NCICLUSTER_NCI_oslc/data/computer";
ChannelKey="";
Method="GET";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
280
Netcool/Impact: Guía de soluciones
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
HttpProperties.AuthenticationScheme="basic";
Obtener el RDF del proveedor de servicios desde Netcool/Impact:
serviceProviderResponse=GetHTTP(HTTPHost,HTTPPort, Protocol, Path1,
ChannelKey,Method, AuthHandlerActionTreeName, null, FilesToSend,
HeadersToSend, HttpProperties);
Crear un modelo RDF basándose en la respuesta del proveedor de servicios:
serviceProviderModel=RDFParse(serviceProviderResponse)
Registrar el proveedor de servicios en el registro del proveedor:
serviceProviderURL = RDFRegister(RegistryServerProviderCFUri,
RegistryServerUsername, RegistryServerPassword,serviceProviderModel);
log("Provider Registry-Service Provider URL: " + serviceProviderURL);
Obtener todos los recursos del sistema del ordenador desde Netcool/Impact:
allResources=GetHTTP(HTTPHost,HTTPPort, Protocol, Path2, ChannelKey,
Method,AuthHandlerActionTreeName, null, FilesToSend, HeadersToSend,
HttpProperties);
Crear un modelo RDF basándose en la respuesta del proveedor de servicios:
allResourceModel=RDFParse(allResources);
Registrar cada sistema del ordenador y un conjunto de propiedades con el registro
de recurso:
statements=RDFSelect(allResourceModel, null, "http://jazz.net/ns/ism/
events/impact/data/computer/ID", null);
size=Length(statements);
count=0;
while(count<size) {
Path3=statements[count].subject;
//Obtener el recurso del sistema del ordenador individual
resourceResponse=GetHTTP(HTTPHost,HTTPPort, Protocol, Path3, ChannelKey,
Method,AuthHandlerActionTreeName, null, FilesToSend, HeadersToSend,
HttpProperties);
resourceModel=RDFParse(resourceResponse);
Crear un modelo que contenga las propiedades y los datos que desea registrar:
newModel=RDFModel();
manu=RDFSelect(resourceModel, null, "http://open-services.net/ns/
crtv#manufacturer",null);
model=RDFSelect(resourceModel, null, "http://open-services.net/ns/
crtv#model", null);
serial=RDFSelect(resourceModel, null, "http://open-services.net/ns/
crtv#serialNumber", null);
RDFModelUpdateNS(newModel, "crtv", "http://open-services.net/ns/crtv#");
RDFModelUpdateNS(newModel, "oslc","http://open-services.net/ns/core#");
RDFStatement(newModel, manu[0].subject, "http://www.w3.org/1999/02/
22-rdf-syntax-ns#type",
"http://open-services.net/ns/crtv#ComputerSystem", true);
RDFStatement(newModel, manu[0].subject, manu[0].predicate, manu[0].object,
RDFNodeIsResource(manu[0].object));
RDFStatement(newModel, manu[0].subject, model[0].predicate, model[0].object,
RDFNodeIsResource(manu[0].object));
RDFStatement(newModel, manu[0].subject, serial[0].predicate,
serial[0].object, RDFNodeIsResource(manu[0].object));
Actualizar el modelo con la ubicación del proveedor de servicios:
Capítulo 15. Utilización de OSLC para Netcool/Impact
281
RDFStatement(newModel, manu[0].subject, "http://open-services.net/ns/
core#serviceProvider", serviceProviderURL, true);
Registrar el recurso en el registro de recursos:
resourceURL = RDFRegister(RegistryServerResourceCFUri,
RegistryServerUsername, RegistryServerPassword, newModel);
log("Resource Registry-Resource URL: " +resourceURL);
count=count+1;
}
RDFUnRegister
Para eliminar el registro del registro de un proveedor de servicios o recurso del
servidor de registro, utilice la función RDFUnRegister para proporcionar la
ubicación del registro del registro, el nombre de usuario y la contraseña del
servidor de servicios de registro y el registro de registro que desea eliminar.
Antes de poder eliminar el registro de registro de un proveedor de servicios, debe
eliminar todos los registros de registro para los recursos de OSLC asociados.
Si se realiza correctamente, la función RDFUnRegister devuelve el código de
mensaje 204 y el valor true (verdadero). Las variables siguientes y sus valores de
retorno también se devuelven para proporcionar información adicional:
v ResultCode contiene el código de resultado para la respuesta.
v HeadersReceived contiene las cabeceras recibidas en la respuesta.
v HeadersSent contiene las cabeceras enviadas en la respuesta.
v ResponseBody contiene el texto del cuerpo de respuesta.
Si no se realiza correctamente, el valor de retorno del registro de registro de la
ubicación de recurso es false (falso). La información del código de error se
devuelve en las variables ErrorReason y ResultCode.
Sintaxis
La función RDFUnRegister tiene los parámetros siguientes:
[ Serie =] RDFUnRegister(URI, Username , Password)
donde Username puede ser una serie nula o vacía para especificar que no es
necesaria la autenticación.
Parámetros
Tabla 88. Parámetros de parámetro de la función RDFUnRegister
282
Parámetro
Tipo
Descripción
URI
Serie
Ubicación que contiene el
registro de registro para el
recurso o el proveedor de
servicios
Username
Serie
Nombre de usuario para el
servidor de servicios de
registro
Password
Serie
Contraseña para el servidor
de servicios de registro
Netcool/Impact: Guía de soluciones
Ejemplo de cómo eliminar el registro de un proveedor de servicios
El ejemplo siguiente demuestra cómo eliminar el registro del proveedor de
servicios.
La ubicación del proveedor de servicios es:
http://<servidor_registro>:9080/oslc/providers/6577
Utilice la función RDFUnRegister para eliminar el registro. Por ejemplo:
//Información del servidor de registro
ServiceProviderUri="http://<servidor_registro>:9080/oslc/
providers/6577";
RegistryServerUsername="system";
RegistryServerPassword="manager";result = RDFUnRegister(ServiceProviderUri, RegistryServerUsername,
RegistryServerPassword);
Ejemplo de cómo eliminar el registro de un recurso OSLC
El ejemplo siguiente demuestra cómo utilizar la función de la política para eliminar
el registro de un recurso OSLC.
registrationURL = "http://nc004075.romelab.it.ibm.com:16310/oslc/registration/
1351071987349";
providerURL = "http://nc004075.romelab.it.ibm.com:16310/oslc/providers/
1351071987343";
RegistryServerUsername="smadmin";
RegistryServerPassword="tbsm01bm";
returnString = RDFUnRegister (registrationURL, RegistryServerUsername,
RegistryServerPassword);
RDFSelect
Puede utilizar la función RDFSelect para recibir ayuda en la lectura y el análisis de
un RDF. Para recuperar sentencias basándose en un modelo RDF, llame a la
función RDFSelect y pase el modelo RDF creado por la función RDFParse. Puede
filtrar basándose en un asunto, predicado u objeto.
La función RDFSelect devuelve una matriz de sentencias basadas en el filtro,
recuperando valores para variables de asunto, predicado y objeto. Puede utilizarla
para crear sentencias RDF o triples. También puede utilizarla para filtrar
sentencias. Si no desea filtrar sus resultados, especifique valores nulos o vacíos
para los parámetros de tiempo de ejecución.
Sintaxis
La función RDFSelect tiene la sintaxis siguiente:
[Matriz =] RDFSelect(Model, Subject, Predicate, Object)
Parámetros
La función RDFSelect tiene los parámetros siguientes:
Tabla 89. Parámetros de la función RDFSelect
Parámetro
Tipo
Descripción
Model
Modelo
El modelo que contiene la
carga útil de RDF
Subject
Serie
Filtros para el valor de
asunto en las sentencias RDF
Capítulo 15. Utilización de OSLC para Netcool/Impact
283
Tabla 89. Parámetros de la función RDFSelect (continuación)
Parámetro
Tipo
Descripción
Predicate
Serie
Filtros para el valor de
predicado en las sentencias
RDF
Object
Serie
Filtros para el valor de objeto
en sentencias RDF
El ejemplo siguiente proporciona sentencias basándose en un RDF recuperado por
la función GetHTTP:
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend, HeadersToSend,
HttpProperties);
//Crear modelo de la carga útil de RDF
rdf=RDFParse(x);
//Recuperar todas las sentencias del modelo
allStatements=RDFSelect(rdf,null,null,null);
//Asunto, predicado y objetos de salida de todas las sentencias devueltas en el registro
Size=Length(allStatements);
log(Size);
Count=0;
While (Count < Size) {
log (allStatements [Count].subject + " " + allStatements [Count].predicate + "
" + allStatements [Count].object + ".");
Count = Count + 1;
}
El fragmento de código siguiente proporciona todas las sentencias que contienen
un nombre de asunto particular:
//Recuperar el RDF del proveedor de OSLC a través del método GetHTTP
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend,
284
Netcool/Impact: Guía de soluciones
HeadersToSend, HttpProperties);
//Crear modelo de la carga útil de RDF
rdf=RDFParse(x);
//Recuperar sentencias que contienen el asunto del modelo
statements=RDFSelect(rdf,”
http://ibm.com/ns/netcool-impact/data/SCR_Components#MYCLASS”,null,null);
//Asunto, predicado y objetos de salida de todas las sentencias devueltas en el registro
Size=Length(stmt);
log(Size);
Count=0;
While (Count < Size) {
log (stmt[Count].subject + " " + stmt[Count].predicate + " " +
stmt[Count].object + ".");
Count = Count + 1;
}
RDFStatement
Puede utilizar la función RDFStatement para crear y añadir sentencias a un modelo
RDF.
Especifique los parámetros siguientes en la función:
v Objeto de modelo
v Serie o recurso de asunto
v Serie o propiedad de predicado
v Serie de objeto o nodo RDF
Si el parámetro de tiempo de ejecución Object es una serie, debe especificar un
distintivo para determinar si el parámetro de entrada de objeto es literal RDF o un
tipo de recurso RDF
Para crear un recurso anónimo en la sentencia, defina el valor de Subject como
null. Cuando el valor de este parámetro se establece en nulo, la función de
políticas crea un recurso anónimo en la sentencia.
Sintaxis
La función RDFStatement tiene la sintaxis siguiente:
[Statement =] RDFStatement (Model, Subject, Predicate, Object, isResource)
Parámetros
Si el parámetro de tiempo de ejecución Object es una serie, debe especificar el
parámetro isResource. La función RDFStatement tiene los parámetros siguientes:
Tabla 90. Parámetros de la función RDFStatement
Parámetro
Tipo
Descripción
Modelo
Modelo
Objeto de modelo al que se
añade la sentencia.
Capítulo 15. Utilización de OSLC para Netcool/Impact
285
Tabla 90. Parámetros de la función RDFStatement (continuación)
Parámetro
Tipo
Descripción
Subject
Serie, recurso o nulo
Valor de Subject de la
sentencia. Si este parámetro
se establece en nulo, la
función crea un recurso
anónimo en la sentencia. La
función de políticas devuelve
una sentencia en lugar de un
modelo.
Predicate
Serie o propiedad
Valor de Predicate de la
sentencia.
Object
Serie o nodo RDF
Valor de Object de la
sentencia.
isResource
Booleano
Determina si un objeto es un
recurso o un literal.
El ejemplo siguiente muestra cómo crear un RDF básico con una sola sentencia.
1. Utilice la función de políticas RDFModel para crear un modelo:
Model = RDFModel();
RDFModelUpdateNS(model,"oslc","http://open-services.net/ns/core#");
subject = "http://ibm.com/ns/netcool-impact/data/SCR_Components#MYCLASS";
property = "http://open-services.net/ns/core#name";
value = "Brian";
isResource = false;
2. Utilice la función de políticas RDFStatement para crear una sentencia:
RDFStatement(model,subject,property,value,isResource);
3. Finalmente, especifique cómo se genera el modelo RDF:
body = RDFModelToString(model, null);
4. Finalmente, especifique cómo se genera el modelo RDF:
body = RDFModelToString(model, null);
El ejemplo siguiente muestra cómo crear un modelo que se basa en un modelo
existente y que sólo utiliza los asuntos en los que está interesado el usuario.
1. Utilice el método GetHTTP para recuperar el RDF del proveedor OSLC:
HTTPHost="omega02.tivlab.austin.ibm.com";
HTTPPort=9081;
Protocol="https";
Path="/NCICLUSTER_NCI_oslc/data/resourceShapes/alerts";
ChannelKey="tom";
Method="";
AuthHandlerActionTreeName="";
FormParameters=NewObject();
FilesToSend=NewObject();
HeadersToSend=NewObject();
HttpProperties = NewObject();
HttpProperties.UserId="tipadmin";
HttpProperties.Password="passw0rd";
x=GetHTTP(HTTPHost, HTTPPort, Protocol, Path, ChannelKey, Method,
AuthHandlerActionTreeName, FormParameters, FilesToSend,
HeadersToSend, HttpProperties);
2. Cree el modelo RDF a partir de la carga útil RDF:
rdf=RDFParse(x);
3. Defina un asunto por el que filtrar:
286
Netcool/Impact: Guía de soluciones
mySubject=” http://ibm.com/ns/netcool-impact/data/SCR_Components#ID”;
4. Recupere todas las sentencias que contengan mySubject del modelo:
allStatements=RDFSelect(rdf,mySubject,null,null);
5. Utilice la función RDFModel para crear un nuevo modelo:
newModel = RDFModel()
6. Utilice la función RDFModelUpdateNS para añadir los espacios de nombres
necesarios al modelo:
RDFModelUpdateNS(newModel,"oslc","http://open-services.net/ns/core#");
RDFModelUpdateNS(newModel,"rdfs","http://www.w3.org/2000/01/rdf-schma#");
RDFModelUpdateNS(newModel,"dcterms","http://purl.org/dc/terms/");
7. Utilice la función RDFStatement para añadir las sentencias del modelo anterior
al nuevo modelo
Size=Length(stmt);
Count=0;
While (Count < Size) {
RDFStatement(newModel, stmt[Count].subject, stmt[Count].predicate,
stmt[Count].object,IsRDFNodeResource(stmt[Count].object));
Count = Count + 1;
}
8. Se genera el nuevo modelo en el registro:
log(RDFModelToString(model, null));
Capítulo 15. Utilización de OSLC para Netcool/Impact
287
288
Netcool/Impact: Guía de soluciones
Capítulo 16. Notificación de objetivo de nivel de servicio
(SLO)
La Notificación de objetivo de nivel de servicio (SLO) es una característica opcional
que se puede configurar en el producto Netcool/Impact 6.1.1 existente. El paquete
Notificación de SLO proporciona políticas y archivos de esquema que se pueden
utilizar para almacenar métricas de nivel de servicio en una base de datos DB2.
Estas métricas se utilizan para generar un informe.
Notificación de SLO utiliza Tivoli Common Reporting para desarrollar, crear y
generar informes. Tivoli Common Reporting consta de almacenes de datos,
motores de informes, sus interfaces de usuario web correspondientes que se
visualizan en Dashboard Application Services Hub, y una interfaz de línea de
mandatos. Para obtener información sobre Tivoli Common Reporting, consulte el
centro de información de Jazz for Service Management.
Instalación y habilitación del paquete Notificación de SLO
Cómo instalar y habilitar las extensiones de SLO de Netcool/Impact en Tivoli
Common Reporting.
Antes de empezar
v Para que se pueda aplicar el paquete Notificación de SLO, Netcool/Impact
6.1.1.1 debe estar instalado y configurado. Las extensiones de paquete de
informes son un conjunto de políticas, orígenes de datos y configuraciones de
tipo de datos.
v La versión de DB2 debe ser 9.7 Fixpack 4 o posterior, disponible como paquete
con Netcool/Impact.
v Se requiere Tivoli Common Reporting versión 2.1 o superior para instalar el
paquete Notificación de SLO.
v Debe crear una base de datos denominada SLORPRT en el sistema DB2 y catalogar
el nodo remoto TCPIP y la base de datos remota. Si no existe una versión local
de DB2 en el servidor de Tivoli Common Reporting (TCR), instale IBM DB2
Connect Server, disponible como parte de los instaladores de fixpacks de DB2
Server, Enterprise y Workstation. Para catalogar el nodo remoto TCPIP y la base
de datos remota:
1. Utilice el usuario de instancia de DB2 para iniciar la sesión en el sistema
Tivoli Common Reporting System.
2. Catalogue el nodo remoto TCPIP que contiene la base de datos SLORPRT. Por
ejemplo:
db2 catalog tcpip node SLONODE remote <nombre_host_DB2> server <puerto_DB2>
3. Catalogue la base de datos remota en el nuevo nodo TCPIP que ha creado.
Por ejemplo:
db2 catalog database SLORPRT as SLORPRT at node SLONODE
Acerca de esta tarea
El paquete Notificación de SLO se encuentra en el directorio
dir_inicio_instalación/impact/add-ons/slo.
© Copyright IBM Corp. 2006, 2014
289
Los directorios importData, db y Report se incluyen en el paquete de informes SLO.
Procedimiento
1. En el servidor primario en el perfil de Impact, importe el SLA del proyecto
desde el directorio importData, mediante el mandato nci_import.
UNIX:
Syntax nci_import <servername> <directory name>/importData
Windows:
Syntax nci_import.[bat/sh] <nombre_servidor> <nombre_directorio>/importData
Donde <directory name> es /opt/IBM/tivoli/impact/add-ons/slo/importData.
2. El directorio db contiene un archivo sql. Añada este archivo al mismo sistema
donde se crea la base de datos SLORPRT. Conéctese a la base de datos y ejecute
los mandatos siguientes como ejemplo:
db2
db2
db2
db2
create database SLORPRT using CODESET UTF-8 territory en-US
connect to SLORPRT
-tvf slo_dbschema.sql
connect reset
3. El directorio Report contiene el modelo que se utilizará en Framework Manager
en Tivoli Common Reporting. El modelo se proporciona para su consulta.
Utilice el modelo si desea extender el esquema o crear más vistas para el
informe.
4. El paquete de informes contiene el paquete que se debe importar en Tivoli
Common Reporting Server. El paquete contiene el informe de ejemplo y las
consultas que se pueden utilizar para generar los informes. Complete los pasos
siguientes para importar el paquete Notificación de SLO de Netcool/Impact en
Tivoli Common Reporting versión 3.1.
a. Vaya al directorio bin de Tivoli Common Reporting. Por ejemplo:
/opt/IBM/JazzSM/reporting/bin.
b. Utilice el mandato trcmd para crear un origen de datos para la base de
datos SLORPRT:
trcmd.sh -user <usuario de TCR> -password <contraseña de TCR>
-datasource -add SLORPRT -connectionString <serie de conexión de db2>
-dbType DB2 -dbName <nombre de base de datos>
-dbLogin <nombre de usuario de base de datos> -dbPassword <contraseña de base de datos>
Por ejemplo:
./trcmd.sh -user tipadmin -password password -datasource -add SLORPRT
-connectionString jdbc:db2://server.ibm.com:50000/SLORPRT
-dbType DB2 -dbName SLORPRT -dbLogin db2inst1 -dbPassword password
c. Utilice el mandato trcmd para probar si el origen de datos es correcto:
./trcmd.sh -user <usuario de TCR> -password <contraseña de TCR>
-datasource -test SLORPRT
Por ejemplo:
./trcmd.sh -user tipadmin -password password
-datasource -test SLORPRT
d. Utilice el mandato trcmd para importar el paquete Notificación de SLO de
Netcool/Impact:
./trcmd.sh -import -bulk <archivo> -user <usuario de TCR>
-password <contraseña de TCR>
Por ejemplo:
290
Netcool/Impact: Guía de soluciones
./trcmd.sh -import -bulk /tmp/ImpactSLOReportPackage.zip -user tipadmin
-password testpass1
5. En Netcool/Impact, configure el origen de datos SLOReportDatasource para
acceder a la base de datos en DB2. SLOReportDatasource ya está disponible en
el proyecto SLA en Netcool/Impact.
Qué hacer a continuación
Los artefactos básicos están configurados y el paso siguiente es definir los
servicios.
Definición de definiciones de servicios
Los servicios se definen mediante un archivo de propiedades. Debe crear un
archivo de propiedades para cada servicio y guardarlo en una ubicación de
Netcool/Impact. Un servicio es cualquier recurso para el que se debe generar un
informe. El recurso puede ser un servicio de negocio o un sistema, o cualquier otro
recurso genérico. Un servicio está asociado a una o varias definiciones de SLA.
El ejemplo siguiente muestra un servicio definido mediante un archivo de
propiedades:
serviceName=Internet Banking
description = Service that defines Internet Banking
identity=tbsm_identity:::internetBanking
buisnessCalendar=US
sla.num=1
sla.1.name=serviceDowntime
sla.1.displayName=serviceDowntime
sla.1.description=Service Downtime
sla.1.operationalHour.num=2
sla.1.operationalHourStartTime.1 = 8:00:00
sla.1.operationalHourEndTime.1 = 12:00:00
sla.1.operationalHourStartTime.2 = 13:00:00
sla.1.operationalHourEndTime.2 = 17:30:00
sla.1.operationalHourThreshold = 99.5
sla.1.nonOperationalHourThreshold = 98.5
serviceName:
Nombre del servicio para el que se proporcionan las definiciones de SLO.
description:
Esta propiedad define una descripción del servicio.
identity:
Esta propiedad identifica de forma exclusiva el servicio. Esta propiedad es
el mismo campo de identidad que se utilizará en el registro de
componentes de servicio. De forma predeterminada el atributo de
identidad es tbsmidentity. El atributo tbsmidentity se utiliza para
almacenar la métrica de SLA del recurso en el sistema de origen. Si es un
tipo distinto, el valor de propiedad se puede especificar como
identityStr:::identityValue. Por ejemplo, si cdm:name es el campo de
identidad, el valor se debe especificar como cdm:name:::<valor>.
Recuerde: El tipo de identidad se separa mediante tres series de dos
puntos :::. Puede especificar cualquier valor para el tipo de identidad y el
nombre. Al registrar la métrica SLA, asegúrese de pasar el
identity_type:::Identityname correcto.
Capítulo 16. Notificación de objetivo de nivel de servicio (SLO)
291
businessCalendar:
Esta propiedad identifica el calendario laboral que se aplica a este servicio
definido mediante la propiedad serviceName del archivo.
sla.num:
Define el número de definiciones de SLA. A continuación, cada propiedad
se debe definir como sla.<núm>.<propiedad>. El rango de <núm> es de 1 a
n.
sla.<núm>.name
Esta propiedad define el nombre del informe que se generará.
sla.<núm>.displayName:
Nombre de visualización que se puede utilizar para el informe.
sla.<núm>.description:
Descripción del SLA.
sla.<núm>.operationalHour.num:
Opcionalmente, define el número de horas operativas definidas para un
SLA. El rango de <núm> es de 1 a n. Si no se especifica la propiedad, se
utilizan de forma predeterminada las horas operativas que se definen en el
nivel de servicio.
sla.<núm>.operationalHourStartTime.<núm>:
Esta propiedad identifica la “Hora de inicio de horario de negocio” de un
SLA. Por ejemplo, las 9 de la mañana se debe definir como 09:00:00. La
hora se define utilizando el reloj de 24 horas.
sla.<núm>.operationalHourEndTime.<núm>:
Esta propiedad identifica la “Hora de finalización de horario de negocio”
de un SLA. Por ejemplo, 5:30 pm se debe definir como 17:30:00. La hora se
define en el reloj de 24 horas. La hora de inicio y la hora de finalización de
horario de negocio se pueden especificar en el nivel de SLA.
sla.<núm>.operationalHourThreshold:
Un valor de umbral de horas operativas que se utiliza para el informe.
sla.<núm>.nonOperationalHourThreshold:
Un valor de umbral de horas no operativas que se utiliza para el informe.
Ejemplo de definición de un SLA: Varias definiciones de SLA para el mismo
servicio:
Incluya la propiedad sla.num en el archivo. La propiedad sla.num define el
número de definiciones de SLA. A continuación, cada propiedad se debe definir
como sla.<núm>.nombre de propiedad. El rango de <núm> es de 1 a n.
Ejemplo:
sla.num=2
sla.1.description = Service Downtime 1
sla.1.operationalHourStartTime.1=07:00:00
sla.1.operationalHourEndTime.1=12:00:00
sla.1.operationalHourStartTime.2=13:00:00
sla.1.operationalHourEndTime.2=18:00:00
sla.2.description = Service Downtime 2
sla.2.operationalHourStartTime.1=07:00:00
sla.2.operationalHourEndTime.1=18:00:00
Cada SLA puede tener varias horas operativas. Se deben definir varias horas
operativas para dicho SLA:
292
Netcool/Impact: Guía de soluciones
sla.<núm>.operationalHour.num=<número de horas operativas>
Cada hora de inicio y hora de finalización se define como una propiedad distinta.
Otro ejemplo con más detalles:
serviceName=Retail Banking
description=Service that defines Retail Banking
identity=tbsm_identity:::retailBanking
buisnessCalendar=US
sla.num=2
sla.1.name=serviceDowntime
sla.1.displayName=serviceDowntime
sla.1.description=Service Downtime Without Lunch
sla.1.operationalHour.num=2
sla.1.operationalHourStartTime.1=8:00:00
sla.1.operationalHourEndTime.1=12:00:00
sla.1.operationalHourStartTime.2=13:00:00
sla.1.operationalHourEndTime.2=18:00:00
sla.1.operationalHourThreshold=99.5
sla.1.nonOperationalHourThreshold=98.5
sla.2.name=serviceDowntimeWithLunch
sla.2.displayName=serviceDowntimeWithLunch
sla.2.description=Service Downtime With Lunch
sla.2.operationalHour.num=1
sla.2.operationalHourStartTime.1=8:00:00
sla.2.operationalHourEndTime.1=18:00:00sla.2.operationalHourThreshold=99.5
sla.2.nonOperationalHourThreshold=98.5
Calendarios laborales
Puede utilizar la característica de calendario laboral para identificar los festivos y
fines de semana durante un periodo de tiempo específico.
Procedimiento
1. Defina un calendario laboral. La definición del calendario laboral se puede
realizar mediante un archivo de propiedades. El ejemplo siguiente muestra las
propiedades que definen un calendario laboral.
Propiedades de ejemplo de calendario laboral:
calendar.name= US
calendar.holidays.dateformat= MMM dd,aaaa
calendar.holidays.num = 2
calendar.holidays.1 = Jan 1,2012
calendar.holidays.2 = July 4,2012
calendar.weekends.num = 2
calendar.weekends.1 = 1
calendar.weekends.2 = 6
calendar.name:
Esta propiedad define un nombre de calendario. El nombre de
calendario puede ser cualquier serie. Esta propiedad no debe empezar
por COMMON para un calendario específico. Si está creando un
calendario COMMON.US, al calcular el tiempo de inactividad se
añadirá COMMON al nombre de calendario y se calcularán los días
festivos o fines de semana.
calendar.holidays.dateformat:
Esta propiedad define el formato en el que se especifican las fechas. El
formato especificado en SimpleDateFormat en Java.
calendar.holidays.num:
Esta propiedad define el número de días festivos especificados en este
archivo.
Capítulo 16. Notificación de objetivo de nivel de servicio (SLO)
293
calendar.holidays.<núm>:
1 a núm define cada uno de los días en los que se aplica un festivo
para este calendario.
calendar.weekends.num:
El número de fines de semana especificados en este archivo.
calendar.weekends.<núm>:
Esta propiedad especifica el fin de semana de una semana, el día n de
la semana. En el calendario de Estados Unidos, 1 es domingo.
2. Hay una propiedad opcional denominada calendar.duplicateCalendarName.
calendar.duplicateCalendarName = COMMON.US
Esta propiedad duplica toda la configuración asociada a COMMON.US. Por lo
tanto, si ya ha definido un calendario, puede duplicar el calendario
especificando simplemente la propiedad calendar.duplicateCalendarName. El
ejemplo siguiente explica cómo utilizar calendar.duplicateCalendarName.
a. Un usuario tiene una aplicación que se está ejecutando en la Zona 1 y la
Zona 2, donde hay algunas diferencias en el calendario.
b. La aplicación utiliza COMMON como la clave para identificar los festivos
comunes. Sin embargo, COMMON es igual para la Zona 1 y la Zona 2.
c. Defina un calendario denominado ZONE1 y COMMON.ZONE1 para la Zona 1.
Este calendario es aplicable a la Zona 1.
d. Defina un calendario denominado ZONE2 y COMMON.ZONE2 para la Zona 2.
En lugar de especificar todos los días en COMMON.ZONE2, defina la propiedad
calendar.duplicateCalendarName con el valor COMMON.ZONE1. La propiedad
calendar.duplicateCalendarName duplica todos los días definidos en
COMMON.ZONE1 y a continuación todas las demás propiedades del archivo se
ignoran.
Registro de métricas de SLA
Complete los pasos siguientes para registrar las métricas de SLA:
Acerca de esta tarea
El paquete Notificación de SLO contiene las políticas siguientes:
v BusinessCalendar: proporciona soporte funcional para los calendarios laborales.
v createBusinessCalendarDefn: crea un calendario laboral basado en un archivo
de propiedades.
v createServiceDefinition: crea una definición de servicio basada en un archivo
de propiedades.
v recordSLAMetric: proporciona funciones de soporte utilizadas para registrar
métricas de SLA.
v serviceDefinition: proporciona soporte funcional para definiciones de servicio.
v slaDefGlobalSettings: proporciona soporte para valores globales.
v db2GetData: política de ejemplo.
v getDataFromTBSMAvailability: política de ejemplo.
v serviceDowntimeBasedOnTBSMStatusChange: política de ejemplo.
Procedimiento
1. Defina la métrica de SLA del sistema de origen.
Por ejemplo:
294
Netcool/Impact: Guía de soluciones
v Ejecute la política createServiceDefinition con el parámetro del archivo de
propiedades de definición de servicio creado anteriormente.
v Ejecute la política createBusinessCalendarDefn con el parámetro del archivo
de propiedades de calendario creado anteriormente.
2. Utilice la política de Netcool/Impact para registrar la información de métrica.
Cree una política que utilice la función de políticas recordSLAMetric. Consulte
la función de políticas db2GetData como ejemplo.
Las políticas de Netcool/Impact se graban en el lenguaje JavaScript. Utilice la
función Load para cargar la política de recordSLAMetric en la política de
recuperación de datos.
Para utilizar las funciones siguientes, añada los dos mandatos siguientes al
inicio de la política
Load("slaDefGlobalSettings");
Load("recordSLAMetric");
Están disponibles las funciones siguientes para registrar las métricas de SLA.
v addCorrelationValue
v recordMetric
v addCheckpointValue
v getCheckpointValue
v addSLAMetricWithOperationalHoursAndBuisnessCalendar
addCorrelationValue
La función addCorrelationValue registra un valor de correlación para la métrica de
SLA que se está registrando. El valor correlacionado se almacena como serie. El
formato de la serie lo define el usuario. El usuario es responsable del
mantenimiento de datos.
Tabla 91. Parámetros de addCorrelationValue
Parámetro
Descripción
serviceName:
Nombre de servicio para el valor de
correlación que se está almacenando.
CorrelationValue:
Valor del usuario que se almacena en la base
de datos.
MetricName:
Nombre de métrica del valor de correlación
que se está almacenando.
TimeRecorded:
Registro de tiempo de este valor de
correlación.
Los ejemplos siguientes muestran dónde se puede utilizar la función
addCorrelationValue.
v Ejemplo 1:
Si el tiempo de inactividad de un servicio se debe calcular en función del valor
correlacionado del estado de un suceso. Cuando se genere el suceso (estado
abierto), anote el número de serie en el valor correlacionado con la hora
registrada. Cuando se actualice el suceso con el estado cerrado, recupere la
“hora de apertura” correlacionada de la tabla correlacionada. Utilice el campo
con el registro de tiempo como la “Hora de creación” y la hora actual como la
hora de resolución.
v Ejemplo 2:
Si desea almacenar un dato que se utilizará posteriormente en el informe, se
puede utilizar la función addCorrelationValue. Por ejemplo, se puede almacenar
Capítulo 16. Notificación de objetivo de nivel de servicio (SLO)
295
en esta tabla el número de ticket para el que se está registrando el tiempo de
inactividad de servicio. Utilizando el campo timeRecorded, el nombre de servicio
y el nombre de métrica, el usuario puede generar un informe de todos los tickets
asociados a un métrica de SLA.
recordMetric
La función recordMetric registra una única métrica de SLA. El nombre de métrica
de SLA se debe definir durante la sección de definición de servicios.
Tabla 92. Parámetros de función de recordMetric
Parámetro
Descripción
serviceName:
Nombre de servicio de la métrica de SLA
que se está registrando.
metricName:
Nombre de métrica de SLA.
operValue:
Valor que debe almacenarse durante las
horas operativas.
nonOperValue:
Valor que debe almacenarse durante las
horas no operativas.
holidayValue:
Valor que debe registrarse durante las horas
festivas.
CreationTimeInSeconds:
Hora a la que se ha creado o se registra esta
métrica. El valor debe estar en segundos
desde el 1 de enero de 1970.
operHourResourceId:
Pase -1 para parámetros de
operHourResourceID.
Si necesita registrar la hora para el SLA, utilice siempre la función
recordSLAMetricWithOperationalHoursAndBusinessCalendar.
addCheckpointValue
La función addCheckpointValue añade un valor de punto de comprobación para la
solución. Este valor se puede utilizar para almacenar puntos de comprobación
mientras se está procesando la recuperación de datos de origen.
Tabla 93. Parámetros de addCheckpointValue
Parámetros
Descripción
serviceName:
Nombre de servicio del punto de
comprobación que se almacenará.
MetricName:
Nombre de métrica del valor de punto de
comprobación que se almacenará.
Valor:
Valor del punto de comprobación que se
registrará.
Ejemplo:
Si el tiempo de inactividad del servicio se basa en la cantidad de tiempo que un
ticket está abierto, puede utilizar la función addCheckpointValue para realizar un
seguimiento del último registro que se lee de la base de datos de origen. Almacene
la última hora de resolución leída de la base de datos. La siguiente consulta puede
utilizar el valor almacenado en la base de datos de punto de comprobación para el
filtro.
296
Netcool/Impact: Guía de soluciones
getCheckpointValue
La función getCheckpointValue se utiliza para recuperar el valor de punto de
comprobación para un servicio y nombre de métrica. Esta función se utiliza para
obtener el valor que ha añadido la función addCheckpointValue.
Tabla 94. Parámetros de getCheckpointValue
Parámetro
Descripción
serviceName:
Nombre de servicio del valor de punto de
comprobación que se recuperará de la tabla.
MetricName:
Nombre de métrica del valor de punto de
comprobación que se recuperará de la tabla.
addSLAMetricWithOperationalHoursAndBusinessCalendar
La función addSLAMetricWithOperationalHoursAndBusinessCalendar inserta tiempo
de inactividad en función de las horas operativas y el calendario laboral. Si se
especifica el calendario laboral, éste se aplica. De forma similar, si se especifica el
tiempo de horas operativas, el tiempo se desglosa en horas operativas y horas no
operativas.
Tabla 95. Parámetros de addSLAMetricWithOperationalHoursAndBusinessCalendar
Parámetros
Descripción
ctime:
Hora de inicio de esta métrica de SLA.
Rtime:
Hora de finalización de esta métrica de SLA.
serviceName:
Nombre de servicio del nombre de métrica
que se registrará. serviceName debe ser el
valor definido en el archivo
serviceDef.props. Si hay una identidad
definida para este servicio, la identidad se
puede pasar a la función. La identidad se
identifica mediante la presencia de tres
signos de dos puntos, ":::". El formato de
la entrada debe ser
tipo_identidad:::valor_identidad. La
función buscará el nombre de servicio en el
parámetro de identidad y a continuación
registrará la métrica.
MetricName:
Nombre de métrica del SLA que se
registrará. Registra la métrica
correspondiente a horas operativas, no
operativas y festivas para cada día.
Pasos de ejemplo de política de métrica
Utilice los siguientes pasos de ejemplo como guía.
Procedimiento
1. Lea el valor de punto de comprobación.
2. Si hay un nuevo valor de punto de comprobación, cree un filtro con el valor de
punto de comprobación o cree un filtro sin valor de punto de comprobación.
3. Utilice el filtro para obtener los nuevos registros necesarios para registrar la
métrica de SLA.
Capítulo 16. Notificación de objetivo de nivel de servicio (SLO)
297
4. Si hay un intervalo de tiempo implicado, utilice la función
addSLAMetricWithOperationalHoursAndBuisnessCalendar. De lo contrario, utilice
la función recordMetric para registrar la métrica.
5. Registre el valor de punto de comprobación.
6. Si hay cualquier valor de correlación que sea necesario registrar, registre el
valor de correlación.
Utilización de la política de ejemplo getDataFromTBSMAvailability
La política de ejemplo getDataFromTBSMAvailability obtiene el cambio de estado
de la base de datos Historial de TBSM en TBSM para registrar el tiempo de
inactividad del servicio.
Procedimiento
En Netcool/Impact, cree un origen de datos denominado TBSM que se conecte a
la base de datos Historial de TBSM donde se almacenan los cambios de estado.
Para obtener más información sobre la instalación de la base de datos
Historial de TBSM, consulte el centro de información de TBSM disponible en el
siguiente URL: http://www.ibm.com/developerworks/wikis/display/
tivolidoccentral/Tivoli+Business+Service+Manager
2. En Netcool/Impact, cree un tipo de datos llamado HISTORY_VIEW_METRIC_VALUE
y asócielo con la vista HISTORY_VIEW_RESOURCE_METRIC_VALUE en la base de datos
TBSM history.
3. En Netcool/Impact, cree un servicio de activador de política para activar la
política getDataFromTBSMAvailability. Para obtener información sobre cómo
crear un servicio de activador de política, consulte “Servicio activador de
políticas” en la página 78.
4. La política getDataFromTBSMAvailability obtiene el cambio de estado y registra
la métrica SLA para los servicios definidos utilizando el archivo de
propiedades, denominado serviceDef.props en este ejemplo. La política
comprueba la identidad del origen de datos TBSM de la base de datos SLORPRT.
Se utiliza la identidad para consultar la base de datos Historial de TBSM para
calcular la métrica de SLA. Sólo los servicios asociados con Identidad TBSM se
utilizan para consultar el cambio de estado.
1.
Informes
El paquete de informes de disponibilidad de la aplicación contiene un informe de
disponibilidad de la aplicación de ejemplo.
Registre el tiempo de inactividad del servicio de la aplicación. El informe de
disponibilidad se genera en el nivel de entidad para todas las aplicaciones. El
informe solicita el servicio y el SLA que desea que ejecute el informe, y una fecha.
La plantilla de informe tiene las opciones siguientes:
v Una gráfica lineal que informa sobre la disponibilidad durante hasta un mes
para la fecha seleccionada.
v Un informe que informa sobre la disponibilidad de hasta un año para la fecha
seleccionada.
v La tabla contiene la fecha para cada aplicación.
298
Netcool/Impact: Guía de soluciones
Capítulo 17. Configuración de Maintenance Window
Management
Maintenance Window Management (MWM) es un complemento que permite
gestionar ventanas de mantenimiento de Netcool/OMNIbus.
Mwm puede utilizarse con Netcool/OMNIbus versiones 7.x y posteriores. Una
ventana de tiempo de mantenimiento es un período de inactividad preplanificado
para un activo determinado. Los activos sometidos a mantenimiento generan con
frecuencia errores y alarmas, conocidos como sucesos, pero las operaciones pueden
ignorar dichos sucesos. MWM crea ventanas de tiempo de mantenimiento y las
asocia a sucesos de Netcool/OMNIbus basados en valores de campo de OMNIbus,
como por ejemplo Nodo o Ubicación.Netcool/Impact observa la corriente de
sucesos de Netcool/OMNIbus y sitúa estos sucesos en mantenimiento de acuerdo
con las ventanas de tiempo de mantenimiento. El servicio Netcool/Impact
MWMActivator ubicado en Configuración del sistema > Automatización de
sucesos > Servicios en el proyecto MWM debe ejecutarse para utilizar esta
característica. Para obtener más información acerca de las ventanas de
mantenimiento, consulte “Acerca de las ventanas de mantenimiento de MWM” en
la página 301.
Activación de MWM en un clúster de Netcool/Impact
Maintenance Window Management (MWM) interactúa con Netcool/OMNIbus
utilizando un servicio activador de políticas de Netcool/Impact llamado
MWMActivator. Este servicio está desactivado por defecto en Netcool/Impact.
Acerca de esta tarea
Utilice los pasos siguientes para activar MWM en el clúster de Netcool/Impact
NCICLUSTER.
Procedimiento
1. Inicie sesión en Netcool/Impact.
2. Expanda Configuración del sistema > Automatización de sucesos. Pulse
Políticas.
3. Desde la lista Clúster, seleccione NCICLUSTER. Desde la lista Proyecto,
seleccione MWM.
4. En el separador Políticas, seleccione la política MWM_Properties, pulsecon el
botón derecho y seleccione Editar o pulse el icono Editar política para ver la
política y realizar los cambios necesarios. Para obtener más información,
consulte “Configure la política MWM_Properties” en la página 300.
5. Pulse Servicios.
6. En el separador Servicios, seleccione MWMActivator, pulsecon el botón
derecho y seleccione Editar o pulse el icono Editar servicios para abrir las
propiedades del servicio MWMActivator. Realice los cambios necesarios. Para
obtener información sobre estas propiedades, consulte “Configurar las
propiedades del servicio MWMActivator” en la página 301.
7. Para iniciar el servicio, en el panel de estado del servicio seleccione
MWMActivator y pulsecon el botón derecho y seleccione Inicio o pulse la
flecha Iniciar servicio de la barra de herramientas Servicios.
© Copyright IBM Corp. 2006, 2014
299
Cuando el servicio está en ejecución, coloca sucesos OMNIbus en
mantenimiento basándose en las planificaciones especificadas en la GUI MWM.
Configure la política MWM_Properties
Configure la política MWM_Properties para utilizarla con el complemento MWM.
Las opciones configurables siguientes están disponibles en la política
MWM_Properties de Maintenance Window Management.
v Caducidad de la ventana de mantenimiento
– De manera predeterminada, MWM borra el distintivo “en mantenimiento” de
los sucesos de OMNIbus correspondientes cuando caduque una ventana.
Puede editar la política para que MWM deje estos sucesos con el distintivo
“en mantenimiento” cuando caduque la ventana de mantenimiento.
v Marcar sucesos existentes cuando se inicie una ventana de mantenimiento
– De manera predeterminada, se coloca un distintivo en los sucesos
coincidentes de OMNIbus, independientemente de si éstos han entrado en
OMNIbus. Puede modificar la política de manera que MWM marque sólo los
sucesos que llegan o que se duplican mientras la ventana de mantenimiento
esté en ejecución.
Puede cambiar estas opciones editando la política MWM_Properties en el proyecto
MWM.
1. Expanda Configuración del sistema > Automatización de sucesos, pulse
Servicios.
2. En la lista Proyectos, seleccione MWM.
3. En el separador Políticas, seleccione MWM_Properties, pulse con el botón
derecho y seleccione Editar para abrir la política. MWM_Properties es una
política pequeña con una única función llamada getProperties(). Otras
políticas de MWM llaman a esta función para recuperar información de
configuración.
4. Para cambiar las opciones de MWM, cambie la función y los valores
proporcionados por TRUE o FALSE en caso necesario.
Consulte la información siguiente en la política para ver las opciones de clearFlag.
clearFlag = TRUE es la opción predeterminada.
Utilice clearFlag = TRUE si desea que el mantenimiento coloque un distintivo
en los sucesos borrados cuando caduquen las ventanas. Utilice clearFlag = FALSE
si desea que Impact deje los sucesos con la etiqueta "en mantenimiento" después
de que caduque la ventana.
Consulte la información siguiente en la política para ver las opciones de
flagExistingEvents. flagExistingEvents = TRUE es la opción predeterminada.
Utilice flagExistingEvents = TRUE si desea que Impact coloque el distintivo "en
mantenimiento" en los sucesos que entraron en último lugar (en función de LastOccurrence) antes
de que se iniciara la ventana de tiempo.
Utilice flagExistingEvents = FALSE si desea que Impact NO coloque el distintivo "en
mantenimiento" en los sucesos a menos que éstos entren durante la ventana de mantenimiento.
function getProperties(propsContext)
{
propsContext = newobject();
//ESTABLECER AQUÍ LOS VALORES////////////////////////
clearFlag = TRUE;
flagExistingEvents = TRUE;
//GRACIAS :)
300
Netcool/Impact: Guía de soluciones
propsContext.clearFlag = clearFlag;
propsContext.flagExistingEvents = flagExistingEvents;
}
Configurar las propiedades del servicio MWMActivator
Configure el servicio MWMActivator para buscar sucesos de OMNIbus que
requieran mantenimiento.
Procedimiento
1. Expanda Configuración del sistema > Automatización de sucesos, pulse
Servicios.
2. En el separador Servicios, pulsecon el botón derecho en MWMActivator y
seleccione Editar o pulse el icono Editar servicios para abrir las propiedades
para el servicio MWMActivator .
3. De manera predeterminada, el Intervalo de activación de MWMActivator se
establece en 7 segundos. El servicio MWMActivator comprueba cada siete
segundos para ver si hay sucesos de OMNIbus que requieran mantenimiento.
Seleccione el tiempo de intervalo que desee utilizar. Si es posible, utilice
números primos.
4. Cambie el valor de Política sólo si ha creado su propia política para sustituir la
política MWM_Properties.
5. Seleccione Inicio para iniciar el servicio MWMActivator cuando se inicie
Netcool/Impact.
6. Seleccione el Registro de servicio para crear un archivo del registro de servicio.
Inicio de sesión en Maintenance Window Management
Utilice Tivoli Integrated Portal para acceder a Maintenance Window Management
(MWM).
Procedimiento
1. En Tivoli Integrated Portal, expanda Resolución de problemas y soporte >
Automatización de sucesos.
2. Pulse Maintenance Window Management para abrir MWM. Las opciones de
menú principales son Añadir única, Añadir recurrente y Ver ventanas.
También hay un menú Huso horario para establecer el huso horario. Para
obtener más información acerca de estas opciones, consulte “Acerca de las
ventanas de mantenimiento de MWM”.
Acerca de las ventanas de mantenimiento de MWM
Utilice la interfaz web de Maintenance Window Management (MWM) para crear
ventanas de tiempo de mantenimiento y asociarlas con sucesos de
Netcool/OMNIbus.
Los sucesos de Netcool/OMNIbus se basan en valores de campo de OMNIbus,
como por ejemplo Nodo o Ubicación. Los sucesos de Netcool/OMNIbus se sitúan
en mantenimiento de acuerdo con estas ventanas de tiempo de mantenimiento. Si
se producen sucesos durante una ventana de mantenimiento, MWM los marca
como en mantenimiento cambiando el valor del campo de OMNIbus, el campo de
entero, SuppressEscl por 6 en la tabla alerts.status.
Capítulo 17. Configuración de Maintenance Window Management
301
Una ventana de tiempo de mantenimiento es un período de inactividad
preplanificado para un activo determinado. Los activos sometidos a mantenimiento
generan con frecuencia errores y alarmas (sucesos), pero las operaciones pueden
ignorar dichos sucesos. MWM marca los sucesos de OMNIbus en mantenimiento
para que las operaciones sepan que no deben centrarse en ellos. Puede utilizar
MWM para especificar ventanas de tiempo de mantenimiento únicas y recurrentes.
v las ventanas de ejecución única son ventanas de tiempo de mantenimiento que
se ejecutan una sola vez y no se repiten. Las ventanas de ejecución única
pueden utilizarse en situaciones de mantenimiento de emergencia situadas fuera
de los períodos de mantenimiento planificados de forma regular. Puede
utilizarlas en todo momento si no tiene una planificación de mantenimiento
regular.
v Las ventanas de ejecución recurrente son ventanas de tiempo de mantenimiento
que se ejecutan a intervalos regulares. MWM da soporte a tres tipos de ventanas
de ejecución recurrente:
– Día de la semana recurrente
– Fecha del mes recurrente
– Cada n día de la semana
Las ventanas de tiempo de mantenimiento deben estar enlazadas con sucesos de
OMNIbus para que MWM pueda marcar los sucesos en mantenimiento. Al
configurar una ventana de tiempo, también se definen los sucesos que deben
asociarse con la misma. MWM admite la utilización de los campos Nodo, Grupo
de alertas, Clave de alerta y Ubicación para enlazar sucesos con ventanas de
tiempo.
Crear una ventana de mantenimiento única
Cree una ventana de tiempo de mantenimiento única para un activo determinado.
Procedimiento
1. Pulse el enlace Añadir única para visualizar el formulario de creación de una
ventana de mantenimiento única.
2. Especifique los valores adecuados en los campos Nodo, Grupo de alertas,
Clave de alerta y Ubicación.
Seleccione las opciones Igual a o Como junto a cada campo.
Consejo: En el caso de un mandato Like, no hay ningún requisito para
expresiones regulares. Puede especificar una subserie y seleccionar el operador
like desde mwm.
3. Pulse el icono de calendario para seleccionar la Hora de inicio y la Hora de
finalización para la ventana de tiempo de mantenimiento.
4. Pulse Añadir ventana para crear la ventana.
5. Pulse Ver ventanas para ver la ventana configurada.
Crear una ventana de mantenimiento recurrente
Cree una ventana de tiempo de mantenimiento recurrente para un activo
determinado.
Procedimiento
1. Pulse el enlace Añadir recurrente para visualizar el formulario de creación de
los diferentes tipos de ventanas de tiempo recurrentes.
2. Especifique los valores adecuados en los campos Nodo, Grupo de alertas,
Clave de alerta y Ubicación.
302
Netcool/Impact: Guía de soluciones
3.
4.
5.
6.
Seleccione las opciones Igual a o Como junto a cada campo.
Seleccione la Hora de inicio y la Hora de finalización para la ventana de
tiempo de mantenimiento.
Seleccione el tipo de ventana recurrente y especifique los detalles.
v Día de la semana recurrente Estas ventanas aparecen semanalmente el
mismo día y a la misma hora. Por ejemplo, puede establecer la ventana cada
Sábado de 5 p.m. a 12 a.m. O puede establecer la ventana para varios días,
por ejemplo Sábado, Domingo y Lunes de 5 p.m. a 12 a.m.
v Día del mes recurrente Estas ventanas aparecen mensualmente en la misma
fecha y a la misma hora. Por ejemplo, puede establecer la ventana el día 15
de cada mes de 7 a.m. a 8 a.m. O puede establecer la ventana para varios
meses.
v Cada n día de la semana Estas ventanas aparecen mensualmente en el
mismo día de la semana y a la misma hora. Por ejemplo, puede establecer la
ventana en el primer y tercer Sábado de cada mes de 5 p.m. a 12 a.m.
Pulse Añadir ventana para crear la ventana.
Pulse Ver ventanas para comprobar que la ventana de tiempo se ha añadido.
Visualizar ventanas de mantenimiento
Pulse el enlace Ver ventanas para visualizar una barra de herramientas que
contiene enlaces a los diversos tipos de ventanas. Las opciones de visualización
son:
v Única
v Día de la semana
v Día del mes
v n Día de la semana
v Ventanas activas
Si hay ventanas de mantenimiento definidas en alguna de estas categorías de
ventanas, pulse un enlace para visualizar una lista de las ventanas de
mantenimiento definidas.
El color del icono de estado indica si la ventana está activa (verde), ha caducado
(rojo) o aún no se ha iniciado (azul, futuro).
Puede utilizar el icono de supresión para suprimir una ventana de mantenimiento.
Maintenance Window Management y otras políticas de
Netcool/Impact
Maintenance Window Management (MWM) se ejecuta independientemente de
otras políticas de Netcool/Impact o automatizaciones de OMNIbus. Cada siete
segundos, MWM comprueba si hay ventanas de mantenimiento abiertas y marca
los sucesos correspondientes como en mantenimiento. Considere esta característica
al añadir sus propias políticas y automatizaciones.
Defectos conocidos
Si hay ventanas de tiempo de solapamiento, hay posibilidades de que un suceso se
marque de manera temporal como fuera de mantenimiento cuando finalice la
primera ventana. Si se produce esta situación, el suceso se marca como en
mantenimiento la próxima vez que se ejecuta el servicio MWMActivator. La
propiedad clearFlag tiene aquí una función. Si clearFlag = FALSE, entonces el
suceso nunca se marca como fuera de mantenimiento.
Capítulo 17. Configuración de Maintenance Window Management
303
Maintenance Window Management no funcionará correctamente si no se utiliza el
nombre de clúster predeterminado, NCICLUSTER. Cuando se abre la página principal
de MWM, se utiliza el mensaje siguiente:
No se ha podido recuperar
un cliente para acceder al servidor Impact, en el clúster: nombreclúster
Para obtener información sobre cómo resolver este problema, consulte Guía de
resolución de problemas.
304
Netcool/Impact: Guía de soluciones
Capítulo 18. Configuración de la correlación y el aislamiento
de sucesos
El aislamiento y correlación de sucesos se suministra como componente adicional
del producto Netcool/Impact. El Aislamiento y correlación de sucesos se ha
desarrollado mediante la tecnología de vistas de operador de Netcool/Impact.
Puede configurar el aislamiento y correlación de sucesos para aislar un suceso que
ha provocado un problema. También puede visualizar los sucesos que dependen
del suceso aislado.
Visión general
Netcool/Impact tiene un proyecto predefinido, EventIsolationAndCorrelation, que
contiene orígenes de datos, tipos de datos, políticas y vistas de operador
predefinidos. Una vez instaladas y configuradas todas las bases de datos y
esquemas necesarios, debe configurar los orígenes de datos. A continuación, puede
crear las reglas de suceso mediante el sql de objectserver en la vista de Aislamiento
y correlación de sucesos desde Tivoli Integrated Portal. Puede visualizar el análisis
de sucesos en la vista de operador EIC_Analyze.
Para configurar y ejecutar la característica de Aislamiento y correlación de sucesos,
deben seguirse estos pasos.
1. Instale Netcool/Impact.
2. Instale DB2 o utilice una instalación de DB2 existente.
3. Configure la base de datos DB2 con el esquema DB2 en el launchpad de
Netcool/Impact.
4. Instale el kit de herramientas de biblioteca de descubrimiento desde el
launchpad de Netcool/Impact.
Si ya tiene una instalación de Tivoli® Application Dependency Discovery
Manager (TADDM), configure el kit de herramientas de biblioteca de
descubrimiento para que utilice los datos de relación de TADDM. También
puede utilizar los datos mediante la carga de libros IDML (Identity Markup
Language). Para obtener información adicional acerca del kit de herramientas
de biblioteca de descubrimiento, consulte la Guía del administrador de Tivoli
Business Service Manager y la Guía de personalización de Tivoli Business Service
Manager. Estas guías están disponibles en el Information Center deTivoli
Business Service Manager 6.1.1.1 al que se accede desde el URL siguiente,
Documentación para todos los productos Tivoli.
Puede cargar el espacio de nombres personalizado o su propio modelo en SCR
utilizando la API SCR en TBSM. Para más información, consulte Tivoli Business
Service Manager Customization Guide, Personalización del proceso de importación del
Service Component Repository y Visión general de la API de Service Component
Repository.
5. En Tivoli Integrated Portal, configure los orígenes y tipos de datos del proyecto
EventIsolationAndCorrelation para utilizarlos con Servidor Impact.
6. Cree las reglas de suceso en la interfaz de usuario para conectarse a Servidor
Impact.
7. Configure WebGUI para añadir un punto de lanzamiento nuevo.
© Copyright IBM Corp. 2006, 2014
305
Para obtener información detallada acerca de la configuración del Aislamiento y
correlación de sucesos, consulte la Guía de soluciones de Netcool/Impact.
Instalación de Netcool/Impact y la base de datos DB2
Para ejecutar la característica Aislamiento y correlación de sucesos, instale
Netcool/Impact y la base de datos DB2 y configure el esquema DB2.
Procedimiento
1. Instale Netcool/Impact. Consulte la publicación Guía de administración de
Netcool/Impact , Capítulo 2 Instalación y migración.
2. Instale DB2. Netcool/Impact y Tivoli Business Service Manager admiten DB2
versión 9.5 o superior. Para obtener información sobre la instalación y la
utilización de DB2, consulte el centro de información que aparece aquí para
obtener la versión que utiliza: http://publib.boulder.ibm.com/infocenter/
db2luw/v9r7/topic/com.ibm.db2.luw.common.doc/doc/t0021844.html.
v En un entorno z/Linux, tiene que instalar manualmente el esquema DB2
desde la línea de mandatos y no desde el launchpad. Ejecute el siguiente
mandato desde la línea de mandatos:
launchpad/zlinux/setup-dbconfig-zlinux.bin.
3. Configure la base de datos DB2 con el esquema DB2. Un usuario con permiso
para ejecutar las herramientas de la línea de mandatos de DB2 completa este
paso.
v Para Unix, utilice el ID de usuario db2inst1.
v Para Windows, utilice el ID de usuario db2admin.
Puede instalar el esquema de DB2 desde el launchpad de Netcool/Impact.
Instalación del kit de herramientas de la biblioteca de descubrimiento
Instale el kit de herramientas de la biblioteca de descubrimiento para importar los
recursos y las relaciones descubiertos a la base de datos Services Component
Registry.
Acerca de esta tarea
Para obtener información sobre Services Component Registry consulte la
información de API de Services Component Registry de la Guía de personalización de
Tivoli Business Service Manager disponible en el URL siguiente:
https://www.ibm.com/developerworks/wikis/display/tivolidoccentral/
Tivoli+Business+Service+Manager.
Utilice el kit de herramientas de bibliotecas de descubrimiento para importar datos
de Tivoli® Application Dependency Discovery Manager 7.1 o posterior a Tivoli
Business Service Manager. El kit de herramientas también proporciona la capacidad
de leer libros de descubrimiento de lectura en entornos que no tienen una
instalación de Tivoli Application Dependency Discovery Manager.
v Si utiliza Tivoli Business Service Manager y Netcool/Impact, utilice la
información de Instalación del kit de herramientas de la biblioteca de descubrimiento
de la publicación Tivoli Business Service Manager Guía de instalación del centro de
información de Tivoli Business Service Manager 6.1.1.1 disponible en el URL
siguiente: https://www.ibm.com/developerworks/wikis/display/
tivolidoccentral/Tivoli+Business+Service+Manager.
306
Netcool/Impact: Guía de soluciones
v Para lograr una implementación de Netcool/Impact que no utilice Tivoli
Business Service Manager se puede instalar el kit de herramientas de la
biblioteca de descubrimiento desde el launchpad de Netcool/Impact. Para la
información relacionada con Tivoli Business Service Manager, debe configurarse
el origen de datos para acceder a la base de datos db2. Esta información no es
necesaria para una instalación de Netcool/Impact.
Procedimiento
1. Desde el launchpad de Netcool/Impact, seleccione Instalar Discovery Library
Toolkit.
2. Descomprima DiscoveryLibraryToolkit.zip en un directorio local en el que
vaya a instalar el esquema de base de datos o el kit de herramientas de la
biblioteca de descubrimiento.
3. Navegue hasta el directorio del sistema operativo en el que vaya a instalar el
kit de herramientas de la biblioteca de descubrimiento.
4. Ejecute el archivo setup-dbconfig-<nombre_so>.bin para instalar el esquema de
bases de datos.
5. Para instalar el kit de herramientas de la biblioteca de descubrimiento, ejecute
el archivo setup-dltoolkit-<osname>.bin. donde nombre_so es Linux, Windows,
Aix o Solaris.
6. Durante la instalación del kit de herramientas de la biblioteca de
descubrimiento hay opciones para configurar el servidor de datos de Tivoli
Business Service Manager. Puede añadir los valores que quiera. Estos valores
no se utilizan en Netcool/Impact.
Políticas de Aislamiento y correlación de sucesos
El proyecto EventIsolationAndCorrelation contiene una lista de políticas
predefinidas que son específicas del Aislamiento y correlación de sucesos.
Las políticas siguientes se encuentran en el proyecto
EventIsolationAndCorrelation dan soporte a la característica de Aislamiento y
correlación de sucesos y no deben modificarse:
v
v
v
v
v
v
v
EIC_IsolateAndCorrelate
EIC_eventrule_config
EIC_utils
Opview_EIC_Analyze
Opview_EIC_confSubmit
Opview_EIC_configure
Opview_EIC_requestHandler
Vistas de operador de Aislamiento y correlación de sucesos
El proyecto EventIsolationAndCorrelation contiene una lista de vistas de operador
predefinidas que son específicas del Aislamiento y correlación de sucesos.
v EIC_Analyze muestra el análisis de una consulta de suceso.
v EIC_confSubmit da soporte a la configuración del Aislamiento y correlación de
sucesos.
v EIC_configure configura las reglas de suceso del Aislamiento y correlación de
sucesos.
v EIC_requestHandler da soporte a la configuración del Aislamiento y correlación
de sucesos.
Capítulo 18. Configuración de la correlación y el aislamiento de sucesos
307
Configurar orígenes de datos de Aislamiento y correlación de sucesos
Todas las características relacionadas con el Aislamiento y correlación de sucesos
están asociadas con el proyecto EventIsolationAndCorrelation. Configure los
orígenes de datos, tipos de datos y elementos de datos necesarios para el
aislamiento y correlación de sucesos.
Procedimiento
1. Desde Tivoli Integrated Portal, pulse Configuración del sistema >
Automatización de sucesos > Modelo de datos.
2. >En la lista de proyectos, seleccione el proyecto EventIsolationAndCorrelation.
Se visualizará una lista de orígenes de datos específicos de la característica
EventIsolationAndCorrelation.
v EIC_alertsdb
v SCR_DB
v EventrulesDB
3. Para cada origen de datos, actualice la información de conexión, el ID de
usuario y la contraseña y guárdelo.
4. Configure EIC_alertsdb para el servidor de objetos en el que deben
correlacionarse y aislarse los sucesos.
5. Configure SCR_DB para la base de datos de Services Component Registry.
Nota: Al configurar los orígenes de datos SCR (Services Component Registry),
debe apuntar los orígenes de datos a lo que se conoce comúnmente como el
SCR. El SCR es un esquema en la base de datos TBSM que se crea al ejecutar el
paso de configuración de esquema de DB2. El esquema se denomina TBSMSCR.
La base de datos tiene un nombre predeterminado de TBSM.
6. Configure EventRulesDB_DB para la base de datos de Services Component
Registry.
Configurar tipos de datos de Aislamiento y correlación de sucesos
El proyecto EventIsolationAndCorrelation contiene una lista de tipos de datos
predefinidos que son específicos del Aislamiento y correlación de sucesos. Excepto
el tipo de dato EIC_alertquery que debe configurarse, el resto de tipos de datos
están preconfigurados y funcionan correctamente una vez configurados los
orígenes de datos padre.
Acerca de esta tarea
La lista siguiente muestra los orígenes de datos de Aislamiento y correlación de
sucesos y sus tipos de datos:
v EIC_alertsdb
– EIC_alertquery
v SCR_DB
Los tipos de datos siguientes se utilizan para recuperar la información de
relación de Services Component Registry.
– bsmidenties
– getDependents
– getRscInfo
v EventRulesDB
308
Netcool/Impact: Guía de soluciones
La base de datos utiliza los tipos de datos siguientes para contener la
configuración de usuario final del Aislamiento y correlación de sucesos.
– EVENTRULES
– EIC_PARAMETERS
Procedimiento
1. Para configurar el tipo de datos EIC_alertquery, púlselo con el botón derecho
del ratón y seleccione Editar.
2. Los campos Nombre de tipo de datos y Nombre de origen de datos ya están
rellenados.
3. El recuadro de selección Estado está seleccionado automáticamente como
Habilitado para activar el tipo de datos, de modo que esté disponible para
utilizarlo en las políticas.
4. Tabla base: Especifica la base de datos y la tabla subyacentes en las que se
almacenan los datos del tipo de datos.
5. Pulse Renovar para rellenar esta tabla. Las columnas de tabla se muestran
como campos de una tabla. Para que el acceso a la base de datos resulte lo más
eficaz posible, suprima los campos que no se utilicen en las políticas. Para
obtener información acerca de la adición y eliminación de campos del tipo de
datos, consulte el tema “Ventana de configuración de tipos de datos SQL separador Descripción de tabla” en la página 24.
6. Pulse Guardar para implementar los cambios.
Crear, editar y suprimir reglas de suceso
Cómo crear, editar y suprimir una regla de sucesos para Aislamiento y correlación
de sucesos.
Procedimiento
1. Seleccione Configuración del sistema > Automatización de sucesos >
Aislamiento y correlación de sucesos para abrir el separador Aislamiento y
correlación de sucesos.
2. Pulse el icono Crear regla para crear una regla de suceso. Al crear este
elemento, la página de configuración contiene valores vacíos para diversas
propiedades.
3. Pulse el icono Editar la regla seleccionada para editar las reglas de suceso
existentes.
4. Pulse el icono Suprimir la regla seleccionada para suprimir una regla de
suceso del sistema y de la lista.
Crear una regla de suceso
Complete los campos siguientes para crear una regla de suceso.
Procedimiento
1. Nombre de regla de suceso: especifique el nombre de la regla de suceso. El
nombre de regla de suceso debe ser exclusivo en todo el sistema. Al
seleccionar Editar o Nuevo, si se especifica un nombre de regla de suceso
existente, se actualiza la regla de suceso existente. Al editar una regla de
suceso y cambiar el nombre de regla de suceso, se crea una regla de suceso
con el nombre nuevo.
Capítulo 18. Configuración de la correlación y el aislamiento de sucesos
309
2. Suceso primario: especifique el SQL que debe ejecutarse en el objectserver
configurado en el origen de datos EIC_alerts db. El suceso primario es el
suceso seleccionado para el análisis.
El filtro de suceso primario se utiliza para identificar si el suceso que se había
seleccionado para el análisis tiene una regla asociada. El filtro de suceso
primario también se utiliza para identificar el objeto de la base de datos de
Services Component Registry que tiene un suceso asociado. El objeto puede
tener o no entidades dependientes. Durante el análisis, la característica de
aislamiento y correlación de sucesos busca todas las entidades dependientes y
sus sucesos asociados.
Por ejemplo, el suceso primario tiene 3 entidades dependientes o hijas, cada
una de las cuales tiene 3 sucesos asociados. En total, hay 9 sucesos
dependientes. Cualquiera de estos sucesos secundarios podría ser la causa del
suceso primario. Esta lista de sucesos es lo que indica la lista de sucesos
secundarios. El filtro de sucesos secundarios se utiliza para aislar uno o varios
de estos sucesos como causa raíz del problema.
3. Probar SQL: pulse Probar SQL para probar la sintaxis del SQL especificado
en el suceso primario. Modifique la consulta de modo que sólo se devuelva
una fila. Si hay varias filas, sigue siendo posible configurar la regla. Sin
embargo, durante el análisis sólo se utilizará la primera fila de la consulta.
4. Sucesos secundarios: el área de texto se utiliza para que el SQL identifique los
sucesos dependientes. Al especificar los sucesos dependientes, puede
especificar variables o parámetros de la información del suceso primario que
pueden sustituirse. Las variables se especifican con el signo @. Por ejemplo, si
el nombre de variable es dbname, debe especificarse como @dbname@. Un
ejemplo es Identifier = 'BusSys Level 1.2.4.4' and Serial = @ser@. Las
variables se sustituyen durante el paso de análisis. La información se recupera
del suceso primario en función de la configuración de la tabla de parámetros
y se visualiza en la sección Asignación de variables de la página.
5. Extraer parámetros: pulse Extraer parámetros para extraer el nombre de
variable situado entre los símbolos @ y llenar la tabla de parámetros. Una vez
extraída la información de variable en la tabla, puede editar cada una de las
columnas.
a. Seleccione el campo con respecto a la expresión regular que desea ejecutar
y se extraerá un valor de sustitución.
b. Especifique la expresión regular en la columna de expresiones regulares.
La expresión regular sigue la sintaxis de IPL y se ejecuta mediante la
función RExtract.
c. Una vez especificada la expresión regular, pulse Renovar para validar la
expresión regular y comprobar que se ha extraído el valor correcto. La
tabla contiene los parámetros.
6. Limitar resultados del análisis a los elementos de configuración
relacionados de Service Component Registry: marque este recuadro de
selección si el análisis debe limitarse sólo a los elementos de configuración
relacionados. Si no se marca el recuadro de selección, se devolverá la consulta
dependiente.
7. El suceso primario es un suceso de causa raíz: marque este recuadro de
selección para identificar si el suceso primario es el suceso de causa y el resto
de sucesos son sucesos sólo de síntomas.
8. Campo de suceso: identifica el campo del suceso que contiene el identificador
de recurso de Services Component Registry. Seleccione el campo en el menú
desplegable que contiene el identificador de recurso en el suceso.
310
Netcool/Impact: Guía de soluciones
9. Intervalo de tiempo en segundos para correlacionar sucesos: añada el
periodo de tiempo que el suceso debe analizar. El valor predeterminado es de
600 segundos. Se analizarán los sucesos ocurridos 600 segundos antes del
suceso primario.
10. Pulse Guardar configuración para añadir la configuración a la base de datos
de componente de fondo.
11. Ahora, las reglas de suceso están configuradas y el suceso está listo para el
análisis. Puede visualizar el análisis de sucesos en la página EIC_Analyze.
Configurar WebGUI para añadir un punto de lanzamiento nuevo
Configure la WebGUI con un contexto de lanzamiento para lanzar la página de
análisis.
Acerca de esta tarea
WebGUI se puede configurar para lanzar la página de análisis. Consulte el
procedimiento para el lanzamiento de la integración descrito en el URL siguiente,
http://publib.boulder.ibm.com/infocenter/tivihelp/v8r1/topic/
com.ibm.netcool_OMNIbus.doc_7.4.0/webtop/wip/task/
web_con_integrating.html.
El URL que necesita para la correlación y el aislamiento de sucesos es
<NOMBRE_HOST_TIP>:<PUERTO_TIP>/opview/displays/NCICLUSTER-EIC_Analyze.html.
Pase el número de serie de la fila seleccionada para el suceso.
Nota: NCICLUSTER es el nombre del clúster configurado durante la instalación de
Netcool/Impact. Debe utilizar el nombre del clúster, sea cual sea, en el URL. Por
ejemplo, en Tivoli Business Service Manager el nombre de clúster predeterminado
es TBSMCLUSTER. Para realizar el lanzamiento desde Tivoli Business Service
Manager, deberá utilizar el archivo html, TBSMCLUSTER-EIC_Analyze.html.
Lanzar la página de análisis de Aislamiento y correlación de sucesos
Cómo lanzar la página de análisis de Aislamiento y correlación de sucesos.
Acerca de esta tarea
Existen dos maneras de lanzar la página de análisis de Aislamiento y correlación
de sucesos.
v Manualmente, mediante la página web y el número de serie de suceso.
v Utilizando la función de lanzamiento en AEL (Active Event List) o LEL
(Lightweight Event List) desde WebGUI en Tivoli Enterprise Portal.
Procedimiento
Abra un navegador en Netcool/Impact. Utilice una de las opciones siguientes:
v Apunte a <TIPServer>:<TIPPort>/opview/displays/NCICLUSTEREIC_Analyze.html?serialNum=<EventSerialNumber>. Donde <TIPServer> y
<TIPPort> son el puerto de Netcool/Impact Servidor GUI y EventSerialNumber
es el número de serie del suceso que desee analizar. Para lanzar la página de
análisis fuera de AEL (Action Event List), puede añadir serialNum=<Serial
Number> como parámetro.
Capítulo 18. Configuración de la correlación y el aislamiento de sucesos
311
v La página de análisis de Aislamiento y correlación de sucesos se puede
configurar para lanzarla desde AEL (Active Event List) o LEL (Lightweight
Event List) en WebGUI. Para obtener más información, consulte “Configurar
WebGUI para añadir un punto de lanzamiento nuevo” en la página 311. Al crear
la herramienta, debe especificar únicamente <TIPSERVER>:port/opview/displays/
NCICLSTER-EIC_Analyze.html. No es necesario especificar SerialNum como
parámetro, ya que lo añadirá la página de análisis del Aislamiento y correlación
de sucesos de la herramienta AEL.
Visualizar el análisis de sucesos
Visualice el análisis de una consulta de suceso en la página EIC_Analyze.
Acerca de esta tarea
La entrada de la política EIC_IsolateAndCorrelate es el número de serie del suceso
especificado mediante la variable serialNum. La política busca el suceso primario
para recuperar el identificador de recurso. A continuación, la política busca los
sucesos dependientes en función de la configuración. Los sucesos dependientes se
filtran con mayor detalle utilizando los recursos relacionados, si el usuario ha
elegido limitar el análisis a los recursos relacionados. Una vez pasado el número
de serie como parámetro en WebGUI, puede visualizar el suceso desde AEL o LEL
y lanzar la página de análisis.
Procedimiento
Seleccione el suceso en AEL o LEL y lance la página de análisis. La página
EIC_Analyze contiene tres secciones:
v Información de suceso primario: muestra la información relativa al suceso
seleccionado. Este es el suceso en el que tiene lugar el análisis de aislamiento y
correlación de sucesos.
v Sucesos correlacionados: muestra la información relativa a los sucesos
dependientes identificados por la herramienta. Los sucesos dependientes se
identifican como los sucesos que están asociados a los recursos hijos
dependientes del dispositivo u objeto que está asociado con el suceso primario.
Estos sucesos se visualizan en el contexto de recursos dependientes identificados
desde Services Component Registry.
v Proceso de regla de suceso: muestra la regla que se ha identificado y procesado
al analizar este suceso primario.
312
Netcool/Impact: Guía de soluciones
Apéndice. Accesibilidad
Las características de accesibilidad ayudan los usuarios con discapacidades físicas,
como por ejemplo movilidad restringida o visión limitada, a utilizar
satisfactoriamente los productos de software. Éstas son las principales
características de accesibilidad que puede utilizar con Netcool/Impact al acceder a él
en el emulador de terminal de IBM Personal Communications:
v Puede utilizar todas las características utilizando el teclado en lugar del ratón.
v Puede leer texto mediante la interacción con la tecnología de asistencia.
v Puede utilizar valores del sistema para font, tamaño y color para todos los
controles de la interfaz de usuario.
v Puede ampliar el tamaño de lo que se visualiza en la pantalla.
Para obtener más información sobre la visualización de PDF desde Adobe, vaya al
sitio web siguiente: http://www.adobe.com/enterprise/accessibility/main.html
© Copyright IBM Corp. 2006, 2014
313
314
Netcool/Impact: Guía de soluciones
Glosario
Este glosario incluye términos y definiciones para Netcool/Impact.
En este glosario se utilizan las siguientes referencias cruzadas:
v Véase le remite de un término a un sinónimo preferido o de un acrónimo o una
abreviatura a la forma completa definida.
v Véase también le remite a un término relacionado u opuesto.
Para ver glosarios de otros productos de IBM, vaya a www.ibm.com/software/
globalization/terminology (se abre en una ventana nueva).
A
activador de política
Servicio que ejecuta una política especificada a intervalos que el usuario
define.
activador de políticas en hibernación
Servicio responsable de activar políticas de hibernación.
adaptador de origen de datos de JMS (DSA de JMS)
Adaptador de origen de datos que envía y recibe mensajes JMS (Java
Message Service).
adaptador de origen de datos de LDAP (DSA de LDAP)
Adaptador de origen de datos que lee datos de directorio gestionados por
un servidor LDAP. Véase también Lightweight Directory Access Protocol.
adaptador de origen de datos de SNMP (DSA de SNMP)
Adaptador de origen de datos que permite que se establezca y recupere la
información de gestión almacenada por los agentes SNMP. También
permite enviar interrupciones y notificaciones SNMP a los gestores SNMP.
Véase también Simple Network Management Protocol (Protocolo simple de
gestión de red).
adaptador de origen de datos (DSA)
Componente que permite a la aplicación acceder a datos almacenados en
un origen externo.
adaptador de origen de datos XML
Adaptador de origen de datos que lee datos XML de series o archivos y lee
datos XML de servidores web sobre HTTP.
B
base de datos (BD)
Colección de elementos de datos interrelacionados o independientes que se
almacenan juntos para servir una o más aplicaciones. Véase también
servidor de bases de datos.
BD
Véase base de datos.
© Copyright IBM Corp. 2005, 2011 © IBM 2006, 2014
315
C
campo Conjunto de uno o más caracteres adyacentes que constan de una unidad
de datos en un suceso o un elemento de datos.
campo de clave
Campo que identifica de forma exclusiva un elemento de datos en un tipo
de datos.
Common Object Request Broker Architecture (CORBA)
Arquitectura y especificación para el cálculo orientado a objetos
distribuidos que separa programas de cliente y servidor con una definición
de interfaz formal.
concatenación de series
En REXX, operación que une dos caracteres o series en el orden
especificado, formando una serie cuya longitud es igual a la suma de las
longitudes de los datos caracteres o las dos series.
CORBA
Véase Common Object Request Broker Architecture.
D
DSA
Véase adaptador de origen de datos.
DSA de bases de datos SQL
Adaptador de origen de datos que recupera información de bases de datos
relacionales y otros orígenes de datos que proporcionan una interfaz
pública mediante JDBC (Java Database Connectivity). Los DSA de base de
datos de SQL también añaden, modifican y suprimen información
almacenada en estos orígenes de datos.
DSA de JMS
Véase adaptador de origen de datos de JMS.
DSA de LDAP
Véase adaptador de origen de datos de LDAP.
DSA de mediador
Tipo de adaptador de origen de datos que permite acceder a los datos
proporcionados por sistemas, dispositivos y aplicaciones de otras empresas.
DSA de servicios web
Adaptador de origen de datos que intercambia información con
aplicaciones externas que proporcionan una interfaz de programación de
aplicaciones (API) de servicios web.
DSA de SNMP
Véase adaptador de origen de datos de SNMP.
DSA de socket
Adaptador de origen de datos que permite intercambiar información con
aplicaciones externas utilizando un servidor de sockets como agente de
intermediario.
E
elemento de datos
Unidad de información que se debe procesar.
316
Netcool/Impact: Guía de soluciones
enlace Elemento de un modelo de datos que define una relación entre los tipos de
datos y los elementos de datos. Véase también enlace dinámico, enlace
estático.
enlace dinámico
Elemento de un modelo de datos que representa una relación dinámica
entre elementos de datos en tipos de datos. Véase también enlace.
enlace estático
Elemento de un modelo de datos que define una relación estática entre
elementos de datos en tipos de datos internos. Véase también enlace.
escucha de sucesos de base de datos
Servicio que escucha mensajes de entrada de un origen de datos de base
de datos de SQL y, a continuación, desencadena políticas basándose en los
datos de mensaje de entrada.
escucha de sucesos de precisión
Servicio que escucha en la aplicación los mensajes de entrada y
desencadena políticas basándose en los datos de mensaje.
escucha de sucesos genéricos
Servicio que escucha en un origen de datos externo los sucesos de entrada
y desencadena políticas basándose en los datos de suceso.
estructura de control
Bloque de sentencias en la política que se ejecuta cuando se satisfacen los
términos de la condición de control.
excepción
Condición o suceso que un proceso normal no puede manejar.
expresión de claves
Expresión que especifica el valor que uno o más campos de clave de un
elemento de datos deben tener para recuperarlo en la IPL.
F
filtro
Dispositivo o programa que separa datos, señales o material de acuerdo
con criterios especificados. Véase también filtro LDAP, filtro SQL.
filtro LDAP
Expresión que se utiliza para seleccionar elementos de datos ubicados en
un punto en un árbol de directorio de LDAP. Véase también filtro.
filtro SQL
Expresión que se utiliza para seleccionar filas en una tabla de base de
datos. La sintaxis del filtro es similar al contenido de la cláusula WHERE
de SQL. Véase también filtro.
función
Cualquier instrucción o conjunto de instrucciones relacionadas que realiza
una operación específica. Véase también función definida por el usuario.
función definida por el usuario
Función personalizada que se puede utilizar para organizar código en una
política. Véase también función.
Glosario
317
G
gestor de ejecución de mandatos
Servicio que gestiona la ejecución de mandatos remota mediante una
función en las políticas.
gestor de línea de mandatos
Servicio que gestiona la interfaz de línea de mandatos.
gestor de seguridad
Componente que es responsable de autenticar inicios de sesión de usuario.
GUI
Véase interfaz gráfica de usuario.
I
interfaz gráfica de usuario (GUI)
Interfaz de sistema que presenta una metáfora visual de una escena del
mundo real, normalmente un escritorio, combinando gráficos de alta
resolución, dispositivos de puntero, barras de menú y otros menús,
ventanas de solapamiento, iconos y la relación de objeto-acción. Véase
también servidor de interfaz gráfica de usuario.
IPL
Véase lenguaje de políticas de Netcool/Impact.
J
Java Database Connectivity (JDBC)
Estándar de la industria para la conectividad independiente de base de
datos entre la plataforma Java y un amplio rango de bases de datos. La
interfaz JDBC proporciona una interfaz a nivel de llamada para el acceso
de base de datos basado en SQL y basado en XQuery.
Java Message Service (JMS)
Interfaz de programación de aplicaciones que proporciona funciones de
lenguaje Java para el manejo de mensajes.
JDBC Véase Java Database Connectivity.
JMS
Véase Java Message Service.
L
LDAP Véase Lightweight Directory Access Protocol.
lector de correo electrónico
Servicio que sondea un servidor de correo POP (Post Office Protocol Protocolo de correo) a intervalos para el correo electrónico de entrada y, a
continuación, desencadena políticas basándose en los datos de correo
electrónico de entrada.
lector de mensajería instantánea
Servicio que escucha en los servidores de mensajería instantánea externos
los mensajes y desencadena políticas basándose en los datos de mensaje de
entrada.
lector de sucesos
Servicio que supervisa un origen de suceso para sucesos nuevos,
318
Netcool/Impact: Guía de soluciones
actualizados y suprimidos y desencadena políticas basándose en los datos
de suceso. Véase también lector de sucesos de base de datos, lector de
sucesos estándar.
lector de sucesos de base de datos
Lector de sucesos que supervisa un origen de sucesos de base de datos de
SQL para sucesos nuevos y modificados y desencadena políticas basándose
en la información de sucesos. Véase también lector de sucesos.
lector de sucesos estándar
Servicio que supervisa en una base de datos los servicios nuevos,
actualizados y suprimidos y desencadena políticas basándose en los datos
de suceso. Véase también lector de sucesos.
lenguaje de políticas de Netcool/Impact (IPL)
Lenguaje de programación utilizado para escribir políticas.
Lightweight Directory Access Protocol (LDAP)
Protocolo abierto que utiliza TCP/IP para proporcionar acceso a directorios
que soportan un modelo X.500 y que no incurre en los requisitos de
recursos del protocolo DAP (Directory Access Protocol) X.500 más
complejo. Por ejemplo, se puede utilizar LDAP para localizar personas,
organizaciones y otros recursos en un directorio de Internet o intranet.
Véase también adaptador de origen de datos de LDAP.
M
modelo de datos
Representación abstracta de los datos empresariales y metadatos utilizados
en una instalación. Un modelo de datos contiene orígenes de datos, tipos
de datos, enlaces y orígenes de sucesos.
motor de política
Característica que automatiza las tareas que el usuario especifica en el
lenguaje de scripts de política.
O
operador
Función incorporada que asigna un valor a una variable, realiza una
operación en un valor o especifica cómo se deben comparar dos valores en
una política. Véase también operador de asignación, operador booleano,
operador de comparación, operador matemático, operador de series.
operador booleano
Función incorporada que especifica una operación lógica de AND, OR o
NOT cuando se evalúan conjuntos de operaciones. Los operadores
booleanos son &&, || y !. Véase también operador.
operador de asignación
Operador que establece o restablece un valor en una variable. Véase
también operador.
operador de comparación
Función incorporada que se utiliza para comparar dos valores. Los
operadores de comparación son ==, !=, <, >, <= y >=. Véase también
operador.
Glosario
319
operador de series
Función incorporada que realiza una operación en dos series. Véase
también operador.
operador matemático
Función incorporada que realiza una operación matemática en dos valores.
Los operadores matemáticos son +, -, *, / y %. Véase también operador.
origen de datos
Repositorio de datos al que un servidor federado se puede conectar y, a
continuación, recuperar datos utilizando derivadores. Un origen de datos
puede contener bases de datos relacionales, archivos XML, hojas de cálculo
de Excel, archivos estructuras en tablas u otros objetos. En un sistema
federado, los orígenes de datos parecen ser una sola base de datos
colectiva.
origen de sucesos
Origen de datos que almacena y gestiona sucesos.
P
política
Conjunto de reglas y acciones que es necesario realizar cuando se
producen determinados sucesos o condiciones de estado en un entorno.
POP
Véase Post Office Protocol (Protocolo de correo).
Post Office Protocol (POP) (Protocolo de correo)
Protocolo que se utiliza para intercambiar correo de red y acceder a los
buzones.
procesador de sucesos
Servicio responsable de gestionar sucesos mediante los servicios de lector
de sucesos, escucha de sucesos y lector de correo electrónico. El procesador
de sucesos gestiona la cola de sucesos entrantes y es responsable de enviar
los sucesos en cola al motor de políticas para su proceso.
R
registrador de política
Servicio que graba mensajes en el registro de política.
remitente de correo electrónico
Servicio que envía correo electrónico mediante un servidor de correo SMTP
(Simple Mail Transfer Protocol - Protocolo simple de transferencia de
correo).
S
servicio
Subcomponente ejecutable que el usuario controla desde dentro de la
interfaz gráfica de usuario (GUI).
servicio de autosupervisión
Servicio que supervisa la memoria y otras condiciones de estado e informa
sobre ellas como sucesos.
servicio de mensajería instantánea
Servicio que envía mensajes instantáneos a clientes de mensajería
instantánea mediante un servidor Jabber.
320
Netcool/Impact: Guía de soluciones
servidor
Componente responsable de mantener el modelo de datos, gestionar
servicios y ejecutar políticas.
servidor de bases de datos
Programa de software que utiliza un gestor de bases de datos para
proporcionar servicios de base de datos a otros programas de software o
sistemas. Véase también base de datos.
servidor de interfaz gráfica de usuario (servidor GUI)
Componente que sirve la interfaz gráfica de usuario basada en web a los
navegadores web mediante HTTP. Véase también interfaz gráfica de
usuario.
servidor GUI
Véase servidor de interfaz gráfica de usuario.
Simple Mail Transfer Protocol (SMTP) (Protocolo simple de transferencia de
correo)
Protocolo de aplicación de Internet para transferir correo entre los usuarios
de Internet.
Simple Network Management Protocol (SNMP) (Protocolo simple de gestión de
red)
Conjunto de protocolos para supervisar sistemas y dispositivos en redes
complejas. La información sobre los dispositivos gestionados se define y
almacena en una MIB (Management Information Base). Véase también
adaptador de origen de datos de SNMP.
SMTP Véase Simple Mail Transfer Protocol (Protocolo simple de transferencia de
correo).
SNMP
Véase Simple Network Management Protocol (Protocolo simple de gestión
de red).
suceso Aparición de importancia para una tarea o un sistema. Los sucesos pueden
incluir la terminación o la anomalía de una operación, una acción de
usuario o el cambio en el estado de un proceso.
T
tipo de datos
Elemento de un modelo de datos que representa un conjunto de datos
almacenados en un origen de datos, por ejemplo una tabla o vista en una
base de datos relacional.
V
variable
Representación de un valor cambiable.
Glosario
321
322
Netcool/Impact: Guía de soluciones
Índice
A
accesibilidad viii, 313
activador de políticas en hibernación
Configuración 81
activadores de políticas
Configuración 78
activar 123
actualización de datos 116
Aislamiento y correlación de
sucesos 305, 306, 308, 309
almacenamiento en memoria caché
almacenamiento en memoria caché de
consultas 36
almacenamiento en memoria caché de
datos 35
almacenamiento en memoria caché de
recuentos 36
almacenamiento en memoria caché de
consultas 30
almacenamiento en memoria caché de
datos 30
almacenamiento en memoria caché de
tipos de datos 30
ámbito de política 83
arreglos
obtener ix
C
campo de tipo de datos
descripción 19
formato 18
ID 17
nombre de campo 17
nombre de visualización 18
campos de sucesos
acceso 100
actualización 101
variables 99
claves 111
expresiones de varias claves 112
CommandResponse 134
complementos
Maintenance Window
Management 299, 300, 301, 303
componentes de una solución 1
configuración 153
configurar orígenes de datos 308
configurar tipos de datos 308
consulta de sucesos
lectura de archivo de estado 46
contenedor de sucesos 99
contexto 88
contexto de política 83
convenios
tipo de letra xii
convenios de tipo de letra xii
Creación de un servicio 157
Crear, editar y suprimir una regla de
suceso 309
© Copyright IBM Corp. 2006, 2014
crear una política 154
Crear una regla de suceso
309
D
DataItem (variable incorporada) 105
DataItems (variable incorporada) 105
datos
actualización 116, 117
adición 115
recuperación por clave 111
recuperación por enlace 113
recuperación por filtro 105
supresión 117, 118, 119
desencadenantes de OMNIbus 77
Desinstalación de los widgets de paneles
de instrumentos de autoservicio 210
determinación y resolución de
problemas xi
discapacidad 313
E
editor de tipos de datos externos LDAP
separador Información de LDAP 33
elementos de datos 6, 105
variables de campos 105
enlaces 6, 37
categorías 37
configuración 39
dinámicos 38
estáticos 37
visión general 37, 113
enlaces dinámicos 38
configuración 39
enlace por clave 38
enlace por filtro 38
enlace por política 39
enlaces estáticos 37
enriquecimiento de sucesos 2
escucha de sucesos de base de datos
configuración del servidor de bases de
datos 53
creación de desencadenantes 59, 60,
61, 62, 63
creación de especificación de
llamada 58
desencadenantes de ejemplo 64, 65,
66, 67, 68, 69, 70, 71
edición de archivo de propiedades de
escucha 55
edición del archivo
nameserver.props 54
envío de sucesos de base de datos 58
escritura de políticas 71, 72, 73
instalación de archivos de cliente en
Oracle 56
otorgar permisos de base de datos 56
escucha de sucesos de omnibus
desencadenantes 74
escucha de sucesos de omnibus
(continuación)
utilización de ReturnEvent 76
Estado 186
EventContainer (variable
incorporada) 99
exportación e importación de
ForImpactMigration 154
expresiones de clave 111
expresiones de varias claves 112
F
filtros 106
filtros de mediador 109
filtros LDAP 107
filtros SQL 106
filtros de mediador 109
filtros LDAP 107
filtros SQL 106
formación
Véase también formación técnica de
Tivoli
técnica de Tivoli ix
formación técnica de Tivoli ix
Formas de recursos OSLC para tipos de
datos 229
Función RDFRegister 243, 279
funciones
definidas por el usuario 92
funciones de base de datos
llamar 119
funciones definidas por el usuario 92
G
glosario
315
H
hibernaciones 121
activación 123
eliminación 124
recuperación 122
I
Instalación de widgets de paneles de
instrumentos de autoservicio 209
instalar el kit de herramientas de la
biblioteca de descubrimiento 306
instalar la base de datos DB2 306
Integración de datos de una política con
el widget de topología 184
introducción a OSLC 223
IPL
Véase lenguaje de políticas de Impact
323
J
Jabber 127
JavaScript y el Proveedor de datos de
IU 220
JMS
origen de datos 12
L
Lanzar la página de análisis de
Aislamiento y correlación de
sucesos 311
lector de sucesos
acciones 52
bloqueo de sucesos 52
coincidencia de sucesos 52
correlación 52
orden de sucesos 53
lector de sucesos de omnibus
colocación en cola de sucesos 46
consulta de sucesos 46
lectores de sucesos
arquitectura 45
Configuración 46
proceso 45
lenguaje de políticas de Impact 83
libros
ver publicaciones vii, viii
M
manuales
ver publicaciones vii, viii
matrices 139
búsqueda de la longitud 139
búsqueda de valores distintivos
matriz 85
Mediador DSA
orígenes de datos 12
tipos de datos 34
mensajería instantánea 127
modelo de datos 1
componentes 5
creación 3
modelo de servicio
empresa 8
modelo de servicio empresarial
elementos 8
Modelo de web hosting 9
elementos 10
modelos de datos
arquitectura 7
configurar 6
ejemplos 7
modelos de datos grandes 215
MWM
Véase Maintenance Window
Management
registrador de políticas
Configuración 79
registro de política 83
impresión en 84
repositorio de datos interno
O
S
OMNIbusEventListener 76
origen de datos
información de conexión 13
Origen de sucesos del ObjectServer
configuración 42
orígenes de datos
arquitectura 13
base de datos SQL 11
categorías 11
configuración 13
creación 14
JMS 12
LDAP 12
Mediador DSA 12
visión general 5, 11
orígenes de datos LDAP
creación 12
orígenes de sucesos 40
arquitectura 42
ObjectServer 41
que no son del ObjectServer 41
OSLC 223
OSLC y tipos de datos 226
Seguridad de OSLC 266
sentencias If 89
sentencias While 90
separador Campos personalizados
editor de tipos de datos internos 21
separador Descripción de tabla
editor de tipos de datos externos
SQL 24
separador Valores de memoria caché
editor de tipos de datos externos 30
series 135
búsqueda de la longitud 135
cifrado y descifrado 138
concatenación 135
división en subseries 136
eliminación de espacios en blanco
iniciales y finales 138
eliminación de una subserie 137
extracción de una subserie 136
modificación de las
mayúsculas/minúsculas 138
sustitución de una subserie 137
servicio
activador de políticas 78
activador de políticas en
hibernación 81
escucha de sucesos de base de
datos 53, 57
escucha de sucesos de omnibus 74
escucha de sucesos de OMNIbus 73,
74
gestor de ejecución de mandatos 81,
82
gestor de línea de mandatos 82
Lector de sucesos de OMNIbus 44,
47, 48
registrador de políticas 78, 79
servicios
configuración 3
definidas por el usuario 44
predefinidos 43
trabajar con 1, 43
visión general 43
servidor JRExec
configuración 132
detener 132
ejecutar mandatos 133
iniciar 131
registro cronológico 133
visión general 131
solución
ejecución 4
soluciones
configuración 3
tipos 2
soporte al cliente x
Soporte para modelos de datos
grandes 214
P
139
N
nombres de directorio
notación xiii
nombres de vía de acceso
notación xiii
324
notación
nombres de vía de acceso xiii
tipo de letra xiii
variables de entorno xiii
notificación de sucesos 2
Netcool/Impact: Guía de soluciones
pasarela de sucesos 3
PassToTBSM 153, 154, 157
planificación de políticas 94
activador de políticas 94
planificaciones 94, 95, 96, 97
policylogger 80
política 1
idioma 83
recuperación de datos por clave 112,
113
recuperación de datos por
enlace 113, 114
recuperación de datos por filtro 109,
110, 111
políticas
creación 4
hibernación 121
políticas de Aislamiento y correlación de
sucesos 307
porcentaje 186
proyectos 154
publicaciones vii
acceso en línea viii
realizar pedido viii
publicaciones en línea
acceso viii
R
RDFUnRegister, función 246, 282
realizar pedido de publicaciones viii
Recursos e identificadores OSLC 225
12
soporte técnico de software
cómo ponerse en contacto x
recepción semanal de
actualizaciones ix
visión general ix
sucesos 99
adición de entradas de diario a
envío de nuevos 102
supresión 103
U
utilización de Spid
77
V
101
T
tipo de datos
LDAP 15, 32
llenado automático 30
obtención del nombre de elemento
estructural 19
ordenación de los elementos de
datos 31
SQL 15
tipos de datos 6, 28
almacenamiento en memoria
caché 35
campos 17
categorías 15
claves 19
configuración 19
configuración de SQL 23
configurar internos 20
configurar LDAP 33
configurar tipos de datos SQL
separador Descripción de tabla 24
editor de tipos de datos internos 21
externos 14
filtro de elemento de datos 31
internos 14, 15
internos definidos por el usuario 17
internos predefinidos 16
mediador 15
Mediador DSA 34
predefinidos 14
sistema 16
SQL 22
visión general 14
Tipos de datos de Netcool/Impact como
recursos OSLC 226
tipos de datos externos
configuración de SQL 23
editor 24, 28
LDAP 33
Mediador DSA 34
tipos de datos externos LDAP 33
tipos de datos internos
configurar 20
editor
separador Campos
personalizados 21
tipos de datos SQL
adición de un campo a la tabla 28
configuración 23, 24
tipos de datos Sybase
establecimiento de la opción Excluir
este campo 28
Tivoli Information Center viii
trabajar con modelos de datos 5
variables
campo de suceso 99
definidas por el usuario 84
estado de suceso 100
notación para xiii
variables de contenedor de sucesos
definidas por el usuario 100
variables de entorno
notación xiii
variables de estado de suceso 100
visión general 305
Visión general 153
vista de operador EIC_Analyze 312
Vistas de operador de Aislamiento y
correlación de sucesos 307
Visualizar resultados de Aislamiento y
correlación de sucesos 311, 312
W
WebGUI 311
widget Botón 212
widgets de panel de instrumentos de
autoservicio 209
X
x sucesos en y tiempo
2
Índice
325
326
Netcool/Impact: Guía de soluciones
Impreso en España
SC43-0010-00
Descargar