[ Article crossposted from comp.unix.wizards,comp.unix.programmers,comp.databases.informi ]
[ Author was Renato Santis ]
[ Posted on 3 Apr 95 07:07:05 -0800 ]
I have a dozen of instalations using Informix-Online & Star with
several clients (PCs).
When a PC make a query, and the backend takes time to solve it,
the PC users turs off their PC (polish reset?), but this action
is not detectec by the backend, who still runnnig.
When the backend finish the query, it turns back to the socket
and try to write the result on it.
In differente platforms it has different behavior.
In AIX, it's holds. In Sun the write on socket doesn't hold,
but it leave pending. In both platforms, and all others I see,
the backends consumes a lot of CPU after the write.
This situation get worst, cause the machine is slow down and more
users going to turn off theis PC.
Yet, I'm investigating on a SunOS 4.1.1, but I got to solve the problem
for several platforms. All I got is go to the Kernel and get the
PCB and files of all process with "sqlturbo" command,sons
of the "sqlexecd" daemon, and check thereis no permanent
write-queue for their stdio.
The questions are:
1- There are some other way to detect a shutted peer, other
than Informix does ( they use an ALARM after TXTIMEOUT, I guess,
reduce this parameter isn't a solution, because it makes the
long queries to fail by a TIMEOUT ).
2- How can I get the client IP wich is connected to a unxi process?
Reanato Santis
rsantis@lancelot.bdr.tasco.cl.
voice:562-2234647
fax:562-2041819