Spanish ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response:

carlos7000

Well-Known Member
Licensed User
Longtime User
Hola.

Estoy desarrollando en mis ratos libres una aplicación que hace unas 215 solicitudes a Bittrex por medio de su api.

Después de un rato la aplicación se bloquea y aparece este mensaje:

B4X:
ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response:
ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response:
ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response:
ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response:
ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response:
java.lang.RuntimeException: java.io.FileNotFoundException: /data/data/com.BittrexHelper.PensamientoProfundo/cache/5091: open failed: EMFILE (Too many open files)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:223)
    at anywheresoftware.b4a.BA$2.run(BA.java:360)
    at android.os.Handler.handleCallback(Handler.java:615)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4895)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.io.FileNotFoundException: /data/data/com.BittrexHelper.PensamientoProfundo/cache/5091: open failed: EMFILE (Too many open files)
    at libcore.io.IoBridge.open(IoBridge.java:416)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
    at anywheresoftware.b4a.objects.streams.File.OpenOutput(File.java:370)
    at anywheresoftware.b4a.samples.httputils2.httputils2service._hc_responsesuccess(httputils2service.java:168)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
    ... 10 more
Caused by: libcore.io.ErrnoException: open failed: EMFILE (Too many open files)
    at libcore.io.Posix.open(Native Method)
    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
    at libcore.io.IoBridge.open(IoBridge.java:400)
    ... 16 more

Supongo que el mensaje ResponseError. Reason: java.net.SocketTimeoutException: timeout, Response: indica que algunas respuestas a las solicitudes de datos no llegaron o llegaron tarde, por lo que el timeout se supera.

Aunque reduje el numero de solicitudes, no falta la solicitud que no obtiene respuesta.

¿Como hago para enfrentar el problema que algunos mensajes no llegaran o llegarán después de que el tiempo de espera se agota?
 

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas.
Prueba a aumentar el tiempo de respuesta. Es la propiedad TimeOut del HttpJob. No recuerdo cual era el valor por defecto, pero si que en alguna ocasión he tenido q aumentarlo en solicitudes muy largas o servidores saturados.
Un saludo.
 
Top