J2CA0294W、J2CA0056I、WLTC0017E、HWSP1445E 和 HWSSL00E 错误消息

J2CA0294W

分布式计算环境通常采用命名和目录服务来获得共享组件和资源。命名和目录服务将名称与位置、服务、信息和资源关联起来。

命名服务可提供名称至对象的映射。目录服务提供关于对象的信息,并且提供了查找这些对象所需要的搜索工具。命名和目录服务有许多种实现方法,它们的接口有所不同。

“Java 命名和目录接口”(JNDI)提供了一个公共接口,可以用来访问各种命名和目录服务。在设置了该值,保存了它,然后重新启动服务器之后,当您调用名称空间转储工具时,就应该能够看到此字符串。

对于 WebSphere Application Server,当您创建数据源时,缺省 JNDI 名称设置为 jdbc/data_source_name。当您创建连接工厂时,其缺省值名称为 eis/j2c_connection_factory_name。当然,可以指定您自己的值来覆盖这些值。

另外,如果您在创建数据源时单击将此数据源用于容器管理的持久性(CMP)选项的复选框,则会创建另一个引用,其名称为 eis/jndi_name_of_datasource_CMP。例如,如果一个数据源的 JNDI 名称为 jdbc/myDatasource,则 CMP JNDI 名称为 eis/jdbc/myDatasource_CMP。CMP 将在内部使用此名称,并且是仅供参考。

创建连接工厂或数据源时将给定一个 JNDI 名称,组件就可以通过该 JNDI 名称来查找该连接工厂或数据源。最好是使用带有前缀 java:comp/env 的“间接”名称,在将来的发行版中必须使用这种名称。“间接”名称使得与应用程序相关联的任何资源引用数据都可用于连接管理运行时,从而可以根据 res-auth、res-isolation-level、res-sharing-scope 和 res-resolution-control 这些设置来更好地管理资源。

虽然您可以使用“直接”JNDI 名称,但是 WebSphere Application Server V6 已经建议不要使用这种命名方法。当使用这种命名方法时,WebSphere Application Server 将为资源引用数据指定缺省值。记录了一条类似以下内容的参考消息来说明缺省值:
J2CA0294W: 建议不要对资源 jdbc/IOPEntity 使用直接 JNDI 查询。使用下列缺省值:[资源引用设置]	
	res-auth:                 1(APPLICATION)
	res-isolation-level:      0(TRANSACTION_NONE)
	res-sharing-scope:        true(SHAREABLE)
	loginConfigurationName:   null
	loginConfigProperties:    null
[其它属性]
	res-resolution-control:   999(未定义)
isCMP1_x:                 false(不是 CMP1.x)
isJMS:                 false(不是 JMS)

这些缺省值可能会导致资源产生不可预期的行为。例如,使用容器管理的认证数据访问资源的应用程序组件(例如,JAAS 登录模块)在对后端资源进行认证时可能会失败。这是因为对 res-auth 设置指定了缺省级别 Application 而不是 Container,所以应用程序服务器无法找到它。

当通过“Java 命名目录接口”(JNDI)查找资源时,如果使用资源的标准名称,就会产生此消息。J2EE 编程模型建议使用资源引用和本地 JNDI java:comp/env context。要更正此问题,将应用程序修改为使用首选 J2EE 编程模型,即,使用资源引用和本地 JNDI java:comp/env context

res-sharing-scope 的缺省值 SHAREABLE 可能会导致资源采用事务方式运行,而事务方式又要求 MVS 组件“资源恢复服务”(RRS)在运行。如果实际情况并非如此,则应用程序可能会接收到以下异常:
ICO0073E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@7b588e4.processOutputOTMAMsg(byte [], InteractionSpec, Record) 错误。
RRS 不可用。

J2CA0056I

当 IMS 资源适配器抛出异常时,Java™ 应用程序之外的组件可能会捕获到该异常。例如,当您运行已部署的应用程序时,WebSphere® Application Server 通常会捕获到 IMS Connector for Java 异常。然后,WebSphere Application Server 可能会发出它自己的消息,并将该消息包含在 IMS 资源适配器异常产生的消息中。例如,当发生执行超时的情况下,在控制台上您将看到以下内容:
  • J2CA0056I: “连接管理器”接收到 myConnFactry 资源的资源适配器中产生的致命连接错误。接收到的异常为
    ICO0080E:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@e59583c.processOutputOTMAMsg(byte[],
    IMSInteractionSpec, int) 错误。此交互发生执行超时。
    executionTimeout 为 [0] 毫秒。使用了 IMS Connect TIMEOUT。

