Sun identity manager -  java.lang.OutOfMemory

Hi, I have one very interesting issue regarding JVM memory. I have one sun idm (version 7) application deployed in sun java web application server. I am facing JVM error - java.lang.OutOfMemory very frequently now days in production server. I am sharing you the details regarding configuration :
Their are 4 app servers - IDMAPP01 IDMAPP02 IDMAPP03 IDMAPP04
current total memory on each of the 4 app server 8 GB
memory allocated to JVM on each server 5 GB
os - solaris
admin task recon are performed only on instance - IDMAPP04
JVM setting is - -Xmx5g -Xms5g -Xmn1500m -XX:MaxPermSize=512m
Log file locations:
/var/opt/SUNWappserver/domain1/logs/vm.log
/var/opt/SUNWappserver/domain1/logs/gc.log
/opt/SUNWappserver/appserver/config/asadminenv.conf
/opt/SUNWappserver/appserver/config/asenv.conf
idm app deployment path:
/var/opt/SUNWappserver/domain1/applications/j2ee-modules/idm
logpath
/var/opt/SUNWappserver/domain1/logs/
Whenever I am getting this issue, we are restarting all the 4 server instances which is impacting business as this is prod server.
Can anyone suggest how can I solve this issue. (please suggest good performance tuning tips without increasing physical memory).
Regards,
Jimmy

886672 wrote:
Hi, I have one very interesting issue regarding JVM memory. I have one sun idm (version 7) application deployed in sun java web application server. I am facing JVM error - java.lang.OutOfMemory very frequently now days in production server. I am sharing you the details regarding configuration :
Their are 4 app servers - IDMAPP01 IDMAPP02 IDMAPP03 IDMAPP04
current total memory on each of the 4 app server 8 GB
memory allocated to JVM on each server 5 GB
what else is running on those servers and how much memory are those applications consuming?
os - solaris
admin task recon are performed only on instance - IDMAPP04
JVM setting is - -Xmx5g -Xms5g -Xmn1500m -XX:MaxPermSize=512mIf IDMAPP04 is doing different things from the other servers, then they should be configured differently. What garbage collector are you using?
>
Log file locations:
/var/opt/SUNWappserver/domain1/logs/vm.log
/var/opt/SUNWappserver/domain1/logs/gc.log
/opt/SUNWappserver/appserver/config/asadminenv.conf
/opt/SUNWappserver/appserver/config/asenv.confYou may want to have a loog at the gc.log file provided you have actually enabled gc logging which you should at least until you have resolved your memory problems.
>
idm app deployment path:
/var/opt/SUNWappserver/domain1/applications/j2ee-modules/idm
logpath
/var/opt/SUNWappserver/domain1/logs/
Whenever I am getting this issue, we are restarting all the 4 server instances which is impacting business as this is prod server.Why? The whole idea behind running recon on a separate server is that you can restart that one without affecting the others.
Can anyone suggest how can I solve this issue. (please suggest good performance tuning tips without increasing physical memory).
Enable gc logging and use a profiler to capture the behaviour of the jvm. You need to understand what it is doing and find where the problem area is before you can recommend what to tune.
Regards,
Jimmy

