We changed our Server System to Windows Server 2019. Per default Windows now uses the nage algorithm to reduce network load. Therefore Windows network driver waits till it gets enough TCP pakets, before it sends them to our System i Server. This leads to a massive performance Issue in our application.
This can be deactivated via com.ibm.as400.access.AS400JDBCDataSource if you call the method setTcpNoDelay (true). Our developer changed this - so no worries for us today.
But you have to use your own application. If you use standard Software, like SQuirreL or Talend ETL, there will be no option to change this.
Suggestion: Add a new JDBC Property, where you can change this behavior.
nagle algorithm"tcp no delay" has been added as a JDBC connection property. The fix is available in SVN and will be included in the next JTOpen release.
Hi,
Is there any plan to include this fix in a new official version ?
We are having this performance issue with version 10.7 and would prefer using an official build
Thanks,
Benoit
The fix will be in the next release, which is currently under test.
Hi,
is this method available for jt400-11.0 version?
If yes, how can I set this property in a connection string?
For example, I connect with the as400 with this connection string, is the last properties setTcpNoDelay=true correctly set?
jdbc:as400://IP_AS400/libraries=XXX;prompt=false;translate binary=true;minimum divide scale=9;lazy close=true;setTcpNoDelay=true;
Thanks a lot for an answer.
Mirco
Last edit: Mirco Reggiani 2023-04-28
Yes, it should be in JTOpen 11.0
Fixes and enhancements in JTOpen 11.0 released 2022-04-13
...
JDBC: Add connection property: tcp no delay
Hi,
Is Tomcat's data source URL setting incorrect?
Although I set ① and ②, TCP Retransmission occurs.
The driver is "jt400-20.0.7-java8.jar".
①url="jdbc:as400://<ip address="">;naming=system;libraries=LIBL,LIB1;setTcpNoDelay=true"
②url="jdbc:as400://<ip address="">;naming=system;libraries=</ip>LIBL,LIB1;prompt=false;translate binary=true;minimum divide scale=9;lazy close=true;setTcpNoDelay=true"</ip>
The problem was resolved after changing to "tcp no delay=true".
Thank you very much.
yyyc28
Last edit: yyyc28 2024-05-22
"setTcpNoDelay" is a data source method. In the URL, you should use "tcp no delay=true" in the URL.