I'm running JBoss 3.2.2 under HP-UX11. I have a cron job that starts a java client that connects to one of the EJB's every hour for half an hour, and executes a method on that session bean.
Everything in nice until jboss reaches its heap limit (set to 400 M). It takes a while to get there (24-32 hours). When this limit is reached the performance decreases to about one third and some threads (the client starts 15 threads, each of theese threads executing the same method) get the java.net.SocketTimeoutException. Here's the details:
javax.naming.CommunicationException: Receive timed out. Root exception is java.net.SocketTimeoutException:
Receive timed out
> at java.net.PlainDatagramSocketImpl.receive(Native Method) at
> java.net.DatagramSocket.receive(DatagramSocket.java:697) at
> at javax.naming.InitialContext.lookup(InitialContext.java:347)
> at diclient.common.EJBUtil.getHome(EJBUtil.java:35)
> at TestDBA.getSiteID(TestDBA.java:179)
> at TestDBA.(TestDBA.java:84)
> at CallService.main(CallService.java:85)
Initially the max heap was set at 800M, which would just delay the occurence of the problem.
Meanwhile, performing the same operation through the browser and the web tier is still ok, with the expected response times.