Synchronisation of Garbage Collections in Coherence Storage  Nodes

Hi,
We have noticed an issue in Coherence 3.5 whereby the Garbage Collections on the storage nodes are run in parallel with one another.
Whilst we have not seen any major issues with this so far, it is of concern to us as having several storage nodes become unresponsive simultaneously may lead to cluster splits, service slowdown/unavailability, unnecessary rebalancing of data, and lost data.
Has anyone else experienced this issue before? If so, what approach, if any, did you take to resolve it? Is using data affinity the solution?
Cheers

Hi
As you probably know, Coherence has no control over garbage collection.
Here is a set of GC options for proper use of CMS on multi-core platform for a Hotspot 1.6.0_xx JVM (where xx must be >= 22 for some options to work properly). You may need to experiment with these values to derive the best performance for your application.
-server
-d64 (Solaris and HP-UX for 64-bit JVM; for 32-bit JVM -d32; other platforms have separate 32-bit and 64-bit installs)
-verbose:gc (writes GC log to stdout; use -Xloggc to direct it to some custom location)
-Xms<heapsize>m
-Xmx<heapsize>m
-XX:PermSize=<permsize>m
-XX:MaxPermSize=<permsize>m
-XX:NewSize=<up to heapsize/2>m
-XX:MaxNewSize=<up to heapsize/2>m
-XX:+HandlePromotionFailure
-XX:TargetSurvivorRatio=<nn> (somewhere between 60 to 80, decrease if you note direct Survivor space overflow)
-XX:MaxTenuringThreshold=8
-XX:SoftRefLRUPolicyMSPerMB=5000 ("a soft reference will survive (after the last strong reference to the object has been collected) for 5000ms times the number of megabytes of free space in the heap")
-XX:+AggressiveOpts
-XX:+DoEscapeAnalysis (from 1.6.0_22)
-XX:+UseCompressedOops (only on 64-bit JVM, from 1.6.0_22)
-XX:+DisableExplicitGC
-XX:+UseParNewGC
-XX:ParallelGCThreads=<between numcores und numcores/2 - e.g. numcores * 3/4>
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+ParallelRefProcEnabled
-XX:CMSInitiatingOccupancyFraction=<nn> (start with 75 and decrease in case CMS cannot keep up with the app)
-XX:+UseCMSInitiatingOccupancyOnly
-XX:-TraceClassUnloading
-XX:+PrintTenuringDistribution
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError
Do not combine "ParallelGC" with CMS, you need to switch to "ParNewGC" to do so... (This is one of the more-or-less hidden secrets of Hotspot GC tuning.)
Paul

