Requerimiento:
Se quiere crear de forma dinámica una cola local y una cola alias. En este ejemplo se proporcionará el nombre de la cola alias. Mientras tanto, para la cola local, su nombre se formará utilizando el siguiente formato: MQname.QAlias.
Insumos:
Se creará un fichero que contendrá el nombre del gestor de colas y el nombre de la cola alias en el siguiente formato: “MQname Qname”. Le daremos un nombre que nos ayude a identificar el contenido, por ejemplo: n_Colas.dat
# n_Colas.dat
QMTES01U TES.AHJ.JGKD.IN
QMTES01U TES.AHJ.JGKD.OUT
Script:
Vamos a crear un shell script usando awk para generar de forma dinámica un fichero .mqsc. Este fichero podremos ejecutarlo fácilmente por medio de runmqsc o simplemente copiar y pegar los comandos.
# creaQL.sh
# Leer el archivo de texto con el formato QMname ALIAS y asignar cada campo a una variable
awk '{
# Asignar el primer campo a la variable qmname
qmname=$1
# Asignar el segundo campo a la variable alias
alias=$2
# Escribir en el fichero colas.mqsc el comando para definir una cola local con el nombre del gestor de colas
print "DEFINE QLOCAL(\047"qmname"\047)" >> "colas.mqsc"
# Escribir en el fichero colas.mqsc el comando para definir una cola alias con el nombre proporcionado y apuntando a la cola local creada anteriormente
print "DEFINE QALIAS(\047"alias"\047) TARGET(\047"qmname"\047)" >> "colas.mqsc"
}' n_Colas.dat # Indicar el nombre del archivo de texto a leer
Resultado:
Al ejecutar el script anterior se generará un fichero .mqsc con el siguiente contenido.
# colas.mqsc
DEFINE QLOCAL('QMTES01U')
DEFINE QALIAS('TES.AHJ.JGKD.IN') TARGET('QMTES01U')
DEFINE QLOCAL('QMTES01U')
DEFINE QALIAS('TES.AHJ.JGKD.OUT') TARGET('QMTES01U')