Archivo de propiedades de enlace (detalles)

Al generar un programa o envoltura Java llamador, puede especificar que es necesaria información de enlace durante la ejecución. Esa especificación se realiza estableciendo los valores de opción de enlace del programa llamado, del siguiente modo:

Un archivo de propiedades de enlace puede escribirse manualmente, pero EGL un archivo si (además de los valores descritos anteriormente) el usuario genera un programa o envoltura Java con la opción genProperties del descriptor de construcción establecida en GLOBAL o PROGRAM.

Cómo se identifica el archivo de propiedades de enlace durante la ejecución

Si la propiedad remoteBind del elemento callLink de un programa llamado se ha establecido en RUNTIME en el componente de opciones de enlace, el archivo de propiedades de enlace se busca durante la ejecución; pero el origen del nombre de archivo es diferente en los programas Java y las envolturas Java:
  • Un programa Java comprueba la propiedad de entorno de ejecución Java cso.linkageOptions.LO, donde LO es el nombre del componente de opciones de enlace utilizado para la generación. Si la propiedad no está presente, el código del entorno de ejecución EGL busca un archivo de propiedades de enlace denominado LO.properties. De nuevo, LO es el nombre del componente de opciones de enlace utilizado para la generación.

    En este caso, si el código del entorno de ejecución EGL busca un archivo de propiedades de enlace pero no puede encontrarlo, se produce un error en la primera sentencia de llamada que requiere la utilización de ese archivo. Para obtener detalles acerca del resultado, consulte el apartado Manejo de excepciones.

  • La envoltura Java almacena el nombre del archivo de propiedades de enlace en la variable de objeto programa callOptions, que es de tipo CSOCallOptions. El nombre generado del archivo es LO.properties, donde LO es el nombre del componente de opciones de enlace utilizado para la generación.

    En este caso, si la máquina virtual Java busca un archivo de propiedades de enlace pero no puede encontrarlo, el objeto programa lanza una excepción de tipo CSOException.

Formato del archivo de propiedades de enlace

Cuando se utiliza durante la ejecución, el archivo de propiedades de enlace incluye una serie de entradas destinadas a manejar cada una de las llamadas desde el programa o envoltura Java generados que se están desplegando.

La entrada principal es de tipo cso.serverLinkage y puede incluir cualquier par de propiedad y valor que pueda establecerse en un elemento callLink del componente de opciones de enlace, con las siguientes excepciones:
  • La propiedad remoteBind debe ser necesariamente RUNTIME y no debe aparecer
  • La propiedad type no puede ser localCall, ya que el enlace de las llamadas locales debe establecerse durante la generación

Entradas de tipo cso.serverLinkage

En el caso más elemental, todas las entradas del archivo de propiedades de enlace son de tipo cso.serverLinkage. El formato de la entrada es el siguiente:
  cso.serverLinkage.nombrePrograma.propiedad=valor
nombrePrograma
Nombre del programa llamado. Si el programa llamado se genera mediante EGL, el nombre especificado es de un componente de programa.
propiedad
Cualquiera de las propiedades adecuadas para un programa Java, excepto las propiedades remoteBind y pgmName. Para obtener detalles, consulte el apartado correspondiente al elemento callLink.
valor
Un valor válido para la propiedad especificada.
A continuación figura un ejemplo del programa llamado Xyz, donde xxx hace referencia a una serie sensible a mayúsculas y minúsculas:
  cso.serverLinkage.Xyz.type=ejbCall
  cso.serverLinkage.Xyz.remoteComType=TCPIP
  cso.serverLinkage.Xyz.remotePgmType=EGL
  cso.serverLinkage.Xyz.externalName=xxx
  cso.serverLinkage.Xyz.package=xxx
  cso.serverLinkage.Xyz.conversionTable=xxx
  cso.serverLinkage.Xyz.location=xxx
  cso.serverLinkage.Xyz.serverID=xxx
  cso.serverLinkage.Xyz.parmForm=COMMDATA
  cso.serverLinkage.Xyz.providerURL=xxx
  cso.serverLinkage.Xyz.luwControl=CLIENT

Los valores de literal TCPIP, EGL, etc. no son sensibles a mayúsculas y minúsculas y son ejemplos de datos válidos.

Entradas de tipo cso.application

Si desea crear una serie de entradas cso.serverLinkage que hagan referencia a alguno de varios programas llamados, preceda dichas entradas con una o varias entradas de tipo cso.application. En este caso, el objetivo consiste en comparar un solo nombre de aplicación con varios nombres de programa. En las entradas cso.serverLinkage subsiguientes, utilizará el nombre de aplicación en lugar de nombrePrograma; a continuación, durante la ejecución Java, esas entradas cso.serverLinkage manejarán las llamadas a cualquiera de los diversos programas.

El formato de una entrada cso.application es el siguiente:
  cso.application.nombreProgramaLibre.nombreAplicación
nombreProgramaLibre
Un nombre de programa válido, un asterisco o el principio de un nombre de programa válido seguido de un asterisco. El asterisco es el carácter comodín equivalente a uno o varios caracteres y proporciona una forma de identificar un conjunto de nombres.

Si nombreProgramaLibre hace referencia a un programa generado por EGL, cualquier nombre de programa incluido en nombreProgramaLibre será el nombre de un componente de programa.

nombreAplicación
Una serie de caracteres conformes a los convenios de denominación de EGL. El valor de nombreAplicación se utiliza en las entradas cso.serverLinkage subsiguientes.
El ejemplo siguiente muestra la utilización de un asterisco como carácter comodín. Las entradas cso.serverLinkage de este ejemplo manejan las llamadas efectuadas al programa cuyo nombre empiece por Xyz:
  cso.application.Xyz*=myApp
  cso.serverLinkage.myApp.type=remoteCall
  cso.serverLinkage.myApp.remoteComType=TCPIP
  cso.serverLinkage.myApp.remotePgmType=EGL
  cso.serverLinkage.myApp.externalName=xxx
  cso.serverLinkage.myApp.package=xxx
  cso.serverLinkage.myApp.conversionTable=xxx
  cso.serverLinkage.myApp.location=xxx
  cso.serverLinkage.myApp.serverID=xxx
  cso.serverLinkage.myApp.parmForm=COMMDATA
  cso.serverLinkage.myApp.luwControl=CLIENT
El ejemplo siguiente muestra la utilización de las mismas entradas cso.serverLinkage para manejar las llamadas efectuadas a cualquiera de diversos programas, aunque los nombres de dichos programas no empiecen por los mismos caracteres:
  cso.application.Abc=myApp
  cso.application.Def=myApp
  cso.application.Xyz=myApp
  cso.serverLinkage.myApp.type=remoteCall
  cso.serverLinkage.myApp.remoteComType=TCPIP
  cso.serverLinkage.myApp.remotePgmType=EGL
  cso.serverLinkage.myApp.externalName=xxx
  cso.serverLinkage.myApp.package=xxx
  cso.serverLinkage.myApp.conversionTable=xxx
  cso.serverLinkage.myApp.location=xxx
  cso.serverLinkage.myApp.serverID=xxx
  cso.serverLinkage.myApp.parmForm=COMMDATA
  cso.serverLinkage.myApp.luwControl=CLIENT

Si hay varias entradas cso.application válidas para un programa, EGL utiliza la primera entrada correcta.

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.