[z/OS]

Utilización de las API nativas de adaptadores locales optimizados para invocar una aplicación EJB desde un espacio de direcciones externo

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_connectejbapi
File name: tdat_connectejbapi.html