
This readme describes each of the applets and applications available in
the CICS Gateway for Java Test Suite.
Please send any comments to Alan Hollingshead (hollings@hursley.ibm.com).
To download, install and configure the IBM CICS Gateway for Java,
go to:
http://www.software.ibm.com/cics/internet/cicsgw4j/jgdown.html
The programs to test the CICS Gateway for Java are split into the following:
Problems?
Help! What's happening?
The following are currently available in the CA83
package:
ECI Test | Test Description |
ecij123 |
Three Simple ECI Calls |
synj001 |
Extended ECI Synchronous Calls with Multiple LUWs (application only) |
synj002 |
Extended ECI Synchronous Calls with Multiple LUWs |
asmj002 |
Asynchronous Calls with Message Qualifiers |
asyj002 |
Asynchronous Call Testing (without Callback or Message Qualifiers) |
ascj001 |
Multiple Asynchronous ECI Calls with Callback Testing |
ecijlst |
List Systems and Check Status |
ecijtpn |
ECI_SYNC_TPN and ECI_ASYNC_TPN calls (requires JGate V2 beta) |
synjtpn |
Extended ECI_SYNC_TPN Calls (requires JGate V2 beta) |
synj0c3 |
Detect Maximum Commarea Length |
synjms3 |
Synchronous Calls to Multiple Servers |
The following server application is supplied with the package in
either COBOL or C
CICS Server Program | Description |
srvtime |
Returns date and timestamp in first 18 characters of commarea |
Can be run as an applet or an application.
ecij123 - Three simple calls to test the CICS Gateway for Java
(1) eci_sync
(2) eci_async
(3) eci_get_reply_wait
Written : Apr 97 - Alan Hollingshead
This applet/application contains three very simple calls.
Issuing "java ecij123 -?" shows the following help and defaults:
ECIJ123 - Three Simple ECI Calls
Usage: java ecij123
-j JGate Default: (local hostname)
-r JGate port Default: 2006
-s CICS server Default:
-a application Default: SRVTIME
-i # iterations Default: 1
-d delay Default: 0 seconds
-u userid Default: SYSAD
-p password Default: SYSAD
-! debug Default: false
-? This help panel
Example: java ecij123 -s cicstcp
The above example overrides the server setting of with cicstcp.
Extract of example output:
# Call Commarea-Data Length CICS Rc Abend
-- ------------------ ----------------- ------ ------- -----
1 eci_sync 24/04/97 10:16:36 18 0
1 eci_async ----------------- 18 0
1 eci_get_reply_wait 24/04/97 10:16:36 18 0
Parameter overrides:
-j ... hostname or IP address where Java Gateway is running.
The default is your local hostname.
-r ... Java Gateway port. This defaults to 2006 unless
otherwise specified when starting the Java Gateway.
-s ... if the CICS Client is being used to connect to a CICS
server, null takes the first CICSCLI.INI setting.
Otherwise specify a valid entry defined in the CICSCLI.INI
file. If a CICS Client is not being used, a null value
will use the local server ECI, if supported.
-a ... name of server application.
-i ... number of iterations (of each set of three calls).
-d ... a delay in seconds between each iteration.
-u ... userid, if required by the server mirror transaction.
-p ... password, if required by the server mirror transaction.
-! ... some debug info is supplied if "-!" is specified.
-? ... displays the help panel and defaults.
Prior to each ECI call the commarea is initialised to
18 dashes. The server returns the current date and timestamp.
The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
If run as an applet - parameters are passed via ecij123.html.
If run as an application - parameters can be overridden via command line.
Run synj001 as an application only - synj002 runs as an applet or
application.
synj001 - ECI_EXTENDED synchronous calls with multiple LUWs
Written : Nov 96 - Alan Hollingshead
Note:
synj001 runs only as a Java application (hence is short and simple).
synj002 functions exactly the same as synj002 but can be run as an
applet or an application (hence is longer to cater for running
as an applet.
synj001 is a Java application that on each requested iteration
issues sets of six ECI synchronous calls for each LUW. The first
two calls are followed by an ECI_BACKOUT. The fourth and fifth
calls are followed by an ECI_COMMIT. The commarea on each call
is initialised to 18 dashes. The server returns the current date
and timestamp. The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
Parameters can be overridden via command line.
Issue "synj001 -?" for help and the default settings.
Can be run as an applet or application.
synj002 - Extended ECI Synchronous Calls with multiple LUWs
Written : Nov 96 - Alan Hollingshead
synj002 is a Java program that on each requested iteration
issues sets of six ECI synchronous calls for each LUW. The first
two calls are followed by an ECI_BACKOUT. The fourth and fifth
calls are followed by an ECI_COMMIT. The commarea on each call
is initialised to 18 dashes. The server returns the current date
and timestamp. The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
If run as an applet - parameters passed via synj002.html
If run as an application - parameters can be overridden via command line
Issue "synj002 -?" for help and the default settings.
Can be run as an applet or application.
asmj002 - Asynchronous Calls with Message Qualifiers.
Followed by:
ECI_GET_SPECIFIC_REPLY_WAIT or ECI_GET_SPECIFIC_REPLY loop.
Written : Apr 97 - Alan Hollingshead
Summary : Issue 5 async calls with Message Qualifiers 5, 4, 3, 2, 1,
with optional 2 second delay between each one.
Issue ECI_GET_SPECIFIC_REPLY(_WAIT) for each Message_Qualifier
in order 1, 2, 3, 4, 5 checking timestamps are in reverse order.
asmj002 is a Java program that on each requested iteration
issues five asynchronous calls with Message Qualifiers assigned
5 through 1 (in reverse order).
This is followed either by an ECI_GET_SPECIFIC_REPLY_WAIT (if the -w
option is specified), or an ECI_GET_SPECIFIC_REPLY (the default) for
each Message Qualifier in the ascending order 1 through 5.
The timestamps returned in the commarea should appear in descending
order to indicate that the eci_get_specific_reply(_wait) picked
up the related Message Qualifier. On fast networks the timestamps
may appear the same, and so the -2 option can be specified to
separate each asynchronous call by 2 seconds (see Options: below).
ECI_GET_SPECIFIC_REPLY calls:
Up to nine ECI_GET_SPECIFIC_REPLY calls are issued to obtain
the required response from the server. Between each attempt to
receive this reply there is a one second delay to allow for network
traffic or a busy server. The output shows which call obtained the
response. For example, "eci_get_specific_reply #3 MQ 5" means that
the response was obtained on the third attempt for Message Qualifier 5.
If the result shows "eci_get_specific_reply #9" with a CICS Rc of -5,
this indicates that the response was not received after nine attempts.
Prior to each asynchronous call the commarea is initialised to
18 dashes. The server returns the current date and timestamp.
The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
After all iterations have run, a banner displays the number of successful
calls within iterations where asynchronous calls returned positive replies.
Options: -w ... eci_get_specific_reply is the default. The -w option
requests eci_get_specific_reply_wait.
-2 ... between each asynchronous call a 2 second delay is
issued. This allows the user to see the timestamps
on the replies in reverse order to confirm that the
eci Message_Qualifier is being used correctly.
-c ... in certain circumstances (eg timeouts, or security
error received on eci_get_specific_reply(_wait))
there may be outstanding replies from previous runs.
The -c option issues repeated eci_get_specific_reply
calls until eci_err_no_reply reports no more outstanding
replies. (Alternatively stop and restart JGate).
Security errors are specifically ignored.
Warning: using the -c and -w options
Care should be taken when running the program from multiple
processes as the -c option may clear outstanding replies
which another process is waiting on (if -w specified).
Data conversion:
This program contains no data conversion for the commarea.
Any data conversion should be carried out on the server.
If run as an applet - parameters are passed via asmj002.html.
If run as an application - parameters can be overridden via command line.
Issue "asmj002 -?" for help and the default settings.
Can be run as an applet or application.
asyj002 - ECI_NO_EXTEND asynchronous calls with either
ECI_GET_REPLY_WAIT or ECI_GET_REPLY loop
Written : Apr 97 - Alan Hollingshead
asyj002 is a Java program that on each requested iteration
issues an asynchronous call (without callback or message qualifier).
This is followed either by an ECI_GET_REPLY_WAIT (if the -w option
is specified as an override), or an ECI_GET_REPLY (the default).
In the latter case up to nine ECI_GET_REPLY calls are issued to
obtain the response from the server. Between each attempt to
receive this reply there is a one second delay to allow for network
traffic or a busy server.
With ECI_GET_REPLY calls the output shows which call obtained the
response. For example, "eci_get_reply #3" means that the response was
obtained on the third attempt. If the result shows "eci_get_reply #9"
with a CICS Rc of -5, this indicates that the response was not
received after nine attempts. After all iterations have run, a banner
displays the number of successful iterations where asynchronous calls
returned a positive reply.
Prior to each asynchronous call the commarea is initialised to
18 dashes. The server returns the current date and timestamp.
The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
If run as an applet - parameters are passed via asyj002.html.
If run as an application - parameters can be overridden via command line.
Issue "asyj002 -?" for help and the default settings.
Can be run as an applet or application.
ascj001 - Multiple Asynchronous ECI Calls with Callback
Written : May 97 - Alan Hollingshead
This applet/application can run multiple ECI asynchronous calls with
callback simultaneously.
The source file creates two classes:
(1) ascj001.class ........ issues the asynchronous calls.
(2) TestCB.class ......... handles all callbacks received.
Issuing "java ascj001 -?" shows the following help and defaults:
ASCJ001 - Multiple Asynchronous ECI Calls with Callback
Usage: java ascj001
-j JGate Default: (local hostname)
-r JGate port Default: 2006
-s CICS server Default:
-a application Default: SRVTIME
-c # calls Default: 1
-i # iterations Default: 1
-d delay Default: 0 seconds
-u userid Default: SYSAD
-p password Default: SYSAD
-! debug Default: false
-? This help panel
Example: java ascj001 -s cicstcp
The above example overrides the server setting of with cicstcp.
Parameter overrides:
-j ... hostname or IP address where Java Gateway is running.
The default is your local hostname.
-r ... Java Gateway port. This defaults to 2006 unless
otherwise specified when starting the Java Gateway.
-s ... if the CICS Client is being used to connect to a CICS
server, null takes the first CICSCLI.INI setting.
Otherwise specify a valid entry defined in the CICSCLI.INI
file. If a CICS Client is not being used, a null value
will use the local server ECI, if supported.
-a ... name of server application.
-c ... number of calls within an iteration. Each call is assigned
a different message_qualifier.
-i ... number of iterations.
-d ... a delay in seconds between each call (as specified by -c).
-u ... userid, if required by the server mirror transaction.
-p ... password, if required by the server mirror transaction.
-! ... some debug info is supplied if "-!" is specified.
-? ... displays the help panel and defaults.
Prior to each ECI call the commarea is initialised to
18 dashes. The server returns the current date and timestamp.
The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
If run as an applet - parameters are passed via ascj001.html.
If run as an application - parameters can be overridden via command line.
Example:
Command line input: java ascj001 -c 3 -i 2
Sample output:
ASCJ001 - Multiple Asynchronous ECI Calls with Callback
-j JGate -> myHost
-r JGate port -> 2006
-s CICS server -> (not specified)
-a application -> SRVTIME
-c # calls -> 3
-i # iterations -> 2
-d delay between calls -> 0 seconds
-u userid -> SYSAD
-p password -> SYSAD
-! debug -> false
-? help panel
--- Successfully created JavaGateway connection ---
# Call Commarea Data Length CICS Rc Abend Call OK?
-- ----------------- ----------------- ------ ------- ----- --------
1 eci_async + mq 1 -- flow -->
1 eci_async + mq 2 -- flow -->
1 eci_async + mq 3 -- flow -->
eci_async + mq 2 28/05/97 16:49:15 18 0 OK
eci_async + mq 3 28/05/97 16:49:15 18 0 OK
eci_async + mq 1 28/05/97 16:49:15 18 0 OK
2 eci_async + mq 1 -- flow -->
2 eci_async + mq 2 -- flow -->
eci_async + mq 1 28/05/97 16:49:15 18 0 OK
2 eci_async + mq 3 -- flow -->
eci_async + mq 3 28/05/97 16:49:15 18 0 OK
eci_async + mq 2 28/05/97 16:49:15 18 0 OK
--- Successfully closed JavaGateway connection ---
--- Calls successful: 6 out of 6 calls in 2 iterations ---
The above example shows that the callback responses are not necessarily
returned in the order sent. Hence a message_qualifier is assigned to
each call and checked upon return (shown by "Call OK?" column).
Note: in this program the delay parameter (-d) is between each call sent to the
gateway as opposed to between iterations (as in most other programs in this suite).
The default is for no delay between calls.
Can be run as an applet or application.
ecijlst - List all systems available; then for each server issue:
(1) eci state async call
(2) eci sync call with commarea to server application
(3) eci state sync call
Program completes with a status summary for all servers.
The status summary shown is for the eci state sync call.
Written : May 97 - Alan Hollingshead
This source file creates two classes:
(1) ecijlst.class .......... issues the state and eci_sync calls.
(2) TestCBst.class ......... handles all callbacks received.
Issuing "java ecijlst -?" shows the following help and defaults:
ECIJLST - List Systems and Check Status
Usage: java ecijlst
-j JGate Default: (local hostname)
-r JGate port Default: 2006
-a application Default: SRVTIME
-u userid Default: SYSAD
-p password Default: SYSAD
-! debug Default: false
-? This help panel
Example: java ecijlst -j myJGate
The above example overrides the -j parameter with "myJGate".
Parameter overrides:
-j ... hostname or IP address where Java Gateway is running.
The default is your local hostname.
-r ... Java Gateway port. This defaults to 2006 unless
otherwise specified when starting the Java Gateway.
-a ... name of server application.
-u ... userid, if required by the server mirror transaction.
-p ... password, if required by the server mirror transaction.
-! ... some debug info is supplied if "-!" is specified.
-? ... displays the help panel and defaults.
If run as an applet - parameters are passed via ecijlst.html.
If run as an application - parameters can be overridden via command line.
This applet/application will work for up to 100 systems.
RECOMMENDATION:
If using a (common) CICS Client, issue "CICSCLI /N" before
running this program to suppress unwanted client pop-ups.
Any CICS Client errors will continue to be written to the
"CICSCLI.LOG" error file.
NOTE:
If this is the first attempt to connect to a given server, the
server state may show "Unknown" after the first getStatus request.
This will change to the 'real' state on the second state call (and
is due to a bug in the CICS Client). Other known problems are that
ECI_CONNECTED_TO_SERVER and ECI_CLIENTSTATE_INAPPLICABLE never
appear due to CICS Client bugs. ECI_CONNECTED_TO_CLIENT and
ECI_CLIENT_STATE_UP/DOWN are returned respectively instead.
Extract of sample output:
ECIJLST - List Systems and Check Status
-j JGate -> r075452a
-r JGate port -> 2006
-a application -> SRVTIME
-u userid -> SYSAD
-p password -> SYSAD
-! debug -> false
-? Help panel
--- Successfully created JavaGateway connection ---
Servers available:
Server (1) OS/2NETB, Description: NetBIOS Server to TCLRTST1
Server (2) OS/2TCP , Description: TCP/IP Server to TCLRTST1
Server (3) AIX-TCP , Description: TCP/IP Server to florence
Server (4) OS/2SNA , Description: SNA Server TCLRTST1
Server (5) VSE-SNA , Description: SNA Server
Server (6) CICS410 , Description: SNA Server
----------------------------------------------
Server (1 of 6) OS/2NETB
----------------------------------------------
---> Asynchronous getStatus call for server: OS/2NETB
<--- Results of asynchronous getStatus request
Server: OS/2NETB
Connection status ... ECI connected to client
Server status ....... ECI server state up
Client status ....... ECI client state up
---> Flow eci_sync call to server: OS/2NETB
<--- Results of eci_sync call
Commarea ..... 02/06/97 13:51:48
CICS Rc ...... 0
Abend code ...
---> Synchronous getStatus call for server: OS/2NETB
<--- Results of synchronous getStatus request
Server: OS/2NETB
Connection status ... ECI connected to client
Server status ....... ECI server state up
Client status ....... ECI client state up
::: etc ::: etc ::: etc :::
Status Summary:
Connection Server Client ECI_SYNC CICS
Server Status Status Status Results RC
-------- ---------- -------- ------------ ----------------- ----
OS/2NETB To Client Up Up 02/06/97 13:51:48L 0
OS/2TCP To Client Up Up 02/06/97 13:51:49L 0
AIX-TCP To Client Up Up 02/06/97 13:52:01L 0
OS/2SNA To Client Up Up 02/06/97 13:51:50L 0
VSE-SNA To Client Down Up -3
CICS410 To Client Up Up 02/06/97 13:50:54 0
Can be run as an applet or application.
ecijtpn - ECI_SYNC_TPN and ECI_ASYNC_TPN calls
(1) eci_sync_tpn
(2) eci_async_tpn
(3) eci_get_reply_wait
(4) eci_sync
(5) eci_async
(6) eci_get_reply_wait
Written : Jun 97 - Alan Hollingshead
This program tests the call types: eci_sync_tpn and eci_async_tpn,
and uses method isTPNTransid to confirm whether tpn is being used.
Note: tpn is currently not supported on Unix platforms.
Testing should include:
(1) issuing the calls using the default transid CPMI
(2) issuing the calls specifying your own transid. You must
define your own transid in the server. For example, on
CICS for OS/2 CPMI runs program FAAMIR; therefore you
can define your own transid, eg MYMI, to call program FAAMIR.
The example below shows how to override CPMI with MYMI.
Note that the value of transid is case-sensitive.
(3) testing with a mirror less than 4-characters in length.
(4) with a transid undefined on the server. The _tpn calls should
abend, but the following non-tpn calls should use the default
CPMI transid and work successfully.
Issuing "java ecijtpn -?" shows the following help and defaults:
ECIJTPN - ECI_SYNC_TPN and ECI_ASYNC_TPN calls
Usage: java ecijtpn
-j JGate Default: (local hostname)
-r JGate port Default: 2006
-s CICS server Default:
-a application Default: SRVTIME
-t transid Default: CPMI
-i # iterations Default: 1
-d delay Default: 0 seconds
-u userid Default: SYSAD
-p password Default: SYSAD
-! debug Default: false
-? This help panel
Example: java ecijtpn -s cicstcp -t MYMI
The above example overrides the server setting of with cicstcp,
and the default CICS mirror transid of CPMI with MYMI.
Parameter overrides:
-j ... hostname or IP address where Java Gateway is running.
The default is your local hostname.
-r ... Java Gateway port. This defaults to 2006 unless
otherwise specified when starting the Java Gateway.
-s ... if the CICS Client is being used to connect to a CICS
server, null takes the first CICSCLI.INI setting.
Otherwise specify a valid entry defined in the CICSCLI.INI
file. If a CICS Client is not being used, a null value
will use the local server ECI, if supported.
-a ... name of server application.
-t ... name of transid server program to run under. Equivalent
to eci_tpn on (common) CICS Client.
-i ... number of iterations (of each set of three calls).
-d ... a delay in seconds between each iteration.
-u ... userid, if required by the server mirror transaction.
-p ... password, if required by the server mirror transaction.
-! ... some debug info is supplied if "-!" is specified.
-? ... displays the help panel and defaults.
Prior to each ECI call the commarea is initialised to
18 dashes. The server returns the current date and timestamp.
The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
If run as an applet - parameters are passed via ecijtpn.html.
If run as an application - parameters can be overridden via command line.
Example: java ecijtpn -t MYMI
The above example overrides the transid setting of CPMI with MYMI which
has been defined on the server to run the mirror program.
Example output:
ECIJTPN - ECI_SYNC_TPN and ECI_ASYNC_TPN calls
-j JGate -> myHost
-r JGate port -> 2006
-s CICS server -> (not specified)
-a application -> SRVTIME
-t transid -> MYMI
-i # iterations -> 1
-d delay -> 0 seconds
-u userid -> SYSAD
-p password -> SYSAD
-! debug -> false
-? for help panel
--- Successfully created JavaGateway connection ---
# Call Mirror Commarea Data Length CICS Rc Abend
-- ------------------ ------ ----------------- ------ ------- -----
1 eci_sync_tpn MYMI 06/06/97 13:22:49 18 0
1 ....isTPNTransid? true
1 eci_async_tpn MYMI ----------------- 18 0
1 ....isTPNTransid? true
1 eci_get_reply_wait 06/06/97 13:22:49 18 0
1 eci_sync MYMI 06/06/97 13:22:49 18 0
1 ....isTPNTransid? false
1 eci_async MYMI ----------------- 18 0
1 ....isTPNTransid? false
1 eci_get_reply_wait 06/06/97 13:22:49 18 0
--- Successfully closed JavaGateway connection ---
--- 6 out of 6 calls during 1 iterations were successful ---
Can be run as an applet or application.
synjtpn - Extended ECI_SYNC_TPN Calls
Written : Jun 97 - Alan Hollingshead
This program tests the call type eci_sync_tpn for extended eci calls
and multiple LUWs.
The program is based on synj002 which uses eci_sync calls instead.
Note: tpn is currently not supported on Unix platforms.
Testing should include:
(1) issuing the calls using the default transid CPMI
(2) issuing the calls specifying your own transid. You must
define your own transid in the server. For example, on
CICS for OS/2 CPMI runs program FAAMIR; therefore you
can define your own transid, eg MYMI, to call program FAAMIR.
The example below shows how to override CPMI with MYMI.
Note that the value of transid is case-sensitive.
(3) testing with a mirror less than 4-characters in length.
(4) with a transid undefined on the server. The _tpn calls should
abend, but the following non-tpn calls should use the default
CPMI transid and work successfully.
synjtpn is a Java program that on each requested iteration
issues sets of six ECI synchronous calls for each LUW. The first
two calls are followed by an ECI_BACKOUT. The fourth and fifth
calls are followed by an ECI_COMMIT. The commarea on each call
is initialised to 18 dashes. The server returns the current date
and timestamp. The default CICS server program is the supplied SRVTIME
which is compatible on all CICS servers. If desired, a different server
program can be supplied as an input parameter to this applet/application.
This program contains no data conversion for the commarea.
If run as an applet - parameters passed via synjtpn.html
If run as an application - parameters can be overridden via command line
Issue "synjtpn -?" for help and the default settings.
The output is similar to the extract shown for synj002.
Can be run as an applet or application.
synj0c3 - Detect Maximum Commarea Length
Written : Jun 97 - Alan Hollingshead
This applet/application can issue non-extended ECI synchronous calls
incrementing the commarea length until the maximum length (governed
by CICS server and/or communication protocol) has been reached.
Issuing "java synj0c3 -?" shows the following help and defaults:
SYNJ0C3 - Detect Maximum Commarea Length>
Usage: java synj0c3
-j JGate Default: (local hostname)
-r JGate port Default: 2006
-s CICS server Default: (not specified)
-c Initial commarea length Default: 18
-+ increment commarea length Default: false
-i # iterations Default: 1
-a application Default: SRVTIME
-u userid Default: SYSAD
-p password Default: SYSAD
-d delay between iterations Default: 0 seconds
-! debug Default: false
-? This help panel
Example: java synj0c3 -c 32000 -+
The above example issues the first non-extended ECI synchronous call with
commarea length 32000, and then further ECI calls incrementing the
commarea length by one each time until an abend occurs (usually the
maximum commarea size, plus one.).
The commarea length is reset to the initial commarea length (-c) upon
the start of each new iteration.
The maximum commarea size varies according to the CICS server and
communication protocol being used (ie SNA, NetBIOS, TCP/IP or named pipes).
Initial commarea size should be 18 or more characters in length
otherwise the commarea is not large enough to return a date and timestamp.
Parameter overrides:
-j ... hostname or IP address where Java Gateway is running.
The default is your local hostname.
-r ... Java Gateway port. This defaults to 2006 unless
otherwise specified when starting the Java Gateway.
-s ... if the CICS Client is being used to connect to a CICS
server, null takes the first CICSCLI.INI setting.
Otherwise specify a valid entry defined in the CICSCLI.INI
file. If a CICS Client is not being used, a null value
will use the local server ECI, if supported.
-c ... initial commarea length. The maximum value that can be
entered is 65536 else a Java exception error will
(deliberately) appear.
-+ ... the commarea length is incremented by one each time until
an abend occurs. Usually this will be when the maximum
commarea size has been exceeded.
-i ... number of iterations (of each set of three calls).
-a ... name of server application.
-u ... userid, if required by the server mirror transaction.
-p ... password, if required by the server mirror transaction.
-d ... a delay in seconds between each iteration.
-! ... some debug info is supplied if "-!" is specified.
-? ... displays the help panel and defaults.
If run as an applet - parameters passed via synj0c3.html
If run as an application - parameters can be overridden via command line
Issue "synj0c3 -?" for help and the default settings.
Example output:
SYNJ0C3 - Detect Maximum Commarea Length
-j JGate -> testb
-r JGate port -> 2006
-s CICS server -> (not specified)
-c initial commarea length -> 32600
-+ increment commarea length -> true
-i # iterations -> 1
-a application -> SRVTIME
-u userid -> SYSAD
-p password -> SYSAD
-d delay between iterations -> 0 seconds
-! debug -> false
-? help panel
--- Successfully created JavaGateway connection ---
Iteration Commarea Data (18) Was/Is Length CICS Rc Abend
--------- ------------------ ------------- ------- -----
1 01/07/97 17:54:36 32600 32631 0
1 32600 32632 -7 AZI6
--- Successfully closed JavaGateway connection ---
--- Calls successful ... 32 out of 33
--- Iterations run ..... 1 out of 1
Can be run as an applet or application.
synjms3 - Synchronous Calls to Multiple Servers
Written : July 97 - Alan Hollingshead
This applet/application can issue non-extended ECI synchronous calls
to one, two, or three servers.
Issuing "java synjms3 -?" shows the following help and defaults:
SYNJMS3 - Synchronous Calls to Multiple Servers
Usage: java synjms3
-j JGate Default: (local hostname)
-r JGate port Default: 2006
-l list servers Default: false
-s1 CICS server-1 Default: (not specified)
-s2 CICS server-2 Default: null
-s3 CICS server-3 Default: null
-i # iterations Default: 1
-a application Default: SRVTIME
-t transid Default: CPMI
-u userid Default: SYSAD
-p password Default: SYSAD
-d delay between iterations Default: 0 seconds
-! debug Default: false
-? this help panel
Example: java synjms3 -s1 cicsos2 -s2 cicsaix -s3 cicsesa
The above example issues non-extended ECI synchronous calls to
CICS server-1 (uses default if not specified unless JGate on MVS)
and then CICS server-2 and server-3 unless these are null.
Parameter overrides:
-j ... hostname or IP address where Java Gateway is running.
The default is your local hostname.
-r ... Java Gateway port. This defaults to 2006 unless
otherwise specified when starting the Java Gateway.
-l ... list servers only (does not issue ECI synchronous call)
-s1 .. if the CICS Client is being used to connect to a CICS
server, null takes the first CICSCLI.INI setting.
Otherwise specify a valid entry defined in the CICSCLI.INI
file. If a CICS Client is not being used, a null value
will use the local server ECI, if supported.
Note: a null value is not valid for the JGate on MVS.
-s2 .. name of the second CICS server to send an ECI request to.
-s3 .. name of the third CICS server to send an ECI request to.
-i ... number of iterations (of each set of three calls).
-a ... name of server application. This should be the same name
for all servers used.
-t ... transid. This will pass in the transid for security purposes
but will still use the default mirror (eg CPMI). To actually
run under a different mirror, eci_sync_tpn with transid
specified, is required.
-u ... userid, if required by the server mirror transaction.
-p ... password, if required by the server mirror transaction.
-d ... a delay in seconds between each iteration.
-! ... some debug info is supplied if "-!" is specified.
-? ... displays the help panel and defaults.
Example: java synjms3 -s1 cicsos2 -s2 cicsaix -s3 cicsesa -i 2
SYNJMS3 - Synchronous Calls to Multiple Servers
-j JGate -> hollings
-r JGate port -> 2006
-l list servers -> false
-s1 CICS server1 -> cicsos2
-s2 CICS server2 -> cicsaix
-s3 CICS server3 -> cicsesa
-i # iterations -> 2
-a application -> SRVTIME
-t transid -> CPMI
-u userid -> SYSAD
-p password -> SYSAD
-d delay between iterations -> 0 seconds
-! debug -> false
-? help panel
--- Successfully created JavaGateway connection ---
Iteration Server Commarea Data CICS Rc Abend
--------- -------- ----------------- ------- -----
1 cicsos2 30/07/97 12:41:26 0
1 cicsaix 30/07/97 12:41:27 0
1 cicsesa 30/07/97 12:41:29 0
2 cicsos2 30/07/97 12:41:30 0
2 cicsaix 30/07/97 12:41:31 0
2 cicsesa 30/07/97 12:41:33 0
--- Successfully closed JavaGateway connection ---
--- Calls successful ... 6 out of 6
--- Iterations run ..... 2 out of 2
SRVTIME (ServerTime) is a very simple program that runs on the
CICS server.
The commarea received (usually a series of hyphens) from the client program
is replaced by the current date and timestamp in the first 18 characters
of the commarea.
If desired, SRVTIME can output the length of commarea received from the calling
client program, and display the server date and timestamp returned in the
commarea. This output can be to either CSMT, the console, neither, or both.
Source:
- srvtime.ccp (COBOL version)
- srvtime.ccs (C version)
Some runtime problems you may encounter:
- Wrong JGate?
--- Caught Exception: java.io.IOException: CCL6551E: Unable to connect to Gateway.
[address = myJGate, port = 2006] [ java.net.UnknownHostException: myJGate ]
Ensure your JGate (-j parameter) is correct. If using a hostname make sure
that your nameserver is accessible. A null hostname will attempt to use
the host defined in your hosts file.
- Wrong JGate port?
--- Caught Exception: java.io.IOException: CCL6551E: Unable to connect to Gateway.
[address = myJgate, port = 2009] [ java.net.SocketException: getsockname ]
Ensure your JGate port (-r parameter) is correct. The default is 2006.
Also ensure your JGate is running!
- Error running applet although application works OK?
--- Caught Exception: ibm.JEmpower.AppletSecurityException: security.socket.connect: (IP address)
Check your classpath is picking up the test suite classes.
- Applet output sometimes looks odd!
A few applets, for example synj0c3, use character control escape sequences
for tabbing, newline, etc. There are a few bugs in Netscape Navigator for OS/2
V2.02 which means the formatting is a little awry!