分布式计算环境通常采用命名和目录服务来获得共享组件和资源。命名和目录服务将名称与位置、服务、信息和资源关联起来。
命名服务可提供名称至对象的映射。目录服务提供关于对象的信息,并且提供了查找这些对象所需要的搜索工具。命名和目录服务有许多种实现方法,它们的接口有所不同。
“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 这些设置来更好地管理资源。
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。
ICO0073E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@7b588e4.processOutputOTMAMsg(byte [], InteractionSpec, Record) 错误。 RRS 不可用。
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 的“连接管理器”从连接池中除去该套接字的连接对象。
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: 由于调用 setRollbackOnly() 而回滚了资源。
注意:WebSphere Application Server 消息的前缀表示发出该消息的组件。可以通过使用 WebSphere Application Server Enterprise > 快速参考 > 消息在 Integration Edition 的“帮助”中按组件查找这些消息的文档。所有消息都是通过用户/系统操作和说明来进行描述的。在“WebSphere Application Server V5 信息中心”中也说明了这些消息。
javax.resource.spi.CommException: ICO0003E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@56503fc6.connect() 错误。 无法连接至主机 [CSDMEC13],端口 [9999]。 [java.net.SocketException: 连接被同级复位:套接字已关闭]
HWSP1445E 消息前缀中指定了未知的出口名称;MSGID= /9 * !hR, M=SDRC
建立 SSL 连接的第一步涉及到 SSL 握手协议,在此步骤中,客户机(IMS Connector for Java)将向服务器(IMS Connect)发送一条 SSL“Hello”消息。在上述方案中,IMS Connect 将等待非 SSL 端口上的一条入局消息。当 IMS Connect 接收到握手消息时,它就会将该消息解释为一条 OTMA 消息,使前缀中包含有效的出口名称,然后发出消息 HWSP1445E。
javax.resource.spi.CommException:ICO0005E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5bcdcdd4.receive() 错误。 发送或接收 IMS 消息时发生了通信错误。 [java.net.SocketException:连接被同级复位:套接字已关闭]
HWSSSL00E 未能初始化 SSL 套接字:读写数据时出错
IMS Connect 尝试初始化 SSL 套接字失败,因为它不接收客户机最初的“Hello”消息,而这是 SSL 握手协议的一部分。