We would like to set up an ISC connect between two regions so that we can initialize the call to a transaction on region A that processes a program on Region B. How can this be done?
Firstly, set up your two regions. We are going to call our Regions ISCA and ISCB, one will have a transaction defined and the other will contain the program you wish to run. While not necessary we recommend using two different SITs for the regions as this makes it easier to follow the flow of control.
ISCB – setup
Firstly you will need to create an ISC listener on your ISCB region. Give the listener a name and select the ‘MSS Inter-System Communication’ option. It is important you give this listener a port number so that you can connect to it from another region, e.g. 3000.
Then in ESMAC create a PCT entry in a group used by the ISCB region, give it a name such as BBBB and the program name for a program available to this region. You can now test that this program can be run on ISCB by connecting to this region using a 3270 emulator and running BBBB.
ISCA – setup
The ISCA region also needs an ISC listener; this is so it can receive a return communication. You can leave the port number as ‘*’ as you do not directly reference this port. (Although if you also wish to connect to this region from another region then you will need to give it a static port.)
In a group available to ISCA, create a new SysC definition and call it ATOB, as this will be used to make the connection between the two regions.MF Node should be set to the IP address of the ISCB Region and the MF Port number to 3000 (Note: This is the port number you set the ISC listener to on your ISCB region). The Net Name is the name of the region you are connecting to, so in this example it’s ‘ISCB’, and finally you must set the Session Max to something greater than 0. Session max is the maximum number of communications that can simultaneously go through the connection, if left at 0 then the regions will connect but will not be able to communicate.
You then need to setup a remote PCT entry in a group available to ISCA. Give this a name such as ‘AAAA’ and set the Remote SYSID to ATOB (which is the SysC that sets up the connection to ISCB). The Remote PCT for the example would be ‘BBBB’ (i.e. the PCT entry on the ISCB region that has just been set up.)
For the ISC connection to establish, both regions will need to be restarted. If everything has been configured correctly you will see the following messages in the console log for ISCA -
CASCS1122I Attempting to establish ISC connection ATOB to system ISCB
CASCS1110I Connection ISCB (sysid ATOB) is activated contention winner
In log.html on both ISCA and ISCB you should see the following -
ExtractRegisteredListeners: got listener #<listener number>: ISC->ctg (ccitcp:*:<listener port number>)
Listener "<listener name>" enabled for outbound ISC conversations
ISC connector: Attempting to connect to region "<region name>"
Now to test this you can connect to ISCA though a 3270 terminal emulator and initiate the ‘AAAA’ transaction. This will then use ATOB to look for ‘BBBB’ on ISCB which will process the associated program in region ISCB. Any data to be output will be returned though the ISC connection and displayed on the terminal connected to the ISCA region.
Optionional Connection in the Reverse Direction
Additionally, you can configure ISCB to initialize transactions to be processed on ISCA (i.e. the reverse direction). To do this you need to create a SysC definition for ISCB, that could be named BTOA, in a similar fashion to ATOB (noting that the ISC listener on ISCA will need to be given a static port if this was set to ‘*’ earlier). To enable transactions to be processed in a similar manner to the original connection you would also need to create both a local PCT entry on ISCA and a remote PCT entry on ISCB, in a similar manner to the entries described for ‘AAAA’ and ‘BBBB’ previously. Also note that when this connection has been configured that one of the console logs will display:
CASCS1110I Connection <region name> (sysid <SysC name>) is activated contention loser
This message is the mirror of the contention winner message for the other region, and may not always occur on the same region. This message indicates that there is a SysC definition on both regions, and that the connection has been established.
Enterprise Sever will handle the 'negotiation' of the ISC connections and this will result in one end being the 'winner' and the other the 'looser', however it will not matter which end is deemed the winner or the looser.
See related article on the Comms Error that can occur