Crear colas locales y alias dinamicamente.

|

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')
      
    

 

©2009 CHMRED | Template Blue by TNB