users@glassfish.java.net

Glassfish v2.1 hangs on high volume

From: <glassfish_at_javadesktop.org>
Date: Mon, 08 Jun 2009 01:27:52 PDT

Hi All,

I'm running Glassfish v2.1 on AIX with JDK 1.6 (64 bit).

I have a deployed a webservice (using JAXWS). I have a client that will consume this webservice at the rate of about 12 transactions per second.

The webservice does only one thing: write a record to an Oracle table. When the client starts triggering, it will take about 2-3 minutes for Glassfish to hang - everything hangs include the admin port and the http port. I cannot login to admin console or access the webservice again.

What can I do to troubleshoot?

If it helps, here's my code (it normally hangs just before the first try statement):
        public void locationNotification(
                @WebParam(name = "correlator", targetNamespace = "http://www.csapi.org/schema/parlayx/terminal_location/notification/v2_2/local")
                String correlator,
                @WebParam(name = "data", targetNamespace = "http://www.csapi.org/schema/parlayx/terminal_location/notification/v2_2/local")
                List<LocationData> data,
                @WebParam(name = "criteria", targetNamespace = "http://www.csapi.org/schema/parlayx/terminal_location/notification/v2_2/local")
                EnteringLeavingCriteria criteria) {


                logger.debug(correlator);

                try
                {
                        logger.trace("new InitialContext()");
                        ctx = new InitialContext();
                        logger.trace("ctxlookup");
                        ds = (DataSource)ctx.lookup("jdbc/mandplbs");
                        logger.trace("getConnection");
                        cnx = ds.getConnection();

                        if(cnx != null) {
                                logger.trace("sql =");
                                String sql = "{call mandplbs_test_proc(?)}";
                                logger.trace("cnx.prepareCall");
                                CallableStatement stmt = cnx.prepareCall(sql);
                                logger.trace("setString");
                                stmt.setString(1, correlator);
                                logger.trace("stmt.execute");
                                stmt.execute();
                                logger.trace("stmt.close");
                                stmt.close();
                                logger.trace("cnx.close");
                                cnx.close();
                        }
                }
                catch(NamingException ex)
                {
                        ex.printStackTrace();
                }
                catch(SQLException ex)
                {
                        ex.printStackTrace();
                }
                catch(Exception ex)
                {
                        ex.printStackTrace();
                        logger.debug("Uncaught exception", ex);
                }
[Message sent by forum member 'masrudyn' (masrudyn)]

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