How To Increase TCP Connections in Windows 2012 Server - java

1) We have installed our Java application in Windows 2012 Server. After running for some time application started showing Connection Time out. We have set TCP Parameters MaxUserPort = 65534 and TcpTimedWaitDelay = 30.
We are facing the same issue, even after setting the parameters in windows registry. We have verified in our application, "There is no connection pool issue and no thread issue".
We are using JDK v6.0.29, Tomcat 7, MYSQL 5.5.
Apart from MaxUserPort and TcpTimedWaitDelay is there any other TCP parameters in Windows 2012 to improve performance of the server and our application.
2) At the same time we have found that ‘There is sluggishness in I/O process’.
Is there any registry parameters to improve I/O performance in the system.
Thank You.

Related

openjdk setting keepalive time in windows 10

I'm working in java (openjdk14) on a project that sends files to a webservice. The server takes its time to process this files so I need to set the TCP keepalive time in order to not lose the connection. Is there any way to set the TCP keepalive time in windows?
I'm using openjdk14 and Windows 10 Pro
I will appreciate any help
I found a way in linux using ExtendedSocketOptions but in Windows it seems that it's not supported:
`Socket sock = sf.createSocket(context);
sock.setOption(ExtendedSocketOptions.TCP_KEEPIDLE, 60);
sock.setOption(ExtendedSocketOptions.TCP_KEEPCOUNT, 75);
sock.setOption(ExtendedSocketOptions.TCP_KEEPINTERVAL, 3); `

Mac OS X socket timeout

I have a weird problem in my OS X (Yosemite) machine: it seems that the network communication is slower than in other Windows machines of the same network, and the timeout seems shorter.
When I try to run our Java application, each transaction that is longer than 15s returns:
java.sql.SQLRecoverableException: IO Error: Operation timed out
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:876)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
at dome.dbComponents.dataModels.rowSet.StatementStatus.executeQuery(StatementStatus.java:71)
at com.dome.dCell.common.services.enterprise.types.Infusr.loadSQLFieldList(Infusr.java:976)
at dome.util.xml.converter.typeSQLManager.ThreadLoadSqlField.run(ThreadLoadSqlField.java:103)
Caused by: java.net.SocketException: Operation timed out
at java.net.SocketInputStream.socketRead0(Native Method)
INFO [28 Aug 2015 14:35:32,427] DomeEnterpriseService.loadAll(true) executed in 19724 ms
The timeout occurs when our Enterprise Service takes more than 15s to load all the enterprises from the database (it's not a bad query, there's simply a lot of information to store in memory).
This is not likely related directly to our software configuration being incompatible with OS X. I tried to run the same application in a Windows 7 VM (with VirtualBox) on the same iMac, and the problem remains.
I checked the connection with the database machine (a Linux server), and everything seems fine.
I've also tried different configurations in /etc/sysctl.conf (net.inet.tcp.msl) but it doesn't seem to make a big difference. Also, I don't find anything like the net.ipv4.tcp_syn_retries configuration of Linux, and maybe I'm googling the wrong keywords, but I don't find much about tweaking the timeout of OS X.
I don't recall having this problem before on this machine. I updated the JDK 1.7 to the last version (1.7.0_79), all the OS updates, nothing improves.
We tried with different machines (Linux & Windows, it's the only Mac), and no one is able to reproduce this.
Any ideas?

MS SQL Express 2012 slow in VirtualBox image

I am accessing MS SQL Server Express running in a VirtualBox image for a Java / Hibernate (with EhCache setup) application.
The VM is connected via NIC mode.
When the server starts up it loads (most of the DB's) data in EhCache.
Right now it takes ~5 minutes to start up. If I switch to a dedicated machine that hosts MS SQL Server (not Express) the startup takes ~1 min.
Any suggestions what could be wrong here?
Ok found the problem.
VirtualBox in NIC mode somehow reduces the network speed between host and guest to 10mps.
More can be found in this forum thread on the Virtualbox site.
For a ticket in this regard (that seems to be marke as fixed but isn't, at least not in version 4.3.10 r93012) see here

JAVA RMI Based Application Hang (client)

Currently I am facing application (JAVA RMI based) hang situation and RMI client GUI become Black.
In the application log does not record any exception and client / server communication has completely stopped at one stage. Once user restart the application it will resume the operations.
Initially we thought it was due to a JVM issue since we saw a dump file during this hang situation. This Dump file was not able to open or copy during this time, it is disappearing once we closed the application. We re-installed the JVM but this issue still hits intermittently.
We noticed this issue started few months after the production cutover and we did not come across during our testing and the initial few months of live cutover.
Application background
-RMI client/server based compiled on java 1.7_55
-OS (client Win7 32 bit & Server Win 2008 32 bit data centre), Win2008 runs on VMWare
-DB MSSql server 2008
It would be great if someone can advice me on this.
Thanks and Regards
Chamantha

Very slow TCP handshake in Java application

Our Java application consists of a client and a server. In our production environment, establishing the connection takes a long time (~40 seconds).
We captured the network traffic using tcpdump and can see the following packets when the connection is established:
start client > server SYN
2 milliseconds later server < client SYN,ACK
38 *seconds* later client > server ACK
In our other environments, all three packets occur nearly instantaneously.
Can anyone suggest what might cause the 38 second delay, or suggest steps to diagnose it? Note that, because this is a production environment, it's hard for us to make diagnostic code changes.
Here are some details about our environment:
The client uses SocketConnector from Apache Mina 1.0.1, which internally uses java.nio.channel.SocketChannel.connect(..).
The client is running inside IBM WebSphere 7.0.0.17
Java version = 1.6.0, Java Compiler = j9jit24, Java VM name = IBM J9 VM
OS is AIX, version 6.1
aren't you running out of descriptor and/or your TCP accept queue is full ?

Categories