J2CA0294W, J2CA0056I, WLTC0017E, HWSP1445E, and HWSSL00E Error Messages

J2CA0294W

Distributed computing environments often employ naming and directory services to obtain shared components and resources. Naming and directory services associate names with locations, services, information, and resources.

Naming services provide name-to-object mappings. Directory services provide information on objects and the search tools required to locate those objects. There are many naming and directory service implementations, and the interfaces to them vary.

Java Naming and Directory Interface (JNDI) provides a common interface that is used to access the various naming and directory services. After you have set this value, saved it, and restarted the server, you should be able to see this string when you invoke name space dump tool.

For WebSphere Application Server specifically, when you create a data source the default JNDI name is set to jdbc/data_source_name. When you create a connection factory, its default name is eis/j2c_connection_factory_name. You can, of course, override these values by specifying your own.

In addition, if you click the checkbox for the Use this data source for container managed persistence (CMP) option when you create the data source, another reference is created with the name of eis/jndi_name_of_datasource_CMP. For example, if a data source has a JNDI name of jdbc/myDatasource, the CMP JNDI name is eis/jdbc/myDatasource_CMP. This name is used internally by CMP and is provided simply for informational purposes.

When creating a connection factory or data source, a JNDI name is given by which the connection factory or data source can be looked up by a component. Preferably an "indirect" name with the java:comp/env prefix should be used and must be used in future releases. An "indirect" name makes any resource-reference data associated with the application available to the connection management runtime, to better manage resources based on the res-auth, res-isolation-level, res-sharing-scope, and res-resolution-control settings.

Though you can use a direct JNDI name, this naming method is deprecated in Version 6 of WebSphere Application Server. WebSphere Application Server assigns default values to the resource-reference data when you use this method. An informational message, resembling the following, is logged to document the defaults:
J2CA0294W: Deprecated usage of direct JNDI lookup of resource jdbc/IOPEntity.  
The following default values are used: [Resource-ref settings]	
	res-auth:                 1 (APPLICATION)
	res-isolation-level:      0 (TRANSACTION_NONE)
	res-sharing-scope:        true (SHAREABLE)
	loginConfigurationName:   null
	loginConfigProperties:    null
[Other attributes]
	res-resolution-control:   999 (undefined)
isCMP1_x:                 false (not CMP1.x)
isJMS:                 false (not JMS)

These default values can lead to unexpected behavior in your resources. For example, an application component (such as a JAAS login module) that accesses a resource with container-managed authentication data might fail to authenticate with the back end resource. Because the res-auth setting is assigned the default level of Application, rather than Container, the application server cannot find it.

This message can occur when you try using the fully qualified names of resources when looking up resources through Java Naming Directory Interface (JNDI). The J2EE programming model recommends the use of resource references and the local JNDI java:comp/env context. To correct this problem, modify the application to use the preferred J2EE programming model with resource references and the local JNDI java:comp/env context.

The default value of SHAREABLE for res-sharing-scope can result in your resource running in a transactional mode which, in turn, requires that the MVS component Resource Recovery Service (RRS) be running. If this is not the case, your application may receive the following exception:
ICO0073E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@7b588e4.processOutputOTMAMsg(byte [], InteractionSpec, Record) error. 
RRS is not available.

J2CA0056I

When IMS resource adapter throws an exception, it can be caught by a component other than your Java™ application. For example, when you run a deployed application, IMS Connector for Java exceptions are often caught by the WebSphere® Application Server. WebSphere Application Server may then issue its own message, including in it the message from the IMS resource adapter exception. For example, when execution timeout occurs, you see the following on the Console:
  • J2CA0056I: The Connection Manager received a fatal connection error
    from the
    Resource Adapter for resource myConnFactry.  The exception which
    was received is
    ICO0080E:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@e59583c.processOutputOTMAMsg(byte[],
    IMSInteractionSpec, int) error. Execution timeout has occurred for
    this interaction.
    The executionTimeout was [0] milliseconds.  The IMS Connect TIMEOUT
    was used.

