D8B3 - Standalone WLS memory leaks
I have a standalone WLS with FMWTOOLS_MAIN.D8B3_GENERIC_100218.1734.D08B03
Created with wlsconfig.sh
observing the following message in the log very frequently..almost for every request or so..
[2010-05-12T07:58:10.548-06:00] [AdminServer] [WARNING] [] [oracle.adf.share.ADFContext] [tid: Timer-18] [userId: SCMOPERATIONS] [ecid: 0000IYClSEJAPPB5JZd9if1BuLjB0000mq,1:21250] [APP: EarFscmAnalytics] Automatically initializing a DefaultContext for getCurrent.[[
Caller should ensure that a DefaultContext is proper for this use.
Memory leaks and/or unexpected behaviour may occur if the automatic initialization is performed improperly.
This message may be avoided by performing initADFContext before using getCurrent().
Any idea on what this means? How to fix it?
Thanks, -Ram
Did you get a resolution for this? I am seeing the same issue. Thx.
Similar Messages
-
OPMN vs Standalone OC4j (memory leak)
I run the same servlet application using standalone OC4J instance on solaris without any problem.
Trying to run the same application deployed in oracle enterprise (opmn) console causes memory leak. I see a lot of new classes allocated on each servlet invocation related to oracle.xml.* package and org.apache.axis.* (servlet uses axis to download attachment).
Did anybody see similar issues. Any thought are welcome.
thanks
RomanTo answer myself in case somebody was interested how to resolve this issue :
Using different xml parser (for ex. crimson, but most likely any other would be fine too) eleminated the problem.
i.e. adding the followning java system property
-Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl -
Possible Memory Leak in WLS6.1-SP2
Hello,
I need your help in getting to the bottom of a memory issue we are facing.
We are running EJB based applications on Web Logic Server (WLS) 6.1 SP2 on Solaris
8 servers using 1.3.1_03 JDK. There are several applications running, but lets
use one of them as example.
I am using the following JDK parameters:
-XX:NewSize=96m -XX:MaxNewSize=96m -Xms384m -Xmx384m -XX:SurvivorRatio=2
The memory values on Solaris, before the application is started, are as follows:
Real memory = 4096M, Free memory = 2415M, Swap in use = 1059M, Swap free = 2322M
When I start the applications, I can see the memory foot print for this application
at around 540 Meg. Since JVM pre-allocates heap space, I expect this number to
remain constant as the application is stressed. But this does not happen, and
it puzzles me. I see the memory footprint of application go up, and that makes
me believe that is a memory leak somewhere. Since heap space remains below the
selected limit (384M), and the application does not over-run heap, it makes me
believe that the memory leak is not happening in application code; rather it is
Web Logic Server that is leaking memory.
As the application runs, the memory footprint increase from 540M to almost 900M,
to the point the system is left with very low free swap space, and the application
(not necessarily this particular one) starts throwing OutOfMemoryError.
At this point, it becomes impossible to recover and the only way out is to bounce
WLS.
Does it sound like a memory leak issue to you ? Do you agree that it look like
a WLS memory leak?
If anybody had similar experience, please help me with your advice. I would be
very interested in knowing how you diagnosed the problem and what solution did
you apply.
Thanks,
Asad FaiziThe native OCI driver is not allocating out of the Java heap, but rather
from the OS (or the c rtl) so the Java heap parameters do not affect it. I
don't know if it is a problem that you see or just normal behavior.
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com/coherence.jsp
Tangosol Coherence: Clustered Replicated Cache for Weblogic
"Asad Faizi" <[email protected]> wrote in message
news:[email protected]...
>
Cameron,
We are using Oracle-8.1.7r3 driver. Can you give me some more informationas to
why do you suspect Oracle JDBC driver? Have you had similar experience ?How did
you diagnose this and what did you do to fix it?
Thanks,
Asad Faizi
"Cameron Purdy" <[email protected]> wrote:
Probably a JDBC driver (Oracle OCI?).
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com/coherence.jsp
Tangosol Coherence: Clustered Replicated Cache for Weblogic
"Asad Faizi" <[email protected]> wrote in message
news:[email protected]...
Hello,
I need your help in getting to the bottom of a memory issue we arefacing.
We are running EJB based applications on Web Logic Server (WLS) 6.1SP2 on
Solaris
8 servers using 1.3.1_03 JDK. There are several applications running,but
lets
use one of them as example.
I am using the following JDK parameters:
-XX:NewSize=96m -XX:MaxNewSize=96m -Xms384m -Xmx384m -XX:SurvivorRatio=2
The memory values on Solaris, before the application is started, areas
follows:
Real memory = 4096M, Free memory = 2415M, Swap in use = 1059M, Swapfree =
2322M
When I start the applications, I can see the memory foot print forthis
application
at around 540 Meg. Since JVM pre-allocates heap space, I expect thisnumber to
remain constant as the application is stressed. But this does not
happen,
and
it puzzles me. I see the memory footprint of application go up, andthat
makes
me believe that is a memory leak somewhere. Since heap space remainsbelow
the
selected limit (384M), and the application does not over-run heap,it
makes me
believe that the memory leak is not happening in application code;rather
it is
Web Logic Server that is leaking memory.
As the application runs, the memory footprint increase from 540M toalmost
900M,
to the point the system is left with very low free swap space, andthe
application
(not necessarily this particular one) starts throwing OutOfMemoryError.
At this point, it becomes impossible to recover and the only way outis to
bounce
WLS.
Does it sound like a memory leak issue to you ? Do you agree that itlook
like
a WLS memory leak?
If anybody had similar experience, please help me with your advice.I
would be
very interested in knowing how you diagnosed the problem and what
solution
did
you apply.
Thanks,
Asad Faizi -
Memory leak in WLS6.1 sp3 on Solaris?
We are running WLS 6.1 sp3 on Solaris 8 using Sun's 1.3.1 JVM with BEA's
JDriver to connect to Oracle (8.1.7). We have set the JVM to a maximum heap
of 512M (-Xms256m -Xmx512m).
The issue is that we are now seeing (via pmap) the resident memory growing
to ~1GB. Yet, the WLS management console is reporting memory usage of ~200M.
So, if we are to believe WLS, then the JVM (or some native library) is
chewing up the extra memory.
Having examined the results of "pmap -x <pid>", I see the heap (and some
anon) mem/file are quite large.
Address Kbytes Resident Shared Private Permissions Mapped File
00026000 418912 416096 - 416096 read/write/exec [ heap ]
D8C00000 524288 447928 - 447928 read/write/exec [ anon ]
total Kb 1083832 981136 37960 943176
Questions:
- Are there any known memory leaks with 6.1 sp3 on Solaris?
- Should it be possible for pmap's value of "heap" to grow larger than the
"Xms" setting? We have observed this recently, but the numbers above don't
reflect this.
- Any idea what the "anon" is or how to determine what it is?
- Do you know of any tools that might help me determine what is using that
memory or what is in it?
Any suggestions will be greatly appreciated...
Thanks in advance,
ErikIf you set -Xmx512m then the java heap will grow no larger than 512MB.
WLS is reporting the size of the java heap. (It is a java program after
all and doesn't know a lot about what native code might be doing.)
My first thought is try running with Oracle's thin (type-4) driver.
Since this is java code, it will use the java heap. If the memory usage
drastically changes, then you can point the finger at the jDriver.
Are you using any other native code / libraries?
-- Rob
Erik Westland wrote:
We are running WLS 6.1 sp3 on Solaris 8 using Sun's 1.3.1 JVM with BEA's
JDriver to connect to Oracle (8.1.7). We have set the JVM to a maximum
heap
of 512M (-Xms256m -Xmx512m).
The issue is that we are now seeing (via pmap) the resident memory growing
to ~1GB. Yet, the WLS management console is reporting memory usage of
~200M.
So, if we are to believe WLS, then the JVM (or some native library) is
chewing up the extra memory.
Having examined the results of "pmap -x ", I see the heap (and some
anon) mem/file are quite large.
Address Kbytes Resident Shared Private Permissions Mapped File
00026000 418912 416096 - 416096 read/write/exec [ heap ]
D8C00000 524288 447928 - 447928 read/write/exec [ anon ]
total Kb 1083832 981136 37960 943176
Questions:
- Are there any known memory leaks with 6.1 sp3 on Solaris?
- Should it be possible for pmap's value of "heap" to grow larger than the
"Xms" setting? We have observed this recently, but the numbers above don't
reflect this.
- Any idea what the "anon" is or how to determine what it is?
- Do you know of any tools that might help me determine what is using that
memory or what is in it?
Any suggestions will be greatly appreciated...
Thanks in advance,
Erik -
I am doing some memory profiling for an application running inside OC4J standalone. When the application is redeployed to OC4J, OC4J does not release memory for servlets and all the instances that's defined as class variables, e.g. private static Object s_instace. So if the application is redeployed 5 times, I saw 5 instances in the memory while gabarge collection can not collect them, and eventually the application runs out of memory if redeployed multiple times without restarting OC4J. I am wondering if anyone has encountered this issue before?
Hello cguo:
Thanks for reporting the problem.
This is a recognized minor problem in oc4j standalone (and hence also in application server.) It is believed that the memory leak is not big enough to be a serious concern, unless an application is redeployed many times in a production environment, which is an unlikely. In any case, this bug should be fixed in the next oc4j production. Please try the next oc4j production release when it comes (when? I am not sure) and tell me if the problem still persists. -
Memory leak and char[] ?
Hello all,
I'm not sure whether this post should be here or in WebLogic section, so correct me if I'm wrong.
I'm working on JDeveloper 11.1.1.3 while deployments are made on standalone WebLogic 10.3.3. This thing occurred in previous versions also.
With every deployment WebLogic increases it's used memory until the famous PermGen space error, which is after about 5-6 deployments.
I'm doing my best to understand how to use memleak detection tools. I've switched JDev and WL from Sun jdk which was used before to JRockit, same thing happens. Both JDev's memory profiler and JRockit mission control show something that I really do not understand. char[] uses around 30% of heap space and keeps growing with deployments, next is String with 8%. I never use char in app.
Am I looking at the wrong thing? Is it normal for char[] to increase on WebLogic on deployments? Does anyone know how to check other things and what to check? Someone on other forums mentioned it would be useful to check if ApplicationContext keeps initializing over again on deployments. Does anyone know how to check this?
One more thing, I have successfully deployed app on Tomcat, and Tomcat said there is a memory leak in app, but could not tell anything specific.
I'm kinda lost in this :(It is normal for the PermGen space of the Sun's JVM to get filled after several re-deployments. PermGen stands for "permanent generational". This space is used by classes that is unlikely to need to be garbage-collected, so they are placed in this memory space that is never garbage-collected (for example, the Class instances). When you redeploy an application, a new class loader instance is used and it instantiates new Class instances that fill up the PermGen space. But why this happens on JRockit either, I could not explain.
We have experienced memory leaks related to classes and components that use native memory. For example, we have had significant memory leak when using Oracle's JDBC OCI driver. We were not able to solve this problem, so we switched to JDBC Thin driver (which is very performant and stable today comparing to some years ago). If you are using Oracle JRockit, you can monitor the overall memory usage by the following JRockit command executed at OS command line:
jrcmd <jrockit_pid> print_memusage>where <jrockit_pid> should be replaced by the JVM process ID.
If you suspect existence of native memory leaks, then have a look at the article Thanks for the memory for explanations about how Java uses native memory.
Dimitar -
Memory leak using Oracle thin driver on wls6.1...
Hi, I've been attempting to find a memory leak in an application that
runs on WLS 6.1 SP2, on Solaris 8 and accessing an Oracle 9i db. We
are using the Type 4 (Thin) driver and JProbe reports that hundreds of
oracle.jdbc.* objects are left on the heap after my test case
completes. Specifically oracle.jdbc.ttc7.TTCItem is the most common
loiterer on the heap. I have verified that after each database access
the resources are release correctly (i.e. ResultSet, Connection,
PreparedStatement, etc.)
Has anyone encountered similar problems? or does anyone know how to
fix this?
Thanks,
Tim WatsonHi Tim!
We have seen problem using oracle 817 client that has been resolved using
901 client for type2(oci) driver, But i am not aware of thin driver
problem. You should check with oracle if they have find any customer's
with this problem.
Thanks,
Mitesh
Tim Watson wrote:
Hi, I've been attempting to find a memory leak in an application that
runs on WLS 6.1 SP2, on Solaris 8 and accessing an Oracle 9i db. We
are using the Type 4 (Thin) driver and JProbe reports that hundreds of
oracle.jdbc.* objects are left on the heap after my test case
completes. Specifically oracle.jdbc.ttc7.TTCItem is the most common
loiterer on the heap. I have verified that after each database access
the resources are release correctly (i.e. ResultSet, Connection,
PreparedStatement, etc.)
Has anyone encountered similar problems? or does anyone know how to
fix this?
Thanks,
Tim Watson -
Maximize server uptime - memory leak?
Since we stabilized the newly introduced WLI 8.1 application we are now fine tuning the JVM. We are facing some kind of memory leak which forces us to reboot the WLS instances daily.
I'm now asked to identify some strategies how we could let the WLI instances run for longer than 1 day. My goal is 7 days, so that the machines must only be touched once a week. The relevant JVM settings are like this:
-Xms2048m -Xmx2048m -Xmanagement -Djrockit.managementserver.port=30011 -XgcPrio:throughput
I've choosen the "throughput" strategy as we have here a systems which acts asynchronously most of the time (WLI). I have attached two JRA records. The first ("1day") shows a system which has an uptime of now 16 hours. The heap utilization is almost all the time between 90%-100%. Things get worse after a while. In the consequence we are rebooting the server when we see more and more timeout-exceptions in our WLI layer and heavy GC activity ("average time spent in GC")
The other record ("leakdetector") shows a system which is now running for almost 3 hours. Here I connected the memory leak detector. The graph looks a bit better / more balanced. Means, that after 3 hours the avg heap util remains between the margins of 40-50 %. The trend of the bottom margin however clearly indicates an increasing memory footprint.
To understand this in more detail I started using the memory leak analyzer. So far I got no benefit from using the tool, though it looks very impressive. However, when I connect the memory leak analyzer I can observe some strange heap graph changes. I suppose the memory leak detector has some impact onto the GC strategies, doesn't it? My heap graph looks totally different with no leak detector attached. What can be the reason on this?
Also I'm quite a bit confused why the "Growth" indicator always stays at 0 bytes/sec, even when I can see that objects are getting bigger and bigger. What is the secret here?
i appreciate every comment you have on my case,
thanks a lotYou might also look at approaching the problem for a different perspective. Which transactions, requests, components are creating the most amount of memory? What concurrent requests where active when the memory jumped or an OOME was thrown. I have found this approach effective in getting a good idea on where to focus memory diagnostics after ruling of course a resource capacity issue.
The following article discusses the difference between a leak and a capacity problem.
http://www.jinspired.com/products/jxinsight/outofmemoryexceptions.html
Also you should try high level monitoring to see whether there are global patterns in metric data that provides clues. This blog entry shows what is possible with professional performance management tools with visualizations going beyond pie charts and table views.
Beautiful Evidence: Metric Monitoring
http://blog.jinspired.com/?p=33
There are also many low level memory inspection tools on the market that might help quickly navigate the heap and identify the problem though I think the JRA tool has probably most of the same features.
Regards,
William Louth
JXInsight Product Architect
CTO, JInspired
"Java EE tuning, testing, tracing, and monitoring with JXInsight"
http://www.jinspired.com -
Memory leak in Callable Statement
We are using Weblogic 6.1 and Oracle 8.1.7 for an application we are developing.
Usage of callable statement seems to be resulting an a memory leak. The program runs
in a loop and after processing 200 records, java.lang.outofMemory Exception is thrown
We are unable to figure out a reason for the same.
The code snippet is as below
try
//dbConn = ImportPODBConnect.getDBConnection(dsJNDIName, dsURL); //connect
to DB <br>
dbConn = DBConnect.getDBConnection(dsJNDIName, dsURL);
//query = POQueries.selectPO(poId); //get the required
query statement from the POQueries utility class
Print.log(" in getPO() ----> ********* before 1st stmt " + System.currentTimeMillis());
cstmt = dbConn.prepareCall("{ ? = call PO_HEADER_PROC(?)}");
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.setFloat(2, poId);
// execute and retrieve the result set
cstmt.execute();
getPORs = (ResultSet)cstmt.getObject(1);
Print.log(" in getPO() ----> ********* after 1st stmt " + System.currentTimeMillis());
if (!getPORs.next()) //if nothing returned then
throw an exception
Print.log("Unable to get the required PO:" + poId);
throw new Exception("Unable to get the required PO:" + poId);
else //set all the variables
of the PO header objects from the result set
pohSl = new POHeaderSl();
pohSl.setOvUserName(getPORs.getString("OVA_USER_NAME"));
pohSl.setOvCompanyName(getPORs.getString("OVA_COMPANY_NAME"));
pohSl.setAgent(getPORs.getString("AGENT"));
pohSl.setApprovalCode(getPORs.getString("APPROVAL_CODE"));
pohSl.setBrand(getPORs.getString("BRAND"));
pohSl.setBusinessSegment(getPORs.getString("BUSINESS_SEGMENT"));
pohSl.setBusinessSubSegment(getPORs.getString("BUSINESS_SUB_SEGMENT"));
pohSl.setBuyDate(getPORs.getString("BUY_DATE"));
pohSl.setCareContentLabel(getPORs.getString("CARE_CONTENT_LABEL"));
pohSl.setCartonMarkings1(getPORs.getString("CARTON_MARKINGS_1"));
pohSl.setCartonMarkings2(getPORs.getString("CARTON_MARKINGS_2"));
pohSl.setCartonMarkings3(getPORs.getString("CARTON_MARKINGS_3"));
pohSl.setCartonMarkings4(getPORs.getString("CARTON_MARKINGS_4"));
pohSl.setComments(getPORs.getString("COMMENTS"));
pohSl.setCommissionPerUnit(getPORs.getString("COMMISSION_PER_UNIT"));
pohSl.setCompanyId(getPORs.getString("COMPANY_ID"));
pohSl.setCompulsoryString(getPORs.getString("COMPULSORY_STRING"));
pohSl.setConTimestamp(getPORs.getString("CON_TIMESTAMP"));
pohSl.setCurrency(getPORs.getString("CURRENCY"));
pohSl.setCustomerBillToNumber(getPORs.getString("CUSTOMER_BILL_TO_NUMBER"));
pohSl.setCustomerLcBank(getPORs.getString("CUSTOMER_LC_BANK"));;
pohSl.setCustomerLcDate(getPORs.getString("CUSTOMER_LC_DATE"));
pohSl.setCustomerLcExpiryDate(getPORs.getString("CUSTOMER_LC_EXPIRY_DATE"));
pohSl.setCustomerLcNumber(getPORs.getString("CUSTOMER_LC_NUMBER"));
pohSl.setCustomerPoNumber(getPORs.getString("CUSTOMER_PO_NUMBER"));
pohSl.setCustomerSaleDept(getPORs.getString("CUSTOMER_SALE_DEPT"));
pohSl.setCustomerShipToNumber(getPORs.getString("CUSTOMER_SHIP_TO_NUMBER"));
pohSl.setCustomerSo(getPORs.getString("CUSTOMER_SO"));
pohSl.setDateLastModifiedErp(getPORs.getString("DATE_LAST_MODIFIED_ERP"));
pohSl.setDateLastModifiedOv(getPORs.getString("DATE_LAST_MODIFIED_OV"));
pohSl.setDateOfActivation(getPORs.getString("DATE_OF_ACTIVATION"));
Print.log(" ******** inside getPO() ----- > ****** built Header" + System.currentTimeMillis()
if(getPORs != null)
getPORs.close();
getPORs = null;
if(cstmt != null)
Print.log("In the close");
cstmt.close();
cstmt = null;
catch (Exception e)
System.out.println(" in dataAccess.getPO() ----- > " + e.toString());
throw new Exception(e.toString()); //if there are any exceptions
then throw back the exceptions
finally //finally block to release any connections
and statement objects
if(getPORs != null)
getPORs.close();
getPORs = null;
if (pstmt!=null)
pstmt.close();
pstmt = null;
if (cstmt!=null)
cstmt.close();
cstmt = null;
if (dbConn!=null)
dbConn.close();
dbConn = null;
return poSl; //return the PO object
Can anyone help with this?hi
This may happen when you open resultset objects and not close them properly.
Try to ensure that, you should close the objects in individual try catch
blocks so that one failure will not cause other close's to be skipped.
You can try one more thing, I don't see you are using any LONG/ LONG
RAW/BLOB/CLOB columns from your code here. If the table which you are trying
to retrieve data from has this type of data you will benefit from using some
tuning parameters here and may be able to avoid out of memory exceptions,
take a look at the url,
http://e-docs.bea.com/wls/docs61/oracle/advanced.html#1158561
especially, try using,
weblobic.oci.selectBlobChunkSize and set it to something low. you can set
these properties on the connection pool.
sree
"Murali" <[email protected]> wrote in message
news:[email protected]...
>
>
We are using Weblogic 6.1 and Oracle 8.1.7 for an application we aredeveloping.
Usage of callable statement seems to be resulting an a memory leak. Theprogram runs
in a loop and after processing 200 records, java.lang.outofMemoryException is thrown
>
We are unable to figure out a reason for the same.
The code snippet is as below
try
//dbConn = ImportPODBConnect.getDBConnection(dsJNDIName, dsURL);//connect
to DB <br>
dbConn = DBConnect.getDBConnection(dsJNDIName, dsURL);
//query = POQueries.selectPO(poId); //getthe required
query statement from the POQueries utility class
Print.log(" in getPO() ----> ********* before 1st stmt " +System.currentTimeMillis());
>
cstmt = dbConn.prepareCall("{ ? = call PO_HEADER_PROC(?)}");
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.setFloat(2, poId);
// execute and retrieve the result set
cstmt.execute();
getPORs = (ResultSet)cstmt.getObject(1);
Print.log(" in getPO() ----> ********* after 1st stmt " +System.currentTimeMillis());
>
if (!getPORs.next()) //if nothing returnedthen
throw an exception
Print.log("Unable to get the required PO:" + poId);
throw new Exception("Unable to get the required PO:" + poId);
else //set all thevariables
of the PO header objects from the result set
pohSl = new POHeaderSl();
pohSl.setOvUserName(getPORs.getString("OVA_USER_NAME"));
pohSl.setOvCompanyName(getPORs.getString("OVA_COMPANY_NAME"));
pohSl.setAgent(getPORs.getString("AGENT"));
pohSl.setApprovalCode(getPORs.getString("APPROVAL_CODE"));
pohSl.setBrand(getPORs.getString("BRAND"));
pohSl.setBusinessSegment(getPORs.getString("BUSINESS_SEGMENT"));
pohSl.setBusinessSubSegment(getPORs.getString("BUSINESS_SUB_SEGMENT"));
pohSl.setBuyDate(getPORs.getString("BUY_DATE"));
pohSl.setCareContentLabel(getPORs.getString("CARE_CONTENT_LABEL"));
pohSl.setCartonMarkings1(getPORs.getString("CARTON_MARKINGS_1"));
pohSl.setCartonMarkings2(getPORs.getString("CARTON_MARKINGS_2"));
pohSl.setCartonMarkings3(getPORs.getString("CARTON_MARKINGS_3"));
pohSl.setCartonMarkings4(getPORs.getString("CARTON_MARKINGS_4"));
pohSl.setComments(getPORs.getString("COMMENTS"));
pohSl.setCommissionPerUnit(getPORs.getString("COMMISSION_PER_UNIT"));
pohSl.setCompanyId(getPORs.getString("COMPANY_ID"));
pohSl.setCompulsoryString(getPORs.getString("COMPULSORY_STRING"));
pohSl.setConTimestamp(getPORs.getString("CON_TIMESTAMP"));
pohSl.setCurrency(getPORs.getString("CURRENCY"));
pohSl.setCustomerBillToNumber(getPORs.getString("CUSTOMER_BILL_TO_NUMBER"));
pohSl.setCustomerLcBank(getPORs.getString("CUSTOMER_LC_BANK"));;
pohSl.setCustomerLcDate(getPORs.getString("CUSTOMER_LC_DATE"));
pohSl.setCustomerLcExpiryDate(getPORs.getString("CUSTOMER_LC_EXPIRY_DATE"));
pohSl.setCustomerLcNumber(getPORs.getString("CUSTOMER_LC_NUMBER"));
pohSl.setCustomerPoNumber(getPORs.getString("CUSTOMER_PO_NUMBER"));
pohSl.setCustomerSaleDept(getPORs.getString("CUSTOMER_SALE_DEPT"));
pohSl.setCustomerShipToNumber(getPORs.getString("CUSTOMER_SHIP_TO_NUMBER"));
pohSl.setCustomerSo(getPORs.getString("CUSTOMER_SO"));
pohSl.setDateLastModifiedErp(getPORs.getString("DATE_LAST_MODIFIED_ERP"));
pohSl.setDateLastModifiedOv(getPORs.getString("DATE_LAST_MODIFIED_OV"));
pohSl.setDateOfActivation(getPORs.getString("DATE_OF_ACTIVATION"));
Print.log(" ******** inside getPO() ----- > ****** built Header" +System.currentTimeMillis()
if(getPORs != null)
getPORs.close();
getPORs = null;
if(cstmt != null)
Print.log("In the close");
cstmt.close();
cstmt = null;
catch (Exception e)
System.out.println(" in dataAccess.getPO() ----- > " + e.toString());
throw new Exception(e.toString()); //if there are anyexceptions
then throw back the exceptions
finally //finally block to release anyconnections
and statement objects
if(getPORs != null)
getPORs.close();
getPORs = null;
if (pstmt!=null)
pstmt.close();
pstmt = null;
if (cstmt!=null)
cstmt.close();
cstmt = null;
if (dbConn!=null)
dbConn.close();
dbConn = null;
return poSl; //return the PO object
Can anyone help with this? -
JDBC memory leak in 11.2.0.2.0 driver ?
Hi,
my customer on WLS 9.2.1 have just upgraded to new database and to a new JDBC Oracle 11.2.0.2.0 driver and it seems there is a memory leak. Based on heap dump it seem that leek i near oracle.jdbc.xa.OracleXAResource$XidListEntry. Admins are missing about 200MB on each server after 3 days.
Class Name | Objects | Shallow Heap | Retained Heap
oracle.jdbc.xa.OracleXAResource$XidListEntry| 2,378,575 | 57,085,800 | 171,257,016
Class Name | Objects | Shallow Heap | Retained Heap
weblogic.transaction.internal.XidImpl| 2,378,605 | 57,086,520 | 114,172,880
2,378,605 objects are really a lot :) and it about 114 MB of weblogic.transaction.internal.XidImpl objects
I found patch 8423655 but it is for older driver version. Does anybody have a similar experience? Any solution?
Thanks
PatrikAfter a discussion with support we have found patch for the problem:
Document Titleoracle.jdbc.xa.OracleXAResource$XidListEntry Objects Leaking in JDBC Driver for WebLogic Server (WLS) (Doc ID 872258.1)
You were right the problem was on Weblogic site and also on driver side. In last JDBC driver it is already fixed so we have to upgrade just WLS part.
Thanks
Patrik -
Hi all,
using R28.1.3-11-141760-1.6.0_24-20110301-1432-linux-x86_64 of jrockit we experience a memory leak in production. So far I only got to obtain an hprof dump, which I analyzed with eclipse MAT. I'm trying to obtain a flight recording as well but I'm not sure if this will shed more light on the problem. The MAT result is pretty clear but I'm not sure what the cause is. There's one object of com.sun.xml.ws.server.WSEndpointImpl with a growing retained heap, at the moment of the memory dump it was 929 MB. Here's the import part of the dominator tree:
Class Name | Shallow Heap | Retained Heap | Percentage
com.sun.xml.ws.server.WSEndpointImpl @ 0xafaf0f70 | 176 | 929.780.784 | 69,61%
|- com.sun.xml.ws.binding.SOAPBindingImpl @ 0xafaf1160 | 72 | 929.046.360 | 69,56%
| |- com.sun.xml.ws.binding.WebServiceFeatureList @ 0xafaf13e0 | 56 | 929.044.320 | 69,56%
| | '- java.util.HashMap @ 0xafaf1e58 | 80 | 929.044.264 | 69,56%
| | |- java.util.HashMap$Entry[16] @ 0xafaf3058 | 152 | 929.044.160 | 69,56%
| | | |- java.util.HashMap$Entry @ 0xaf9b8f48 | 48 | 928.998.912 | 69,55%
| | | | '- weblogic.wsee.jaxws.EndpointCreationInterceptorFeature @ 0xaf9b8f80| 32 | 928.998.864 | 69,55%
| | | | '- java.util.HashSet @ 0xaf9b92f8 | 24 | 928.998.832 | 69,55%
| | | | '- java.util.HashMap @ 0xaf9b9528 | 80 | 928.998.808 | 69,55%
| | | | |- java.util.HashMap$Entry[32768] @ 0x9462cb88 | 262.168 | 928.998.704 | 69,55%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x9b672ae8 | 40 | 152.104 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xad2a9360 | 40 | 152.104 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xa3949490 | 40 | 152.104 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xa3a332c8 | 40 | 152.104 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x954ef698 | 40 | 151.440 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xb3acff18 | 40 | 148.256 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xa1db8a38 | 40 | 148.000 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xb9d18ee8 | 40 | 148.000 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xbe6bf4d0 | 40 | 147.896 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xa0397080 | 40 | 147.896 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xbf6693f0 | 40 | 147.896 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xc3c4ddb0 | 40 | 143.792 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x82714140 | 40 | 143.792 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xa0347178 | 40 | 143.792 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x919c9948 | 40 | 143.688 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xbb1f6d28 | 40 | 135.960 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x8c3cd118 | 40 | 135.488 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x91d6e950 | 40 | 134.936 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x8abefe80 | 40 | 134.936 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x89f0aaa8 | 40 | 134.736 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xb0f116a8 | 40 | 134.600 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x9da69938 | 40 | 134.392 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x96cae018 | 40 | 134.392 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0x88691950 | 40 | 134.040 | 0,01%
| | | | | |- weblogic.wsee.jaxws.ServerLateInitTube @ 0xc201f268 | 40 | 134.040 | 0,01%
| | | | | '- Total: 25 of 36.803 entries | | |
I would appreciate any hints on how to proceed as these are standard java / weblogic classes. If I drill down into the objects I see some ErrorHandler objects, so these objects might accumulate with erroneus requests, but I'm not positive on this since I only checked a few instances. Before I start to try to reproduce this on a test environment I would like to ask for your help.
Kind regards,
Thomas
PS: Sorry, this is probably not really jrockit related, but I know here are some java experts ;)Hi Marcus,
thanks. The FlightRecording did not help, the allocation pressure is not high enough. I eventually fired up memleak and found the following allocation trace, which doesn't help me a lot. I will post in WLS forums.
Trace Type Type ID Class Loader Class Loader ID Percent(%) Count
weblogic.wsee.jaxws.ServerLateInitTube.copy(TubeCloner) weblogic.wsee.jaxws.ServerLateInitTube 98 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.ServerLateInitTube.copy(TubeCloner) weblogic.wsee.jaxws.ServerLateInitTube 98 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.pipe.PipeClonerImpl.copy(Tube) com.sun.xml.ws.api.pipe.PipeClonerImpl 15773 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.ServerLateInitTube.<init>(ServerLateInitTube, TubeCloner) weblogic.wsee.jaxws.ServerLateInitTube 98 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.ServerLateInitTube.copy(TubeCloner) weblogic.wsee.jaxws.ServerLateInitTube 98 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.ServerLateInitTube.copy(TubeCloner) weblogic.wsee.jaxws.ServerLateInitTube 98 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.pipe.PipeClonerImpl.copy(Tube) com.sun.xml.ws.api.pipe.PipeClonerImpl 15773 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.pipe.helper.AbstractFilterTubeImpl.<init>(AbstractFilterTubeImpl, TubeCloner) com.sun.xml.ws.api.pipe.helper.AbstractFilterTubeImpl 15774 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.tubeline.standard.WseeServerTube.<init>(WseeServerTube, TubeCloner) weblogic.wsee.jaxws.tubeline.standard.WseeServerTube 2450 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.tubeline.standard.WseeServerTube.copy(TubeCloner) weblogic.wsee.jaxws.tubeline.standard.WseeServerTube 2450 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.wsee.jaxws.tubeline.standard.WseeServerTube.copy(TubeCloner) weblogic.wsee.jaxws.tubeline.standard.WseeServerTube 2450 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.pipe.PipeClonerImpl.copy(Tube) com.sun.xml.ws.api.pipe.PipeClonerImpl 15773 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.pipe.TubeCloner.clone(Tube) com.sun.xml.ws.api.pipe.TubeCloner 15776 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.server.WSEndpointImpl$2.<init>(WSEndpointImpl) com.sun.xml.ws.server.WSEndpointImpl$2 15319 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.server.WSEndpointImpl.createPipeHead() com.sun.xml.ws.server.WSEndpointImpl 2523 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.server.Adapter$Toolkit.<init>(Adapter) com.sun.xml.ws.api.server.Adapter$Toolkit 15770 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.<init>(HttpAdapter) com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit 15306 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.HttpAdapter.createToolkit() com.sun.xml.ws.transport.http.HttpAdapter 15467 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.HttpAdapter.createToolkit() com.sun.xml.ws.transport.http.HttpAdapter 15467 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.server.Adapter$1.create() com.sun.xml.ws.api.server.Adapter$1 2807 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.api.server.Adapter$1.create() com.sun.xml.ws.api.server.Adapter$1 2807 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.util.Pool.take() com.sun.xml.ws.util.Pool 15771 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.HttpAdapter.handle(WSHTTPConnection) com.sun.xml.ws.transport.http.HttpAdapter 15467 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletContext, HttpServletRequest, HttpServletResponse) com.sun.xml.ws.transport.http.servlet.ServletAdapter 3251 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(HttpServletRequest, HttpServletResponse, ServletContext) com.sun.xml.ws.transport.http.servlet.WSServletDelegate 4388 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(HttpServletRequest, HttpServletResponse, ServletContext) com.sun.xml.ws.transport.http.servlet.WSServletDelegate 4388 sun.misc.Launcher$AppClassLoader<0> 0 100 17
com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(HttpServletRequest, HttpServletResponse) com.sun.xml.ws.transport.http.servlet.WSServlet 4743 sun.misc.Launcher$AppClassLoader<0> 0 100 17
javax.servlet.http.HttpServlet.service(HttpServletRequest, HttpServletResponse) javax.servlet.http.HttpServlet 15468 sun.misc.Launcher$AppClassLoader<0> 0 100 17
javax.servlet.http.HttpServlet.service(ServletRequest, ServletResponse) javax.servlet.http.HttpServlet 15468 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run() weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction 15469 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(ServletRequest, HttpServletRequest, ServletRequestImpl, ServletResponse, HttpServletResponse, Servlet) weblogic.servlet.internal.StubSecurityHelper 1044 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.ServletStubImpl.execute(ServletRequest, ServletResponse, FilterChainImpl) weblogic.servlet.internal.ServletStubImpl 907 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.ServletStubImpl.execute(ServletRequest, ServletResponse) weblogic.servlet.internal.ServletStubImpl 907 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(ServletStubImpl, HttpServletRequest, HttpServletResponse) weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction 15310 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run() weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction 15310 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AbstractSubject, PrivilegedAction) weblogic.security.acl.internal.AuthenticatedSubject 2125 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.security.service.SecurityManager.runAs(AuthenticatedSubject, AuthenticatedSubject, PrivilegedAction) weblogic.security.service.SecurityManager 15464 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.WebAppServletContext.securedExecute(HttpServletRequest, HttpServletResponse, boolean) weblogic.servlet.internal.WebAppServletContext 1108 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.WebAppServletContext.execute(ServletRequestImpl, ServletResponseImpl) weblogic.servlet.internal.WebAppServletContext 1108 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.servlet.internal.ServletRequestImpl.run() weblogic.servlet.internal.ServletRequestImpl 67 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.work.ExecuteThread.execute(Runnable) weblogic.work.ExecuteThread 1085 sun.misc.Launcher$AppClassLoader<0> 0 100 17
weblogic.work.ExecuteThread.run() weblogic.work.ExecuteThread 1085 sun.misc.Launcher$AppClassLoader<0> 0 100 17
Kind regards,
Thomas -
Memory leak? & ie7 partial triggers
Hi all,
I'm running Jdev 11.1.1.0.3 against a 10.3 WLS
I've made a few try with adf faces & I'm running now against a problem looking like memory leak.
I'm working with a parent/child tables in separate showdetailitems container having about 5/6 columns on the child table.
When I run the application it works perfeclty.
If I put 10/12 columns on the child table the application stalled when I go in the child showdetailitem (Retrieving data)
Except if the child table doesn't have more than 3-4 rows (then it works great)
I have another problem with IE7 making objectRequired error on any adf page with partialtrigger.
IE7 say the error is located arround the lines
this.headers= new Object();
this.xmlhttp= new XMLHttpRequest();}
AdfXMLRequest.prototype.toString=function()
in _all-11.1.1.0.0.js file
Any hint on any of the two would be appreciated, I'll try re-installing ie7 meanwhile. ^_^hi Frank (great tutorials!), Peter.
Frank, Regarding ie7 I've noticed we're not a lot to have this problem, I use firefix meanwhile hoping ie8 fixes the issue. Still I'm ready to fill a SR if you think it's worthwhile.
Peter, Thx for the idea, i've set contentdelivery to immediate & get further errors ^_^
When I clic on the ShowdetailItem (third one) It goes back to the first one with this error (sorry you'll guess I'm french)
30 janv. 2009 13:59:01 org.apache.myfaces.trinidad.component.UIXShowDetail broadcast
ATTENTION: L'événement org.apache.myfaces.trinidad.event.DisclosureEvent[phaseId=INVOKE_APPLICATION 5,component=RichShowDetailItem[UINodeFacesBean, id=ShowDetailCorrecteurEpreuve],expanded=true] a été transmis à un showDetail déjà dans cet état de publication.
(roughly: Event ... has been transmitted to a showDetail allready in this publication state)
When I don't have too much rows, it's still working perfectly -
Media Encoder is a memory leak - windows
Applies to: Version 5.5.1.12 - 64 bit, Windows (Most likely earlier versions too)
Reproducing the problem:
Start Media Encoder as a standalone application by double clicking the icon.
Close the window (by clicking the 'x' in the top-right corner) of Media Encoder.
It does just that: closes the window. It does not close the process.
The process now has no window-handle, thus the user can not access it.
When user starts the application again, another process is created.
Thus the previous process becomes a memory leak.
Workaround:
Open Windows Task Manager by pressing Ctrl-Alt-Del keys simultaniously then selecting Task Manager
Click the 'Processes' tab
Highlight 'Adobe Media Encoder.exe'
Click 'End Process'
Ignore the warning and kill the processBill, Sometimes it takes AME and related components up to 30 seconds to close various processes. If you close the app and immediately start a new instance, the old process sees that AME is still running and may not shut down it's process until you shut down your computer. So give it a little time after shutdown to see if that helps. That said, there are situations that I have seen myself that AME would not close all processes in background. In many of those cases, it had to do with dynamic link and what type of files or assets you opend up and what application launches AME. Sometimes when AME is launched by other applications like Premiere Pro, it leaves a process alive in case PPro is using it. but if you close all Adobe apps, it should close your process as well. Over the past few cycles, we have worked on improving processes. Let me know if the above info doesn't help.
-
CVI dll to read XML file causes memory leak
Hello,
I am facing a memory leak issue when I execute a dll created using CVI to read a XML file.
Each iteration of the step is taking around 200k of memory.
Short description of the code:
Basically I am using a function created in CVI to read from an XML file by tag which 2 attributes: command and the response;
int GetCmdAndRsp(char XML_File[MAX_STR_SIZE], char tag[MAX_STR_SIZE], char Command[MAX_STR_SIZE], char Response[MAX_STR_SIZE], char ErrorDescription[MAX_STR_SIZE])
inputs:
- XML_File_path;
- tagToFind;
ouputs:
- Command;
- Response;
- Error;
Example:
XMLFile:
<WriteParameter Command="0x9 %i %i %i %i %i" Response = "0x8 V %i %i %i %i"/>
Execution:
error = GetCmdAndRsp("c:\\temp\\ACS_Messages.xml" ,"WriteParameter", cmd, rsp, errStr)
output:
error = 0
cmd = "0x9 %i %i %i %i %i"
rsp = "0x8 V %i %i %i %i"
errStr = "Unkown Error"
Everything is working correctly but I have this memory leak issue. Why am I having such memory consumption?? Is it a TestStand or CVI issue??
Each iteration I am loading the file, reading the file and discarding the file.
Attached you can find the CVI project, a TestStand sequence to test (ReadXML_test2.seq) and an example of a XML file I am using.
Please help me here.
Thaks in advance.
Regards,
Pedro Moreira
Attachments:
ReadXML_Prj.zip 1826 KBPedro,
When a TestStand step executes, its result will be stored by TestStand which will be later used for generating reports or logging data into database.
You are looking at the memory (private bytes) when the sequence file has not finished execution. So, the memory you are looking at, includes the memory used by TestStand to store result of the step. The memory used for storing results will be de-allocated after finishing the sequence file execution.
Hence, we dont know if there is actual memory leak or not. You should look at the memory, before and after executing sequence file instead of looking in between execution.
Also, here are some pointers that will be helpful for checking memory leak in an application:
1. TestStand is based on COM and uses BSTR in many function. BSTR caches the memory and because of the behavior, sometime you might get false notion of having memory leak. Hence, you need to use SetOaNoCache function OR set the OANOCACHE=1 environment variable to disable caching.
2. Execute the sequence file atleast once before doing the actual memory leak test. The dry run will make sure all static variables are initialized before doing memory leak test.
3. Make sure that the state of system or application is same when considering the Private bytes. Ex: Lets say ReportViewControl is not visible before you start executing sequence file. Then you note down the private bytes and then execute the sequence file. After finishing execution, make sure you close the ReportViewControl and then note down the private bytes once again to check if memory is leaked or not.
4. If there exists memory leak as you specified, it is possible that the leak is either in TestStand, or in your code. Make sure that your code doesn't leak by creating a small standalone application (probably a console application) which calls your code.
Detecting memory leaks in CVI is better explained in
http://www.ni.com/white-paper/10785/en/
http://www.ni.com/white-paper/7959/en/
- Shashidhar -
Memory Leaks In Transforms?
I was wanting to find out if anyone has experienced having mucho string not being
garbage collected after performing the transform process?
In our setup, we are using xsl files compiled into Template objects. We then use
these templates to do the transform process on runtime generated XML. I have been
using Optimize-It and find that after going from one page to the next in our app,
there are about 1000+ strings which don't get garbage collected. 96+% of these
strings are created during the transform call.
Any ideas?
Thanks,
RichHave you looked at the Xerces doc?
http://xml.apache.org/
Peace,
Cameron Purdy
Tangosol, Inc.
Clustering Weblogic? You're either using Coherence, or you should be!
Download a Tangosol Coherence eval today at http://www.tangosol.com/
"Rich Llaca" <[email protected]> wrote in message
news:3c7c0128$[email protected]..
>
After furthur inspections with OptimizeIt, here's what we found. First,after we
use a compiled Templates' transform it seems good to run the transform'sclearParameters()
method.
This didn't completely alleviate the problem of our String object countincreasing...it
just didn't increase as dramatically. I finally found a couple of objectsnamed
weblogic.apache.xerces.utils.StringPool. I inspected them and foundstrings which
a product of our XML output in the StringPool objects.
In our application, we will have literally thousands of possibly uniquestrings
getting stuffed into XML. How can we eliminate the continual growth ofhaving
strings stuffed into this StringPool object?
Rich
"Rich Llaca" <[email protected]> wrote:
Thanks for the reply Daniel,
I was a little sparse on our runtime environment.
We're using WLS 6.1 SP2. As far as the XSL, we're using the SAX
processors
which
are built into Weblogic. From what I've read, we are stuck with those
unless we
use some other processors/parsers which are not built on Apache'sXalan/Xerces
packages. Is this right?
Thanks,
Rich
Daniel Hoppe <[email protected]> wrote:
Hi,
which XSLT-Processor are you using? We use Saxon and we did not step
into memory leaks although we use Templates as well.
Cheers,
Daniel
Maybe you are looking for
-
Multiple Users for Call Assistant
Does any know how multiple users can sign onto the Verizon Call Assistant desktop client? Right now, when one user signs on, the other gets logged out.
-
Directory Structure in 9.0.2
Is it possible to have 'sub' page groups ie. page groups within page groups? If not how could one implement a deep content directory structure such as is possible with content areas and folders in portal 3.0.9?
-
I purchased a song on I tunes and when I try to play it message said need to authorize the computer,I did and message still appears.
-
Timesten user defined function problem
create or replace FUNCTION FACTORIAL n IN NUMBER RETURN NUMBER IS val NUMBER :=1; tem number :=n; BEGIN while tem>1 LOOP val:=val*tem; tem:=tem-1; END LOOP; RETURN val; END FACTORIAL; I create a function like this. And I t
-
Urgent..!! Financial Reporting Issue
Hi All, I've an issue about Financial Reporting.. First, i cannot connect FR through Workspace, and then I tried to reconfigure my FR. But then, Financial Reporting Java RMI service is disabled suddenly. Then, i tried to delete all registry that rela