I'm just pointing out the problem with the connection pool about the PR 818. My current test environment only has read and write. If you think this PR is valuable, I will take the time to continue to improve.
Christofer Dutz <[email protected]> 于2023年3月17日周五 14:56写道: > Hi all, > > I think I‘ve finally managed to spare some time to finish my work on the > connection cache. > > I think https://github.com/apache/plc4x/pull/818 tried to address a > problem, where if something happens with the connection while it’s being > used, that it might be in a inconsistent state. So, it was the goal to > intercept any errors occurring during the execution of any request and to > instantly close the connection if anything went wrong. > > However, I wasn’t happy with the PR as it sort of brought the connection > into an odd state and it only was a partial solution. Also did it change > the API, weakening the contract between PLC4X and the using application. > And if there were requests waiting for the connection, they would just have > been dropped and would never get a connection. > > So, what I did, was something similar to the original PR: I intercept the > execution of all types of requests (not only read- and write-requests). But > instead of closing the connection instantly, I mark it as > “invalidateConnection” … when the close() method is called, this tells the > connection container to invalidate the connection. > > The connection container then handles closing the connection and possibly > creating a new connection and using that to serve the waiting clients. > > I hope this solves the problem people were seeing with the current > implementation. > > I will then close the PR818 if I don’t hear anything in the next 72h > > Chris > > >
