Lea en AS/400 System i . . .

Aprovechando las posibilidades del WRKACTJOB a través de sus parámetros

Obtenga una salida diferente de la habitual al ejecutar el comando WRKACTJOB, aprovechando lo ofrecido por algunos parámetros interesantes que posibilitan entre otras acciones la de renovar automáticamente la pantalla resultante.

FaceBookTwitterGoogle+

Sometimiento de comandos remotos en AS400 con SBMRMTCMD

Ejecución de comandos en sistemas remotos con el comando SBMRMTCMD en AS400.

En muchas ocasiones es necesario ejecutar tareas en un sistema AS400 remoto. Si se posee perfil de usuario y contraseña en el sistema remoto y posibilidades de conexión a través de emulación de pantalla, esas tareas pueden llevarse a cabo abriendo una sesión interactiva en el sistema remoto en cuestión. Cuando es necesario ejecutar un comando puntual o invocar un determinado programa sobre un sistema remoto, OS/400 ofrece alternativas de fácil uso.

Cómo trabaja el comando SBMRMTCMD

El comando SBMRMTCMD (Submit Remote Command) permite someter un comando desde un sistema que actúa como cliente hacia un sistema remoto. Esta facilidad es servida a través de un servidor de TCP/IP llamado DDM (Distributed Data Management). Es importante notar que SBMRMTCMD no funciona de la misma manera que SBMJOB. Mientras que SBMJOB somete un job a una cola de trabajos y libera al trabajo sometedor, el job interactivo que, desde el origen ejecuta el SBMRMTCMD, queda a la espera de un mensaje de respuesta desde el sistema remoto, o sea trabaja de manera sincrónica. A través de ese mensaje, el usuario conoce si el mandato sometido en forma remota se ejecutó de manera exitosa o existió algún inconveniente. El siguiente esquema permite conocer quiénes son los "actores" participantes al usar el servidor DDM del TCP/IP:

 

sistema-origen-destino-DDM

Por un lado, en el sistema cliente, existe un job que hace un requerimiento, por ejemplo el uso del mandato SBMRMTCMD. En el sistema destino, el servidor DDM escucha los pedidos del sistema cliente por los "well known ports" 446, 447 y 448. Este servidor debe haber sido arrancado previamente con el comando STRTCPSVR SERVER(*DDM) (1). El servidor DDM está soportado, en el sistema destino, por dos trabajos que se ejecutan en el subsistema QSYSWRK y bajo el perfil de usuario QUSER. El primero de ellos, el "listener", con nombre de job QRWTLSTN, es el encargado de escuchar y aceptar el pedido de conexión del cliente, y también de generar un pedido interno para "enlazar" la conexión del cliente con el server job (2). El segundo, el "server job", es un trabajo batch de nombre QRWTSRVR que es sometido cuando el pedido de conexión del cliente es procesado. Este job se ocupará de cualquier otra conexión con el cliente.

Al ejecutar el comando SBMRMTCMD, el intercambio inicial de información que ocurre entre los sistemas incluye el mandato a ejecutar en el sistema remoto junto con el perfil de usuario con el que se ingresará en el sistema remoto (3). Una vez que el perfil de usuario y la contraseña (si es enviada junto con el ID de usuario) fueron validadas, el "server job" ejecutará el mandato bajo el perfil de usuario recibido en el requerimiento (4).


Una vez conocido cómo es el proceso de comunicación a través del servidor DDM, para poder utilizar SBMRMTCMD en forma exitosa, es necesario que se cumplan previamente determinados pasos, que contribuyen a la configuración del entorno:

  1. Creación de un archivo DDM (objeto de tipo *FILE con atributo DDMF) en el sistema origen. Este objeto almacenará la dirección IP hacia donde se someterá el mandato.
  2. Configuración, en el sistema destino, de los parámetros de seguridad del servidor DDM. Existen parámetros que es imprescindible conocer para que SBMRMTCMD se ejecute exitosamente.
  3. Configuración del entorno de seguridad en el sistema origen.
  4. Arranque del servidor DDM del TCP/IP en el sistema destino.


Una vez completados, se dispone de la configuración apropiada para la ejecución del comando SBMRMTCMD.


Configuración del entorno

En la presente sección se analizarán los pasos detallados anteriormente:


1- Creación del archivo DDM en el sistema origen

El mandato CRTDDMF es el encargado de crear un objeto de tipo *FILE con atributo DDMF. Observar el siguiente comando ejemplo:

CRTDDMF FILE(QGPL/ARCHDDM) RMTFILE(QGPL/REMOTO) +
RMTLOCNAME('169.145.220.99' *IP) TEXT('Para usar con SBMRMTCMD')

 

