startTransaction()

La función de sistema SysLib.startTransaction() invoca de forma asíncrona un programa principal, asocia ese programa con un dispositivo de impresora o un terminal y pasa un registro. Si EGL genera el programa receptor, el registro se utiliza para inicializar el registro de entrada; si VisualAge Generator produce el receptor, el registro se utiliza para inicializar el almacenamiento de trabajo.

El comportamiento por omisión de esta función consiste en iniciar un programa que reside en el mismo paquete Java. Para cambiar ese comportamiento en CICS, especifique un elemento asynchLink en el componente de opciones de enlace utilizado para generar el programa de invocación.

Un programa Java sólo puede efectuar la transferencia a otro programa Java de la misma máquina.
  SysLib.startTransaction(
    petición anyBasicRecord in
    [, idImpr startTransactionPrId in
    [, idTerm CHAR(4) in ]])
petición
El nombre de un registro básico, que debe tener el siguiente formato:
  • Los 2 primeros bytes (de tipo SMALLINT o de tipo BIN sin decimales) contienen la longitud de los datos que deben pasarse a la transacción iniciada, más 10 para los dos campos (incluido este) que no se pasan.
  • Los 8 bytes siguientes (de tipo CHAR) tampoco se pasan, pero contienen el nombre del programa que debe iniciarse.
  • El resto del registro de petición se pasa.
idImpr
Si se especifica este elemento de 4 bytes, se ignorará.
idTerm
Si se especifica este elemento de 4 bytes de tipo CHAR, se ignorará. Debe especificar prID si especifica termID.

Consideraciones acerca de IMS

SysLib.startTransaction() da como resultado una inserción en el PCB alternativo modificable. El área de trabajo indicada se pasa como mensaje. El programa COBOL generado añade automáticamente 2 bytes adicionales entre la longitud y la transacción y añade 2 al valor de longitud. La transacción se inicia sin un terminal asociado. Prid y recip se pasan por alto.

La longitud máxima del registro de petición es de 32765 bytes.

La transacción iniciada debe incluirse en el IMSGEN del sistema y estar definida como transacción no no conversacional. Si la transacción iniciada no es un programa EGL, debe emitir una llamada GU al PCB de E/S para recuperar el mensaje.

SysLib.startTransaction() no puede iniciar un programa en un sistema remoto.

Si la llamada estaba anidada en un bloque try, sysVar.errorCode puede contener el valor 00000203, que indica que la llamada ha fallado, probablemente debido a un identificador de transacción no válido.

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