Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We have developed a product in JAVA using SQL Server 2008 R2 as database, Hibernate 3.0 as database framework and GWT 2.4 as front end. We are using JBoss as our application server. We deploy application in standalone mode in JBoss 7.1.1.

The application works properly in 4 of our live servers. In these servers, there are two kinds of scenario. 1. Application and Database both on same server. 2. Application and Database on different server but same network and same subnet.

The above two scenarios the application works fine and it is able to handle normal load.

Recently, we have installed at a client side where we had a type 3 configuration where. 3. Application and Database Server on different server and they both are in different subnet and both are behind different gateway having one firewall as well.

Following is what is happening. 1. The application works with normal response time and then it slows down dramatically, then we have to restart JBoss then also it does not work properly, Now when we restart server, it starts working properly for another 3-4 hours.

The problem seems to be strange as one other application developed in PHP on WAMP seems to be working fine in same condition.

Can anyone throw some light on what could be the possible solutions or what are the different options we should try to find the problem? We are not able to find the exact problem.

Any help will be greatly appreciated.

share|improve this question

1 Answer 1

If I have understood you correctly, it seems like the most likely candidate for problems is JBoss, rather than network latency. Based on the symptoms, I am immediately suspicious of the heap size. If the heap is filling up, the GC pause time and frequency of GCs will increase dramatically and make your server slow down.

To check that out, use JStat. It's a tool included with the JDK and if you use it with the -gccause option, it will tell you why it's doing a garbage collection too. Run it for a while when you start the server and response times are normal, to see how much time is spent in GC then when it slows down, run it for the same amount of time and compare the outputs. If the amount of GC has increased a lot, then that strongly suggests either a memory leak or heap exhaustion.

Alternatively, if you can get hold of JVisualVM, you can see all this data live and represented graphically. It's completely free and will be included if you are using an Oracle/Sun SDK.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.