El mandato anterior generará en la biblioteca QGPL un archivo DDM de nombre ARCHDDM. La ubicación hacia donde "apuntará" el archivo será la determinada por la dirección IP 169.145.220.99 (observar que, en el prompt del mandato, *IP no es el valor default). Cuando posteriormente se lo utilice a través del comando SBMRMTCMD, el mandato se ejecutará en el sistema que posea la dirección IP que aquí se indica. En el parámetro RMTFILE debe ingresarse un nombre de archivo que será ignorado cuando se utilice el DDMF a través del comando SBMRMTCMD.


De esta manera queda generado el archivo DDM cuyo nombre será solicitado por uno de los parámetros del comando SBMRMTCMD.


2- Configuración, en el sistema destino, de los parámetros de seguridad del servidor DDM

Uno de los puntos importantes a considerar dentro de los servicios ofrecidos por el servidor DDM, es el de la seguridad. El servidor DDM posee atributos de seguridad que deben ser analizados. El comando CHGDDMTCPA permite establecerlos. Se necesita autorización especial *IOSYSCFG para poder utilizarlo.

La siguiente pantalla muestra el prompt del mandato:

 

cambiar-atributos-DDM


El primero de los parámetros, Servidor de arranque automático, se utiliza para especificar si este servidor debe arrancarse cuando se ejecute el mandato STRTCP o STRTCPSVR SERVER(*AUTOSTART).

El segundo parámetro, Se requiere contraseña, con palabra clave PWDRQD, determina qué "postura" toma el sistema destino con respecto a la contraseña. Los valores posibles son *YES (default), *NO y *VLDONLY.

PWDRQD(*YES): es el valor default. Exige que se envíe desde el sistema origen un perfil de usuario válido y su respectiva contraseña en el sistema remoto. Cuando esta condición no se cumple, el emisor del comando SBMRMTCMD recibe el mensaje CPF9190: "Anomalía de autorización en un intento de conexión TCP/IP DDM". En la información de ayuda se visualiza "Ha fallado un intento de conexión y el código de razón ha sido 17". Los códigos de razón y sus significados son: "17 -- El servidor no admite o no permite el mecanismo de seguridad que ha solicitado el cliente". Este código de razón revela que el servidor requiere contraseña pero el cliente sólo envía un identificador de usuario y no su contraseña. Esto implica que si se ingresa en la máquina origen con un perfil de usuario y luego se hace una solicitud con el comando SBMRMTCMD al sistema destino, la petición será rechazada, porque el parámetro PWDRQD está en el default *YES y no hay un mecanismo de envío de password establecido. Esto hace notar también que es independiente de que el usuario exista o no en el destino.

Para efectuar el envío de la contraseña junto con el perfil de usuario, deben hacerse seteos de seguridad en el sistema origen, antes de efectuar la primera petición al servidor DDM. Estos seteos se cubrirán en el punto 3, Configuración del entorno de seguridad en el sistema origen.

PWDRQD(*NO): cuando se establece este valor, el servidor DDM no exige contraseña. Si la recibe, la ignora. Los usuarios que desde el sistema origen solicitan servicios del servidor DDM, ingresan en el sistema destino con su perfil de usuario, por lo tanto, el perfil debe existir en el sistema destino. En caso que el perfil de usuario no exista en el sistema destino, se recibirá el mensaje de código CPF9190, con código de razón 5: "No se ha encontrado el usuario en el sistema destino". Debe considerarse que, cuando se utiliza PWDRQD(*NO), todos los usuarios que posean un perfil de usuario en el sistema destino, pueden acceder a los servicios DDM que ese sistema ofrece. Esta capacidad por default no está permitida, debido a que el valor original del parámetro "Se requiere contraseña" es *YES.


PWDRQD(*VLDONLY): el uso de este valor, significa que no exige contraseña, pero si se la envía, debe ser válida. En caso de ser inválida, el emisor de la petición recibe el mensaje de código CPF9190, con código de razón 2: "Contraseña inválida".

 

3- Configuración del entorno de seguridad en el sistema origen

Solamente en el caso de utilizar el valor *YES para el parámetro "Se requiere contraseña" (palabra clave PWDRQD) del comando CHGDDMTCPA en el sistema destino, deben efectuarse en el sistema origen ciertas tareas que se detallan a continuación:

 

  • Verificar que el contenido del valor del sistema QRETSVRSEC (retener datos de seguridad del servidor) esté establecido en "1" en el sistema origen para que el mandato ADDSVRAUTE que permite el envío de la contraseña, se ejecute exitosamente. Caso contrario, el mandato será rechazado.
  • Para efectuar el envío de la contraseña junto con el perfil del usuario, deben realizarse ciertos seteos con el comando ADDSVRAUTE. La siguiente pantalla muestra los parámetros del mandato ADDSVRAUTE que realiza esta tarea:

ADDSVRAUTE



