Sure I like to contribute. I guess by that you mean checking out the 
code and create a pull request with something working.


I like your idear with the ping check. I will focus on implementing a 
function for the ping check, which can be reused later.


Gunther

> Hi Gunther,
>
> good catch : )
> In fact, the isConnected() implementation is currently not soo god.
> In fact it checks if the underlying communication channel from netty is 
> connected (which does not know that it is disconnected yet, in your case).
> We already had discussions to introduce a real "request" based implementation 
> like "ping()" which sends a request.
>
> Furthermore, for your use case there is the PooledDriverManager which does 
> implicitly what you do... throws away a not working connection and issues a 
> new one, if needed, but that’s a separate topic.
>
> I think we should spend some effort into this "ping" functionality.
> Perhaps you can even assist with the implementation Gunther, what do you 
> think?
>
> Julian
>
> Am 26.03.19, 11:19 schrieb "Gunther Gruber" 
> <[email protected]>:
>
>      Put it another way, isConnected does not work as i expect it
>      
>      plcConnection.isConnected() returns true even when i disconnect the vpn 
> (maybe of some tcp/ip keepalive?)
>      
>      this is the snippet of code which i expect to work (instead of the 
> thread which reconnects ever 10 minutes)
>      while (doCollect) {
>      
>        try {
>          if (plcConnection == null || plcConnection.isConnected() == false) {
>            plcConnection = initPLC(config.get(CONNECTION_KEY));
>          }
>        } catch (PlcConnectionException e) {
>          logger.log(Level.WARNING, "error connecting with driver", e);
>          plcConnection = null;
>          incrementalSleep();
>          break;
>        }
>      
>        // Create a new read request:
>        // - Give the single item requested the alias name "value"
>        PlcReadRequest.Builder builder = plcConnection.readRequestBuilder();
>      
>      Gunther Gruber
>      
>      
>

Reply via email to