Groups > BEA > BEA Tuxedo > Blocked ATMI calls on disconnection and keepalive.




Blocked ATMI calls on disconnection and keepalive.

Blocked ATMI calls on disconnection and keepalive.
Thu, 8 May 2008 13:10:26 -0700
Dear all,

I'm facing the following problem. Invocations to ATMI methods in a workstation
client of ours blocked indefinitely when connection to the server was severed
(i.e. cable disconnection).

We had the '-K client' option enabled in the configuration of the WSL. Now the
invocations still block, but they eventually fail with TPESYSTEM between 11 and
18 minutes after connection loss.

I do not understand why that time though. Looking at the TCP keepalive
configuration of my OS (OpenSuse 10.3; production deployment will be done over
Suse Enterprise 10) the values for tcp_keepalive_time, tcp_keepalive_intvl and
tcp_keepalive_probes are 7200, 75 and 9 respectively. According to this,
wouldn't the OS detect the connection as broken after exactly 2 hours and 11.25
minutes of connection innactivity? (7200 secs + 9 * 75 secs).

I would greatly appreciate if anyone could clarify this issue for me since I
need to configure my system to detect the disconnection as soon as possible, in
order to keep threads from blocking, but don't quite understand how to do so
since the system's behaviour differs from what I expected it to do.

As an alternative: is there a way for the user to notify the Tuxedo libraries of
the disconnection? For instance, I am now detecting the deadlock caused by the
disconnection. I have tried invoking tpterm() when this happens, expecting the
blocked methods to fail due to TPESYSTEM, but instead tpterm() also blocks! Is
there a method I can invoke that will do what I expected from tpterm()?

The tuxedo version is 9.1 with RP070 installed.

Many, many thanks for your attention.

Regards.

--
Post Reply
about | contact