J2CA0056I 是 WebSphere Application Server 产生的一条参考消息。致命连接错误是指这样一种情况:在发生执行超时的时候,IMS Connect 就关闭套接字,这导致 WebSphere Application Server 的“连接管理器”从连接池中除去该套接字的连接对象。

将事务(非持久的)套接字用于落实方式 0 交互时将发生另一个示例。在此情况下,在控制台上您将看到以下内容:
  • J2CA0056I: “连接管理器”接收到 myConnFactry 资源的资源适配器中产生的致命连接错误。接收到的异常为
    ICO0089I:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@6db5d83a.call(Connection,
    InteractionSpec, Record, Record)。非持久套接字已对落实方式 0 IMS 事务关闭。

J2CA0056I 是 WebSphere Application Server 产生的一条参考消息。致命连接错误是指这样一种情况: IMS Connect 关闭事务套接字,并且 IMS 资源适配器导致 WebSphere Application Server 的“连接管理器”从连接池中除去该套接字的连接对象。

WLTC0017E

本地事务容器(LTC)用来定义应用程序服务器在未指定的事务上下文中的行为。例如,如果在任何事务作用域之外调用了具有事务属性 NotSupported 的容器管理的 EJB 中的单个方法,WebSphere 就会创建一个本地事务来处理在执行该方法期间所使用的资源。上述消息是由“WebSphere 事务监视器”生成的,它指示 LTC 加入的资源因在 LTC 上调用了 setRollbackOnly() 而被回滚而不是落实了。此消息不要求用户执行任何操作,仅供参考。
  • WLTC0017E: 由于调用 setRollbackOnly() 而回滚了资源。

注意:WebSphere Application Server 消息的前缀表示发出该消息的组件。可以通过使用 WebSphere Application Server Enterprise > 快速参考 > 消息在 Integration Edition 的“帮助”中按组件查找这些消息的文档。所有消息都是通过用户/系统操作和说明来进行描述的。在“WebSphere Application Server V5 信息中心”中也说明了这些消息。

HWSP1445E

当您为 Integration Edition 中的“新建 IMS 服务”向导提供“连接属性”或者当您配置“连接工厂”以供 Java 应用程序使用时,通过 SSLEnabled 属性来选择您是否正在使用 SSL。如果您正在使用 SSL(SSLEnabled=TRUE),则必须将您提供的端口号配置为 IMS Connect 中的 SSL 端口。如果为 Java 应用程序意外地提供了非 SSL 端口,则在运行应用程序时将产生意外结果。
  • IMS Connector for Java 将抛出异常,指出发生了通信错误:
    javax.resource.spi.CommException:
    ICO0003E:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@56503fc6.connect() 错误。
    无法连接至主机 [CSDMEC13],端口 [9999]。
    [java.net.SocketException:
    连接被同级复位:套接字已关闭]
  • MVS™ 控制台上将显示以下 IMS Connect 消息:
    HWSP1445E 消息前缀中指定了未知的出口名称;MSGID=
       /9  * !hR, M=SDRC

建立 SSL 连接的第一步涉及到 SSL 握手协议,在此步骤中,客户机(IMS Connector for Java)将向服务器(IMS Connect)发送一条 SSL“Hello”消息。在上述方案中,IMS Connect 将等待非 SSL 端口上的一条入局消息。当 IMS Connect 接收到握手消息时,它就会将该消息解释为一条 OTMA 消息,使前缀中包含有效的出口名称,然后发出消息 HWSP1445E。

HWSSSL00E

如果您使用 SSL(SSLEnabled=FALSE),但是,在 IMS Connect 中将您为 Java 应用程序提供的端口号配置为 SSL 端口,则会发生与上述情况相反的情况。在此情况下:
  • IMS Connector for Java 将抛出异常,指出发生了通信错误:
    javax.resource.spi.CommException:ICO0005E:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5bcdcdd4.receive() 错误。
    发送或接收 IMS 消息时发生了通信错误。
    [java.net.SocketException:连接被同级复位:套接字已关闭]
  • MVS 控制台上将显示以下 IMS Connect 消息:
    HWSSSL00E 未能初始化 SSL 套接字:读写数据时出错

IMS Connect 尝试初始化 SSL 套接字失败,因为它不接收客户机最初的“Hello”消息,而这是 SSL 握手协议的一部分。

相关任务
IMS 资源适配器的记录和跟踪
相关参考
诊断使用 IMS 资源适配器时产生的问题
IMS 资源适配器消息和异常
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.