Editing heap size...

Hi All,
This may sound like plain question so I apologize:
i am running Weblogic 11g and am wanting to lower the JVM size from 256 to 128.
On the startWeblogic.sh, I edited and added:
${JAVA_HOME}/bin/java ${JAVA_VM} -version
if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
echo "Starting WLS with line:"
echo "${JAVA_HOME}/bin/java ${JAVA_VM} -Xms=128m -Xmx=128m -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}
I also edited the setDomain.sh and added/changed 128m.
Yet when the instance starts, i still see it is using 256 M.
The reason for this action is i wanted to lower the JVM usage to allocate more rsources for my OBIEE instance that runs on same machine.
here is the FREE output AFTER weblogic starts:
acle@obione ~]$ free -t -m
total used free shared buffers cached
Mem: 3891 3757 134 0 7 1202
-/+ buffers/cache: 2547 1344
Swap: 8001 2119 5881
Total: 11892 5877 6015
[oracle@obione ~]$
BEFORE WEBLOGIC STARTS:
ione ~]$ free -t -m
total used free shared buffers cached
Mem: 3891 2927 964 0 3 900
-/+ buffers/cache: 2023 1868
Swap: 8001 2079 5921
Total: 11892 5007 6885
[oracle@obione ~]$

Note that you edited the echo line which only prints the output to the command-line
"echo "${JAVA_HOME}/bin/java ${JAVA_VM} -Xms=128m -Xmx=128m -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"
The line below that
"${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"
actually performs the start of weblogic. Here the MEM_ARGS is still present, that is why it is still using 256M
Note that 128M is a little low for an application server, especially when it is running some applications.

