It doesn't depend on the hardware directly, it depends on what you'll be running on it. This is a case of monitoring and scaling accordingly, you can't predict it ahead except for "if you're going to use a lot, give a lot". Garbage collection might need some attention though, I suggest you read the documentation to pick a proper strategy for your current AND future requirements.
Thanks for the quick reply. I will check that out.
Right now, my problem is that my application has a very high volume of transactions. It comes to a point that it consumes TCP window buffer size and when the size is not enough, the application suddenly stops and gets disconnected. I'm not sure what causes that.