Considerar:

  • La posibilidad de "disfrazarse" de otro perfil permite que, un usuario local, acceda al sistema destino bajo otro perfil, sin necesidad de definirle un perfil en el otro sistema que además puede llegar a habilitarlo para otras funciones.
  • Es importante destacar que la contraseña que se envía es la incorporada en esta lista, no la que está asociada con el perfil de usuario para accesos normales. Por lo tanto, las modificaciones de contraseñas para los perfiles en el sistema origen, no afectan las entradas de esta lista.El comando ADDSVRAUTE USRPRF(PEPE) SERVER(QDDMSERVER) PASSWORD(sssss) incorpora al usuario PEPE en la lista, y cuando solicite los servicios del servidor DDM, se presentará en el destino también como PEPE con la contraseña correspondiente.
  • El mandato CHGSVRAUTE permite realizar modificaciones en la entrada de autenticación.
  • Si la contraseña del usuario en el sistema remoto se modifica, es necesario también cambiar la entrada correspondiente en el sistema origen. Si esta acción no se realiza, el emisor del mandato SBMRMTCMD recibirá el CPF9190, pero esta vez con código de error 2: "La contraseña no es válida".
  • No existen comandos para visualizar cuáles son los usuarios incorporados con ADDSVRAUTE este comando.
  • Para remover un usuario de esta lista, usar el comando RMVSVRAUTE.


El comando ADDSVRAUTE debe ejecutarse tantas veces como sea necesario de acuerdo a la necesidad de incorporar usuarios y sus contraseñas para que puedan conectarse a través del servidor DDM en el sistema destino.


4- Arranque del servidor DDM del TCP/IP en el sistema destino


Una vez realizados los pasos de configuración necesarios, sólo resta arrancar el servidor DDM para completar el proceso. El arranque del servidor DDM se puede realizar manualmente, con el mandato STRTCPSVR SERVER(*DDM) desde cualquier línea de comandos o desde la interfaz gráfica de Operations Navigator ingresando por Red à Servidores à TCP/IP à DDM, botón derecho del mouse e Iniciar.

También puede establecerse su arranque en forma automática para cuando sea arrancado TCP/IP, desde el comando CHGDDMTCPA (parámetro "Servidor arranque automático" establecido en *YES) o desde Operations Navigator ingresando en Propiedades del servidor DDM.

Una vez realizados los pasos necesarios en la configuración, puede accederse a los servicios ofrecidos por el servidor DDM en el sistema destino. En la próxima sección se mostrará el uso del mandato SBMRMTCMD (Submit Remote Command).


El comando SBMRMTCMD

El comando SBMRMTCMD (Submit Remote Command) ofrece la posibilidad de ejecutar un mandato en un sistema remoto. La siguiente pantalla muestra el prompt de comando:

 

someter-mandatos-remotos

Es importante recordar nuevamente que SBMRMTCMD no funciona de la misma manera que SBMJOB. Mientras que SBMJOB somete un job a una cola de trabajos y libera al trabajo sometedor, el job interactivo que, desde el origen ejecuta el SBMRMTCMD, queda inhibido a la espera de un mensaje de respuesta desde el sistema remoto o sea, trabaja de manera sincrónica.

Cuando en el sistema destino no está arrancado el servidor DDM, el emisor del mandato SBMRMTCMD recibe el mensaje de código CPF9162: "No puede establecerse una conexión DDM con el sistema remoto".

Considerar:

  • El parámetro "Mandato a ejecutar" no actúa como una línea de comandos (los mandatos allí escritos no se pueden promptear). Deben escribirse utilizando las palabras claves correspondientes.
  • Cuando el comando sometido genera listados en el sistema destino, esas salidas impresas no son automáticamente enviadas al sistema origen. Quedan almacenadas en la cola de salida del usuario con el cual se ingresó al sistema destino. Se podría recurrir al arranque de transcriptores remotos para efectuar el envío automático al sistema origen.
  • No todos los comandos CL están orientados a ejecutarse a través del mandato SBMRMTCMD.
  • El parámetro "Archivo DDM" debe incluir el nombre del archivo DDM creado anteriormente. En los atributos de este archivo, figura la dirección IP del sistema destino.


Ejemplos de ejecución de SBMRMTCMD

1. SBMRMTCMD CMD( ' CRTPF FILE(BIB1/ARCHI2) SRCFILE(QGPL/QDDSSRC) +
SRCMBR(ARCHI2) '
) DDMFILE(QGPL/MENDOZA)

Este comando crea en el sistema remoto el archivo físico de datos ARCHI2 en la biblioteca BIB1 usando las especificaciones DDS del miembro fuente ARCHI2 desde el archivo de fuentes QDDSSRC de la biblioteca QGPL. La DDS debe ya existir sobre el sistema destino identificado en el archivo DDM mencionado en el parámetro DDMFILE.


