2009/2/27 RŌNIN
Hola a tod@s:
[...]
Bien, esto es así: la aplicación que comento, trabaja en modo cliente/servidor y cuando pierde la conexión con la red o pierde contacto con los servidores (por caída del DNS, por ejemplo), tarda 40 segundos (o hasta más) en notificar al operador de la computadora que va a pasar a funcionar en modo off-line. He notado que la alerta de notificación opera en función de los reintentos (por eso reajusté el valor predeterminado) y necesito que la alerta se active en el menor tiempo posible (Otorgarle más tiempo me dilata otros procesos y la acumulación de tiempos me entorpece la operación).
mmmm.. entiendo tu problema ahora.. pero la verdad es que todo parece muy extrano !!!! que tipo de conexciones tienes ??? como estas comprobando que no existe conexcion ?? haces un dig ?? un ping ?? la aplicacion la hizo usted ?? tienes los codigos ?? puedes modificarla ?? por que esto del timeout/desconexcion deberia de ser configurable en la aplicacion y no en el sistema operativo.. creame cuando te digo, que si vas a jugar con la configuracion del TCP/UDP tendras muchos mas problemas que solucciones !!! creame !!:D entonces, deberias de ver como modificar la "applicacion" para detectar que no hay conexcion !! yo intentaria con un simples ping (ver los parametros "-W" y "-c" en el man) por cierto.. que tu dig ya presenta algo malo !!! por defecto los valores en dig son: ========= +time=T Sets the timeout for a query to T seconds. The default timeout is 5 seconds. An attempt to set T to less than 1 will result in a query timeout of 1 second being applied. +tries=T Sets the number of times to try UDP queries to server to T instead of the default, 3. If T is less than or equal to zero, the number of tries is silently rounded up to 1. +retry=T Sets the number of times to retry UDP queries to server to T instead of the default, 2. Unlike +tries, this does not include the initial query. ========= o sea.. en el peor de los casos deberia tener un timeout a los 15 segundos, por ejemplo: ========= time dig @208.69.39.2 +time=1 google.com +short ; <<>> DiG 9.5.1-P1 <<>> @208.69.39.2 +time=1 google.com +short ; (1 server found) ;; global options: printcmd ;; connection timed out; no servers could be reached real 0m3.009s user 0m0.004s sys 0m0.008s $ time dig @208.69.39.2 +time=5 google.com +short ; <<>> DiG 9.5.1-P1 <<>> @208.69.39.2 +time=5 google.com +short ; (1 server found) ;; global options: printcmd ;; connection timed out; no servers could be reached real 0m15.009s user 0m0.004s sys 0m0.008s ========= como puedes ver.. en el primer ejemplo..se demora 3 segundos y en el segudo (que es el valor por defecto) se demora 15 segundos.
pero que demonios estas intentando hacer exactamente ??
Trato que el sistema operativo le informe a la aplicación que ha perdido contacto con el servidor ... en el menor tiempo posible.
Insisto.. esto es algo que la aplicacion deberia de hacer.. pero explicanos como comprobas que la red esta abajo .. y en una de estas (caso no puedas modificar la aplicacion) la solucion es tan simples como crear un alias para el comando que comproba la conexcion, por ejemplo: si comprobas con ping: alias ping="ping -c 1 -W1" si comprobas con dig: alias dig="dig +time=1 +retry=1" salu2 -- -- Victor Hugo dos Santos Linux Counter #224399 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org