Hola.
No se si estás mezclando dos cosas distintas. ¿?
La traza '7e52a604fd711c33#-3' sale cuando hay buena suerte y se
consigue detectar el problema de que la plataforma SDP ha mandado un
mensaje incompleto (con lo que se debe invalidar ese socket) porque ya
no se podrá sacar correctamente ningún otro mensaje. Eso sale con
traza de warning, porque hay que dejar rastro de porqué se ha cerrado
el socket.
De todas formas quizás deberías revisar tu proceso cosas porque si
sale ese error es porque el que escribe en el socket se lo está
encontrando lleno, lo que implica que tu parte del socket no está
sacando con la suficiente rapidez, además hace poco creo que tenías
derivas en la duración de los temporizadores, muestra inequívoca de
que no estás devolviendo el control al núcleo de comunicaciones con la
suficiente periodicidad.
Después está el tema de las tramas sin formato que puede enviar la
plataforma SDP para notificar ciertos eventos, eso sale con el
identificador '7e52a604fd711c33#-4' y con el último parche mantiene el
socket abierto sin ningún problema, además se progresa el búfer
recibido mediante el método comm::Communicator::eventIgnoreBurst. La
traza también sale con nivel warning pero en este caso sí que se
podría bajar el nivel de severidad.
Un saludo.
On Apr 28, 9:26 am, Eduardo Ramos Testillano <
era...@tid.es> wrote:
> Hola,
> Recientemente hasn puesto incidencia a los procesos sobre NRD debido a la aparición de una traza de error:Error |
sdp.Transport.cc (171) | thr: 0x41817960 | RuntimeException |Detectada situación 7e52a604fd711c33#-3Al margen de que la plataforma SDPPJ sea o no coherente en su tratamiento (parece que los mensajes de broadcast de congestión son un ejemplo de esto y NRD no los procesa), está claro que aquella los trata sin problemas y los procesos clásicos son perfectamente compatibles. No dudo que sea un fallo de diseño de la plataforma SDPPJ, pero su corrección allí tiene un impacto muy importante a parte de ser un tema delicado de "arreglar".
> Quizá podríamos tener una solución válida para todos basada en implementar un metodo virtual del comunicador, un evento de "detectada trama incorrecta".
> Dicho metodo tendría la implementación por defecto actual de NRD (sacar traza de error, cerrar el socket ?, ...), pero la aplicación podría reimplementarla vacía {;} para que la traza no saliera y simplemente los broadcast de congestion recibidos se ignorarían pasando desapercibidos. Incluso el metodo podría entregar en su interface, el buffer "anómalo" para que la aplicación pudiera parsearlo si lo estima necesario.
> Dime si esta solución es factible o estoy obviando alguna situación imposible de controlar.
> un saludo--
>
>
>
> firma.jpg
> 8KViewDownload