users@glassfish.java.net

Re: Glassfish scalability issue

From: <glassfish_at_javadesktop.org>
Date: Mon, 23 Jul 2007 05:19:33 PDT

I have tried running a standalone app, with my own very very simple connection pool. I did not get any network issues. I ran 800 threads using 130 connections to oracle doing a simple query.
I guess the net work issues coulg be a result of all the client connections to the actual web server that is causing network issues.

I have looked at the jstack outputs, and from all the tests I have run, this is always present in a RUNNABLE thread:

at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)

This thread is always holding on to an object that alot of other threads is waiting for. The call stack up to this can vary abit depending on database vendor, but for oracle this is always the call stack:

at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at oracle.net.ns.Packet.receive(Unknown Source)

This thread is holding on to com.sun.enterprise.resource.SJSASResourcePool

And then alot of other threads is waiting for this object to be released.
Looks like java.net.SocketInputStream.socketRead0 is blocking and never released. I have seen a post on a forum for this.
http://forums.oracle.com/forums/thread.jspa?threadID=162390
But does not look like there has been any "proper" solutions for it other than making sure the network does not get failures.

Any thoughts on this?
[Message sent by forum member 'hansflhotmailcom' (hansflhotmailcom)]

http://forums.java.net/jive/thread.jspa?messageID=227680