2. SBMRMTCMD CMD( ' CALL PGM(BIB1/PROGRA1) ' ) DDMFILE(QGPL/CORDOBA)

Este comando ejecuta en el sistema destino el programa PROGRA1 de la biblioteca BIB1 (objetos residentes en el sistema destino). El sistema destino es el identificado por archivo DDM mencionado en el parámetro DDMFILE.


3. SBMRMTCMD CMD( ' CHGOBJOWN OBJ(PRUEBA/ARCH) OBJTYPE(*FILE) +
NEWOWN(QSECOFR) '
) DDMFILE(QGPL/CORDOBA)

Este comando cambia, en el sistema destino, la propiedad del archivo ARCH de la biblioteca PRUEBA otorgándosela al perfil de usuario QSECOFR. El sistema destino es el identificado por archivo DDM mencionado en el parámetro DDMFILE.


4. SBMRMTCMD CMD( ' SAVLIB LIB(STOCK) DEV(*SAVF) SAVF(QGPL/BACKUP) ') +
DDMFILE(QGPL/CORDOBA)

Este comando salva, en el sistema destino, la biblioteca STOCK en un archivo de salvar de nombre BACKUP de la biblioteca QGPL. El sistema destino es el identificado por archivo DDM mencionado en el parámetro DDMFILE. Si en el sistema destino, la unidad de cinta no está preparada, el operador del sistema destino recibirá los mensajes correspondientes.


Para tener en cuenta...

  • Como ya expresáramos anteriormente, DDM (Distributed Data Management) es un servidor del TCP/IP. SBMRMTCMD es sólo una de las formas de explotar los servicios que ofrece.
  • Los cambios efectuados en el parámetro "Se requiere contraseña" del comando CHGDDMTCPA, entran en vigencia en la siguiente petición de conexión DDM sobre TCP/IP. También pueden cambiarse los valores de este parámetro desde la interfaz (iseries Navigator) AS400 Operations Navigator: Red -->Servidores -->TCP/IP -->DDM, botón derecho del mouse y Propiedades.
  • Si el mandato SBMRMTCMD es usado para invocar un programa en el sistema destino, los mensajes de escape no monitoreados por el programa son cambiados a mensajes de consulta y enviados al operador del sistema remoto. Si el usuario no desea que el operador del sistema remoto responda a ellos, se puede "planear" la respuesta automática, incorporando los códigos correspondientes en la lista de respuesta del sistema en el sistema remoto.
  • Otros comandos que se aplican sobre archivos DDM son WRKDDMF, CHGDDMF y DSPDDMF.
  • Los comandos que se aplican sobre entradas de autenticación de servidor son ADDSRVAUTE, CHGSVRAUTE y RMVSVRAUTE.
  • Logging: en el sistema destino, la joblog del trabajo de nombre QRWTSRVR en el subsistema QSYSWRK contiene detalles de los servicios prestados por el servidor DDM y también todos los mensajes que recibe el emisor del SBMRMTCMD. El history log del sistema destino almacena entradas que indican los accesos al servidor DDM efectuados por los diferentes usuarios. El siguiente mensaje es un ejemplo de los aparecen allí: " Trabajo DDM 161181/QUSER/QRWTSRVR dando servicio a usuario PEPE en 31/05/02 a las 10:44:50".

  • Copyright  2002 Teknoda S.A .

    IMPORTANTE:
    “Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
    Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas AS400 - IBM i, envíe un mensaje desde esa dirección a info@nsitech.com.ar  o  a letter400@nsitech.com.ar, aclarando nombre, empresa, cargo y país del suscriptor.

    AS400 , iSeries, System i, IBM Power Systems, IBM i son marcas registradas de IBM. IBM no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, NS iTech - Teknoda no garantiza la exactitud o completud de la misma.
    COPYRIGHT NS iTech - TEKNODA S.A.  PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE  NS iTech - TEKNODA


     

Lea en AS/400 Tips . . .

Infografía comparativa Comandos de SAVE RESTORE del AS400

save_restore_thumbnail

Conozca y diferencie visualmente qué partes del almacenamiento resguarda y restaura cada comando y cada opción del Menú Salvar y Restaurar. PUEDE DESCARGAR UN FORMATO POSTER PARA IMPRESION.

Para lograr un entendimiento conceptual es de suma utilidad contar con una ayuda gráfica, que  permita diferenciarlos a primera vista. Nuestro equipo de especialistas ha desarrollado el "Infographics" que presentamos con este tip. Por supuesto, el mismo debe complementarse con la información detallada de los innumerables parámetros de cada comando, pero es un útil marco de referencia  para recordar el área de injerencia de cada comando.

LEER ESTE ARTICULO >>>>>

 

 

 

Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.