Utilice esta tarea para usar las API nativas de adaptadores locales
optimizados para conectar un espacio de direcciones externo a
WebSphere
Application Server para
z/OS
e invocar una aplicación Enterprise
JavaBeans
(EJB) que se despliega en el servidor de aplicaciones.
Antes de empezar
El grupo de daemons de
WebSphere Application Server debe estar activo en la misma imagen
z/OS que desde la que se origina la solicitud de registro.
Cuando se ejecuta en
CICS (Customer Information
Control System), el programa TRUE (Task Related User Exit) de los adaptadores locales optimizados debe estar
activado para que pueda realizarse una conexión entre CICS y WebSphere Application Server. Para obtener más información sobre cómo las transacciones activan el programa TRUE, consulte el tema, Instalación de transacciones BBOC, BBO$ y
BBO# en el entorno de cliente, y el tema, Transacciones BBOC, BBO$, BBO# de WebSphere Application Server. En programas que se ejecutan en un proceso por
lotes de z/OS y UNIX Systems Services (USS), no es necesario activar el
programa TRUE. Asegúrese de que el espacio de direcciones actual ya se ha registrado y está enlazado al grupo de daemons de destino de WebSphere Application Server con una llamada a la API Register, BBOA1REG.
Acerca de esta tarea
Las API de adaptador invocan un bean de sesión sin estado de un
programa de lenguaje nativo externo y recuperan la respuesta. Se ha diseñado
así para usuarios que prefieren más flexibilidad y no necesitan saber de
antemano la longitud máxima del área de respuesta.
Procedimiento
- La aplicación de lenguaje nativo del espacio de direcciones de
cliente, como Cobol, PL/I, C/C++, programa ensamblador, llama a la API BBOA1CNG
Connection Get y pasa el nombre de registro que utilizó para la llamada de
registro. Se devuelve un manejador de conexiones que debe utilizarse en todas las
llamadas de API futuras.
- La aplicación cliente reúne sus parámetros y designa el nombre de
servicio de destino como nombre de vía de acceso de la interfaz de factoría
(JNDI)
Java
Naming and Directory Interface (JNDI) del enterprise bean que desea invocar y
llama a la API BBOA1SRQ Send Request. Esto genera una conexión con la región de control de WebSphere Application Server y, a continuación,
una región servant derivada del gestor de carga de trabajo (WLM) donde la interfaz de inicio JNDI pasada ejecuta su método create.
El método preestablecido, execute, se localiza y se invoca con los parámetros
de matriz de bytes. El control regresa inmediatamente al llamante si se ha
especificado y establecido el parámetro asíncrono en 1. Si el
parámetro asíncrono se ha establecido en 0 (cero), la API devuelve la
longitud de la respuesta en el parámetro ResponseLength, además del valor de
retorno.
- En el servant de WebSphere Application Server, el método execute del bean de destino ejecuta la lógica empresarial. El método
execute de un bean de destino puede invocar a continuación la lógica
empresarial que necesite antes de devolver los datos de respuesta como matriz
de bytes serializada al llamante del lenguaje nativo.
- Un código de retorno y un código de razón de 0 (cero) indican que la
función Send_Request de la API Client se ha colocado en cola correctamente. Con
el parámetro asíncrono establecido en 0 (cero), la longitud de
respuesta se proporciona en el parámetro ResponseLength, además del valor de
retorno. Con el parámetro asíncrono establecido en 1, puede que la
respuesta no esté lista, y se necesita una llamada a la API BBOA1RCL
Receive_RespLen para determinar si la respuesta ha llegado así como la longitud
de respuesta.
- Para llamadas Send_Request asíncronas, la aplicación cliente llama a
la API BBOA1RCL Receive_RespLen con el valor 0|1 para llamada asíncrona. La llamada asíncrona 0 (cero) indica que la API del adaptador debe bloquear la
hebra hasta recibir una respuesta. La llamada asíncrona 1 indica que la API del
adaptador devuelve inmediatamente si la respuesta ha llegado o no.
- Un código de retorno y un código de razón de 0 (cero) indican que la
llamada a la API Receive_RespLen Client se ha completado correctamente. Con el parámetro asíncrono establecido en 1, un valor de retorno y
ResponseLength de 0xFFs indica que no se ha recibido ninguna respuesta
todavía en la conexión que se ha pasado. De esta manera, la aplicación cliente
tiene más control sobre la forma en que envía solicitudes y recibe respuestas.
El cliente puede agrupar solicitudes de envío y enviarlas en secuencia a un
grupo de conexiones y después sondear periódicamente estas conexiones en busca
de respuestas. A una conexión que está procesando una función Send_Request con
la llamada asíncrona 1, no se le puede pasar otra función Send_Request para la
misma conexión hasta que se hayan procesado las llamadas de API Receive_RespLen
y Get_Data relacionadas.
Importante: El uso de estas API de forma
asíncrona con el parámetro asíncrono establecido en 1, el agrupamiento
de solicitudes de envío, y su proceso simultáneo, sólo puede realizarse en
conexiones que estén configuradas como no transaccionales. Por ejemplo, al utilizar
CICS, desea alinear una unidad de trabajo con una unidad
RRS de recuperación, y un punto de sincronización bajo CICS se debe propagar en WebSphere Application Server, sólo puede haber una sola conexión con un servidor WebSphere específicos en la tarea CICS actual. Dicha solicitud recibe un
código de retorno de aviso, que indica que el adaptador no propaga la operación
de confirmación a más de una conexión con el mismo servidor en la misma tarea de
CICS.
- Las aplicaciones cliente utilizan la longitud de respuesta devuelta
por la API Receive_RespLen para garantizar que dispone de un área lo
suficientemente grande para contener los datos de respuesta y que utiliza la
BBOA1GET Get Data para copiar los datos de respuesta en el almacenamiento
intermedio.
- Las aplicaciones cliente repiten esta operación con el mismo
manejador de conexiones hasta que está listo para liberar la conexión. Cuando la conexión se libera, se llama a BBOA1CNR Connection_Release. Los manejadores de conexiones deben liberarse para que puedan retenerse en una
llamada de API Connection Get y puedan volverse a utilizar.
Resultados
El cliente ha invocado un bean de sesión sin estado desde
WebSphere Application Server utilizando las API del adaptador local optimizado.