This discussion is archived
6 Replies Latest reply: Oct 3, 2011 9:43 AM by Vivekvp RSS

Thread Local Area and OutOfMemoryError: nativeGetNewTLA

822988 Newbie
Currently Being Moderated
I'm running a Java server with JRockit 1.5.0. This is an "event processing" application: it reads events on a socket (SNMP port 162) and processes them by saving them to a database and then forwarding a JMS message (this is a client to a JBoss 4.2.2 server). So there are a lot of threads and a lot of socket I/O, between the incoming SNMP traps and the outgoing JDBC and JMS communication.

I recently started seeing some OutOfMemory errors in the logs for this process like the following:

java.lang.OutOfMemoryError: allocLargeObjectOrArray - Object size: 9616, Num elements: 4798
java.lang.OutOfMemoryError: mmAllocArray - Object size: 192, Num elements: 44
java.lang.OutOfMemoryError: nativeGetNewTLA
java.lang.OutOfMemoryError: allocLargeObjectOrArray - Object size: 65552, Num elements: 65536


I googled around and found the following as a way to resolve this issue:

-XXlargeObjectLimit=70k -XXtlaSize:min=70k,preferred=96k

I added these options, but still see some OutOfMemoryErrors. Seems like the large object and malloc complaints are gone, this time there are only complaints about "nativeGetNewTLA".

All processing stops once these OutOfMemoryErrors occur; nothing more is written to the database, and no more messages are written to JMS.

What can I do to fix this? Raise the tlaSize more? If so, how do I know how much to raise it to? Is there any good documentation on what this TLA feature is and under what conditions it starts operating? The total system that I work on consists of a number of Java processes, all doing a combination of network I/O, database access, and JMS, but this is the only process where I've seen these OutOfMemoryErrors occur.

I'd like to understand more about how Thread Local Areas work, as well as how to fix this problem.

Any help would be much appreciated...

Version information:

java -version
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02)
BEA JRockit(R) (build R27.6.5-32_o-121899-1.5.0_19-20091001-2113-linux-ia32, compiled mode)
  • 1. Re: Thread Local Area and OutOfMemoryError: nativeGetNewTLA
    849865 Newbie
    Currently Being Moderated
    Have you seen this thread?: Default XX:MaxPermSize on WebLogic Server 10.3.2.0

    Also, maybe the "Best Practices" JRockit documentation can help you tune your JVM. Have a look if you haven't come across it yet: [http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/bestpractices.html]

    Hope something helps.
  • 2. Re: Thread Local Area and OutOfMemoryError: nativeGetNewTLA
    826517 Newbie
    Currently Being Moderated
    Hello All,

    We are also facing the same issue with JRockit R27.6 and RHEL 5 and Weblogic 10.3.1. Our Production Environment is coming down every week because of this and we have raised an Oracle Support Ticket also, but that is taking its own time.

    We have set our parameters as below
    -jrockit -Xms1024m -Xmx1024m -XXlargeObjectLimit=128k -XXtlaSize:min=128k,preferred=512k

    However now every week in all the environments (including DEV) we are getting "java.lang.OutOfMemoryError: nativeGetNewTLA" issues.

    Please suggest some solutions !
  • 3. Re: Thread Local Area and OutOfMemoryError: nativeGetNewTLA
    Vivekvp Journeyer
    Currently Being Moderated
    Hello,

    I am seeing this from our Collaboration module in Web Center Interaction 10.3.0:

    Exception in thread "PMB Message Receiver" java.lang.OutOfMemoryError: allocLargeObjectOrArray - Object size: 65552, Num elements: 65536

    Using:

    INFO | jvm 1 | 2011/09/16 14:52:51 | Initializing WrapperManager native library.
    INFO | jvm 1 | 2011/09/16 14:52:51 | Java Executable: E:\bea\alui\common\jre\1.5.0_32\bin\java.exe
    INFO | jvm 1 | 2011/09/16 14:52:51 | Windows version: 5.2.3790
    INFO | jvm 1 | 2011/09/16 14:52:51 | Java Version : 1.5.0_12-b04 BEA JRockit(R)
    INFO | jvm 1 | 2011/09/16 14:52:51 | Java VM Vendor : BEA Systems, Inc.

    However, nothing has changed in terms of configuration on the server. What would cause this now?

    From what I read below - changing the options will not help.

    Thanks,

    V
  • 4. Re: Thread Local Area and OutOfMemoryError: nativeGetNewTLA
    Pierluigi Vernetto Pro
    Currently Being Moderated
    IMHO tuning the JVM - apart bumping up the heap size - rarely helps in solving memory issues. With Java 6 the JVM is already self-tuning for most scenarios.

    What really you should do when you have a OOM problem is to take a heap dump (-XX+HeapDumpOnOutOfMemory) and analyze it to understand which objects (normally there is only 1 class of object responsible for the trouble) are taking up most heap space. Use yourkit, eclipse mat, visualvm or any other tool you like. in any case, you need tools, you will get nowhere using only your bare hands.
  • 5. Re: Thread Local Area and OutOfMemoryError: nativeGetNewTLA
    RenévanWijk Oracle ACE
    Currently Being Moderated
    This is probably due to the fragmentation of the heap.

    As more and more garbage collection are run, the heap gets fragmented, which can result that
    large objects cannot be allocated. Usually, after each full garbage collection a compaction is run, i.e.,
    moving objects in order to create more contiguous space.

    How is your JVM tuned, are you using the pausetime or deterministic scheme?

    More information can be found here: http://middlewaremagic.com/weblogic/?p=7083
  • 6. Re: Thread Local Area and OutOfMemoryError: nativeGetNewTLA
    Vivekvp Journeyer
    Currently Being Moderated
    Hello,

    I have no idea how it is tuned. It is a black box to me. I use all default settings. A config file was modified in ptcollaborationserverd.bat:

    rem Large Settings -- For large scale deployments with very heavy component usage
    set JVM_1=-server -Xms400m -Xmx600m -Xmanagement:autodiscovery=true,authenticate=false,ssl=false,port=7091


    For Collaboration - I did install JRockit Mission control.

    Thanks for the article - I will take a look and get a better understanding.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points