使用 WebSphere 优化本地适配器 (WOLA) API 将外部地址空间连接至 Liberty 服务器,并调用本地无状态会话 bean。
开始之前
要将企业 bean 标识为优化本地适配器调用的潜在目标,Enterprise JavaBean (EJB) 应用程序必须将 com.ibm.websphere.ola.ExecuteLocalBusiness 接口作为本地业务接口来实现。该接口位于 wlp/dev/api/ibm/com.ibm.websphere.appserver.api.zosLocalAdapters_1.0.0.jar 文件中。
对于在客户信息控制系统 (CICS)
下运行的程序,必须激活优化本地适配器“任务相关用户出口”(TRUE) 程序,然后才能在 CICS 与 Liberty 服务器之间建立连接。有关更多信息,请参阅CICS 的 Liberty 服务器事务:BBOC、BBO$ 和 BBO#。
在发出注册请求的同一 z/OS® 映像上,Liberty 服务器必须处于活动状态。请确保当前地址空间已注册,并且已使用注册 API 绑定至目标优化本地适配器组。有关注册外部地址空间的更多信息,请参阅使用优化本地适配器向本地 Liberty 服务器注册外部地址空间。
关于此任务
这种调用无状态会话 bean 的方法提供了更高灵活性,适用于您在调用之前可能不知道响应区域最大长度的情况。有关在知道响应区域长度的情况下调用 Bean 的简单方法,请参阅
使用 Liberty 调用 API 从外部地址空间中调用企业 bean。
过程
- 在客户机地址空间中,从本地语言应用程序调用“连接获取”API BBOA1CNG,传递您在调用“注册”API BBOA1REG 时所使用的注册名称。 该调用将返回一个连接句柄,此句柄必须用于将来的所有 API 调用。
- 在客户机地址空间中,从本地语言应用程序调用“发送请求”API BBOA1SRQ。对于 requestservicename 参数,请指定您想要调用的企业 bean 的 Java 命名和目录接口 (JNDI) 本地业务接口路径名。请在全局 JNDI 名称空间中使用该 JNDI 名称。 然后,Liberty 服务器将对 EJB 应用程序实现的本地业务接口调用 execute 方法。
如果您将“发送请求”API async 参数设置为 0,那么该 API 将返回响应长度和返回值。然后,您可以直接调用“获取消息数据”API。
如果您将“发送请求”API async 参数设置为 1,那么控制权将返回给客户机应用程序,以便您可以调用“接收响应长度”API。
- 如果您调用了“发送请求”API,并将 async 参数设置为 1,那么调用“接收响应长度”API BBOA1RCL,并将 async 参数设置为 0 或 1。 客户机应用程序使用“接收响应长度”API 所返回的响应长度来确保它具有足以容纳响应数据的区域。
如果您将“接收响应长度”API async 参数设置为 0,那么该 API 将阻塞线程,直到接收到响应为止。
如果您将“接收响应长度”API async 参数设置为 1,那么该 API 将立即返回,而不考虑它是否接收到响应。
- 调用“获取消息数据”API BBOA1GET,以将响应数据复制到客户机应用程序的缓冲区中。
- 客户机应用程序可以继续使用同一个连接句柄来发送请求和接收消息数据,直到它发送所有请求,并且准备释放该连接为止。要释放连接,应用程序将调用“连接释放”API BBOA1CNR。 必须先释放连接句柄,然后才能通过“连接获取”API 调用来保留这些句柄并再次使用。