Similar Messages

  • Weblogic 8.1 SP4 getting Java.lang.outofMemory exception

    Dear experts,
    We are running WL8.1 SP4 on our Solaris 5.9 Server.
    We want to do MQ implementatin on this server and for the same some kernel parameters were changed.
    now our system has below parameters in /etc/system:
    set semsys:seminfo_semmsl=1000
    set semsys:seminfo_semvmx=32767
    set shmsys:shminfo_shmmax=4294967295
    set shmsys:shminfo_shmmin=1
    set shmsys:shminfo_shmseg=2048
    set shmsys:shminfo_shmmni=2048
    set semsys:seminfo_semmni=1024
    set semsys:seminfo_semaem=16384
    set semsys:seminfo_semmap=1026
    set semsys:seminfo_semmns=16384
    set semsys:seminfo_semopm=100
    set semsys:seminfo_semmnu=16384
    set semsys:seminfo_semume=256
    set msgsys:msginfo_msgmni=50
    set msgsys:msginfo_msgmap=1026
    set msgsys:msginfo_msgmax=4096
    set msgsys:msginfo_msgmnb=65535
    set msgsys:msginfo_msgtql=4096
    set msgsys:msginfo_msgssz=16
    set msgsys:msginfo_msgseg=8192
    set rlim_fd_cur=10000
    set rlim_fd_max=10000
    and below in /etc/profile:
    ulimit -s unlimited
    ulimit -d unlimited
    but as soon as server was rebooted and we tried to start the weblogic we got java.lang.outofmemory exception.
    details as below:
    admin_trace:
    java.lang.OutOfMemoryError
         at java.util.zip.ZipFile.open(Native Method)
         at java.util.zip.ZipFile.<init>(ZipFile.java:112)
         at java.util.zip.ZipFile.<init>(ZipFile.java:72)
         at weblogic.servlet.internal.WebAppHelper.makeImplicitMapFromJars(WebAppHelper.java:479)
         at weblogic.servlet.internal.WebAppServletContext.extractClassFiles(WebAppServletContext.java:5436)
         at weblogic.servlet.internal.WebAppServletContext.setDocroot(WebAppServletContext.java:5253)
         at weblogic.servlet.internal.WebAppServletContext.init(WebAppServletContext.java:545)
         at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:496)
         at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:637)
         at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:619)
         at weblogic.j2ee.J2EEApplicationContainer.prepareWebModule(J2EEApplicationContainer.java:3191)
         at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1581)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1227)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1070)
         at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2513)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2463)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2379)
         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:866)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:594)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:508)
         at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    --------------- nested within: ------------------
    weblogic.management.ManagementException: [Deployer:149233]An unexpected error was encountered during the deployment process. - with nested exception:
    [java.lang.OutOfMemoryError]
         at weblogic.management.deploy.slave.SlaveDeployer.convertThrowable(SlaveDeployer.java:1017)
         at weblogic.management.deploy.slave.SlaveDeployer.access$500(SlaveDeployer.java:124)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2395)
         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:866)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:594)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:508)
         at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    managed2_trace:
    [java.lang.OutOfMemoryError].
    java.lang.OutOfMemoryError
         at java.util.zip.ZipFile.open(Native Method)
         at java.util.zip.ZipFile.<init>(ZipFile.java:112)
         at java.util.zip.ZipFile.<init>(ZipFile.java:72)
         at weblogic.servlet.internal.WebAppHelper.makeImplicitMapFromJars(WebAppHelper.java:479)
         at weblogic.servlet.internal.WebAppServletContext.extractClassFiles(WebAppServletContext.java:5436)
         at weblogic.servlet.internal.WebAppServletContext.setDocroot(WebAppServletContext.java:5253)
         at weblogic.servlet.internal.WebAppServletContext.init(WebAppServletContext.java:545)
         at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:496)
         at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:637)
         at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:619)
         at weblogic.j2ee.J2EEApplicationContainer.prepareWebModule(J2EEApplicationContainer.java:3191)
         at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1581)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1227)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1070)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:823)
         at weblogic.management.deploy.slave.SlaveDeployer$Application.prepare(SlaveDeployer.java:3029)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareAllApplications(SlaveDeployer.java:967)
         at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:349)
         at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
         at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
         at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:966)
         at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
         at weblogic.Server.main(Server.java:32)
    --------------- nested within: ------------------
    weblogic.management.ManagementException: [Deployer:149233]An unexpected error was encountered during the deployment process. - with nested exception:
    [java.lang.OutOfMemoryError]
         at weblogic.management.deploy.slave.SlaveDeployer.convertThrowable(SlaveDeployer.java:1017)
         at weblogic.management.deploy.slave.SlaveDeployer.access$500(SlaveDeployer.java:124)
         at weblogic.management.deploy.slave.SlaveDeployer$Application.prepare(SlaveDeployer.java:3034)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareAllApplications(SlaveDeployer.java:967)
         at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:349)
         at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
         at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
         at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:966)
         at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
         at weblogic.Server.main(Server.java:32)
    >
    need help to identify what exactly went wrong and where.
    Thanks

    Hi,
    As you are using WLS8.1 It means your JDK will be JDK1.4 and there is a Bug already available with JDK1.4 for the Same issue ... Please find the below link:
    http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4705373 (For Sun JDK1.4)
    AND
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6373059 (For Sun JDK 1.5.0_05)
    Please try to switch to JRockit JDK.
    Thanks
    Jay SenSharma
    http://weblogic-wonders.com/weblogic (WebLogic Wonders Are Here)

  • Trial version of the "Sun Identity Manager " available?

    Hello,
    is there a trial version of the "Sun Identity Manager " available? (e.g. 90 days test licence, or something similar)
    I'am a consultant for metadirectory products and want to setup a test-environment to discover the benefits of your product.
    Best regards,
    Markus Svec

    Hi Mark,
    thank you for your answer.
    Is there documentation (e.g. administration guide) available?
    I searched at docs.sum.com but I only found documentation about "Java System Identity Server", which is a different product as I understand the "confusing" product naming.
    Best regards
    Markus

  • Cannot start OC4J instance - after java.lang.OutOfMemory errors

    Hi, I have successfully deployed an application (using Oracle Web Services, J2EE - EJB, TopLink ) to a new OC4J instance that we created. We use the OEM web site to manage the start/stop and deploy operations.
    Then we tried to run simultaneously 10 clients....against the server app... ran ok for a while and after approx. 5 to 10 min... java.lang.OutOfMemory errors were being thrown at the client.
    After a set of OutOfMemory errors, other clients received errors like the ones show below:
    Errors from the top link log
    2003.09.24 09:39:59.630--ClientSession(1337286)--Thread[ApplicationServerThread-6,5,main]--EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: Bigger type length than Maximum
    INTERNAL EXCEPTION: java.sql.SQLException: Bigger type length than Maximum
    ERROR CODE: 17412LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: Bigger type length than Maximum
    INTERNAL EXCEPTION: java.sql.SQLException: Bigger type length than Maximum
    ERROR CODE: 17412
    at oracle.toplink.exceptions.DatabaseException.sqlException(Unknown Source)
    at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(Unknown Source)
    at oracle.toplink.threetier.ServerSession.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.selectOneRow(Unknown Source)
    at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRowFromTable(Unknown Source)
    at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRow(Unknown Source)
    2003.09.24 09:40:02.365--ClientSession(1337286)--Thread[ApplicationServerThread-6,5,main]--EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: Refcursor value is invalid
    INTERNAL EXCEPTION: java.sql.SQLException: Refcursor value is invalid
    ERROR CODE: 17442LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: Refcursor value is invalid
    INTERNAL EXCEPTION: java.sql.SQLException: Refcursor value is invalid
    ERROR CODE: 17442
    at oracle.toplink.exceptions.DatabaseException.sqlException(Unknown Source)
    at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(Unknown Source)
    at oracle.toplink.threetier.ServerSession.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.selectOneRow(Unknown Source)
    at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRowFromTable(Unknown Source)
    at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRow(Unknown Source)
    at oracle.toplink.queryframework.ReadObjectQuery.execute(Unknown Source)
    at oracle.toplink.queryframework.DatabaseQuery.execute(Unknown Source)
    at oracle.toplink.queryframework.ReadQuery.execute(Unknown Source)
    2003.09.24 09:40:03.553--ClientSession(6073931)--Thread[ApplicationServerThread-23,5,main]--EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: Protocol violation
    INTERNAL EXCEPTION: java.sql.SQLException: Protocol violation
    ERROR CODE: 17401LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: Protocol violation
    INTERNAL EXCEPTION: java.sql.SQLException: Protocol violation
    ERROR CODE: 17401
    at oracle.toplink.exceptions.DatabaseException.sqlException(Unknown Source)
    at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(Unknown Source)
    at oracle.toplink.threetier.ServerSession.executeCall(Unknown Source)
    at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(Unknown Source)
    2003.09.24 09:41:15.173--ServerSession(3066938)--Thread[ApplicationServerThread-19,5,main]--EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: ORA-01403: no data found
    INTERNAL EXCEPTION: java.sql.SQLException: ORA-01403: no data found
    ERROR CODE: 1403LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3.3 (Build 430)): oracle.toplink.exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: ORA-01403: no data found
    INTERNAL EXCEPTION: java.sql.SQLException: ORA-01403: no data found
    ERROR CODE: 1403
    at oracle.toplink.exceptions.DatabaseException.sqlException(Unknown Source)
    at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(Unknown Source)
    at oracle.toplink.threetier.ServerSession.executeCall(Unknown Source)
    Im not sure if this is due to a memory leak or something in my app ? Or does Oracle IAS / Toplink have any such issues for which any possible patches are available ?
    Could anyone please direct me in the possible right direction !
    Thanks,
    Krishna

    Hi,
    We have had this problem too, it only started after we deployed to production and got some load on our application server. We are using JRun as our application server.
    We found that Macromedia (JRun) already addressed the issue in general - that if you get java.lang.OutOfMemory errors, then you need to increase the heap size.
    Previously we had been using our own caching mechanism and never ran into this problem. Since we decided to go with TopLink (which has caching) we no longer use our own caching mechanism... but now we have this problem.
    We have chosen to use FullIdentityMap for caching, but didn't think we would run out of memory in the JVM. Is there a suggested or minimum JVM memory requirement to run TopLink?
    Thanks,
    Aaron

  • Java.lang.OutOfMemory error while retrieving data from a large table

    Hi,
    i am trying to fetch data using "executeQuery()" into a ResultSet from the database. But since the data in that table is large. i am recieving "java.lang.OutOfMemory" Error. So, to resolve that, i have used "setMaxRows()" for my statement object. This resolved the error but i don't recieve the entire data. If i call "executeQuery()" again, i recieve the same data. I don't even know a filtering criterion where by i can filter the data for each "executeQuery()"..
    How can i resolve this problem
    Thanx in advance
    --Chaitanya                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Either use some criteria you develop related to one of the keys on the table or use some sort of record limiting method.
    Note the method of limiting will vary related to the database you are using. You will have to look at the documentation.
    For example I am told this will work in MySQL to get 200 records starting at record 100.
    SELECT * FROM myTable ORDER BY whatever ASC LIMIT 100,200
    Because you are running out of memroy I assume the table is large,
    I am not sure what the impact of the above will have on performance because if in the above if the order by is not based on an index at the server level all the records will be selected and sorted before the records are limited.
    I would make sure you have an appropriate index.
    If you use the advanced search over the user forums using "resultset paging" and possibility the database you are using you should be able to get some ideas.
    I hope this makes sense to you.
    rykk

  • Upgrading sun identity manager 7.1.1 to 8.1

    hi all,
    I am Upgrading sun identity manager 7.1.1 to 8.1 and ran the DB script upgradeto81from71.oracle. It takes a long time and eventually hangs on this statement:
    CREATE INDEX repo1.userobj_repomod ON repo1.userobj(repomod);
    We have large number of users around 30,000 but it should still not hang....
    Any thoughts?
    I am using Oracle 10g client and database is Oracle 11.2.0.2.0
    thanks a lot!
    vik

    Hi,
    I did not have any issues when I did the upgrade but we also did not change the script from waveset to repo1.
    In changing the script did you miss any of changes from waveset to repo1
    By the way we have about 90,000 users so I do not think the number of users is the issue. The database version we use is 10g

  • Integration of sun identity manager with sun access manager

    Hi i am working on integration of sun identity manager 6.0 with SP1 and sun access manager7.0.IDM was deployed on Sun application server 8.1.SAm is installed on SunOneWebserver i am working on windows 2003 server.I downloaded the agent for the application server and installed.
    when i am configuring resource in IDM i am getting following error.
    testconnection failed for resource(s):
    sun access manager could notconnect as user 'amadmin' with specified password==>com.sun.identity.authentication.spi.AuthLoginException:failed to create new AuthenticationContext{0}\n.
    i modified amagent.properties,amconfig.properties and web.xml also
    can any one help me on this.

    Hi i am working on integration of sun identity manager 6.0 with SP1 and sun access manager7.0.IDM was deployed on Sun application server 8.1.SAm is installed on SunOneWebserver i am working on windows 2003 server.I downloaded the agent for the application server and installed.
    when i am configuring resource in IDM i am getting following error.
    testconnection failed for resource(s):
    sun access manager could notconnect as user 'amadmin' with specified password==>com.sun.identity.authentication.spi.AuthLoginException:failed to create new AuthenticationContext{0}\n.
    i modified amagent.properties,amconfig.properties and web.xml also
    can any one help me on this.

  • How to view the MissingFields Form in Sun Identity Manager

    Hi All,
    In the Tabbed User Form [in the Sun Identity Manager's administrative interface], there's this tab called Attributes. This is referring to a form called MissingFields. I want to read this form and understand it's working logic. But I am not able to find out as to where's it stored.
    Help me.
    Thanks,
    Shriram Ravikumar.

    I believe this is not a real form but a special built-in form or something.
    Because when I open the Tabbed User Form in BPE and try to open the reference to MissingFields I get an error.

  • Unable to read big files into string object  and java.lang.OutOfMemory Prob

    Hi All,
    I have an application that uses applet and servlet communication. On the client side I am reading an large xml file of 12MB size (using JFileChooser) and converting the file to an string object using below code. But I am getting java.lang.OutOfMemory on the client side . But the same below code works fine for small xml files which are less than 4MB sizes:
    BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF8"), 1024*12);
    String s, s2 = new String();
    while((s = in.readLine())!= null)
         s2 += s + "\n";
    I even tried below code but still java.lang.OutOfMemory is coming:
    while (true)
         int i = in.read();
         if (i == -1)
              break;
         sb.append(i);
    Please let me know what am I doing wrong here ...
    Thanks & Regards,
    Sony.

    Using a String is bad for the following reason:
    When you initially create the String, it has a certain memory size (allocated length if you will). As you keep appending to this String, then memory reallocation will occur over and over, slowing your program down dramatically (ive seen with a 16k x 8 Char file taking 30 secs to read into memory using Strings in this way)
    A Better way would be if you knew the number of characters in the XML file (Using some File size method for example) Then you can use a StringBuffer, which will pre allocate enough space (or try to, it may just be that you cannot create a string as large as you need). You can use toString() method to get the resultant in a String Object (the extra allocated space at the end of the Buffer will be removed)
    StringBuffer strBuf = new StringBuffer(xxxx);
    Where xx is the length (int). Assuming that you are only allowed to enter an int to the constructor then (platform depedant) an int is 2^31 at maximum (or whatever) which allows 2.14e9 characters, therefore an xml file being totally filed would allow a size of ~2048 MB to be read in.
    Try it and see.

  • Unable to read big files into string object & java.lang.OutOfMemory Problem

    Hi All,
    I have an application that uses applet and servlet communication. On the client side I am reading an large xml file of 12MB size (using JFileChooser) and converting the file to an string object using below code. But I am getting java.lang.OutOfMemory on the client side . But the same below code works fine for small xml files which are less than 4MB sizes:
    BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF8"), 1024*12);
    String s, s2 = new String();
    while((s = in.readLine())!= null)
    s2 += s + "\n";
    I even tried the below code but still java.lang.OutOfMemory is coming:
    while (true)
    int i = in.read();
    if (i == -1)
    break;
    sb.append(i);
    Please let me know what am I doing wrong here ...

    Hi,
    I could avoid the java.lang.OutOfMemory error using below code. But using below code I could read small files of sizes less than 4MB
    but with large files of 12 MB the below code just simply hangs and I am unable to print the string object namely 's'.
    My purpose is to construct an String or StringBuffer object out the user uploaded xml file at the client side and pass that object to server for processing. So how can I construct such object avoid memory problem and increasing the performance of such operations.
    BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
    byte[] b = new byte[in.available()];
    in.read(b, 0, b.length);
    String s = new String(b, 0, b.length);
    in.close();
    Thanks & Regards,
    Sony.

  • Why do I get  a java.lang.OutOfMemory exception

    Thanks, in advance, for you help.
    I just wrote a fairly large program. Every time I run it, I get a java.lang.OutOfMemory exception. I have no idea how to debug my code. Why would I get such an exception and how would I debug it?

    put more debug statements
    and see which line its giving that exception and see whether some where u have any line which is kind of looping or memory allocation .
    As i havent seen ur code thats vague idea iam giving
    java.lang.OutOfMemory exception is Thrown when the JVM cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.
    hope this might help

  • Migration from SIM(Sun Identity Manager) to Oracle IDM

    hi
    Anyone having any knowledge on Migration from SIM(Sun Identity Manager) to Oracle IDM. Please share the knowledge/doc/links. Would helps me lot.
    Thanks
    .\idm

    Hi,
    Basic migration information can be found here. http://www.oracle.com/us/products/middleware/identity-management/upgrade/index.html
    I believe more detailed information will be available soon.

  • Latest Sun Identity Manager release?

    Hi all,
    What is the latest and greatest release as of today?
    Sun identity manager 8.0 Patch 5?
    thanks a lot!
    vik

    Hi Vik-
    Yes. It's 8.0.0.5 and 7.1.1.10 if you're running 7.x.
    With the proper credentials they can both be obtained here:
    http://sunsolve.sun.com/show.do?target=patches/zp-Software_Network-Internet_Identity_Manager
    New patches are released every 6 weeks or so.
    Regards,
    Alex

  • Sun Identity Manager (IDM)

    Any one any docs on SUN Identity Manager ? i have some doubts

    I have a feeling that it will be a never ending question as to the migration steps. For the time being, if you must "migrate", i would suggest re-evaluating what is being done in the Sun IDM system and develop a project plan to implement the same connectors, recon the data from Sun IDM or target, and then use OIM.
    -Kevin

  • Java.lang outofmemory exception in IR

    Hi
       We are on XI 3.0 SP13 and involved in creating a message mapping. We have a big XCBL PO structure as the target - and while we do the mapping effort, every now and then, we get a java.lang outofmemory exception ( display error ) when we save the mapping.
    I notice that my CPU util is 100% and is taken up by javaw.exe.  I have a 1.6 G RAM desktop - but still face this problem. Any suggestions as to how to overcome this memory problem ? Am I missing any setting in my desktop ?? Or do we have to live with this problem since the target structure is a generic/big structure ??
    Thank you in advance for your time.

    Hi
    actually, this problem has nothing to do with the server at all. Also paging size and your desktop ram do not really matter. By default IB starts with the parameter -Xmx512M, what means that Java gets maximum 512M of RAM. You can change it saving JNLP file to your local file system and changing there this argument to -Xmx 800M or -Xmx 1024M.
    The second way is to reduce schema sizes. Usually there are a lot of "annotation" and "documentation" tags. They can be easily removed withoud damaging the mapping(the only problem that in design time you'll not see a documentation for fields). If you want to go this way, you can tell me and I'll find out how it can be done by some tool. Because we had this problem with other customers and as I remember there were some tool made for this purpose.
    Although it might help to install the latest SP, because there were made a number of changes to reduce a memory consumption for Message Mapping tool
    Best regards
    Dmitry

Maybe you are looking for