Thread becomes indoubt in a distributed environment

Fertaki Gina

Thread becomes indoubt in a distributed environment
Hello everyone!

We have the following connection:

|------------| SNA |----------| TCP/IP
|----------|
| OS/390 |----------- | NT |---------- | UNIX
|
| CICS | /---------| Tuxedo | /-----------| TUXEDO
|
| DB2 | | | |
INFORMIX |
|------------| |----------|
|----------|

The connection between OS/390 and NT is APPC (LU6.2). CICS and DB2 are
Version 4.

The NT has MS SNA SERVER SP3 and BEA eLINK TUXEDO 6.5 with eLINK
SNA/Mainframe adaptor.

A CICS transaction first updates rows in the local DB2 and then issues an
EXEC CICS LINK to a program that is located on the NT (NT environment is
seen from CICS as a remote CICS region and the program is declared to run on
this remote CICS Region ) . The NT processes the message (program under
Tuxedo) and then invokes a program on the Unix system through Tuxedo and
does a single or multiple updates on the UNIX's Local database (INFORMIX).

When the updates are finished OK the program returns the control to the
transaction initiator ( the CICS program on the OS/390) with a response that
everything is OK. Then an EXEC CICS SYNCPOINT is executed and all changes
are committed in all the involved systems (DB2 and INFORMIX updates).

This scenario was tested and worked but we are facing the following problem
in Production environment:

If there is a "One to One" transaction, meaning a single transaction affects
a single row on the local system and issues a single transaction to the
remote system which completes with a single update to the remote system,
then everything works OK.
If there is a "One to Many" transaction, meaning a single transaction
affects a single row on the local system and issues a variable number of
transactions to the remote system which completes with multiple updates in
the remote system, then it works only when there is low activity in the
network (branches are not working).
During high activity or peak hours if there are "One to Many" transactions
then the CICS application hangs at the EXEC CICS SYNCPOINT. At this time the
Monitor of DB2 (we have the Landmark monitor installed) shows the thread as
INDOUBT (the network is up and running between all connections).
However, if we go in the DB2 command display and type: -DIS THREAD(*)
TYPE(INDOUBT) no thread is displayed. Instead the relevant thread is
displayed as an active one. So everyone waits and nothing is done and we
have to manually cancel the thread.
The transaction remains active for all the TP monitors (CICS and TUXEDO) in
all the involved systems.
What can be causing the problem? Perhaps this is the wrong forum to ask
this question -the problem might not be with DB2 - but the fact that the DB2
thread becomes indoubt might lead to something?

Thanks in advance.

Gina Fertaki-DBA
EFG Eurobank Ergasias SA