2 Replies Latest reply on Jul 11, 2003 10:14 AM by micha

    OutOfMemoryError !

    micha Newbie

      Hi all!

      I finally got the ecperf benchmark (version 1.1) running, but unfortunately as soon as I increase the transaction injection rate (from 2 to 4), I get lots of error messages all related to java.lang.OutOfMemoryError.
      I have attached my runtime configuration.
      My test scenario consists of a cluster with 3 application servers (jboss 3.0.6) and a dedicated db server with postgres.
      The Application servers are athlons (2-3 GHz) with all having at least 1GB of memory.

      Here are some of the error messages:

      02:45:22,940 INFO [DefaultPartition] [Thu Jul 3 02:45:22 CEST 2003] [ERROR] UDP.handleIncomingUdpPacket(): exception=java.io.IOException: java.lang.OutOfMemoryError

      02:31:00,468 ERROR [STDERR] java.lang.OutOfMemoryError
      18:01:32,830 ERROR [LogInterceptor] TransactionRolledbackException, causedBy:
      javax.transaction.TransactionRolledbackException: null; nested exception is: java.lang.OutOfMemoryError at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:230)

      What's wrong?
      Anybody ideas?


        • 1. Re: OutOfMemoryError !
          jbossnz Newbie

          Have you set the -Xms and -Xmx options of your Java virtual machine to match your 1G Ram ? The defaults are normally very low values.

          Watch out for database connection problems as your txRate increases (ecperf has about 8 clients per txRate), Postgres has a default of only 32 connections, this should be increased.

          Also seems like the jboss default for the max-pools-size for datasource connections is 20. Add a <max-pool-size>100</max-pool-size> with your choice of connection pool size (not necesarily 100) to postgres-ds.xml in the deploy directory.

          jboss 3.2.1 seems to be better than jboss 3.0.6.

          we're getting a txRate of almost 20 on a 1GB dual athlon 2100MP

          • 2. Re: OutOfMemoryError !
            micha Newbie


            Thanks for your help! I finally got it working ...
            I have set most of those parameters before, except the -Xms option. Do you know any reason, what makes the difference between those two approaches? I think, the vm should be able to reallocate as much memory until the maximum value (mx) is reached - independent from the initial value! Am I wrong? Why?

            I have also been surprised by the fact that I wasn't able to set a larger value for -Xmx that 1900M (or something like that) on a machine having 8GB RAM!