OK, I finally have first try of NIO support in the patch attached.
The only current feature is query timeout without any additional threads. Please note that current driver has a bug: JDBC specs says timeout is in seconds and driver takes it as millis, fixed in my patch.
Also current query timeout schema limitation is that query timeout processing still requires server round trips that are not under timeout control. I really don't see how much this differ from simply setting server-side timeout for fast connections. For slow connections it's still unreliable. Good thing that it is may be possible to enforce some kind of hard timeout with NIO schema as it's easy to control blocking calls.
Limitations: only for V3 non-secure connections. Other connections use regular stream-based implementation.
Planned features:
* SSL with NIO. This should allow to receive notifications without server roundtrip in SSL mode
* Read answer while sending query. This should make go away the problem when large query is blocked because answer must be read to send more data to server.
Note that I have never worked with CVS and have problems to make patch with new files (AFAICS I can't add it to CVS with RO access).
Comments are welcome.
P.S. To work with SSL I need to start SSL tests. Any hints?
--
Best regards,
Vitalii Tymchyshyn