1

尝试直接从 Liberty 中的 Web 应用程序使用 WOLA 到 CICS。通过 z/OS Connect V2 (zCEE) 成功使用相同的 CICS 区域。使用 Liberty,我已配置:

 <featureManager>
     <feature>servlet-3.1</feature>
     <feature>jndi-1.0</feature>
     <feature>jaxrs-1.1</feature>
     <feature>zosLocalAdapters-1.0</feature>
 </featureManager>

 <!-- WOLA group to which others register -->
 <zosLocalAdapters wolaGroup="GROUP" wolaName2="LIBRTOLA" wolaName3="WOLA3" />
 <connectionFactory id="wolaCF" jndiName="eis/ola">
     <properties.ola RegisterName=CICSMLAW/>
 </connectionFactory>
 <resourceAdapter location="/usr/lpp/IBM/zosconnect/v2r0/wlp/lib/ola.rar"/>

在 messages.log 中,我看到了好的和坏的项目:

CWWKB0103I: 授权服务组 WOLA 可用 WebSphere Optimized Local Adapter 通道使用以下名称注册到 Liberty Profile 服务器:GROUP LIBRTOLA WOLA3

和坏处:

com.ibm.ws.app.manager.AppMessageHelper E CWWKZ0013E: 无法启动两个名为 ola 的应用程序。

所以注册失败: Requestlgth: 97 Requestparms data 1: BBOC START_SRVR RGN=CICSMLA DGN=GROUP NDN=LIBRTOLA Requestparms data 2: SVN=WOLA3 SVC= MNC=1 MXC=10 TXN=N SEC=N REU=N Requestparms data 3:处理 START SERVER 请求。启动 WAS 适配器 服务器任务... 服务器事务 ID 将为:BBO$ 链接事务默认为:BBO# 服务名称将为:跟踪 TDQ:BBOQ 处理 REGISTER API 请求。注册名称:CICSMLA 字符串长度:7 WAS 守护进程:GROUP WAS 节点:LIBRTOLA WAS 服务器:WOLA3 分钟。连接数:最多 1 个 连接数:10 事务性:N 字符串长度:1 安全传播:N 字符串长度:1 为 CICSMLA 调用 OLA 注册 API。使用 Liberty 配置文件服务器未成功。返回码为 8,原因码为 8。

JNDI 调用中的失败:

Context ctx = new InitialContext(); 
ConnectionFactory cf = (com.ibm.ws390.ola.jca.ConnectionFactoryImpl)ctx.lookup("java:comp/env/eis/ola");

结果错误:

[err] javax.naming.NameNotFoundException: javax.naming.NameNotFoundException: java:comp/env/eis/ola
[err] at com.ibm.ws.jndi.url.contexts.javacolon.internal.JavaURLContext.lookup(JavaURLContext.java:356) [err] at [internal classes]
[err] at javax.naming.InitialContext.lookup(InitialContext.java:428)
[err] at com.ibm.ctl.bank.impls.CTLBankWolaImpl.(CTLBankWolaImpl.java:51)
[err] at com.ibm.ctl.bank.web.OLTPBankRest.setImpl(OLTPBankRest.java:235) 

谢谢

4

1 回答 1

2

你在这里有很多事情要做。

我不确定您为什么要从 Liberty 服务器内部的 z/OS Connect v2 产品启动 ola.rar。zosLocalAdapters-1.0 特性已经加载了 Liberty 附带的 ola.rar。您应该从 server.xml 中删除配置。这应该可以解决 CWWKZ0013E 错误。

您应该在messages.log 中看到两条CWWKB0103I 消息,一条用于WOLA(包括在内),一条用于CLIENT.WOLA。请确保您看到两者。您可能使用的是非常旧的 Liberty 版本,它不打印第二条 CWWKB0103I 消息,因此如果这是真的,请忽略该部分。

如果没有在知识中心找到 Liberty 服务器的 WOLA 配置说明,我认为您不会走到这一步,但在这里它们是为了其他人的好处:

https://www.ibm.com/support/knowledgecenter/en/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/twlp_dat_enableconnector.html

好的,接下来,我看不到您的应用程序以了解您是否配置了对连接工厂的资源引用。我假设您这样做是因为您正在执行 java:comp/env 查找。您不需要强制转换为 com.ibm.ws390.ola.jca.ConnectionFactoryImpl,实际上我强烈建议删除它,因为这是一个内部类并且随时可能更改。可能是应用程序类加载器无权访问该类,这可能是问题的一部分。

最后,您在 CICS 启动链接服务器时遇到了问题。你得到 RC=8 RSN=8。可以在此处找到服务列表和返回/原因代码:

https://www.ibm.com/support/knowledgecenter/en/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/rwlp_dat_olaapis.html

BBOA1REG(寄存器)上的 8/8 表示寄存器令牌已在使用中。基本上,您选择的 RGN= 名称已经在使用中。您确定在 CICS 区域中没有已使用该名称注册的 PLTPI 事务或其他内容吗?也许尝试一个不同的名称只是为了看看它是否有效,如果有效,也许尝试 BBOC LIST_SRVR 看看它是什么?如果不了解您的系统,很难说它是如何开始的。

我希望这有帮助。小心!

于 2017-11-15T14:31:11.697 回答