Oracle 8.1.5 Linux Memory Leak?
We have been running Oracle 8.1.5 Server and Client on Redhat 6.1
kernel 2.2.12-20
glibc-2.1.2-11
Blackdown's JDK 1.2 RC3
We are having bad memory leaks and we have verified that they are
not in our source code using a memory profiler for Java-linux.
We are using the JDBC calls and the OCI JDBC driver.
We think that the memory leak is in libocijdbc8.so but we're not
sure. It could also be in glibc but the 2.1.2-11 version should
be pretty stable. It could also be in the Blackdown jvm.
Anyone have any ideas?
null
Oracle8iR2's JDBC works fine with Oracle8.1.5.
You can download the new JDBC driver.
null
Similar Messages
-
Memory Leak - Oracle 9.2 ADO/OLE DB Select Distinct
I'm using ADO (MDAC 2.8) and Oracle OLE DB (9.2.0.1.0) to access an Oracle 9.2.0.1.0 database. All queries run fine, but when I issue a query with the distinct keyword (e.g. Select distinct...), the application leaks memory. The memory leak does not occur when issuing the same query to MS SQL Server 2000. I also installed the latest 9.2.0.2.0 Oracle OLE DB update, but it didn't fix the problem.
The same problem appears to have been fixed with Oracle ODBC drivers. "Fixed memory leak when using �select distinct�. (Bug2685365)"
http://otn.oracle.com/software/tech/windows/odbc/htdocs/whatsnew.htm
I've also seen the same problem reported on DBForums.com.
"...select distinct query made through ADO causes a memory leak in that object... This issue is known by Oracle and I think that there may be a patch available for Oracle 9."
http://dbforums.com/arch/210/2003/3/733498
This is a critical problem for the product we are developing.
Is there a fix available for this problem?
BobThanks, I looked for the update yesterday, but all Oracle had posted was the update for 9.2.0.2.0.
Luckily, as of this morning there is a new update available from Oracle, 9.2.0.4.0. I installed it and it fixed the memory leak with OLE DB and Select Distinct queries.
The installer for 9.2.0.4.0 is a bit rough. It doesn't stop the Distributed Transaction Coordinator or Oracle MT Service on your computer, so you must stop them before installing. Also, you can't install all the products at once and must install the Oracle uninstaller first. -
Memory Leak when I get the SP return refcursor by oracle ODBC driver:
Oracle server:HP-Unix
Oracle Version: 9.2.0.6.0
Application Server: windows2003
Develop tool : VC++;
Question:
when I get the return refcursor by OLEDB.Oracle, there is not any memory leak and work well. But when I change the driver to ODBC Oralce in OraHome92"
there will be an 56k memory leak.
And in the other hand if I call an store precedure without return ref. Both driver /way can work well.
Can you give me the advice? thanks a lot.
Code such as:
_ConnectionPtr m_AdoConnection;
_CommandPtr pcmd = NULL;
_RecordsetPtr sp_rs = NULL;
_bstr_t bstrConstruct = _bstr_t("DSN=test;Uid=test;Pwd=test;PLSQLRSet=1");
HRESULT hr = CoCreateInstance(__uuidof(Connection),NULL,CLSCTX_INPROC_SERVER,__uuidof(_ConnectionPtr),(LPVOID *)&m_AdoConnection);
if (FAILED (hr) ) throw hr ;
m_AdoConnection->PutCursorLocation(adUseClient) ;
m_AdoConnection->IsolationLevel = adXactSerializable;
m_AdoConnection->Mode = adModeShareExclusive;
bstr_t bstrEmpty(L"") ;
m_AdoConnection->Open (bstrConstruct, bstrEmpty, bstrEmpty, -1) ;
SAFE_CALL(m_spObjectContext->CreateInstance(__uuidof(Command),__uuidof(_CommandPtr),(LPVOID *)&pcmd));
if(pcmd == NULL)
throw CAtlExceptionEx(E_POINTER,"pcmd is NULL");
pcmd->CommandText = _bstr_t(L"wec_pkg_spl.wec_proc_spl_check");
pcmd->CommandType = adCmdStoredProc;
_bstr_t id = _bstr_t("65650000");
pcmd->Parameters->Append(pcmd->CreateParameter(_bstr_t(L"id"),DataTypeEnum(adVarChar),adParamInput,2000,_variant_t(id)));
pcmd->Parameters->Append(pcmd->CreateParameter(_bstr_t(L"errcode"),DataTypeEnum(adNumeric),adParamOutput,4));
pcmd->Parameters->Append(pcmd->CreateParameter(_bstr_t(L"errdescription"),DataTypeEnum(adVarChar),adParamOutput,2000));
pcmd->ActiveConnection = sp_con.m_AdoConnection;
sp_rs = pcmd->Execute(NULL,NULL,adCmdStoredProc);
pcmd->Release;
sp_rs->Close();
if (m_AdoConnection->State == adStateOpen)
m_AdoConnection->Close();
wec_pkg_spl.wec_proc_spl_check arguments:
id varchar2 in
flowpaths ref cursor out
errcode number out
errdescription varchar2 out
Message was edited by:
[email protected]I'm using the oracle ODBC driver 8.05.10 with MFC and client version 8.0.5. In my experience you can't prevent memory leaks with that or earlier versions of the ODBC driver. Client patchkits or service packs for NT or the Visual Studio doesn't solve the problem.
The following code will result in a memory leak with the oracle driver. With every expiration of the timer the leak will grow.
void CTestOdbcOracleDriverDlg::OnTimer(UINT nIDEvent)
TCHAR errString[255];
//open the database with class CDatabase
//use of CRecordset
TRY {
//my table name is AL_ALARME_LOG
pMyRecordset->Open(CRecordset::dynaset,"SELECT * FROM AL_ALARME_LOG",CRecordset::none);
//do something with the data
Sleep(0);
pMyRecordset->Close();
CATCH_ALL(error) {
error->GetErrorMessage(errString,255);
DELETE_EXCEPTION(error);
END_CATCH_ALL
CDialog::OnTimer(nIDEvent);
The same code with the Microsoft ODBC driver
doesn't cause memory leaks.
Andreas ([email protected]) -
Memory leak with multi-threaded environment
When starting an environment with the THREADED_MUTEXED
or THREADED_UNMUTEXED mode parameter, the oracle OCCI API
has a memory leak. This can be demonstrated by modifying
the "occidml.cpp" demo program as follows:
Replace line 26:
env = Environment::createEnvironment (Environment::DEFAULT);
with
env = Environment::createEnvironment (Environment::THREADED_MUTEXED);
And replace line 164:
demo->displayAllRows();
with
for (int ii=0; ii<10000; ii++) demo->displayAllRows();
Recompile and run the program, and use "top" to see the
size of the process's used memory continually increase
unbounded.
I am using the Oracle 9.2.0.1.0 database on Linux,
gcc version 2.96.
Is anyone aware of a fix for this problem?Yeah, I did suffer from this.
If possible , you can switch to using OCCI on Oracle 10G client , you will find no memory leak issue anymore.
Another issue is that OCCI is using default connection-blocking implementation , if a DB connection is blocked by accident just like plugging out the network link, you can not get any timeout or connection closed indications. You must implement your own OCCI connection timeout strategy, and you must kill the thread/process you are using. -
Memory leak using GWT 1.4 and JDK 1.5
We are running the following:
OS : Solaris 5.10
WebLogic version: 10.0
JDK : Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Server VM (build 1.5.0_14-b03, mixed mode)
GWT : 1.4
Oracle : 10g
We have found memory leak with the above configuration.
After running 1 session we are facing memory leak. The used Java heap is 4% higher than the one used after we conduct
our memory tests for 1 user.
Similarly, after running 5 concurrent sessions we are also facing memory leak where Java heap memory is utilised more
by about 4%.
I have used JRockit JDK 1.5 for figuring out memory leak. I have not found a memory leak in any of the modules
developed by us.
The memory leak issue is we think concerned with the version of JDK, Weblogic, Sun OS.
Can somebody please suggest whether we can use the version as mentioned above?
Any help on this front will be appreciated.gc log:
#log information
JAVA_OPTS="$JAVA_OPTS -verbose:gc "
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails "
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps "
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC "
JAVA_OPTS="$JAVA_OPTS -Xloggc:/path/to/gclog`date +%Y.%m.%d-%H:%M:%S`.log "Check sun papers for garbage collecting tips.
>
Is there any other way we can detect memory leak?
>
You have to profile your Application Server like you did with your own code.
regards
slowfly -
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 -
Hi all,
Starting with some background:
I have an application that has been running on 32-bit Linux server for years without problem, a few weeks ago it was ported to 64-bit RHEL 5.5 (compiled with -m32). Now with the application in the new environment some processes are growing in memorysize.
I have tried to pinpoint the memory leak with Valgrind and have numerous leaks reported in "libclntsh.so", "libocci.so" and "libnnz11.so"
Examples:
==30114== Use of uninitialised value of size 4
==30114== at 0xA61BAD7: ztcedecb (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0xA61B1E2: ztcedencbk (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0xA61AA0A: ztcebn (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0xA61A561: ztcen (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8DA9725: ztceenc (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8E68920: ztcrbm (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8E684D5: ztcrbh (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8E68393: ztcrbp (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8E682C6: ztcr2seed (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8E6827F: ztcrseed3 (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8DAA24A: ztcsh (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x99727D7: kpucpcreate (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
And:
==30114== Conditional jump or move depends on uninitialised value(s)
==30114== at 0x8E69BBC: ztvo5ke (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8D55E68: kpu8lgn (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8D53E56: kpuauthxa (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8D536DB: kpuauth (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x996EB99: kpucpinithstnode (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x996FFB1: kpucpcrecons (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x9972871: kpucpcreate (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x9821048: OCIConnectionPoolCreate (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x7BFB896: oracle::occi::ConnectionPoolImpl::initialise(oracle::occi::EnvironmentImpl*, void*, unsigned int, void*, unsigned int, void*, unsigned int, unsigned int, unsigned int, unsigned int) (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
==30114== by 0x7BFBB79: ZN6oracle4occi18ConnectionPoolImplC9EPNS015EnvironmentImplERKSsS5_S5_jjj (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
==30114== by 0x7BFBAC7: oracle::occi::ConnectionPoolImpl::ConnectionPoolImpl(oracle::occi::EnvironmentImpl*, std::string const&, std::string const&, std::string const&, unsigned int, unsigned int, unsigned int) (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
==30114== by 0x7BF2C13: oracle::occi::EnvironmentImpl::createConnectionPool(std::string const&, std::string const&, std::string const&, unsigned int, unsigned int, unsigned int) (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
And:
==30114== Conditional jump or move depends on uninitialised value(s)
==30114== at 0xAC3B2A5: CMP_RecomputeLength (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libnnz11.so)
==30114== by 0xAC3B9EC: CMP_Divide (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libnnz11.so)
==30114== by 0xAC3B5BA: CMP_ModularReduce (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libnnz11.so)
==30114== by 0xAC3A2E6: Alg_ComputeModQ_GHash (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libnnz11.so)
==30114== by 0xAC3AA30: A_X931RandomGenerateBytes (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libnnz11.so)
==30114== by 0x8E681F0: ztcr2rnd (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8DAA260: ztcsh (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8CD0125: kpusattr (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x8CE96CD: OCIAttrSet (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libclntsh.so.11.1)
==30114== by 0x7BF6184: oracle::occi::ConnectionImpl::openConnection(OCIEnv*, OCIError*, void*, unsigned int, void*, unsigned int, void*, unsigned int, void*, unsigned int, unsigned int, void*, unsigned int, oracle::occi::Connection::Purity, oracle::occi::StatelessConnectionPool::PoolType) (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
==30114== by 0x7BF9C29: ZN6oracle4occi14ConnectionImplC9EPNS018ConnectionPoolImplERKSsS5_ (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
==30114== by 0x7BF9AD1: oracle::occi::ConnectionImpl::ConnectionImpl(oracle::occi::ConnectionPoolImpl*, std::string const&, std::string const&) (in /soe3/opt/oracle-1/product/32bit-client-11.2.0.2/lib/libocci.so.11.1)
There has been quite a few changes due to the new server. New compiler (gcc) from version 2.96 to 4.1.2, new version of oracle client 10g to 11g (11.2.0.2), new version of OCCI (also 11.2.0.2). The applications sourcecode is pretty much unchanged though, and that is why I turn to all of you for help.
Is there anyone who knows anything about this problem and how to even start to fix this leak (if it even is in OCCI)?
I can supply sourcecode and/or logs if needed. It is quite a lot of complex code so it might take me a while to sort out the relevant code though...Thanks for your input! Tough this post is from some time ago this is still an issue for me I'm afraid, so I appreciate all the help I can get.
I have stripped down the code to just the basic functions needed to replicate the problem. The pool creation and connections are the same as in our application (which is unchanged since before the porting). Though the following code makes no indications of a leak when run through Valgrind, it still grows when checked in "top". It could be that I stripped the code too much, but this is pretty much what our application does. It creates a database lock (not in this code), creates connection, (read table), terminates connection and release lock every 6 seconds to check if there is any new assignments added...
#include <iostream>
#include <string>
#include <occi.h>
using namespace oracle::occi;
using namespace std;
Environment *env;
ConnectionPool *connPool;
Connection *con;
int x, loopnr;
string usr = "test_user";
string pwd = "test_pw";
string url = "dbtest";
void run(int x) { // Run loops
for(int i=0; i<x; i++){ // Loop connect and disconnect x number of times
try {
fflush(stdout); // Update console row for count value
con = connPool->createConnection (usr, pwd); // Connect
usleep(100000);
connPool->terminateConnection (con); // Disconnect
cout << "\r"; // Update console row for count value
cout << loopnr << endl; // Print number of loops done
usleep(100000);
loopnr++; // Count number of loops done
catch(SQLException ex) { // Exception handling
cout<<"SQLException"<<endl;
cout<<"Error number: "<< ex.getErrorCode() << endl;
cout<<ex.getMessage() << endl;
int main(int argc,char* argv[]) {
cout << "IN --- main()\n";
if(argc == 2) { // Read number of loops as argument...
x = atoi(argv[1]);
else { // ...or run loop 200 times if no args
x = 200;
try{
env = Environment::createEnvironment (Environment::DEFAULT); // Create environment
loopnr = 1;
connPool = env->createConnectionPool(usr, pwd, url, 1, 2, 1); // Create pool
run(x); // Run loops
catch(SQLException ex) { // Exception handling
cout<<"SQLException"<<endl;
cout<<"Error number: "<< ex.getErrorCode() << endl;
cout<<ex.getMessage() << endl;
env->terminateConnectionPool (connPool); // Cleanup Pool when done
Environment::terminateEnvironment (env); // Cleanup Environment when done
cout << "\nUT --- main()\n";
return 0;
Above code is built with the following makefile:
ORACLE_HOME=/opt/oracle/product/32bit-client-11.2.0.2
CXXFLAGS = -Wall -m32 -g -fPIC \
-I$(ORACLE_HOME)/rdbms/public
LDLIBS = -L$(ORACLE_HOME)/lib/ -locci \
-L$(ORACLE_HOME)/rdbms/lib/ -lclntsh
LDFLAGS = -m32
default: all
Sample: Sample.cc
all: Sample
clean:
rm -f Sample *.o
Hopefully someone can make sense out of this....
Edited by: StLa on 2011-nov-23 04:57 -
Oracle 9.2 and memory leak detection
Hi All.
I have found the following error in trace file
after shutdown database.
=================================================================
/.../udump/cpaw_ora_4427.trc
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
ORACLE_HOME = /.../product/9.2.0
System name: Linux
Node name: host.com
Release: 2.4.18-10bigmem
Version: #1 SMP Wed Aug 7 10:26:52 EDT 2002
Machine: i686
Instance name: orcl
Redo thread mounted by this instance: 0 <none>
Oracle process number: 10
Unix process pid: 4427, image: [email protected] (TNS V1-V3)
*** SESSION ID:(9.3) 2002-10-10 14:17:14.265
Archiving is disabled
Archiving is disabled
******** ERROR: SGA memory leak detected 16 ********
KGH Latch Directory Information
ldir state: 2 next slot: 39
Slot [ 1] Latch: 0x50005be8 Index: 1 Flags: 3 State: 2 next: (nil)
<...>
=====================================================================
Linux RedHat 7.3 (db works in archivelog mode).
How can I correct this?
Thanks in advance.
Best regards,
Andrey Demchenko.Thanks for the answers. The oci8.dll is uncommented naturally. Otherwise it would start up just fine, but I couldn't use the database functions.
I got it working by installing 5.1.6, but replacing the oci8.dll with the one from the 5.1.0 -version. It's a very... desperate... solution, but at least it works.
I'm gonna have to try to sell the idea of using the 10g client to our DBA. I don't think though, that he'll be very enthusiastic to set it up on our production servers. We'll see. -
Memory leak in weblogic 6.0 sp2 oracle 8.1.7 thin driver
Hi,
I have a simple client that opens a database connection, selects from
a table containing five rows of data (with four columns in each row)
and then closes all connections. On running this in a loop, I get the
following error after some time:
<Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Adapter>
<OutOfMemoryError in
Adapter
java.lang.OutOfMemoryError
<<no stack trace available>>
>
<Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Kernel> <ExecuteRequest
failed
java.lang.OutOfMemoryError
I am running with a heap size of 64 Mb. The java command that runs
the client is:
java -ms64m -mx64m -cp .:/opt/bea/wlserver6.0/lib/weblogic.jar
-Djava.naming.f
actory.initial=weblogic.jndi.WLInitialContextFactory
-Djava.naming.provider.url=
t3://garlic:7001 -verbose:gc Test
The following is the client code that opens the db connection and does
the select:
import java.util.*;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
public class Test {
private static final String strQuery = "SELECT * from tblPromotion";
public static void main(String argv[])
throws Exception
String ctxFactory = System.getProperty
("java.naming.factory.initial");
String providerUrl = System.getProperty
("java.naming.provider.url");
Properties jndiEnv = System.getProperties ();
System.out.println ("ctxFactory : " + ctxFactory);
System.out.println ("ProviderURL : " + providerUrl);
Context ctx = new InitialContext (jndiEnv);
for (int i=0; i <1000000; i++)
System.out.println("Running query for the "+i+" time");
Connection con = null;
Statement stmnt = null;
ResultSet rs = null;
try
DataSource ds = (DataSource) ctx.lookup
(System.getProperty("eaMDataStore", "jdbc/eaMarket"));
con = ds.getConnection ();
stmnt = con.createStatement();
rs = stmnt.executeQuery(strQuery);
while (rs.next ())
//System.out.print(".");
//System.out.println(".");
ds = null;
catch (java.sql.SQLException sqle)
System.out.println("SQL Exception : "+sqle.getMessage());
finally
try {
rs.close ();
rs = null;
//System.out.println("closed result set");
} catch (Exception e) {
System.out.println("Exception closing result set");
try {
stmnt.close ();
stmnt = null;
//System.out.println("closed statement");
} catch (Exception e) {
System.out.println("Exception closing result set");
try {
con.close();
con = null;
//System.out.println("closed connection");
} catch (Exception e) {
System.out.println("Exception closing connection");
I am using the Oracle 8.1.7 thin driver. Please let me know if this
memory leak is a known issue or if its something I am doing.
thanks,
rudyRepost in JDBC section ... very serious issue but it may be due to Oracle or
to WL ... does it happen if you test inside WL itself?
How many iterations does it take to blow? How long? Does changing to a
different driver (maybe Cloudscape) have the same result?
Peace,
Cameron Purdy
Tangosol Inc.
<< Tangosol Server: How Weblogic applications are customized >>
<< Download now from http://www.tangosol.com/download.jsp >>
"R.C." <[email protected]> wrote in message
news:[email protected]...
Hi,
I have a simple client that opens a database connection, selects from
a table containing five rows of data (with four columns in each row)
and then closes all connections. On running this in a loop, I get the
following error after some time:
<Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Adapter>
<OutOfMemoryError in
Adapter
java.lang.OutOfMemoryError
<<no stack trace available>>
>
<Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Kernel> <ExecuteRequest
failed
java.lang.OutOfMemoryError
I am running with a heap size of 64 Mb. The java command that runs
the client is:
java -ms64m -mx64m -cp .:/opt/bea/wlserver6.0/lib/weblogic.jar
-Djava.naming.f
actory.initial=weblogic.jndi.WLInitialContextFactory
-Djava.naming.provider.url=
t3://garlic:7001 -verbose:gc Test
The following is the client code that opens the db connection and does
the select:
import java.util.*;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
public class Test {
private static final String strQuery = "SELECT * from tblPromotion";
public static void main(String argv[])
throws Exception
String ctxFactory = System.getProperty
("java.naming.factory.initial");
String providerUrl = System.getProperty
("java.naming.provider.url");
Properties jndiEnv = System.getProperties ();
System.out.println ("ctxFactory : " + ctxFactory);
System.out.println ("ProviderURL : " + providerUrl);
Context ctx = new InitialContext (jndiEnv);
for (int i=0; i <1000000; i++)
System.out.println("Running query for the "+i+" time");
Connection con = null;
Statement stmnt = null;
ResultSet rs = null;
try
DataSource ds = (DataSource) ctx.lookup
(System.getProperty("eaMDataStore", "jdbc/eaMarket"));
con = ds.getConnection ();
stmnt = con.createStatement();
rs = stmnt.executeQuery(strQuery);
while (rs.next ())
//System.out.print(".");
//System.out.println(".");
ds = null;
catch (java.sql.SQLException sqle)
System.out.println("SQL Exception : "+sqle.getMessage());
finally
try {
rs.close ();
rs = null;
//System.out.println("closed result set");
} catch (Exception e) {
System.out.println("Exception closing result set");
try {
stmnt.close ();
stmnt = null;
//System.out.println("closed statement");
} catch (Exception e) {
System.out.println("Exception closing result set");
try {
con.close();
con = null;
//System.out.println("closed connection");
} catch (Exception e) {
System.out.println("Exception closing connection");
I am using the Oracle 8.1.7 thin driver. Please let me know if this
memory leak is a known issue or if its something I am doing.
thanks,
rudy -
Memory leak issue with link server between SQL Server 2012 and Oracle
Hi,
We are trying to use the linked server feature with SQL Server 2012 to connect SQL server and Oracle database. We are concerned about the existing memory leak issue. For more context please refer to the link.
http://blogs.msdn.com/b/psssql/archive/2009/09/22/if-you-use-linked-server-queries-you-need-to-read-this.aspx
The above link talks about the issues with SQL Server versions 2005 and 2008, not sure if this is still the case in 2012. I could not find any article that talks about if this issue was fixed by Microsoft in later version.
We know that SQL Server process crashes because of the third-party linked server provider which is loaded inside SQL Server process. If the third-party linked server provider is enabled together with the
Allow inprocess option, the SQL Server process crashes when this third-party linked server experiences internal problems.
We wanted to know if this fixed in SQL Server 2012 ?So your question is more of a information type or are you really facing OOM issue.
There can be two things for OOM
1. There is bug in SQL Server which is causing the issue which might be fixed in 2012
2. The Linked server provider used to connect to Oracle is not upto date and some patch is missing or more recent version is to be used. Did you made sure that you are using latest version.
What is Oracle version you are trying to connect(9i,10g, R2...)
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
Hi friends,
Is anyone worked on any of the tools to identify and optimise Java Memory Leak in Linux environment?Hi friends,
Is anyone worked on any of the tools to identify and
optimise Java Memory Leak in Linux environment?Hi,
I've been using Optimizeit on linux, and I like it.
/Kaj -
Memory leak in oracle.exe and mds.exe
We are facing Memory leak in oue MDM server. Our environment details
are as follows;
MDM 5.5 SP5 ( Build 5.5.41.70)
Oracle 10.2 patch 2
windows server 2003 SP1
XI 7.0 SP 9
If server is running continuously 3-4 days then Nonpaged memory is
getting exausted and server does not respond. Now we have to retart the
windows server manually.
If we see the task manager it is shows more than 200,000 handles for
oracle.exe and more than 100,000 handles for mds.exe.
1: Oracle.exe -- more than 200000 handles ( Approx >5000 is problem)
2: Mds.exe -- more than 100000 handles ( Approx >5000 is problem)
Since these applications are not releasing the handles properly so all
nonpaged memory gets exausted and server stops responding.
If we restart the mdm server, database and OracleserviceMDMD, then
nonpaged memory is released. But some times even if we restart these
services, we do not get nonpaged memory released. So we have to restart
the windows server.
please help me if anyone else have faced the same problem.
regards
SaurabhClosing as question is answered in MDM forum.
-
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 -
Memory Leak with Oracle ODBC Driver for Long Raw columns
Oracle version : 8.1.7
Platform : Win2K
Oracle ODBC Driver version : 8.0.1.7.5.0.0
Hi,
I've got an Oracle database upgraded from
V8.0.5 to V8.1.7 which has a table having one long raw +
normal columns. I was able to observe distinct memory
leaks (approx 80K) when using ODBC interface calls (thro C++ code) that referenced a combination of normal & long raw columns in a select statement. However, this leak was not observed when only normal columns were present in the
select statement. Is there any known restriction for using
long raw columns with other columns? Or do long raw columns have a known memory leak problem thro ODBC?
Thanks!
Regards
SanchayanDid you ever get an answer on this issue?
Thanks in advance -
Oracle JDBC Thin Driver Memory leak in scrollable result set
Hi,
I am using oracle 8.1.7 with oracle thin jdbc driver (classes12.zip) with jre 1.2.2. When I try to use the scrollable resultset and fetch records with the default fetch size, I run into memory leaks. When the records fetched are large(10000 records) over a period of access I get "outofmemory" error because of the leak. There is no use increasing the heap size as the leak is anyhow there.
I tried using optimizeit and found there is a huge amout of memory leak for each execution of scrollable resultsets and this memory leak is propotional to the no of records fetched. This memory leak is not released even when i set the resultset,statement objects to null. Also when i use methods like scrollabelresultset.last() this memory leak increases.
So is this a problem with the driver or i am doing some wrong.
If some of you can help me with a solution to solve this it would be of help. If needed i can provide some statistics of these memory leaks using optimize it and share the code.
Thanks
RajeshThis thread is ancient and the original was about the 8.1.7 drivers. Please start a new thread. Be sure to include driver and database versions, stack traces, sample code and why you think there is a memory leak.
Douglas
Maybe you are looking for
-
E3200 not seen in Debian Linux
I set up my new Linksys E3200 via hardwired Win XP box on small home network that uses a dsl line. I attached a Seagate Expansion 2TB usb hd to the router. All is well. After rebooting into Debian Linux via dual boot setup, I have a working intern
-
Loading with the spinning wheel.
Hello all. I made the update to my iphone last evening as I just got it a week ago so I am on the most current software. I am noticing a couple of things i would like your help with. First i have 3 bars of 3g service and safari seems to take forever
-
Changing Special Variables in FrameMaker 7.1
Hi, I use FrameMaker 7.1. Problem I have to change a two special variables in many documents. I usually do this by opening the Frame book and changing the variable from the FrameMaker interface. Since there is a large number of books (consequently fi
-
DVDSP4 problem-getting no help
I have DVD Studio Pro 4 on a G4 1.25 with 2 gigs of ram. My problem is I can't get my buttons to highlight to save my life. I looked thru the forum answer data base for answers and all I got were tutorials of various lengths and quality. I create my
-
Lost addons (most important: Pocket) and customisation after reboot as Mozilla froze
Firefox froze (random chunks of page were being highlighted as I moved the cursor. Hard-rebooted the comp and firefox reset to default - no previous settings or addons, just the favourites. I had tonnes of useful stuff in the Pocket (formerly Read It