|
•
|
For Windows, a library kixcpicws.dll, which provides CPI-C interfaces as a replacement for Windows CPI-C/SNA library, using Tuxedo WSC for communications instead of Windows SNA support.
|

The diagram above shows CPI-C client application on Windows server which communicates with a CPI-C server CICS program in KIXS region in Tuxedo Domain through Tuxedo Workstation Protocol conversation. CPI-C client library establishes a connection with a
tpconnect() call to a CICS transaction running in one or more
ARTCTRN servers (ART CICS application server for conversational transactions/programs) and uses Tuxedo conversational
tpsend()/tprecv() API calls to mimic
CMSEND/CMRCV. Application code on both sides represented by blue shaded areas remains unchanged, with Tuxedo ART infrastructure components providing all the necessary API and communications support.

As shown in the diagram above, EJB application runs as CPI-C client on WebLogic server and communicates to CPI-C server CICS program in KIXS region through WTC connection to Tuxedo Domain Gateway using conversational protocol. CPI-C client library establishes a connection through
tpconnect() call for a CICS transaction published by
ARTCTRN (ART CICS application server for Conversational transactions/programs) and uses Tuxedo conversational
tpsend()/tprecv() API calls to mimic
CMSEND/CMRCV. Application code on both sides represented by blue shaded areas remains unchanged, with Tuxedo ART infrastructure components providing all the necessary API and communications support.
Configure SYSID for client and server. In the following example, in
KIXA, for Windows client, sysid is
KIXA and
APPLID is
ARTKIXA. In
KIXB, for CPI-C server,
sysid is
KIXB and
APPLID is
ARTKIXB.
Configure protocol in
connections.desc. In the following example,
KIXA connects to
KIXB, and
protocol is
APPC. Resource group
DTPAPBK is later used in transaction definition.
|
•
|
Configure ARTCTRN server in SERVERS section. The following example specifies KIXB region in CLOPTs with -s and CICS resource group with -l. The MIN/MAX values can be adjusted to match the number of concurrent conversations that the application must support. Since APPC/CPI-C is a conversational mode protocol, the ARTCTRN server will block on CMSEND until the client does CMRCV, and will block on CMRCV until the client performs CMSEND.
|
|
•
|
Configure workstation listener (WSL) server in SERVERS section. In the following example, two WSHs are started initially, up to maximum of five WSHs can be started, up to 5 /WS clients per WSH.
|
|
•
|
MAXWSCLIENTS: maximum numbers of WSCs for each machine is specified.
|
|
•
|
MAXACCESSERS: MAXWSCLIENTS + number of Tuxedo servers connected to the bulletin board (including all servers listed in UBBCONFIG, plus maximum allowed WSL/WSH servers).
|
Configure DMCONFIG for WTC Tuxedo domain configuration. See an example as follows.
Windows client uses sym_dest_name set by
cminit() to connect the target ART CICS server.
sym_dest_name should be set as the
sysid of target ART CICS server.
|
•
|
KIX_CPI-C_WSSYSID is introduced to specify CPI-C /WS client sysid. It is needed to establish the connection between CPI-C /WS client and CPI-C CICS server. It should be set to client sysid listed in connections.desc ( KIXA in this example).
|
This is an example of global timeout management in UBBCONFIG. In this example, the
BLOCKTIME x SCANUNIT is 40 seconds. The client will be blocking on
CMRCV until it really gets the response. If it does not complete in 40 seconds, it then returns
TPETIME to report timeout and
CMRCV return error
CM_RESOURCE_FAILURE_RETRY.
This is an example of granular timeout management for transactions in UBBCONFIG. In this example, it specifies that global timeout setting is 60 seconds (
12 x 5), but Tuxedo service
KIXB_B32 (which maps to CICS transaction
B32 in
region/SYSID KIXB) has a timeout of 40 seconds (
8x5). Note that other transactions that have no explicit
BLOCKTIME specified in
*SERVICES section will be controlled by the global timeout setting.
Sets a multiplier of the basic SCANUNIT after which a blocking call (for example, receiving a reply) times out. The value of
BLOCKTIME must be greater than 0. If this parameter is not specified, the default is set so that (
SCANUNIT * BLOCKTIME) is approximately 60 seconds.
|
•
|
Configure multiple WSLs and increase WSH min/max limits in Tuxedo domain for handling more concurrent Windows connections.
|
|
•
|
Configure multiple ARTCTRN servers to run more instances of the CICS transactions in parallel. Since CPI-C is a conversational protocol, each server will block waiting for user response. The number of servers you configure should roughly correspond to the number of concurrent users of the CICS transactions.
|
ART CICS provides source code of an overloaded callService() method, and provides a series of Java class files to provide the implementations of CPI-C interfaces. You need to regenerate the EJB package with new version of
callService() and java class files provided by ART CICS.