Skip to Content

Solving ‘Out of Memory’ problem – Using JNLP

Quite often in XI projects you may feel the need to define large data types or message type. These message types definitions are quite often imported through external XSD’s, DTD’s. Also interfaces which we would need to define could also the large enough. When working with such large data, the XI client usually throws an Out of Memory exception.

Here’s a way to solve them and the best part of it is, it’s solvable locally at the XI client end! We expand the default memory that the JVM runs on. Your computer memory may be in Gigs, but the JVM doesn’t utilize more than 512 M of your computer memory unless specified otherwise.

Step 1:


Clean Java Web Start cache.

Click on File > Preferences

image

Go to advance tab and click on ‘Clear Folder’ button and subsequently click on ‘yes’ in the confirmation box that appears.

image

Close the Java Web Start clicking the ‘OK’ button.

Step 2:


Get the Launcher File

Open the XI home page and place your mouse on the link ‘Integration Repository’. Note: Just place the mouse and do not click here.

image

Note down the URL highlighted above:

In my case it is http://—-


/rep/start/repository.jnlp. This is the launcher file path on the server.

Step 3:


Download the launcher file

Open the launcher file through Wordpad and save it on your desktop. You can still call this ‘repository.jnlp’.

Note: The extension must be jnlp.

Step 4:


Edit the launcher file.

The launcher file would initially look like this:


<jnlp spec=”1.0+” codebase=”http://—-


/rep”>

  


Next launch the Integration Builder:

Design through the jnlp stored on your desktop. Double click on the jnlp file.

FAQs


1. How will I be able to determine the amount of memory my xsd’s needs?


A. Though it cant be exactly determined how much memory your xsd’s need, it has been found that xsds with size of approx 700 KB need just around 1024M. And the relation between the memory requirements and the size of XSD’s is more or less proportional. If your XSDs still don’t load try incrementing your heap size and the Xmx by small amounts and re-try.

2. What is JNLP?


A. Java Network Launching Protocol (JNLP) is the protocol, defined as an XML file format, that specifies how Java Web Start applications are launched.

3. My computer cant recognize jnlp file. It tries to find an appropriate editor to open .jnlp file. Is there a solution?


A. Open control panel > Folder options. Click on ‘File Types’ tab. Search for file with extension ‘jnlp’ and make sure it opens with javaw.

4. The jnlp file launches my application, but the application aborts before I get my login screen. What may be the possible error?


A. Most likely you have specified your heap size and the Xmx parameter more than the available RAM. Say you have specified 2048 M when the maximum RAM available in your machine is 1024 M.

5. Is there any hardware solution?

A.     On a 32-bit processor machines, the largest contiguous memory address space the operating system can allocate to a process is 1.8GB. Because of this, the maximum heap size can only be set up to 1.8GB. On 64-bit processor machines, the 1.8 GB limit does not apply. Upgrading your machine to a 64-but processor can also be an option.

This will solve most of out of memory problem that we come across due to large volume of data.

To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

  1. Former Member
    Hi keerthi,
       While you are writing the weblogs, specify the relevant welogs or reference weblogs.

    Trouble logging to Integration Builder ( IR / ID )? Unable to open IR/ESR/ID ? (XI/PI/PI 7.1) [Updated for PI 7.1 support]

    Unable to open Integration Builder…checklist
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1688 [original link is broken] [original link is broken]

    Java Web Start
    Java Web Start
    ( In this weblog, he clarly explained abouthe JNLP). So you need not explain those again.

    Regards,
    Deviprasad.

    (0) 
  2. Former Member
    Hi Keerti..
    i am facing the Out of memeory exception problem in my message mapping..
    my target xsd is 8MB size.I increaed the maxheapsize to 1024m but still i am getting the error. how to determine how much maxheapsize is suitable for my requirement.whenever i start working on this interface my system getting struck or system performance getting down.
    how to resolve this error ..please guide me

    regards
    Ram

    (0) 
    1. Former Member Post author
      Hi Ram,
      I guess determining the heap size in relation to the xsd size is quite difficult. Reasons being, the memory that’s in fact allocated to you may still be lesser than that you specified as there are other processes running concurrently in you machine which may prevent the JVM from taking its entire chunk of memory.

      However, a good idea would be to make sure that you mapping takes almost the entire chunk of memory allocated to your JVM. I suggest that you do not open any other tabs/windows other than your message mapping tab. Only keep the message-mapping tab open. Hope this helps.

      – Keerti

      (0) 

Leave a Reply