13805 - Conexão com driver Dimep/Madis - "ERROR java.io.IOException: An existing..."
Problema: Descrição: Ao iniciar o driver Madis/Dimep a autenticação é realizada no SDK, porém, logo em seguida a conexão é derrubada deixando os dispositivo sempre off-line e apresentando as mensagens abaixo no log:
Log SDK:
2014-08-18 16:43:56,988 ERROR java.io.IOException: An existing connection was forcibly closed by the remote host
java.io.IOException: An existing connection was forcibly closed by the remote host
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:25)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
at sun.nio.ch.IOUtil.read(IOUtil.java:171)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243)
at com.senior.seguranca.tcpconnector.protocol.comm.base.message.Encoder.bufferizeData(Encoder.java:164)
at com.senior.seguranca.tcpconnector.protocol.comm.base.message.Encoder.encode(Encoder.java:58)
at com.senior.seguranca.tcpconnector.connection.SocketMonitor.run(SocketMonitor.java:170)
2014-08-18 16:43:56,988 INFO Finishing Socket monitor Incoming: java.nio.channels.SocketChannel[connected local=/192.168.23.60:61000 remote=/192.168.23.60:57892], Outcoming: java.nio.channels.SocketChannel[connected local=/192.168.23.60:61000 remote=/192.168.23.60:57892]
2014-08-18 16:43:56,988 INFO Unregistering driver DMP(101, protocol:6)-id of managed devices:(...)
2014-08-18 16:43:56,988 DEBUG Thread para envio de mensagens interrompida.
2014-08-18 16:43:56,988 ERROR A Thread (Timeout Thread) foi interrompida e será finalizada
2014-08-18 16:43:56,988 DEBUG AsyncSenderRunnable finalizado.
2014-08-18 16:43:56,988 INFO Socket finalizado para o driver DMP(101, protocol:6)-id of managed devices:(...)
2014-08-18 16:43:56,988 INFO SocketMonitor finalizado: Socket monitor Incoming: java.nio.channels.SocketChannel[closed], Outcoming: java.nio.channels.SocketChannel[closed]
Log Madis/Dimep:
18/08/2014 16:43:36.977 ****Informacao**** Enviado o pedido de autenticação - 18/08/2014 16:43:36
18/08/2014 16:43:44.977 ****Informacao**** Mensagem enviada driver: RequestAuthentication Numero Mensagem: 01
18/08/2014 16:43:44.977 ****Informacao**** Mensagem Enviada Driver - Bytes: ...
18/08/2014 16:43:45.203 ****Informacao**** Mensagem Recebida Senior - Bytes: ...
18/08/2014 16:43:45.340 ****Erro**** Erro - no tratamento de mensagem. Descrição: Index was outside the bounds of the array.
18/08/2014 16:43:51.981 ****Erro**** Erro: Não houve resposta da mensagem RequestAuthentication Número: 1
Bytes recebidos: - Comunica.myFila_TimeOutMensagem.
18/08/2014 16:43:51.981 ****Erro**** IntegraComunicação Senior: Respondeu e caiu no TimeOut RequestAuthenticationNúmero: 1
Quando ocorre / onde se aplica: Esta situação ocorre pois o driver esta recebendo uma informação extensível não esperada e não consegue tratar a mensagem. Quando o cliente possui mais de um serviço, esta situação pode ocorrer apenas com um serviço e outro não. Segundo explicação da Dimep alguns serviços podem funcionar por uma coincidência de valores e da ordem que sempre é seguida, se fugir dessa ordem poderá ocorrer a situação.
Solução: Solução: Para solucionar, deve ser avaliado se a informação extensível está cadastrada corretamente e muito IMPORTANTE, a informação extensível que é de configuração do dispositivo deve ser realizada no dispositivo e não no cadastro do driver, quando realizado uma configuração do dispositivo no driver esta situação também ocorre.
Público: Interno, canais/consultores, clientes
Log SDK:
2014-08-18 16:43:56,988 ERROR java.io.IOException: An existing connection was forcibly closed by the remote host
java.io.IOException: An existing connection was forcibly closed by the remote host
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:25)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
at sun.nio.ch.IOUtil.read(IOUtil.java:171)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243)
at com.senior.seguranca.tcpconnector.protocol.comm.base.message.Encoder.bufferizeData(Encoder.java:164)
at com.senior.seguranca.tcpconnector.protocol.comm.base.message.Encoder.encode(Encoder.java:58)
at com.senior.seguranca.tcpconnector.connection.SocketMonitor.run(SocketMonitor.java:170)
2014-08-18 16:43:56,988 INFO Finishing Socket monitor Incoming: java.nio.channels.SocketChannel[connected local=/192.168.23.60:61000 remote=/192.168.23.60:57892], Outcoming: java.nio.channels.SocketChannel[connected local=/192.168.23.60:61000 remote=/192.168.23.60:57892]
2014-08-18 16:43:56,988 INFO Unregistering driver DMP(101, protocol:6)-id of managed devices:(...)
2014-08-18 16:43:56,988 DEBUG Thread para envio de mensagens interrompida.
2014-08-18 16:43:56,988 ERROR A Thread (Timeout Thread) foi interrompida e será finalizada
2014-08-18 16:43:56,988 DEBUG AsyncSenderRunnable finalizado.
2014-08-18 16:43:56,988 INFO Socket finalizado para o driver DMP(101, protocol:6)-id of managed devices:(...)
2014-08-18 16:43:56,988 INFO SocketMonitor finalizado: Socket monitor Incoming: java.nio.channels.SocketChannel[closed], Outcoming: java.nio.channels.SocketChannel[closed]
Log Madis/Dimep:
18/08/2014 16:43:36.977 ****Informacao**** Enviado o pedido de autenticação - 18/08/2014 16:43:36
18/08/2014 16:43:44.977 ****Informacao**** Mensagem enviada driver: RequestAuthentication Numero Mensagem: 01
18/08/2014 16:43:44.977 ****Informacao**** Mensagem Enviada Driver - Bytes: ...
18/08/2014 16:43:45.203 ****Informacao**** Mensagem Recebida Senior - Bytes: ...
18/08/2014 16:43:45.340 ****Erro**** Erro - no tratamento de mensagem. Descrição: Index was outside the bounds of the array.
18/08/2014 16:43:51.981 ****Erro**** Erro: Não houve resposta da mensagem RequestAuthentication Número: 1
Bytes recebidos: - Comunica.myFila_TimeOutMensagem.
18/08/2014 16:43:51.981 ****Erro**** IntegraComunicação Senior: Respondeu e caiu no TimeOut RequestAuthenticationNúmero: 1
Quando ocorre / onde se aplica: Esta situação ocorre pois o driver esta recebendo uma informação extensível não esperada e não consegue tratar a mensagem. Quando o cliente possui mais de um serviço, esta situação pode ocorrer apenas com um serviço e outro não. Segundo explicação da Dimep alguns serviços podem funcionar por uma coincidência de valores e da ordem que sempre é seguida, se fugir dessa ordem poderá ocorrer a situação.
Solução: Solução: Para solucionar, deve ser avaliado se a informação extensível está cadastrada corretamente e muito IMPORTANTE, a informação extensível que é de configuração do dispositivo deve ser realizada no dispositivo e não no cadastro do driver, quando realizado uma configuração do dispositivo no driver esta situação também ocorre.
Público: Interno, canais/consultores, clientes