The application can perform outbound communications using CCI interface, and it can create MDB to handle inbound communications.
The following process describes what happens when an application uses CCI to send and receive messages:
1 The application requests a connection to the EIS through the JNDI name of the connector factory for the SNA JCA LU0 Connector. The factory creates the connection using the connection properties predefined in the J2C console page of WebSphere Application Server.
2 When the application has an established connection, the application performs an interaction verb to send and receive messages. The interaction verb has the following properties: verb types (send or receive), timeout, input record, and output record.
3 To perform the interaction, the SNA JCA LU0 Connector converts the input record or input message into string and then invokes the corresponding API of underlying EIS according to the interaction verb type.
4 The SNA JCA LU0 Connector returns the output record or message to the application.
5 The application continues with the interaction verb or closes the connection.
The following process describes what happens when an application uses MDB to handle inbound message asynchronously:
6 User creates a MDB that implements the interface of Resource Adapter's message type. The activation specification values and JNDI name of activation specification should also be specified while creating MDB.
7 When the MDB is deployed to the Application Server, the Application Server will look up the Resource Adapter by matching the message type and activationSpec JNDI name of the Resource Adapter and the MDB.
8 The activationSpec instance of MDB and a MessageEndpointFactory instance will be transferred to the Resource Adapter for validation and registration. After the MDB is activated, the MDB is ready to receive messages.
9 The MDB can receive two types of messages: one type is pure inbound message that originates from partner host, which is called unsolicited message; the other type is the outbound reply message from partner host after the application sends outbound message at first by using CCI, which is called solicited message.
10 For the unsolicited inbound message that comes from EIS, the resource adapter will create an endpoint by calling createEndPoint() method of MessageEndPointFactory instance passed by Application Server when MDB is activated. Then the Connector will determine whether to deliver the solicited message to the MDB. The JCA LU0 Connector will call onUnsolicitedMessage method of the endpoint to notify the MDB of the message arrival.
11 For the solicited outbound reply message, the JCA Connector will match the activation specification with the custom property of the connection factory. Then the JCA LU0 Connector will call onSolicitedMessage method of the endpoint to notify the MDB of message arrival.
12 When the Application Server stops or the MDB is undeployed, the Application Server will notify the resource adapter that the MDB is deactivated. Then the adapter will not deliver messages to the MDB.
The SNA JCA LU0 Connector provides the rules that determines when the particular connection can be reused and under which circumstances it should be used. For more information, see the JCA documentation.
The SNA JCA LU0 Connector supports the Security Management Contract. It uses a container-managed signon in which the container determines the user name and password for establishing a connection to an EIS instance. The client provides the user ID and password as part of the request message.
In the inbound communication model, the EIS initiates all communication to an application. The application can be composed of EJBs (session, entity and message-driven beans) and it can reside in an EJB container.
The figure below shows the process of the inbound communication.
The inbound communication is supported by Message Inflow contract of JCA1.5.
The table below lists the implementation classes used by SNA JCA LU0 Connector to fulfil the Message Inflow Contract:
Message Inflow Contract Implementation of JCA LU0 Connector
Instead of creating Java thread directly as in JCA 1.0 LU0 Connector, the JCA 1.5 LU0 Connector makes use of the Work Management that the application supports. The Connector becomes more efficient and reliable by using work management feature.
The Lifecycle Management Contract provides a way for an Application Server to manage the lifecycle of the resource adapter instance. The JCA 1.5 SNA connector does some initialization work such as loading the library when the Application Server starts up or when the resource adapter is deployed. The connector cleans and terminates the physical SNA connection when the Application Server shuts down or the resource adapter is undeployed.