Similar Messages

  • What is the best way to verify default heap size in Java

    Hi All,
    What is the best way to verify default heap size in Java ? does it vary over JVM to JVM . I was reading this article http://javarevisited.blogspot.sg/2011/05/java-heap-space-memory-size-jvm.html , and it says default size is 128 MB but When I run following code :
    public static void main(String args[]) {
    int MB = 1024*1024;
    System.out.println(Runtime.getRuntime().totalMemory()/MB);
    It print "870" i.e. 870 MB.
    I am bit confused, what is the best way to verify default heap size in any JVM ?
    Edited by: 938864 on Jun 5, 2012 11:16 PM

    938864 wrote:
    Hi Kayaman,
    Sorry but I don't agree with you on verification part, Why not I can verify it ? to me default means value when I don't specify -Xms and -Xmx and by the way I was testing that program on 32 bit JRE 1.6 on Windows. I am also curious significant difference between 128MB and 870MB I saw, do you see anything obviously wrong ?That spec is outdated. Since Java 6 update 18 (Sun/Oracle implementation) the default maximum heap space is calculated based on total memory availability, but never more than 1GB on 32 bits JVMs / client VMs. On a 64 bits server VM the default can go as high as 32gb.
    The best way to verify ANYTHING is to address multiple sources of information and especially those produced by the source, not some page you find on the big bad internet. Even wikipedia is a whole lot better than any random internet site IMO. That's common sense, I can't believe you put much thought into it that you have to ask in a forum.

  • Massive memory hemorrhage; heap size to go from about 64mb, to 1.3gb usage

    **[SOLVED]**
    Note: I posted this on stackoverflow as well, but a solution was not found.
    Here's the problem:
    [1] http://i.stack.imgur.com/sqqtS.png
    As you can see, the memory usage balloons out of control! I've had to add arguments to the JVM to increase the heapsize just to avoid out of memory errors while I figure out what's going on. Not good!
    ##Basic Application Summary (for context)
    This application is (eventually) going to be used for basic on screen CV and template matching type things for automation purposes. I want to achieve as high of a frame rate as possible for watching the screen, and handle all of the processing via a series of separate consumer threads.
    I quickly found out that the stock Robot class is really terrible speed wise, so I opened up the source, took out all of the duplicated effort and wasted overhead, and rebuilt it as my own class called FastRobot.
    ##The Class' Code:
        public class FastRobot {
             private Rectangle screenRect;
             private GraphicsDevice screen;
             private final Toolkit toolkit;
             private final Robot elRoboto;
             private final RobotPeer peer;
             private final Point gdloc;
             private final DirectColorModel screenCapCM;
             private final int[] bandmasks;
             public FastRobot() throws HeadlessException, AWTException {
                  this.screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
                  this.screen = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
                  toolkit = Toolkit.getDefaultToolkit();
                  elRoboto = new Robot();
                  peer = ((ComponentFactory)toolkit).createRobot(elRoboto, screen);
                  gdloc = screen.getDefaultConfiguration().getBounds().getLocation();
                  this.screenRect.translate(gdloc.x, gdloc.y);
                  screenCapCM = new DirectColorModel(24,
                            /* red mask */    0x00FF0000,
                            /* green mask */  0x0000FF00,
                            /* blue mask */   0x000000FF);
                  bandmasks = new int[3];
                  bandmasks[0] = screenCapCM.getRedMask();
                  bandmasks[1] = screenCapCM.getGreenMask();
                  bandmasks[2] = screenCapCM.getBlueMask();
                  Toolkit.getDefaultToolkit().sync();
             public void autoResetGraphicsEnv() {
                  this.screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
                  this.screen = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
             public void manuallySetGraphicsEnv(Rectangle screenRect, GraphicsDevice screen) {
                  this.screenRect = screenRect;
                  this.screen = screen;
             public BufferedImage createBufferedScreenCapture(int pixels[]) throws HeadlessException, AWTException {
        //          BufferedImage image;
                DataBufferInt buffer;
                WritableRaster raster;
                  pixels = peer.getRGBPixels(screenRect);
                  buffer = new DataBufferInt(pixels, pixels.length);
                  raster = Raster.createPackedRaster(buffer, screenRect.width, screenRect.height, screenRect.width, bandmasks, null);
                  return new BufferedImage(screenCapCM, raster, false, null);
             public int[] createArrayScreenCapture() throws HeadlessException, AWTException {
                       return peer.getRGBPixels(screenRect);
             public WritableRaster createRasterScreenCapture(int pixels[]) throws HeadlessException, AWTException {
             //     BufferedImage image;
                 DataBufferInt buffer;
                 WritableRaster raster;
                  pixels = peer.getRGBPixels(screenRect);
                  buffer = new DataBufferInt(pixels, pixels.length);
                  raster = Raster.createPackedRaster(buffer, screenRect.width, screenRect.height, screenRect.width, bandmasks, null);
             //     SunWritableRaster.makeTrackable(buffer);
                  return raster;
        }In essence, all I've changed from the original is moving many of the allocations from function bodies, and set them as attributes of the class so they're not called every time. Doing this actually had a significant affect on frame rate. Even on my severely under powered laptop, it went from ~4 fps with the stock Robot class, to ~30fps with my FastRobot class.
    ##First Test:
    When I started outofmemory errors in my main program, I set up this very simple test to keep an eye on the FastRobot. Note: this is the code which produced the heap profile above.
        public class TestFBot {
             public static void main(String[] args) {
                  try {
                       FastRobot fbot = new FastRobot();
                       double startTime = System.currentTimeMillis();
                       for (int i=0; i < 1000; i++)
                            fbot.createArrayScreenCapture();
                       System.out.println("Time taken: " + (System.currentTimeMillis() - startTime)/1000.);
                  } catch (AWTException e) {
                       e.printStackTrace();
        }##Examined:
    It doesn't do this every time, which is really strange (and frustrating!). In fact, it rarely does it at all with the above code. However, the memory issue becomes easily reproducible if I have multiple for loops back to back.
    #Test 2
        public class TestFBot {
             public static void main(String[] args) {
                  try {
                       FastRobot fbot = new FastRobot();
                       double startTime = System.currentTimeMillis();
                       for (int i=0; i < 1000; i++)
                            fbot.createArrayScreenCapture();
                       System.out.println("Time taken: " + (System.currentTimeMillis() - startTime)/1000.);
                       startTime = System.currentTimeMillis();
                       for (int i=0; i < 500; i++)
                            fbot.createArrayScreenCapture();
                       System.out.println("Time taken: " + (System.currentTimeMillis() - startTime)/1000.);
                       startTime = System.currentTimeMillis();
                       for (int i=0; i < 200; i++)
                            fbot.createArrayScreenCapture();
                       System.out.println("Time taken: " + (System.currentTimeMillis() - startTime)/1000.);
                       startTime = System.currentTimeMillis();
                       for (int i=0; i < 1500; i++)
                            fbot.createArrayScreenCapture();
                       System.out.println("Time taken: " + (System.currentTimeMillis() - startTime)/1000.);
                  } catch (AWTException e) {
                       e.printStackTrace();
        }##Examined
    The out of control heap is now reproducible I'd say about 80% of the time. I've looked all though the profiler, and the thing of most note (I think) is that the garbage collector seemingly stops right as the fourth and final loop begins.
    The output form the above code gave the following times:
    Time taken: 24.282 //Loop1
    Time taken: 11.294 //Loop2
    Time taken: 7.1 //Loop3
    Time taken: 70.739 //Loop4
    Now, if you sum the first three loops, it adds up to 42.676, which suspiciously corresponds to the exact time that the garbage collector stops, and the memory spikes.
    [2] http://i.stack.imgur.com/fSTOs.png
    Now, this is my first rodeo with profiling, not to mention the first time I've ever even thought about garbage collection -- it was always something that just kind of worked magically in the background -- so, I'm unsure what, if anything, I've found out.
    ##Additional Profile Information
    [3] http://i.stack.imgur.com/ENocy.png
    Augusto suggested looking at the memory profile. There are 1500+ `int[]` that are listed as "unreachable, but not yet collected." These are surely the `int[]` arrays that the `peer.getRGBPixels()` creates, but for some reason they're not being destroyed. This additional info, unfortunately, only adds to my confusion, as I'm not sure why the GC wouldn't be collecting them
    ##Profile using small heap argument -Xmx256m:
    At irreputable and Hot Licks suggestion I set the max heap size to something significantly smaller. While this does prevent it from making the 1gb jump in memory usage, it still doesn't explain why the program is ballooning to its max heap size upon entering the 4th iteration.
    [4] http://i.stack.imgur.com/bR3NP.png
    As you can see, the exact issue still exists, it's just been made smaller. ;) The issue with this solution is that the program, for some reason, is still eating through all of the memory it can -- there is also a marked change in fps performance from the first the iterations, which consume very little memory, and the final iteration, which consumes as much memory as it can.
    The question remains why is it ballooning at all?
    ##Results after hitting "Force Garbage Collection" button:
    At jtahlborn's suggestion, I hit the Force Garbage Collection button. It worked beautifully. It goes from 1gb of memory usage, down to the basline of 60mb or so.
    [5] http://i.stack.imgur.com/x4282.png
    So, this seems to be the cure. The question now is, how do I pro grammatically force the GC to do this?
    ##Results after adding local Peer to function's scope:
    At David Waters suggestion, I modified the `createArrayCapture()` function so that it holds a local `Peer` object.
    Unfortunately no change in the memory usage pattern.
    [6] http://i.stack.imgur.com/Ky5vb.png
    Still gets huge on the 3rd or 4th iteration.
    #Memory Pool Analysis:
    ###ScreenShots from the different memory pools
    ##All pools:
    [7] http://i.stack.imgur.com/nXXeo.png
    ##Eden Pool:
    [8] http://i.stack.imgur.com/R4ZHG.png
    ##Old Gen:
    [9] http://i.stack.imgur.com/gmfe2.png
    Just about all of the memory usage seems to fall in this pool.
    Note: PS Survivor Space had (apparently) 0 usage
    ##I'm left with several questions:
    (a) does the Garbage Profiler graph mean what I think it means? Or am I confusing correlation with causation? As I said, I'm in an unknown area with these issues.
    (b) If it is the garbage collector... what do I do about it..? Why is it stopping altogether, and then running at a reduced rate for the remainder of the program?
    (c) How do I fix this?
    Does anyone have any idea what's going on here?
    [1]: http://i.stack.imgur.com/sqqtS.png
    [2]: http://i.stack.imgur.com/fSTOs.png
    [3]: http://i.stack.imgur.com/ENocy.png
    [4]: http://i.stack.imgur.com/bR3NP.png
    [5]: http://i.stack.imgur.com/x4282.png
    [6]: http://i.stack.imgur.com/Ky5vb.png
    [7]: http://i.stack.imgur.com/nXXeo.png
    [8]: http://i.stack.imgur.com/R4ZHG.png
    [9]: http://i.stack.imgur.com/gmfe2.png
    Edited by: 991051 on Feb 28, 2013 11:30 AM
    Edited by: 991051 on Feb 28, 2013 11:35 AM
    Edited by: 991051 on Feb 28, 2013 11:36 AM
    Edited by: 991051 on Mar 1, 2013 9:44 AM

    SO came through.
    Turns out this issue was directly related to the garbage collector. The default one, for whatever reason, would get behind on its collection at points, and thus the memory would balloon out of control, which then, once allocated, became the new normal for the GC to operate at.
    Manually setting the GC to ConcurrentMarkSweep solved this issue completely. After numerous tests, I have been unable to reproduce the memory issue. The garbage collector does an excellent job of keeping on top of these minor collections.

  • Problem increasing heap size using Java Control Panel

    I am running a web-based bioinformatics package which uses a Java applet as the client application. It mostly works fine, but some large clustering processes don't complete, they just cycle endlessly. The user manual advises increasing heap space "by entering the following command in the Java Control Panel or Java Plug-in dialog: -Xms128M -Xmx256M." I can open the Java Control Panel OK and enter the necessary command in the Java Runtime Parameters box, but after clicking OK then Apply, the Runtime Parameters box is empty again and there is no increase in the heap size allocation. In other words, the change doesn't take effect.
    I have already tried: adjusting one parameter at a time (max heap size first, then min); changing uppercase to lowercase M (-Xmx256m); restarting the browser after the change; rebooting my PC - none of these has helped.
    Technical details: it's Java 6 standard edition, build 1.6.0_10-rc-b28; browser is Internet Explorer 7; operating system is Vista (Service Pack 1); PC is a 2.4 GHz processor with 2 GB RAM (so I have plenty available to allocate to Java). I have local admin privilege on my PC.
    Help would be much appreciated, as I really need to complete these cluster analyses. I'm a biologist not a developer, so ideally I need a solution that doesn't involve major programming, though I'm OK with registry edits and use of the command line. Thanks in advance.

    The failure to retain the parameters is a bug, per hdong in this [Java,net thread|http://forums.java.net/jive/thread.jspa?threadID=44540&tstart=0] dated August 14
    "I did a little more research and found out that the problem is only with "-rc" or "-beta" versions of plugin. When 1.6.0_10 is finally released, the version string will be "1.6.0_10". Plugin works fine to set/get jvm parameters when version string is "1.6.0_10".
    I am surprised that this issue was not discovered earlier. It was probably because the internal test binary use "1.6.0_10" as version string.
    Yeah, it is a bug that will affect many manny developers. It will be fixed as soon as possible."

  • How to increase heap size in Java in detail?

    I am writing an java app in eclipse that do need a lot of memory.
    The default
    java -Xms32m -Xmx128mis not enough.
    I want to change it to
    java -Xms128m -Xmx512mI opened the command line in windows xp and changed the current directory to the installing place of jre and jdk.
    But under either directory after I ran the above command, it returns help information like
    C:\Program Files\Java\jdk1.6.0_05\bin>java -Xms128m -Xmx512m
    Usage: java [-options] class [args...]
               (to execute a class)
       or  java [-options] -jar jarfile [args...]
               (to execute a jar file)
    where options include:
        -client       to select the "client" VM
        -server       to select the "server" VM
        .......Have I changed the heap size successfully?
    How can I verify it? I am using eclipse 3.2 running the application.
    Please offer me some help. Many thanks!
    Edited by: aaron9979215 on Jul 6, 2008 8:56 PM

    It is showing you the help message, because you forgot to specify a class. When you call the "java" command, you have to say a class name after the -Xms and -Xmx commands.
    So, do this:
    java -Xms128m -Xmx512m classNameWhere className is the main class of your app.
    Best of luck.
    -ottobonn-

  • How To Increase heap size in Java Studio Creator 2

    Hi,
    I'd like to know how I can increase the heap size in Java Studio Creator 2.
    I already tried editing creator.conf, but it doesn't seem to work...
    Can anybody help me?
    thanks.

    In the servers window of creator, right-click 'Deployment Server' and choose 'View Admin Console'. A new web page comes up with the web interface to the Sun Application Server 8. Type your username and password that you configured during installation. I think default username is admin and default password either admin or adminadmin. After you're in, click 'Application Server' link in the left window, then click 'JVM Settings' tab, then click 'JVM Options' tab. Add new JVM option -Xms512m to start the server with 512MB. Find the -Xmx option and edit it to something larger, provided you have enough memory on your system.

  • Setting heap size

    I hope you will all forgive me because this has been exhausted although I followed all the advices.
    After the following examples, to check my own environment. I have done the following:
    long heapSize = Runtime.getRuntime().totalMemory();
        System.out.println(heapSize);
        // Get maximum size of heap in bytes. The heap cannot grow beyond this size.
        // Any attempt will result in an OutOfMemoryException.
        long heapMaxSize = Runtime.getRuntime().maxMemory();
        System.out.println(heapMaxSize);
        // Get amount of free memory within the heap in bytes. This size will increase
        // after garbage collection and decrease as new objects are created.
        long heapFreeSize = Runtime.getRuntime().freeMemory();
        System.out.println(heapFreeSize);
            Which outputs is:
    5177344
    66650112
    4437824
    Currently, it looks like my heap cannot grow more than 6.6M right?
    Now if I want to increase my maximum heap size, the command is adviced to be:
    java -Xmx128m readFile.class
    However, it keeps coming oout with an error:
    Exception in thread "main" java.lang.NoClassDefFoundError: readFile/class
    Where did that "main" come from? The only thing that I have done is that I have another class called myMain which calls this clss for test purposes.
    The class which raised this heap problem was a class I was using to read files as in the bellow:
    import java.io.*;
    import java.util.*;
    import java.util.regex.*;
    public class readFile
    private ArrayList<String>  dataFromFile= new ArrayList<String>();
        public String readFile(String fileNameIn, String encoding) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(
          new FileInputStream(fileNameIn), encoding));
          buffer = new StringBuffer();
        int i;
        while((i = in.read()) != -1) buffer.append((char)i);
        in.close();
        return buffer.toString();
    //return an array of each data read from file separated by a tab etc
      public ArrayList<String> getRecords(String fileNameIn) throws IOException {
          String  s = this.readFile(fileNameIn);
          String current;
          Pattern p = Pattern.compile("[^\t\n]+|\t(?=\t)|\t$",
          Pattern.CASE_INSENSITIVE);
          Matcher m = p.matcher(s);
          while(m.find()){
             current = m.group(0).trim();
             dataFromFile.add(current);
            }//while 
        return dataFromFile;
    }Message was edited by:
    McTaar
    Message was edited by:
    McTaar

    This is the error displayed:
    java.lang.OutOfMemoryError: Java heap space
         at java.util.Arrays.copyOf(Arrays.java:2760)
         at java.util.Arrays.copyOf(Arrays.java:2734)
         at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
         at java.util.ArrayList.add(ArrayList.java:351)
         at readFile.getRecords(readFile.java:41)
         at myMain.main(myMain.java:79)readFile: 41 is
    dataFromFile.add(current);

  • How do define the limit of the max heap size?

    Hi All,
    I would like to know what should be the limit of the JVM max heap size.
    What will happen if we will not define it?
    What is the purpose of defining it from the technical point of view?
    Thanks
    Edited by: Anna78 on Jul 31, 2008 12:36 PM

    Defining a max heap space too large can have the following effect:
    If you create new objects, the VM may decide it is not worth getting rid of garbage-collectable ones, as there
    is still plenty of space between the current heap size and the max allowed. The result will be that the
    application will run faster and will consume more memory than it really needs.
    If the heap size is too small, but still sufficient, the application will do a lot of garbage-collection and therefore
    run slower. On the other hand, it will stay inside the tight space it has been allowed to use.
    The speed difference may or may not be noticeable, while the difference between 256M and 512M may
    or may not matter on today's computers.

  • Unable to set heap size to 4gb in sun java application server pe 8.2

    i have sun v890 machine with 32gb ram and solaris 10
    i am running sun java system application server platform edition 8.2
    when i am setting max heap size to 4GB
    it is giving an error
    Invalid maximum heap size -Xmx4096m
    the specified size exceeds the maximum representable size
    i want to know what i should do to increase this heap size.
    also tell me if the JVM running is 64bit. if not how can i change it
    to 64bit VM.

    The maximum size for a 32-bit process on Solaris (any 32-bit process, not just Java) is 4GB, which includes the program text, thread stacks, and various other things in addition to the JVM heap. So the maximum heap you can expect to allocate for the appserver is about 3500MB.
    SJSAS 8.2 does not support a 64-bit JVM; SJSAS 9.1 is needed for that. However, it's very rare that a Java EE application actually needs that much memory, and the 64-bit JVM has a performance penalty vs. the standard JVM. So more heap is probably not going to make your app run any better.

  • How to set the heap size in adminstrative console

    Hi All,
    Please let me know how to increase heap size in weblogic Adminstrative console.
    Regards
    Madhu

    The answer to this depends on whether you're trying to set the heap size for a manager server which is managed by NodeManager, or the admin server.
    First click on "Lock and Edit".
    If the former, go into "Environment"->"Servers", then click on the server you want to configure. This should start you on the "Configuration"->"General" tab. Now click on the "Server Start" tab. Find the "Arguments" field. Assuming this is blank, put something like the following in the field value:
    -Xmx1536m
    Then click "Save", then "Activate Changes". When you restart the managed server the next time, it should use those new settings.
    If, however, you're trying to set this on the admin server, you can't do this in the admin console at all. In that case, go into $DOMAIN_HOME/bin and edit the "setDomainEnv.{sh,cmd}" script (".sh" if on Unix/Linux, ".cmd" on Windows). Find the line that sets the "MEM_ARGS" variable, like the following on Windows:
    set MEM_ARGS=-Xms256m -Xmx512m
    Change this line to whatever you want, then restart the admin server.

  • How to increase JVM Heap Size

    Hi all,
    Our Environment
    ===============
    OS - Windows XP Service Pack 3
    Oracle Developer Suite - 10.1.2.3.0
    Oracle Forms & Reports Service 10.1.2.3.0
    Oracle Database 10.2.0.1.0
    JDK 1.5
    Jinitiator 1.3.1.30
    Apache POI 3.5
    From forms we are writing to excel files after copying XL template using Apache POI 3.5 and JDK 1.5. This XL template file has got lot of macros.
    We have imported the Java class files into form as pl/sql library. We are able to write upto 7Mb size of XL file. Beyond that size it comes with the error Ora-105101.
    We tried to increase the JVM Heap Size to 640M by setting values -Xmx640M everywhere in OC4J_BI_FORMS/Server Properties/Java Options, Home/Server Properties/Java Options through Enterprise Manager console. Also manually set the values in OPMN.XML and reloaded the same. Also set -Xmx640M in Jinitiator 1.3.1.30 Java Runtime Parameters. Also set in Java console. All settings have no effect.
    We have written a small program to display the run time memory from forms, which displays only maximum memory 63M all the time.
    PACKAGE BODY HeapSize IS
    -- DO NOT EDIT THIS FILE - it is machine generated!
    args JNI.ARGLIST;
    -- Constructor for signature ()V
    FUNCTION new RETURN ORA_JAVA.JOBJECT IS
    BEGIN
    args := NULL;
    RETURN (JNI.NEW_OBJECT('HeapSize', '()V', args));
    END;
    -- Method: getTotalMemory ()D
    FUNCTION getTotalMemory(
    obj ORA_JAVA.JOBJECT) RETURN NUMBER IS
    BEGIN
    args := NULL;
    RETURN JNI.CALL_DOUBLE_METHOD(FALSE, obj, 'HeapSize', 'getTotalMemory', '()D', args);
    END;
    -- Method: getMaxMemory ()D
    FUNCTION getMaxMemory(
    obj ORA_JAVA.JOBJECT) RETURN NUMBER IS
    BEGIN
    args := NULL;
    RETURN JNI.CALL_DOUBLE_METHOD(FALSE, obj, 'HeapSize', 'getMaxMemory', '()D', args);
    END;
    BEGIN
    NULL;
    END;
    declare
    obj ORA_JAVA.JOBJECT;
    BEGIN
    obj:=HeapSize.new;
    message('Total memory '||HeapSize.getTotalMemory(obj));
    message('Max memory '||HeapSize.getMaxMemory(obj));
    END;
    Below procedure is for writing to Excel file.
    ============================================
    PACKAGE BODY UWWriteExcel IS
    -- DO NOT EDIT THIS FILE - it is machine generated!
    args JNI.ARGLIST;
    -- Constructor for signature ()V
    FUNCTION new RETURN ORA_JAVA.JOBJECT IS
    BEGIN
    args := NULL;
    RETURN (JNI.NEW_OBJECT('UWWriteExcel', '()V', args));
    END;
    -- Method: copyExcel (Ljava/lang/String;Ljava/lang/String;)V
    PROCEDURE copyExcel(
    obj ORA_JAVA.JOBJECT,
    a0 VARCHAR2,
    a1 VARCHAR2) IS
    BEGIN
    args := JNI.CREATE_ARG_LIST(2);
    JNI.ADD_STRING_ARG(args, a0);
    JNI.ADD_STRING_ARG(args, a1);
    JNI.CALL_VOID_METHOD(FALSE, obj, 'UWWriteExcel', 'copyExcel', '(Ljava/lang/String;Ljava/lang/String;)V', args);
    END;
    -- Method: getSpreadSheetPara (Ljava/lang/String;)V
    PROCEDURE getSpreadSheetPara(
    obj ORA_JAVA.JOBJECT,
    a0 VARCHAR2) IS
    BEGIN
    args := JNI.CREATE_ARG_LIST(1);
    JNI.ADD_STRING_ARG(args, a0);
    JNI.CALL_VOID_METHOD(FALSE, obj, 'UWWriteExcel', 'getSpreadSheetPara', '(Ljava/lang/String;)V', args);
    END;
    -- Method: openSheet (I)V
    PROCEDURE openSheet(
    obj ORA_JAVA.JOBJECT,
    a0 NUMBER) IS
    BEGIN
    args := JNI.CREATE_ARG_LIST(1);
    JNI.ADD_INT_ARG(args, a0);
    JNI.CALL_VOID_METHOD(FALSE, obj, 'UWWriteExcel', 'openSheet', '(I)V', args);
    END;
    -- Method: getCellValues (IID)V
    PROCEDURE getCellValues(
    obj ORA_JAVA.JOBJECT,
    a0 NUMBER,
    a1 NUMBER,
    a2 NUMBER) IS
    BEGIN
    args := JNI.CREATE_ARG_LIST(3);
    JNI.ADD_INT_ARG(args, a0);
    JNI.ADD_INT_ARG(args, a1);
    JNI.ADD_DOUBLE_ARG(args, a2);
    JNI.CALL_VOID_METHOD(FALSE, obj, 'UWWriteExcel', 'getCellValues', '(IID)V', args);
    END;
    -- Method: getCellValues (IILjava/lang/String;)V
    PROCEDURE getCellValues(
    obj ORA_JAVA.JOBJECT,
    a0 NUMBER,
    a1 NUMBER,
    a2 VARCHAR2) IS
    BEGIN
    args := JNI.CREATE_ARG_LIST(3);
    JNI.ADD_INT_ARG(args, a0);
    JNI.ADD_INT_ARG(args, a1);
    JNI.ADD_STRING_ARG(args, a2);
    JNI.CALL_VOID_METHOD(FALSE, obj, 'UWWriteExcel', 'getCellValues', '(IILjava/lang/String;)V', args);
    END;
    -- Method: exportExcel ()V
    PROCEDURE exportExcel(
    obj ORA_JAVA.JOBJECT) IS
    BEGIN
    args := NULL;
    JNI.CALL_VOID_METHOD(FALSE, obj, 'UWWriteExcel', 'exportExcel', '()V', args);
    END;
    -- Method: copy (Ljava/lang/String;Ljava/lang/String;)V
    PROCEDURE copy(
    a0 VARCHAR2,
    a1 VARCHAR2) IS
    BEGIN
    args := JNI.CREATE_ARG_LIST(2);
    JNI.ADD_STRING_ARG(args, a0);
    JNI.ADD_STRING_ARG(args, a1);
    JNI.CALL_VOID_METHOD(TRUE, NULL, 'UWWriteExcel', 'copy', '(Ljava/lang/String;Ljava/lang/String;)V', args);
    END;
    BEGIN
    NULL;
    END;
    declare
    obj ORA_JAVA.JOBJECT;
    BEGIN
    message('-1');pause;
    obj:=UWWriteExcel.new;
    message('0');pause;
    UWWriteExcel.copyExcel(obj,'C:\\excel\\CAT2009WS.XLS','C:\\excel\\CAT2009WS.XLS');
    message('1');pause;
    UWWriteExcel.openSheet(obj,0);
    message('2');pause;
    UWWriteExcel.getCellValues(obj,6,2,900);
    message('3');pause;
    UWWriteExcel.getCellValues(obj,7,2,911);
    message('4');pause;
    UWWriteExcel.exportExcel(obj);
    END;
    When the size of XL is more than 7Mb, after message(0) it will be display oracle error.
    From command prompt if we run the same java class file by passing -Xmx256m parameter we are able to write to big XL file.
    Can anyone tell me where I am wrong... Can we increase the JVM Heap Size from forms...

    I have a simular problem.
    Via Forms I call a Java class (import Java class -> PL/SQL class java method).
    For this specific process I need to set the Xmx java option...
    How do I do this ?
    Changing the java option for the Forms-OC4J in the EM doesn't help.
    Is there an other level where I can modify this ?
    Does the java process of the forms is the single process that exists ? How does he handles such java calls?
    Are that separed java processes ? threads ? ....
    Thanks !!!

  • Overriding the default heap size of 64mb

    I run the java program on my pc on windows xp
    I need to increase the heap size, currently I launch the jar file using a batch file, the contents of the batch file are:
    java -Xms64m -Xmx512m -jar Lines.jar
    I have set the min and max heap size and when I click on the .bat file it launches the jar file with tose heap settings
    But I do not want to launch the jar file in this way(I don't want to use a batch file), is there anyway to override the default heap size for the java program to 512mb so that every time I launch the jar file the heap size is 512mb??
    Edited by: muddy777 on Sep 23, 2009 6:30 PM

    Vikash.SunJava wrote:
    set this in some machine startup like a scheduled task at machine startup
    java -Xms64m -Xmx512m
    This this will be default JVM settings.Huh?

  • JGrasp -- how to increase heap size?

    Hello, can anybody tell me how to increase the max heap size in jGrasp?
    Thank you.

    Thanks.. I tried that, but I'm not sure that it
    increased the heap size. I tried using that method
    to set it to 512MB (-J-Xmx512m), and when I open up
    System Properties within jGrasp, it says:
    Free Heap: 7,805,040
    Total Heap: 19,812,352
    Max Memory: 532,742,144That is what you would expect with a 512MB max heap.
    And then I put the following lines of code in my
    program:
         long max = Runtime.getRuntime().maxMemory();
    System.out.println("Runtime.maxMemory():
    ): "+max/1024/1024+" MB");
    And the output that I got was: "Runtime.maxMemory():
    63 MB"You have set the max heap for jGRASP itself, which you
    might need if you are editing some huge files or
    something and jGRASP is running out of heap. Max
    heap for user programs is a different issue. To change
    that, on the compiler settings for the current workspace
    or project, in the "Flags/Args/Main" tab, add Java flags
    like "-Xmx512m" to "Flags2 or Args2" for the "Run" and
    "Debug" rows.

  • Setting heap size through oracleAS 10.1.3 enterprise manager

    Hi All,
    Can any body pls tell me how we can set java heap size through oracleAS 10.1.3 enterprise manager
    Best Regards
    Girish Tandel

    hi...
    Yes, we can set the heap size in opmn.xml file in java-options.... But this is not the good practice to mannualy edit server xml files. In OracleAS 10.1.2 we can set the same through OEM. But i am not able to set using oem in oracleas 10.1.3
    Best Regards
    Girish

  • Heap Size in 64 bit operating systems

    Hi,
    I have written a Java application which needs huge size heap. I tried to run the application under 32 bit windows operating system, but with 32 bit OS I got maximum heap size of 1.5 GB. To get more heap I have installed Windows 2003 Standard edition 64 bit version. Also I have installed JDK 1.7 64 bit for windows. I am using Netbeans IDE 6.7. I have configured Netbeans for 64 bit JVM. With this configuration I tried to set heap size of 1.6 GB it gives error "Could not create Java Virtual machine......". Also If I check proceess in task manager I see java.exe * 32 process. Does this mean JVM being used is still 32 bit JVM?
    Please let me know how to get more heap size under 64 bit OS?
    Regards,
    -Suresh Shirgave

    From a cmd window run a simple program using a 64-bit jvm (HelloWorld or similar) with different -Xmx values to establish the limit at which the program will run.
    <pathTo64-bitJVM>java -Xmxnn HelloWorldIf that's different from NB, then it's a setting of some kind in NB. Maybe you are pointing NB to a 32-bit JDK? Check the value in <NBInstallDirectory>\etc\netbeans.conf. If that's not it, check NB Help. You might want to ask the question at a NB forum, since this is a new version there may be a problem. Note that these forums are for Java language topics.

Maybe you are looking for

  • Rangers Toolbar

    I added a Rangers toolbar, and since then, Safari won't stay in my Dock. How can I fix it?

  • Problem with the Date

    HI frendz,       I have to retrieve data considering the date range.I have to check a date in the where condition which should within the last 12 months.So my one interval will be sydatum but how can i get the other interval ie 1 year back date ?? Is

  • Jdbc in applets

    I get the applet panel displayed in a web page. however when the user clicks on the button contained within the panel, nothing happens. In the appletviewer clicking on the button leads to a applet window containing data retrieved from the database (w

  • IMac shuts down - Is this issue being resolved?

    Yes, so I had my this issue with my previous iMac and Apple replaced it with another that shuts down without warning. This second one came with 10.5 pre-installed. I had not even used it for more than 1 hour before it shutdown. It continued to shutdo

  • Trouble Importing Audio

    When importing a an audio track in the form of a QT Movie, the track previews fine, When I drag it to the timeline, sync and render it ends up with glitches and drop-outs. Any help is appreciated. SC