Use esta tarefa quando desejar usar as APIs nativas dos adaptadores locais otimizados
para conectar-se a um espaço de endereço externo para WebSphere Application Server para z/OS e chame um aplicativo Enterprise JavaBeans (EJB) que esteja implementado no servidor de aplicativos.
Antes de Iniciar
O grupo de daemon do
WebSphere Application Server
deve estar ativo na mesma imagem do z/OS a partir da qual
a solicitação de registro é originada.
Quando estiver executando no Customer Information Control System (CICS),
o programa Task-Related User Exit (TRUE) dos adaptadores locais otimizados deverá ser ativado antes que uma conexão
seja feita entre o CICS e o WebSphere Application Server.
Para ler sobre como o programa TRUE é ativado pelas transações, consulte o tópico
Instalando as Transações BBOC, BBO$ e
BBO# no ambiente do cliente e o tópico Transações do WebSphere Application Server BBOC, BBO$, BBO#. Para programas
em execução no lote do z/OS e nos Serviços do Sistema UNIX
(USS), não é necessário ativar o programa TRUE. Certifique-se de que o espaço de endereço
atual já esteja registrado e ligado ao grupo de daemon do WebSphere Application Server
usando uma chamada para a API BBOA1REG Registro.
Sobre Esta Tarefa
As APIs do adaptador chamam um bean de sessão stateless é proveniente de um programa de
linguagem nativa externa e recupera a resposta. Isso foi projetado para exploradores que desejam mais
flexibilidade e onde o comprimento máximo da área de resposta não for conhecido anteriormente.
Procedimento
- O aplicativo de idioma nativo de espaço de endereço, como
Cobol, PL/I, C/C++, programa assembler, chama a API Get de Conexão BBOA1CNG
e passa o nome do registro que usou para a chamada de registro. É retornado um identificador de conexões que deve ser usado para todas as chamadas de API futuras.
- O aplicativo cliente reúne seus parâmetros e designa o nome de serviço de destino como o nome de caminho
da interface home JNDI (Java Naming and Directory Interface)
para o enterprise bean que deseja chamar e chama a API de Pedido de Envio BBOA1SRQ. Isso resulta em uma conexão com a região de controle do WebSphere Application Server
e em seguida com uma região servidora derivada do Workload Manager (WLM) na qual a interface home
JNDI executa seu método de criação. O método pré-configurado, execute, está localizado e chamado com os parâmetros da matriz de byte.
O controle volta imediatamente para o responsável pela chamada se o
parâmetro assíncrono for especificado e configurado como 1.
Quando o parâmetro assíncrono é configurado como 0 (zero), a API retorna o comprimento da resposta
no parâmetro ResponseLength, bem como o valor de retorno.
- No servidor WebSphere Application Server, o método de execução
do bean de destino chama a lógica de negócios. O método execute
de um bean de destino agora pode chamar a lógica de negócios que necessita antes de retornar os
dados de resposta como uma matriz de byte serializada de volta ao responsável pela chamada nativo.
- Um código de retorno e código de razão 0 (zero) indicam que a API de Cliente
Send_Request foi enfileirada com êxito. Com o parâmetro assíncrono configurado como
0 (zero), o comprimento de resposta é fornecido no parâmetro
ResponseLength, bem como o valor de retorno. Com o parâmetro assíncrono configurado como
1, a resposta talvez não esteja pronta e uma chamada para a API
BBOA1RCL Receive_RespLen é necessária para determinar se a resposta chegou e a resposta do comprimento.
- Para chamadas Send_Request assíncronas, o aplicativo cliente chama a API
BBOA1RCL Receive_RespLen com a chamada 0|1 assíncrona. A chamada 0 (zero) assíncrona
indica que a API do adaptador deve bloquear o encadeamento até que uma resposta seja recebida. A
chamada 1 assíncrona indica que a API do adaptador retorna imediatamente independentemente de a
resposta ter chegado ou não.
- Um código de retorno e código de razão 0 (zero) indicam que a chamada da API do cliente
Receive_RespLen foi concluída com êxito. Com o parâmetro assíncrono configurado como
1, um ResponseLength e um valor de retorno de todos
0xFFs indicam que nenhuma resposta foi recebida ainda na conexão transmitida. Isso fornece ao
aplicativo cliente mais controle sobre a maneira como envia os pedidos e recebe as respostas.
O
cliente pode agrupar os pedidos de envio e enviá-los em sequência sobre um grupo de conexões e, em
seguida, agrupar periodicamente essas conexões para respostas. Uma conexão que está processando um
Send_Request com a chamada 1 assíncrona, não pode ser transmitida a outro Send_Request para a mesma
conexão até que as chamadas de API Receive_RespLen e Get_Data relacionadas sejam processadas.
Importante: O uso dessas APIs de maneira assíncrona com o parâmetro assíncrono configurado como
1, o agrupamento de pedidos de envio e o processamento deles simultaneamente podem ser
feitos apenas em conexões que sejam configuradas como não transacionais. Por exemplo, quando usar o
CICS, você deseja alinhar uma unidade de trabalho com uma unidade de recuperação
RRS, e um ponto de sincronização no CICS deve ser propagado para
o WebSphere Application Server, em que pode haver apenas uma conexão única com um
servidor WebSphere específico na tarefa CICS atual. Esse pedido recebe um código
de retorno de aviso, que indica que o adaptador não propaga a confirmação em mais de uma conexão ao
mesmo servidor na mesma tarefa CICS.
- Os aplicativos clientes usam o comprimento de resposta retornado pela API
Receive_RespLen para assegurar que tem uma área grande o suficiente para reter os dados de resposta
e usa a chamada da API de Obtenção de Dados BBOA1GET para copiar os dados de reposta para seu buffer.
- Os aplicativos clientes repetem isso usando o mesmo identificador de conexões até que estejam prontos para liberar a conexão. Quando a conexão for liberada, o
BBOA1CNR Connection_Release será chamado. Os identificadores de conexões
devem ser liberados antes que possam ser retidos em uma chamada de API de Obtenção de Conexão
e usados novamente.
Resultados
O cliente chamou um bean de sessão stateless a partir do
WebSphere Application Server usando as APIs do adaptador local otimizado.