J2CA0056I is an informational message from WebSphere Application Server. The fatal connection error refers to the fact that IMS Connect closes the socket in the case of an execution timeout, which results in WebSphere Application Server's Connection Manager removing the connection object for the socket from the connection pool.

Another example occurs when a transaction (non-persistent) socket is used for a commit mode 0 interaction. In this case, you see the following on the Console:
  • J2CA0056I: The Connection Manager received a fatal connection error
    from the
    Resource Adapter for resource  myConnFactry.  The exception which
    was received is
    ICO0089I:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@6db5d83a.call(Connection,
    InteractionSpec, Record, Record). Non-persistent socket closed for
    Commit Mode 0 IMS transaction.

J2CA0056I is an informational message from WebSphere Application Server. The fatal connection error refers to the fact that IMS Connect closes the transaction socket and the IMS resource adapter causes WebSphere Application Server's Connection Manager to remove the connection object for the socket from the connection pool.

WLTC0017E

A local transaction containment (LTC) is used to define the application server behavior in an unspecified transaction context. For example, if a single method within a container managed EJB that has a transaction attribute of NotSupported is called outside of any transaction scope, WebSphere will create a local transaction to handle resources used during the execution of that method. The message above is produced by the WebSphere Transaction Monitor to indicate that the resources enlisted with the LTC were rolled back instead of committed due to setRollbackOnly() being called on the LTC. This message does not require any action by the user and is for your information only.
  • WLTC0017E: Resources rolled back due to setRollbackOnly() being
    called.

Note: The prefix of a WebSphere Application Server message indicates the component that issued the message. You can find documentation of these messages, by component, in Integration Edition's Help using WebSphere Application Server Enterprise > Quick reference > Messages. All messages are documented with user/system action and explanation. These messages are also documented in the WebSphere Application Server Version 5 Information Center.

HWSP1445E

When you provide Connection Properties to the New IMS Service wizard in Integration Edition or when you configure a Connection Factory for use by your Java application, you choose whether or not you are using SSL with the SSLEnabled property. If you are using SSL (SSLEnabled=TRUE), then the port number you provide must be configured as an SSL port in IMS Connect. If you accidentally provide a non-SSL port for your Java application, unexpected results will occur when you run your application.
  • IMS Connector for Java will throw an exception indicating a communication error:
    javax.resource.spi.CommException:
    ICO0003E:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@56503fc6.connect()
    error.
    Failed to connect to host [CSDMEC13], port [9999].
    [java.net.SocketException:
    Connection reset by peer: socket closed]
  • The following IMS Connect message will be displayed on the MVS™ console:
    HWSP1445E UNKNOWN EXIT NAME SPECIFIED IN MESSAGE PREFIX; MSGID=    
       /9  * !hR, M=SDRC

The first step in establishing an SSL connection involves the SSL handshake protocol, in which the client (IMS Connector for Java) sends the server (IMS Connect) an SSL "Hello" message. In the scenario described above, IMS Connect is waiting for an incoming message on a non-SSL port. When IMS Connect receives the handshake message it interprets it as an OTMA message with a valid Exit name in the prefix and issues message HWSP1445E.

HWSSSL00E

The opposite scenario to the one above occurs when you are not using SSL (SSLEnabled=FALSE), but the port number you provide for your Java application is configured as an SSL port in IMS Connect. In this case:
  • IMS Connector for Java will throw an exception indicating a communication error:
    javax.resource.spi.CommException: ICO0005E:
    com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5bcdcdd4.receive()
    error. A communication error occurred while sending or receiving
    the IMS message.
    [java.net.SocketException: Connection reset by peer: socket closed]
  • The following IMS Connect message will be displayed on the MVS console:
    HWSSSL00E Unable to initialize the SSL socket:Error while reading
    or writing data

IMS Connect's attempt to initialize the SSL socket fail, since it does not receive the initial client "Hello" message that is part of the SSL handshake protocol.

Related tasks
Logging and tracing with the IMS resource adapter
Related reference
Diagnosing problems when using the IMS resource adapter
IMS resource adapter messages and exceptions
Terms of use | Feedback
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.