Similar Messages

  • When will wls try to garbage collect ?

    The docs for the option "Low memory GC threshold" say that this is the "Threshold
    level at which WLS will try to garbage collect once the granularity report has
    been met".
    My question is: When is this condition met ? If at least once there has been a
    granularity report in the log ? Or if the server has been set to Warning state
    The problem Im trying to address is that my "Low memory GC threshold" is set to
    20% and my server has reached only 1% free memory and garbage collection did not
    run, I had to force it via console.
    Thanks in advance, Giselle

    I am wonder when the WLS activate or passivate session and how can I          control it?
              > From documents, sessionWillPassivate in HttpSessionActivationListener will
              be
              > executed when a session is about to passivate on one server (ie. WLS
              instance)
              > and the sessionDidActivate method when the same session has been activated
              on
              > a second server.
              >
              > But I have monitor the behavior for a long time by setting
              PersistentStoreType
              > to file, memory, replicated. sessionDidActivate and sessionWillPassivate
              will
              > never executed. I expected it will passivate and activate when session is
              replicated
              > between servers or persist in files. Any ideas?
              What version of WL? the interface you describe was new in Servlet 2.3, so it
              may not be implemented until 6.1 or even 7.x.
              Peace,
              Cameron Purdy
              Tangosol, Inc.
              http://www.tangosol.com/coherence.jsp
              Tangosol Coherence: Clustered Replicated Cache for Weblogic
              "Karen Law" <[email protected]> wrote in message
              news:3ec86188$[email protected]..
              >
              

  • Creating thread (service)? in storage nodes using my custom classes?

    Is it possible to create one's own thread in a storage node - say, by defining a service with a custom class?
    The service configuration element states
    +"<service-component>      Required      Specifies either the fully qualified class name of the service or the relocatable component name relative to the base Service component. "+
    I have tried specifying my own class (fully qualified class name) here, which is in the classpath and implements com.tangosol.net.InvocationService but it is never loaded, and throws the following exception into my app when it calls CacheFactory.getService(name):
    Exception in thread "main" java.lang.IllegalArgumentException: Unknown service type: Invocation
    at com.tangosol.coherence.component.net.Cluster.ensureService(Cluster.CDB:65)
    at com.tangosol.coherence.component.util.SafeCluster.ensureSafeService(SafeCluster.CDB:14)
    at com.tangosol.coherence.component.util.SafeCluster.ensureService(SafeCluster.CDB:11)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:808)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:294)
    at com.tangosol.net.CacheFactory.getService(CacheFactory.java:644)
    Is this the wrong way to do it? Is there another way (other than something ugly like creating a thread in an invocable)?
    Thanks

    Hi
    Can you explain what you are trying to accomplish in more detail? Are you trying to run a background thread on the member that owns the data?
    In any case your really shouldn't be adding new service types or service components in the cluster configuration file. See this thread Re: <service-name> tag in config XML file
    thanks
    Paul

  • DocumentBuilderFactory.newInstance() only works after garbage collection

    Hi all,
    I am stucked with a strange behaviour of "DocumentBuilderFactory.newInstance()".
    I use the DocumentBuilderFactory in an applet
    to parse an xml-file.
    My applet starts ok until the line 5 (newInstance) gets called.
    At this time it seems that nothing happens anymore and that
    the applet fails to continue.
    But when I open up the java console and hit
    g (garbage collection) the xml parsing continues immediatly
    and my applet completes loading and runs ok.
    1 private void genarteDomNodes() {
    2 try {
    3 // ---- Parse XML file ----
    4 DocumentBuilderFactory factory =
    5 DocumentBuilderFactory.newInstance();
    6 DocumentBuilder builder =
    7 factory.newDocumentBuilder();
    8 Document document = builder.parse(
    9 new URL(this.myModules_xml).openStream() );
    10 // ---- Get list of nodes to given element tag name ----
    11 NodeList ndList =
    12 document.getElementsByTagName("meter-group");
    13 printNodesFromList( ndList );
    14 } catch( SAXParseException spe ) {
    15 ...
    16 } catch( SAXException sxe ) {
    17 ...
    18 } catch( ParserConfigurationException pce ) {
    19 ...
    20 } catch( IOException ioe ) {
    21 ...
    22 }
    23 }

    I am still stucked with this problem. But I found out how to enable JAXP debug output for applets (setting system properties isn't allowed for applets).
    This puts somemore output to the java console. It might help someone to understand my problem. I also printed some debug messages to track down my problem.
    Following is the console output of my applet:
    URL of XML to parse = "http://10.110.132.195/c8000-modules.xml"
    entering "genarteDomNodes"
    just before calling "DocumentBuilderFactory.newInstance()"
    JAXP: find factoryId =javax.xml.parsers.DocumentBuilderFactory
    !!! at this time the applet "hangs" and nothing happens;
    until I hit the "g" button. Then applet continues immediatly and prints:
    JAXP: loaded from fallback value: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
    JAXP: created new instance of class com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl using ClassLoader: sun.plugin.security.PluginClassLoader@32060c
    After invoking the garbage collector the applet continue to parse the xml file and runs as expected.
    Can someone help me please.

  • Strange stack traces with 3.6.1-p4 with storage node restart

    We've just had a storage node restart in our production environment. Everything recovered but we saw the following stack traces. Can anyone explain what they mean?
    2011-10-04 15:07:57,954 ERROR Coherence - 2011-10-04 15:07:57.954/838494.283 Oracle Coherence GE 3.6.1.4 <Error> (thread=DistributedCache:DefaultCacheService, member=1): An entry was inserted into the backing map for the partitioned cache "grid-service-invocation" that is not owned by this member; the entry will be removed.
    ReadWriteBackingMap$InternalMapListener$1{ReadWriteBackingMap updated: key=Binary(length=31, value=0x15BD0F00004E13343139313934363537373034373337373332340141B30A40), old value=Binary(length=58, value=0x12053315BE0F0100BD0F00004E13343139313934363537373034373337373332340141B30A4001B90F000042BA7F0142972B4002644003154A00), new value=Binary(length=51, value=0x15BE0F0100BD0F00004E13343139313934363537373034373337373332340141B30A4001B90F000042BA7F0142972B40026440)}
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$Storage.doBackingMapEvent(PartitionedCache.CDB:74)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$Storage$DeferredEvent.run(PartitionedCache.CDB:37)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService$PartitionControl.unlock(PartitionedService.CDB:17)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onTransferRequestCompleted(PartitionedService.CDB:144)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService$TransferRequest$Poll.onCompletion(PartitionedService.CDB:6)
    at com.tangosol.coherence.component.net.Poll.close(Poll.CDB:13)
    at com.tangosol.coherence.component.net.Poll.onResponded(Poll.CDB:32)
    at com.tangosol.coherence.component.net.Poll.onResponse(Poll.CDB:3)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService$TransferRequest$Poll.onResponse(PartitionedService.CDB:5)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:26)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:33)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onNotify(PartitionedService.CDB:3)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onNotify(PartitionedCache.CDB:3)
    at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
    at java.lang.Thread.run(Thread.java:619)From the resulting thread dump I can see the following stack trace (note that there were a number of getAll() requests being made over tcp-extends at this time):
    Thread[Proxy:ExtendTcpProxyService:TcpAcceptorWorker:18,5,Proxy:ExtendTcpProxyService:TcpAcceptor]
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:485)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.waitPolls(Grid.CDB:18)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.waitPolls(PartitionedCache.CDB:1)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.sendPartitionedRequest(PartitionedCache.CDB:69)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.getAll(PartitionedCache.CDB:12)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.getAll(PartitionedCache.CDB:16)
    com.tangosol.util.ConverterCollections$ConverterCacheMap.getAll(ConverterCollections.java:2477)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ViewMap.getAll(PartitionedCache.CDB:5)
    com.tangosol.coherence.component.util.SafeNamedCache.getAll(SafeNamedCache.CDB:1)
    com.tangosol.coherence.component.net.extend.proxy.NamedCacheProxy.getAll(NamedCacheProxy.CDB:1)
    com.tangosol.coherence.component.net.extend.messageFactory.NamedCacheFactory$GetAllRequest.onRun(NamedCacheFactory.CDB:6)
    com.tangosol.coherence.component.net.extend.message.Request.run(Request.CDB:4)
    com.tangosol.coherence.component.net.extend.proxy.NamedCacheProxy.onMessage(NamedCacheProxy.CDB:11)
    com.tangosol.coherence.component.net.extend.Channel.execute(Channel.CDB:39)
    com.tangosol.coherence.component.net.extend.Channel.receive(Channel.CDB:26)
    com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer$DaemonPool$WrapperTask.run(Peer.CDB:9)
    com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:32)
    com.tangosol.coherence.component.util.DaemonPool$Daemon.onNotify(DaemonPool.CDB:63)
    com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
    java.lang.Thread.run(Thread.java:619)

    Hi,
    The reason for the error message:
    The backing map for a partitioned cache may only contain keys that are owned by that member. Cache requests are routed to the service member owning the requested keys, ensuring that service members will only process requests for keys which they own. This message indicates that the backing map for a cache detected an insertion for a key which is not owned by the member. This is most likely caused by a direct use of the backing-map as opposed to the exposed cache APIs in user code running on the cache server.
    Check the link for more details:
    http://coherence.oracle.com/display/COH35UG/Partitioned+Cache+Service+Log+Messages
    Hope this helps!
    Cheers,
    NJ

  • Needing JARs on storage nodes

    Hi Guys,
    With the advent of PIF/POF is there still a need for the classes you intend to process with entry processors to exist on on the storage nodes?
    I read one message somewhere (someone was getting a classpath error) that implied that despite using 3.2/376 he/she still needed the classes on the classpath.
    Kind Regards,
    Max

    Hi Robert,
    PIF/POF does not necessarily help you anywhere with
    getting rid of any classes ..Yet ;-)
    - it is not currently used at serialization/deserialization, yetCorrect. This is a work in progress, and this specific part of it will be in the next release.
    according to the Changelog and the forums, it is only used by Coherence*ExtendCorrect. It will be used more widely over time.
    - XMLBeans are not PIF/POF-based yetCorrect. This too will change.
    - PIF/POF still refers to class names, so it is currently something like a more versatile
    ExternalizableLite, but they still need the referred classes and all their runtime
    dependency to exist in the storage-enabled node classloadersPIF/POF itself does not refer to class names, but a platform-specific binding does. In Java, we encode the binding in an XML file, and use it as the basis to configure a POF context.
    You will need the following things in a
    storage-enabled node:
    - all Invocable/EntryProcessor/EntryAggregator
    classes
    - all cache-store/cache-loader classes
    - all the runtime dependency of the previous
    - all other classes referred in the cache
    configuration files (custom eviction policies,
    KeyAssociator implementors, etc.)This is true at the current time (release 3.2). Some of it will always be true. As the tools advance, Coherence will do more for you, yet (as always) existing applications will continue to work without changes.
    For example, it will be possible to define classes of objects (what we call a schema) for Coherence to manage without actually writing the code for them, and Coherence will provide the libraries (e.g. documentation, source code, binaries, etc.) necessary for expressing those classes in Java, .NET, etc. That means that Coherence will do more work for you automatically and dynamically in the future, but in the mean time you still have to spell some things out.
    If you use indexes, or queries, you will also need
    all the classes of entries stored in the caches (an
    index uses it when the data is put in the backing
    map; querying uses it, if an index does not exist, or
    does not fully resolve a query).See above ;-)
    Peace,
    Cameron Purdy
    Tangosol Coherence: The Java Data Grid

  • Why does my console NOT run as a storage node

    help!
    I created a minimal console script, for testing, to run as a storage node, with my own classes in the classpath.
    Unfortunately, it does not act as a storage node, even though I patterned it after the console script in the coherence/bin directory.
    The failure symptom is that my application, run on a non-storage-enabled jvm, fails with "storage is not configured."
    If instead of the console, I run as a storage node a jvm, with the same command line options, except with my own mainline that loops dumping the cache, the application in the other jvm works.
    The console does work as a client node, and is able to use my custom classes from the classpath. Hence it is participating in the cluster (the whole cluster runs on my PC).
    I assume there is something simple wrong here, but it escapes me.
    Thanks in advance
    Run Command
    /java/SDK_EE/jdk/bin/java
    -cp '/tmp/rvcinf-test/bin;../../../dist/rvcicache.jar;../../../lib/coherence.jar'
    -server -Xms256m -Xmx512m
    -Dtangosol.coherence.management=all -Dtangosol.coherence.management.remote=true
    -Dtangosol.coherence.distributed.localstorage=true -Dlogfile=logs/runsvrx-coherence.log
    com.tangosol.net.CacheFactory
    How the Working Java Storage Node is Run
    /java/SDK_EE/jdk/bin/java
    -cp '/tmp/rvcinf-test/bin;../../../dist/rvcicache.jar;../../../lib/coherence.jar'
    -server -Xms256m -Xmx512m
    -Dtangosol.coherence.management=all -Dtangosol.coherence.management.remote=true
    -Dtangosol.coherence.distributed.localstorage=true -Dlogfile=logs/runsvrx-coherence.log
    test.MainlineStorageNode
    Notes:
    My classes in:/tmp/rvcinf-test/bin and ../../../dist/rvcicache.jar
    Shown on multiple lines for readibility - was executed as one line (this is an output of bash after set -x)
    Coherence3.4.1/407
    Edited by: mesocyclone on Sep 18, 2009 11:10 PM

    Hi,
    The CacheFactory console does not automatically join all cache services. If you join the cache-service that your application is using from the console, e.g.:
    Map (?): cache foo
    2009-09-19 20:55:07.606/6.305 Oracle Coherence GE 3.6/480 <Info> (thread=main, member=1): Loaded cache configuration from "file:/Users/rhlee/work/coherence/env_configs/v2/coherence-cache-config.xml"
    2009-09-19 20:55:07.779/6.478 Oracle Coherence GE 3.6/480 <D5> (thread=DistributedCache, member=1): Service DistributedCache joined the cluster with senior service member 1
    ...it should work.
    thanks,
    -Rob

  • PermGen errors on Storage Nodes

    The error in itself is....
    OutOfMemoryError: PermGen space
    This occurs simultaneously on all storage nodes after the cluster has been up a number of hours. Cluster is configured as partitioned and actual data size is only being reported as about 12Mb through RTView.
    We're running 3 storage nodes at 4096mb each and 3 proxies of 2048m. We are NOT specifically setting the PermSize (i.e. not setting -XX:PermSize=).
    Coherence Version = 3.5.3
    JVM is Hotspot 64bit on windows server 2008........
    java version "1.6.0_21"
    Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0-b17, mixed mode)
    Machine is an HP blade (8 core [16 core with Hyperthreads] and 24Gb memoy) so we are way off the limits in terms of object data storage.
    Possible fixes - we are going to set =XX:PermSize=512m and probably move to JRockit however I'd like to know if anyone has experienced this and how they fixed it.
    Edited by: Kunal on Jan 23, 2012 8:55 PM

    Kunal wrote:
    The error in itself is....
    OutOfMemoryError: PermGen space
    This occurs simultaneously on all storage nodes after the cluster has been up a number of hours. Cluster is configured as partitioned and actual data size is only being reported as about 12Mb through RTView.
    We're running 3 storage nodes at 4096mb each and 3 proxies of 2048m. We are NOT specifically setting the PermSize (i.e. not setting -XX:PermSize=).
    Coherence Version = 3.5.3
    JVM is Hotspot 64bit on windows server 2008........
    java version "1.6.0_21"
    Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0-b17, mixed mode)
    Machine is an HP blade (8 core [16 core with Hyperthreads] and 24Gb memoy) so we are way off the limits in terms of object data storage.
    Possible fixes - we are going to set =XX:PermSize=512m and probably move to JRockit however I'd like to know if anyone has experienced this and how they fixed it.
    Edited by: Kunal on Jan 23, 2012 8:55 PMThis can be caused by a few things, but JVM implementation most likely will not make a difference (except JRockit may give you something to diagnose this with), although someone mentioned a bug which was JVM implementation specific and was causing PermGen OOM.
    You should get some memory snapshots at the time of OutOfMemory (look up the documentation for the exact JVM option).
    Afterwards look at how many instances what classes sit in the Perm generation (I believe, Visual VM should be able to help you with this), that may give you more information on what is polluting the perm gen.
    It may simply be too many classes loaded (increase this to a sane value, I saw JVMs used in production which needed around 80-100Mb PermGen). Half a gig seems to be too much.
    Other things which use PermGen is intern()-ed Strings. There are a few libraries which used a horrible and what is worse, unbounded amount of intern()-ed strings, there was at least one XML processing library suffering from this.
    Best regards,
    Robert

  • DataGrid Garbage Collection problem

    Hi,
    I'm quite confused about the DataGrid component's garbage collection. I've made a simple test code which adds a datagrid to the display list. If I remove the component from its parent without clicking any item, the element is collected correctly. However, if I click an item, the datagrid is no longer removed. Otherwise, if I use the keyborad to navigate through the items, the component is removed.
    The profiler doesn't display any inbound reference to the datagrid. So, what's the problem? Is Flex retaining any reference when I use the mouse?
    Thanks in advance.

    Hi,
    here it goes:
    the main application:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
         <mx:Script>
              <![CDATA[
                   import com.adur.nodes.Child;          
                   private var _child:Child;
                   private function onLinkClickHandler(event:MouseEvent) : void {                    
                        _linkButton.enabled      = false;
                        _unlinkButton.enabled      = true;
                        _child = new Child();
                        addChild(_child);
                   private function onUnlinkClickHandler(event:MouseEvent) : void {               
                        _linkButton.enabled      = true;
                        _unlinkButton.enabled      = false;
                        removeChild(_child);
                        _child = null;          
                        System.gc();
              ]]>
         </mx:Script>
         <mx:VBox width="100%" height="100%">
              <mx:HBox width="100%" height="30">
                   <mx:Button id="_linkButton" width="100" label="Link" click="onLinkClickHandler(event)" />
                   <mx:Button id="_unlinkButton" width="100" label="Unlink" enabled="false" click="onUnlinkClickHandler(event)" />
              </mx:HBox>
              <mx:Box     id="_content" width="100%" height="100%" />
         </mx:VBox>
    </mx:Application>
    the Child class:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" >
         <mx:ArrayCollection id="collection">
              <mx:source>
              <mx:Array>
                   <mx:Object label="Option1" score="85" />
              </mx:Array>
              </mx:source>
         </mx:ArrayCollection>
         <mx:List dataProvider="{collection}" />
    </mx:Canvas>
    thanks harUI.

  • Full Garbage Collection Problem

    Hi All,
    We are working on NetWeaver Application Server JAVA 7.0
    I am getting an error message in of the the EWA reports for JAVA system. The red alert says as below:
    The maximum ratio of full garbage collections to total garbage collections in the reported interval was higher than 90%.
    In order to solve the above problem, I increased Heap Memory for all JAVA Server nodes to 3072 (earlier it was 2048 for all the server nodes). However, still I am getting same error in EWA report.
    Can any one help me in further analysing and solving the above problem?
    Your help is appreciated.

    Here are links to some of the tools. I have worked with [IBM GC for IBM JVM|http://www.ibm.com/developerworks/java/library/j-ibmtools2/index.html]. You may have to try others that can read Sun JVM's GC log.
    http://www.tagtraum.com/gcviewer.html
    http://www.yourkit.com/overview/index.jsp
    https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=HPJMETER
    http://java.sun.com/performance/jvmstat/visualgc.html

  • Garbage Collection settings

    Hi All
    I have the following snippet from GC logs:
    Can we determine settings of VM?
    Are these settings too high, I mean is large amount of memory thrown at it?
    Also based on pattern in used Tenured Generation ( Ex: 271844K) can I determine a memory leak.
    Is it good or bad to use these kind of settings.
    Please let me know.
    Bib
    Heap
    def new generation total 104832K, used 57076K [0x10010000, 0x171d0000, 0x171d0000)
    eden space 93184K, 51% used [0x10010000, 0x12f32e20, 0x15b10000)
    from space 11648K, 75% used [0x15b10000, 0x163aa270, 0x16670000)
    to space 11648K, 0% used [0x16670000, 0x16670000, 0x171d0000)
    tenured generation total 932096K, used 409688K [0x171d0000, 0x50010000, 0x50010000)
    the space 932096K, 43% used [0x171d0000, 0x301e6148, 0x301e6200, 0x50010000)
    compacting perm gen total 131072K, used 75403K [0x50010000, 0x58010000, 0x58010000)
    the space 131072K, 57% used [0x50010000, 0x549b2e10, 0x549b3000, 0x58010000)
    33256.362: [Tenured: 409688K->271844K(932096K), 1.8892192 secs] 466764K->271844K(1036928K), [Perm : 75403K->75403K(131072K)] Heap after GC invocations=121:
    Heap
    def new generation total 104832K, used 0K [0x10010000, 0x171d0000, 0x171d0000)
    eden space 93184K, 0% used [0x10010000, 0x10010000, 0x15b10000)
    from space 11648K, 0% used [0x15b10000, 0x15b10000, 0x16670000)
    to space 11648K, 0% used [0x16670000, 0x16670000, 0x171d0000)
    tenured generation total 932096K, used 271844K [0x171d0000, 0x50010000, 0x50010000)
    the space 932096K, 29% used [0x171d0000, 0x27b49228, 0x27b49400, 0x50010000)
    compacting perm gen total 131072K, used 75403K [0x50010000, 0x58010000, 0x58010000)
    the space 131072K, 57% used [0x50010000, 0x549b2e10, 0x549b3000, 0x58010000)
    } , 1.8893669 secs]
    Total time for which application threads were stopped: 1.9019171 seconds

    Hi
    before the RBSMaintainer was run against a SharePoint content database (WSS_Content_XYZ)  for ORPHAN BLOB cleanup, from one of the web front end server and after they make  the database Read-only,  the RBS storage has nearly
    3.5 Million of BLOB files.
    The Original_Wss_Content_XYZ  database restored from   backup of WSS_Content_XYZ  database,
    if we restore every time  the same database I found that BLOBS are deleting from RBS storage.
    I  open ticket and ask Microsoft support they saying its by a filestream garbage collection and in background its deleting orphan blobs ,
    Is it  the case still this  background process not deleted the all Orphan BLOBS from this database and its why showing
    orphan_cleanup_in_progress = true; and is any way to stop the background process .
    for this database is there any way to check
    how many Orphans BLOBS actually exists in  and while it is running or after  how we can check the history for deleted BLOBS in  database
    adil

  • Hotspot core dumping during JVM garbage collection ?

    We have an application which calls a 3rd party supplied server API which has recently been upgraded to use Java 1.5
    We are getting the following error reported by our client application. The application is also now running Java 1.5 but references many classes in jar files which would have quite old code in.
    The supplier of the API has stated that the problem requires us to recompile all our jar files using v 1.5 ( including things like jconnect and jms ?!?!? ). This sounds like a bit of a cop-out to me, not to mention being impossible since we don't have the source for things like jconnect.
    I suspect that there is a garbage collection problem at the bottom of all this, but I'm not sure how I can "prove" this, nor do I currently have any real clue as to how to fix any GC problem that may exist.
    The application is supposed to wait for a message on a MQSeries queue and then transforms it via Xalan XSLT and sends it to a Server application. I've tried playing around with heap sizes etc but that just seems to make it worse. If I leave it at the settings that the previous version used then the client at least manages to process a couple of messages before core dumping. There doesn't seem to be a consistent trigger event to cause the core dump ( it's not a message arriving on a queue for example ) but it does seem to be fairly consistent timewise, i.e. after
    Any ideas gratefully accepted.
    Here's a logfile excerpt from my applications showing the Hotspot error message :
    =====================================================================================
    08-Jul-2008 10:01:05 Waiting for messages from COLT.BBFS
    08-Jul-2008 10:02:05 Waiting for messages from COLT.BBFS
    08-Jul-2008 10:03:05 Waiting for messages from COLT.BBFS
    405.815: [GC [PSYoungGen: 17331K->9244K(37632K)] 111702K->103615K(192128K), 0.1615910 secs]
    405.977: [Full GC#
    # An unexpected error has been detected by HotSpot Virtual Machine:
    #  SIGBUS (0xa) at pc=0xfe141348, pid=2600, tid=8
    # Java VM: Java HotSpot(TM) Server VM (1.5.0_03-b07 mixed mode)
    # Problematic frame:
    # V  [libjvm.so+0x141348]
    # An error report file with more information is saved as hs_err_pid2600.log
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    =====================================================================================
    The logfile referred to in the error message contains the following.
    =====================================================================================
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # SIGBUS (0xa) at pc=0xfe141348, pid=2600, tid=8
    # Java VM: Java HotSpot(TM) Server VM (1.5.0_03-b07 mixed mode)
    # Problematic frame:
    # V [libjvm.so+0x141348]
    --------------- T H R E A D ---------------
    Current thread (0x001484d8): VMThread [id=8]
    siginfo:si_signo=10, si_errno=0, si_code=1, si_addr=0x0000080f
    Registers:
    O0=0x00487588 O1=0xfe7d6454 O2=0x000079b0 O3=0x00007800
    O4=0x00008868 O5=0x00147d48 O6=0xf8781460 O7=0xfe0f7938
    G1=0xe52aaae8 G2=0x00000003 G3=0x00000003 G4=0x001484d8
    G5=0xf8781d98 G6=0x00000002 G7=0xf8781d98 Y=0x805683e2
    PC=0xfe141348 nPC=0xfe14134c
    Top of Stack: (sp=0xf8781460)
    0xf8781460: fe786000 00c6ba20 fe10013c e54bab68
    0xf8781470: 0000080f e54bab6c 0000080f 00000004
    0xf8781480: 00487588 00000134 e54bab6c 00000004
    0xf8781490: 00000001 00000000 f87814c0 fe17aef4
    0xf87814a0: fe6485b4 fe7d899c 001484d8 0011da40
    0xf87814b0: 00148988 00148c10 00148d7c f8781880
    0xf87814c0: 007c3389 007c3c0e 00000f87 00008868
    0xf87814d0: 00008800 00487588 fe141310 fe7d6454
    Instructions: (pc=0xfe141348)
    0xfe141338: ec 06 c0 1a 80 a5 a0 00 22 40 00 0a ba 07 60 01
    0xfe141348: f2 05 a0 00 ae 0e 60 03 80 a5 e0 03 22 40 00 05
    Stack: [0xf8702000,0xf8781d98), sp=0xf8781460, free space=509k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V [libjvm.so+0x141348]
    V [libjvm.so+0x17aefc]
    V [libjvm.so+0x2d557c]
    V [libjvm.so+0x300ef8]
    V [libjvm.so+0x301e84]
    V [libjvm.so+0x2ff950]
    V [libjvm.so+0x29df30]
    V [libjvm.so+0x362b44]
    V [libjvm.so+0x6436f0]
    VM_Operation (0xe03012b0): parallel gc system gc, mode: safepoint, requested by thread 0x0031bca0
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x00b2c028 JavaThread "Thread-4" [_thread_in_native, id=85]
    0x007f5048 JavaThread "Thread-0" [_thread_blocked, id=84]
    0x00c27cf0 JavaThread "Notification Delivery" [_thread_blocked, id=81]
    0x0026fa08 JavaThread "RMI LeaseChecker" daemon [_thread_blocked, id=73]
    0x00821048 JavaThread "RMI RenewClean-[162.11.2.32:44425]" daemon [_thread_blocked, id=70]
    0x0031bca0 JavaThread "GC Daemon" daemon [_thread_blocked, id=67]
    0x00cd5d28 JavaThread "RMI Reaper" [_thread_blocked, id=66]
    0x003c9300 JavaThread "Timer-0" daemon [_thread_blocked, id=65]
    0x00929fe0 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=64]
    0x0089bf18 JavaThread "SeedGenerator Thread" daemon [_thread_blocked, id=42]
    0x00c47248 JavaThread "Pool thread #7" daemon [_thread_blocked, id=38]
    0x00c466a0 JavaThread "Pool thread #6" daemon [_thread_blocked, id=37]
    0x00311850 JavaThread "Pool thread #5" daemon [_thread_blocked, id=36]
    0x00287a40 JavaThread "Pool thread #4" daemon [_thread_blocked, id=35]
    0x00286e98 JavaThread "Pool thread #3" daemon [_thread_blocked, id=34]
    0x00c134b0 JavaThread "Pool thread #2" daemon [_thread_blocked, id=33]
    0x00ad09e0 JavaThread "Pool thread #1" daemon [_thread_blocked, id=32]
    0x00286cd8 JavaThread "PoolThreadManager" daemon [_thread_blocked, id=31]
    0x00c129e0 JavaThread "Channel Reaper" daemon [_thread_blocked, id=30]
    0x00c669e8 JavaThread "ORB Daemon Thread" daemon [_thread_blocked, id=29]
    0x00b10170 JavaThread "Worker for ServerProtocol: (iiop) /0.0.0.0:20168" daemon [_thread_blocked, id=22]
    0x008a17e0 JavaThread "Syn~ Client" daemon [_thread_blocked, id=21]
    0x003dc378 JavaThread "PoolScavenger0" daemon [_thread_blocked, id=20]
    0x0015a928 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=15]
    0x00159880 JavaThread "CompilerThread1" daemon [_thread_blocked, id=14]
    0x00158a18 JavaThread "CompilerThread0" daemon [_thread_blocked, id=13]
    0x00157b98 JavaThread "AdapterThread" daemon [_thread_blocked, id=12]
    0x00156dc8 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=11]
    0x0014ccd8 JavaThread "Finalizer" daemon [_thread_blocked, id=10]
    0x0014ad90 JavaThread "Reference Handler" daemon [_thread_blocked, id=9]
    0x00038238 JavaThread "main" [_thread_in_native, id=1]
    Other Threads:
    =>0x001484d8 VMThread [id=8]
    0x0015c3b0 WatcherThread [id=16]
    VM state:at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
    [0x00037728/0x00037758] Threads_lock - owner thread: 0x001484d8
    [0x00033650/0x00037ba8] Heap_lock - owner thread: 0x0031bca0
    Heap
    PSYoungGen total 37632K, used 9244K [0xf2eb0000, 0xf7ba0000, 0xf8400000)
    eden space 28352K, 0% used [0xf2eb0000,0xf2eb0000,0xf4a60000)
    from space 9280K, 99% used [0xf4a60000,0xf5367080,0xf5370000)
    to space 25216K, 0% used [0xf6300000,0xf6300000,0xf7ba0000)
    PSOldGen total 154496K, used 94371K [0xe8400000, 0xf1ae0000, 0xf2eb0000)
    object space 154496K, 61% used [0xe8400000,0xee028e78,0xf1ae0000)
    PSPermGen total 35584K, used 18260K [0xe4400000, 0xe66c0000, 0xe8400000)
    object space 35584K, 51% used [0xe4400000,0xe55d5158,0xe66c0000)
    Dynamic libraries:
    0x00010000      /dsdvlp/java/jvm/jdk1.5.0_03/bin/java
    0xff350000      /usr/lib/libthread.so.1
    0xff340000      /usr/lib/libdl.so.1
    0xff200000      /usr/lib/libc.so.1
    0xff390000      /usr/platform/SUNW,Sun-Fire-880/lib/libc_psr.so.1
    0xfe000000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/server/libjvm.so
    0xff1e0000      /usr/lib/libsocket.so.1
    0xff2d0000      /usr/lib/libsched.so.1
    0xff1b0000      /usr/lib/libCrun.so.1
    0xff160000      /usr/lib/libm.so.1
    0xff080000      /usr/lib/libnsl.so.1
    0xff060000      /usr/lib/libmp.so.2
    0xff030000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/native_threads/libhpi.so
    0xfdfc0000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/libverify.so
    0xfdf80000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/libjava.so
    0xfdf50000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/libzip.so
    0xfb7e0000      /usr/lib/locale/en_GB.ISO8859-1/en_GB.ISO8859-1.so.2
    0xe4190000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/libnet.so
    0xe3bd0000      /dsdvlp/lib/5/libSolarisNatives.so
    0xe3e90000      /dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/librmi.so
    VM Arguments:
    jvm_args: -Djava.ext.dirs=/dsdvlp/java/tmijar/firs7/lib/cli:/dsdvlp/java/tmijar/firs7/lib/cli/ext:/dsdvlp/java/tmijar/firs7/lib/cmn/OpenORB:/dsdvlp/java/tmijar/firs7/lib/cmn/OpenORB/ext:/dsdvlp/java/tmijar/firs7/lib/cmn:/dsdvlp/java/tmijar/firs7/lib/cmn/ext:/dsdvlp/java/tmijar/firs7/daemonlib -Duser.dir=/dsdvlp/java/tmijar/firs7 -Dopenorb.config=file:/dsdvlp/java/tmijar/firs7/configs/OpenORB/config/SynOpenORB.xml -Dopenorb.home=file:/dsdvlp/java/tmijar/firs7/configs/OpenORB -Dcom.coexis.syn.general.orbbinding=com.coexis.syn.general.orbbinding.openorb.OpenORBBinding_1_4 -Dsun.rmi.dgc.client.gcInterval=360000 -Dsun.rmi.dgc.server.gcInterval=360000000 -Xms32m -Xmx256m -Dcom.coexis.syn.clientcommandsconfiglocation=file://localhost//dsdvlp/java/tmijar/firs7/configs/clientcommands.xml -Dcom.coexis.syn.clientconfiglocation=file://localhost//dsdvlp/java/tmijar/firs7/configs/fsbbtd_client.xml -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
    java_command: com.coexis.syn.mqmessaging.daemon.RunDaemon -p /dsdvlp/bin/5/lndsfsd_fsbbtd.properties start
    Environment Variables:
    JAVA_HOME=/dsdvlp/java/jvm/jdk150
    CLASSPATH=.:/dsdvlp/java/jar/jconnect520.jar:/dsdvlp/java/jar/vbjapp340.jar:/dsdvlp/java/jar/vbjorb340.jar:/dsdvlp/java/jar/javax_jndi120.jar
    PATH=/usr/local/etc:/usr/lang:/usr/openwin/bin:/usr/ucb:/bin:/usr/etc:/usr/local/5/bin:/dsdvlp/bin/5:/dsdvlp/bin/4:/home/app/sybase/5/bin:/home/app/sybase/5/localscripts:/home/app/sybase/5/sqr:/home/app/lang:/home/app/lang/SC2.0.1:/usr/ccs/bin:/usr/local/opt/Acrobat3/bin:/dsdvlp/bin:.
    LD_LIBRARY_PATH=/dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc/server:/dsdvlp/java/jvm/jdk1.5.0_03/jre/lib/sparc:/dsdvlp/java/jvm/jdk1.5.0_03/jre/../lib/sparc:/usr/lib:/usr/openwin/lib:/usr/local/5/lib:/dsdvlp/lib/5:/dstest/lib/5:/home/app/sybase/5/lib:/dstest/cats/sun4/lib:/tmitest/Opus/opus/lib
    SHELL=/bin/csh
    DISPLAY=CLI00184.mfil.local:1.0
    OS=5
    --------------- S Y S T E M ---------------
    OS: Solaris 8 2/02 s28s_u7wos_08a SPARC
    Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
    Assembled 18 December 2001
    uname:SunOS 5.8 Generic_117350-20 sun4u (T1 libthread)
    rlimit: STACK 8192k, CORE 9216k, NOFILE 4096, AS infinity
    load average:2.24 2.67 2.68
    CPU:total 4 has_v8, has_v9, has_vis1, has_vis2, is_ultra3
    Memory: 8k page, physical 8388608k(166384k free)
    vm_info: Java HotSpot(TM) Server VM (1.5.0_03-b07) for solaris-sparc, built on Apr 13 2005 03:31:26 by unknown with unknown Workshop:0x550

    The very first suggestion I have is to move your VM to a more recent update of 1.5.0.
    It looks like you are crashing with 5.0u3, and I'm pretty sure 5.0u16 is available. You
    don't want to waste your time chasing a bug that's already been fixed.

  • High Eden Java Memory Usage/Garbage Collection

    Hi,
    I am trying to make sure that my Coldfusion Server is optomised to the max and to find out what is normal limits.
    Basically it looks like at times my servers can run slow but it is possible that this is caused by a very old bloated code base.
    Jrun can sometimes have very high CPU usage so I purchased Fusion Reactor to see what is going on under the hood.
    Here are my current Java settings (running v6u24):
    java.args=-server -Xmx4096m -Xms4096m -XX:MaxPermSize=256m -XX:PermSize=256m -Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 -Dsun.io.useCanonCaches=false -XX:+UseParallelGC -Xbatch ........
    With regards Memory, the only memory that seems to be running a lot of Garbage Collection is the Eden Memory Space. It climbs to nearly 1.2GB in total just under every minute at which time it looks like GC kicks in and the usage drops to about 100MB.
    Survivor memory grows to about 80-100MB over the space of 10 minutes but drops to 0 after the scheduled full GC runs. Old Gen memory fluctuates between 225MB and 350MB with small steps (~50MB) up or down when full GC runs every 10 minutes.
    I had the heap set to 2GB initally in total giving about 600MB to the Eden Space. When I looked at the graphs from Fusion Reactor I could see that there was (minor) Garbage Collection about 2-3 times a minute when the memory usage maxed out the entire 600MB which seemed a high frequency to my untrained eye. I then upped the memory to 4GB in total (~1.2GB auto given to Eden space) to see the difference and saw that GC happened 1-2 times per minute.
    Is it normal in Coldfusion that the Eden memory would grow so quickly and have garbage collection run so often? i.e do these graphs look normal?
    Also should I somehow redistribute the memory available to give the Eden memory more since it seems to be where all the action is?
    Any other advice for performance improvements would be much appreciated.
    Note: These graphs are not from a period where jrun had high CPU.
    Here are the graphs:
    PS Eden Space Graph
    PS Survivor Space Graph
    PS Old Gen Graph
    PS Perm Gen Graph
    Heap Memory Graph
    Heap/Non Heap Memory Graph
    CPU Graph
    Request Average Execution Time Graph
    Request Activity Graph
    Code Cache Graph

    Hi,
    >Is it normal in Coldfusion that the Eden memory would grow so quickly and have garbage collection run so often?
    Yes normal to garbage collect Eden often. That is a minor garbage collection.
    >Also should I somehow redistribute the memory available to give the Eden memory more since it seems to be where all the action is?
    Sometimes it is good to set Eden (Eden and its two Survivor Spaces combined make up New or Young Generation part of JVM heap) to a smaller size. I know your thinking - what make it less, but I want to make it bigger. Give less a try (sometimes less = more, bigger not = better) and monitor the situation. I like to use -Xmn switch, some sources say to use other method/s. Perhaps you could try java.args=-server -Xmx4096m -Xms4096m -Xmn172m etc. I better mention make a backup copy of jvm.config before applying changes. Having said that now you know how you can set the size to bigger if you want.
    I think the JVM is perhaps making some poor decisions with sizing the heap. With Eden growing to 1Gb then being evacuated not many objects are surviving and therefore not being promoted to Old Generation. This ultimately means the object will need to be loaded again latter to Eden rather than being referenced in the Old generation part of the heap. Adds up to poor performance.
    >Any other advice for performance improvements would be much appreciated.
    You are using Parallel garbage collector. Perhaps you could enable that to run multi-threaded reducing the time duration of the garbage collections, jvm args ...-XX:+UseParallelGC -XX:ParallelGCThreads=N etc where N = CPU cores (eg quad core = 4).
    HTH, Carl.

  • High cpu usage for garbage collection (uptime vs total gc time)

    Hi Team,
    We have a very high cpu usage issue in the production.
    When we restart the server, the cpu idle time would be around 95% and it comes down as days goes by. Today idle cpu is 30% and it is just 6th day after the server restart.
    Environemnt details:
    Jrockit version:
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
    BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-linux-ia32, Native Threads, GC strategy: parallel)
    Gc Algorithm: JRockit Garbage Collection System currently running strategy: Single generational, parallel mark, parallel sweep
    Number Of Processors: 4
    Max Heap Size: 1073741824
    Total Garbage Collection Time: 21:43:56.5
    Uptime: 114:33:4.1
    Total Garbage Collection Count: 420872
    Total Number Of Threads: 198
    Number Of Daemon Threads: 191
    Can you guys please tell me what would be problem in the server which causing the high cpu usage?
    One more thing I would like to know is that why the total number of threads is 198 when we specified the Executor pool size as 25? I agree that weblogic would create some threads for its maintenance but around 160 threads!!! something is wrong I guess.
    Santhosh.
    [email protected]

    Hi,
    I'm having a similar problem, but haven't been able to resolve it yet. Troubleshooting is made even harder by the fact that this is only happening on our production server, and I've been unable to reproduce it in the lab.
    I'll post whatever findings I have and hopefully we'll be able to find a solution with the help of BEA engineers.
    In my case, I have a stand-alone Tomcat server that runs fine for about 1-2 days, and then the JVM suddenly starts using more CPU, and as a result, the server load shoots up (normal CPU utilization is ~5% but eventually goes up to ~95%; load goes from 0.1 to 4+).
    What I have found so far is that this corresponds to increased GC activity.
    Let me list my environment specs before I proceed, though:
    CPU: Dual Xeon 3.06GHz
    RAM: 2GB
    OS: RHEL4.4 (2.6.9-42.0.2.ELsmp)
    JVM build 1.5.0_03-b07 (BEA JRockit(R) (build dra-45238-20050523-2008-linux-ia32, R25.2.0-28))
    Tomcat version 5.5.12
    JAVA_OPTS="-Xms768m -Xmx768m -XXtlasize16k -XXlargeobjectlimit16k -Xverbose:memory,cpuinfo -Xverboselog:/var/log/tomcat5/jvm.log -Xverbosetimestamp"
    Here are excerpts from my verbose log (I'm getting some HT warning, not sure if that's a problem):
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Detected SMP with 2 CPUs that support HT.
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Trying to determine if HT is enabled.
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Trying to read from /dev/cpu/0/cpuid
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Warning: Failed to read from /dev/cpu/0/cpuid
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Trying to read from /dev/cpu/1/cpuid
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Warning: Failed to read from /dev/cpu/1/cpuid
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] HT is: supported by the CPU, not enabled by the OS, enabled in JRockit.
    [Fri Oct 20 15:54:18 2006][22855][cpuinfo] Warning: HT enabled even though OS does not seem to support it.
    [Fri Oct 20 15:54:55 2006][22855][memory ] GC strategy: System optimized over throughput (initial strategy singleparpar)
    [Fri Oct 20 15:54:55 2006][22855][memory ] heap size: 786432K, maximal heap size: 786432K
    [Fri Oct 20 16:07:30 2006][22855][memory ] Changing GC strategy to generational, parallel mark and parallel sweep
    [Fri Oct 20 16:07:30 2006][22855][memory ] 791.642-791.874: GC 786432K->266892K (786432K), 232.000 ms
    [Fri Oct 20 16:08:02 2006][22855][memory ] 824.122: nursery GC 291998K->274164K (786432K), 175.873 ms
    [Fri Oct 20 16:09:51 2006][22855][memory ] 932.526: nursery GC 299321K->281775K (786432K), 110.879 ms
    [Fri Oct 20 16:10:24 2006][22855][memory ] 965.844: nursery GC 308151K->292222K (786432K), 174.609 ms
    [Fri Oct 20 16:11:54 2006][22855][memory ] 1056.368: nursery GC 314718K->300068K (786432K), 66.032 ms
    [Sat Oct 21 23:21:09 2006][22855][memory ] 113210.427: nursery GC 734274K->676137K (786432K), 188.985 ms
    [Sat Oct 21 23:30:41 2006][22855][memory ] 113783.140: nursery GC 766601K->708592K (786432K), 96.007 ms
    [Sat Oct 21 23:36:15 2006][22855][memory ] 114116.332-114116.576: GC 756832K->86835K (786432K), 243.333 ms
    [Sat Oct 21 23:48:20 2006][22855][memory ] 114841.653: nursery GC 182299K->122396K (786432K), 175.252 ms
    [Sat Oct 21 23:48:52 2006][22855][memory ] 114873.851: nursery GC 195060K->130483K (786432K), 142.122 ms
    [Sun Oct 22 00:01:31 2006][22855][memory ] 115632.706: nursery GC 224096K->166618K (786432K), 327.264 ms
    [Sun Oct 22 00:16:37 2006][22855][memory ] 116539.368: nursery GC 246564K->186328K (786432K), 173.888 ms
    [Sun Oct 22 00:26:21 2006][22855][memory ] 117122.577: nursery GC 279056K->221543K (786432K), 170.367 ms
    [Sun Oct 22 00:26:21 2006][22855][memory ] 117123.041: nursery GC 290439K->225833K (786432K), 69.170 ms
    [Sun Oct 22 00:29:10 2006][22855][memory ] 117291.795: nursery GC 298947K->238083K (786432K), 207.200 ms
    [Sun Oct 22 00:39:05 2006][22855][memory ] 117886.478: nursery GC 326956K->263441K (786432K), 87.009 ms
    [Sun Oct 22 00:55:22 2006][22855][memory ] 118863.947: nursery GC 357229K->298971K (786432K), 246.643 ms
    [Sun Oct 22 01:08:17 2006][22855][memory ] 119638.750: nursery GC 381744K->322332K (786432K), 147.996 ms
    [Sun Oct 22 01:11:22 2006][22855][memory ] 119824.249: nursery GC 398678K->336478K (786432K), 93.046 ms
    [Sun Oct 22 01:21:35 2006][22855][memory ] 120436.740: nursery GC 409150K->345186K (786432K), 81.304 ms
    [Sun Oct 22 01:21:38 2006][22855][memory ] 120439.582: nursery GC 409986K->345832K (786432K), 153.534 ms
    [Sun Oct 22 01:21:42 2006][22855][memory ] 120443.544: nursery GC 410632K->346473K (786432K), 121.371 ms
    [Sun Oct 22 01:21:44 2006][22855][memory ] 120445.508: nursery GC 411273K->347591K (786432K), 60.688 ms
    [Sun Oct 22 01:21:44 2006][22855][memory ] 120445.623: nursery GC 412391K->347785K (786432K), 68.935 ms
    [Sun Oct 22 01:21:45 2006][22855][memory ] 120446.576: nursery GC 412585K->348897K (786432K), 152.333 ms
    [Sun Oct 22 01:21:45 2006][22855][memory ] 120446.783: nursery GC 413697K->349080K (786432K), 70.456 ms
    [Sun Oct 22 01:34:16 2006][22855][memory ] 121197.612: nursery GC 437378K->383392K (786432K), 165.771 ms
    [Sun Oct 22 01:37:37 2006][22855][memory ] 121398.496: nursery GC 469709K->409076K (786432K), 78.257 ms
    [Sun Oct 22 01:37:37 2006][22855][memory ] 121398.730: nursery GC 502490K->437713K (786432K), 65.747 ms
    [Sun Oct 22 01:44:03 2006][22855][memory ] 121785.259: nursery GC 536605K->478156K (786432K), 132.293 ms
    [Sun Oct 22 01:44:04 2006][22855][memory ] 121785.603: nursery GC 568408K->503635K (786432K), 71.751 ms
    [Sun Oct 22 01:50:39 2006][22855][memory ] 122180.985: nursery GC 591332K->530811K (786432K), 131.831 ms
    [Sun Oct 22 02:13:52 2006][22855][memory ] 123573.719: nursery GC 655566K->595257K (786432K), 117.311 ms
    [Sun Oct 22 02:36:04 2006][22855][memory ] 124905.507: nursery GC 688896K->632129K (786432K), 346.990 ms
    [Sun Oct 22 02:50:24 2006][22855][memory ] 125765.715-125765.904: GC 786032K->143954K (786432K), 189.000 ms
    [Sun Oct 22 02:50:26 2006][22855][memory ] 125767.535-125767.761: GC 723232K->70948K (786432K), 225.000 ms
    vvvvv
    [Sun Oct 22 02:50:27 2006][22855][memory ] 125768.751-125768.817: GC 712032K->71390K (786432K), 64.919 ms
    [Sun Oct 22 02:50:28 2006][22855][memory ] 125769.516-125769.698: GC 711632K->61175K (786432K), 182.000 ms
    [Sun Oct 22 02:50:29 2006][22855][memory ] 125770.753-125770.880: GC 709632K->81558K (786432K), 126.000 ms
    [Sun Oct 22 02:50:30 2006][22855][memory ] 125771.699-125771.878: GC 708432K->61368K (786432K), 179.000 ms
    So, I'm running with the default GC strategy which lets the GC pick the most suitable approach (single space or generational). It seems to switch to generational almost immediately and runs well - most GC runs are in the nursery, and only once in a while it goes through the older space.
    Now, if you look at [Sun Oct 22 02:50:27 2006], that's when everything changes. GC starts running every second (later on it's running 3 times a second) doing huge sweeps. It never goes through the nursery again, although the strategy is still generational.
    It's all downhill from this point on, and it's a matter of hours (maybe a day) before we restart the server.
    I guess my only question is: What would cause such GC behavior?
    I would appreciate your ideas/comments!
    Thanks,
    Tenyo

  • Issue while enabling Access Control for a Coherence server node

    Hi
    Im trying to enable access control for a Coherence server node, using the default Keystore login method shipped with Coherence. When i start the server i get the error "java.security.AccessControlException: Unsufficient rights to perform the operation". Please see below for the sequence of steps I've followed to enable access control. I just need to be enable Authentication (not authorization) at this stage
    1. I have added the following entry in the Coherence Operational override file
    <security-config>
              <enabled system-property="tangosol.coherence.security">true</enabled>
              <login-module-name>Coherence</login-module-name>
              <access-controller>
                   <class-name>com.tangosol.net.security.DefaultController</class-name>
                   <init-params>
                        <init-param id="1">
                             <param-type>java.io.File</param-type>
                             <param-value>keystore.jks</param-value>
                        </init-param>
                        <init-param id="2">
                             <param-type>java.io.File</param-type>
                             <param-value>permissions.xml</param-value>
                        </init-param>
                   </init-params>
              </access-controller>
              <callback-handler>
                   <class-name>com.sun.security.auth.callback.TextCallbackHandler</class-name>
              </callback-handler>
         </security-config>
    2. The following is the entry in the Permissions.xml
    <?xml version='1.0'?>
    <permissions>
    <grant>
    <principal>
    <class>javax.security.auth.x500.X500Principal</class>
    <name>CN=admin,OU=Coherence,O=Oracle,C=US</name>
    </principal>
    <permission>
    <target>*</target>
    <action>all</action>
    </permission>
    </grant>
    </permissions>
    3. The following is the content of the Login configuration file "Coherence_Login.conf"
    Coherence {
    com.tangosol.security.KeystoreLogin required
    keyStorePath="keystore.jks";
    4. The following is the command line tag for starting the server
    java -server -showversion -Djava.security.auth.login.config=Coherence_Login.conf -Xms%memory% -Xmx%memory% -Dtangosol.coherence.cacheconfig=PROXY-cache-config.xml -Dtangosol.coherence.override=FOL-coherence-override.xml -Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.authenticate=false -Dtangosol.coherence.security=true -cp "%coherence_home%\lib\coherence.jar" com.tangosol.net.DefaultCacheServer %1
    Following is the output on the Console when running the command. It asks for a username and password for the JKS store (If i provide the wrong password, it gives a different error, which shows that it is able to authenticate aganst the Keystore). After i put in the password, it throws the error as shown below "java.security.AccessControlException: Unsufficient rights to perform the operation"
    D:\Coherence\FOL_CacheServer>fol-cache-server
    java version "1.6.0_20"
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
    Username:admin
    Password:
    Exception in thread "main" java.security.AccessControlException: Unsufficient ri
    ghts to perform the operation
    at com.tangosol.net.security.DefaultController.checkPermission(DefaultCo
    ntroller.java:153)
    at com.tangosol.coherence.component.net.security.Standard.checkPermissio
    n(Standard.CDB:32)
    at com.tangosol.coherence.component.net.Security.checkPermission(Securit
    y.CDB:11)
    at com.tangosol.coherence.component.util.SafeCluster.ensureService(SafeC
    luster.CDB:6)
    at com.tangosol.coherence.component.net.management.Connector.startServic
    e(Connector.CDB:20)
    at com.tangosol.coherence.component.net.management.gateway.Remote.regist
    erLocalModel(Remote.CDB:10)
    at com.tangosol.coherence.component.net.management.gateway.Local.registe
    rLocalModel(Local.CDB:10)
    at com.tangosol.coherence.component.net.management.Gateway.register(Gate
    way.CDB:6)
    at com.tangosol.coherence.component.util.SafeCluster.ensureRunningCluste
    r(SafeCluster.CDB:46)
    at com.tangosol.coherence.component.util.SafeCluster.start(SafeCluster.C
    DB:2)
    at com.tangosol.net.CacheFactory.ensureCluster(CacheFactory.java:998)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureServiceInterna
    l(DefaultConfigurableCacheFactory.java:923)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(Defaul
    tConfigurableCacheFactory.java:892)
    at com.tangosol.net.DefaultCacheServer.startServices(DefaultCacheServer.
    java:81)
    at com.tangosol.net.DefaultCacheServer.intialStartServices(DefaultCacheS
    erver.java:250)
    at com.tangosol.net.DefaultCacheServer.startAndMonitor(DefaultCacheServe
    r.java:55)
    at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:197)

    Did you create the weblogic domain with the Oracle Webcenter Spaces option selected? This should install the relevant libraries into the domain that you will need to deploy your application. My experience is based off WC 11.1.1.0. If you haven't, you can extend your domain by re-running the Domain Config Wizard again (WLS_HOME/common/bin/config.sh)
    Cappa

Maybe you are looking for

  • Error: "Authorware Runtime has stopped working"

    I'm trying to fix a problem our students are having with an instructional CD that was made by Ivy Software. I'm getting an error "Authorware Runtime has stopped working". I have spent a considerable amount of time trying to diagnose and fix this prob

  • Not all the pictures in iPhoto album show on iPhone photo

    In one album in Iphoto not all the pictures show on Iphone photo album?

  • Path of po_top and cus_top

    HI , I register custom report (emp.rdf with out parameter) inn e-business suite 11i report present in lOV but when I check it view it generate error my question is that what is po_top and cus_top and can I move emp.rdf in cus_top or po_top and explai

  • Automatic Ken Burns Effect in iMovie HD 6.0

    I'm creating a slideshow in iMovie HD 6.0. I've imported about 300 still photos from iPhoto. If you create a slideshow in iPhoto, it applies the Ken Burns effect to all the photos at once. And the effect varies from photo to photo. (It will zoom in,

  • ITunes/iPod Shared Music Question

    How does the Husband/Wife share their purchased iTunes downloads with the other partner, both having Admin Privileges, only one has iTunes Store account, on one computer then for two computers ?