Close() missing, memory leak in XMLType Support Sample [04-Mar-2003]
In the function
private void viewXML()
from the XMLType Support Sample [04-Mar-2003]
http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/9i_jdbc/XMLTypeSample/XMLTypeSample.java.html
I am missing the close() statement.
I think, this should look like this:
// XMLType class had a static overloaded method called createXML
// which takes an OPAQUE object as input and retrieves the XMLType
// equivalent of it. The syntax of this method is
// XMLType createXML(OPAQUE xmlObj)
XMLType xt = XMLType.createXML(xmlObj);
// Display the retrieved details in the View XML frame
xmlTypeFrame.frmViewXML.displayResumeDetails(// Resume Id
resumeDetailsArr.get(0).toString(),
// Candidate Name
resumeDetailsArr.get(1).toString(),
// XML String
xt.getStringVal()
xt.close();
}catch(Exception excep){
....I had massive problems with a tomcat server app, which gets xml data from the db. The query was called 10x per second. After 10 hours the db was out of memory since I was using just one session and I forgot the close().
Is this correct?
Klaus
In the function
private void viewXML()
from the XMLType Support Sample [04-Mar-2003]
http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/9i_jdbc/XMLTypeSample/XMLTypeSample.java.html
I am missing the close() statement.
I think, this should look like this:
// XMLType class had a static overloaded method called createXML
// which takes an OPAQUE object as input and retrieves the XMLType
// equivalent of it. The syntax of this method is
// XMLType createXML(OPAQUE xmlObj)
XMLType xt = XMLType.createXML(xmlObj);
// Display the retrieved details in the View XML frame
xmlTypeFrame.frmViewXML.displayResumeDetails(// Resume Id
resumeDetailsArr.get(0).toString(),
// Candidate Name
resumeDetailsArr.get(1).toString(),
// XML String
xt.getStringVal()
xt.close();
}catch(Exception excep){
....I had massive problems with a tomcat server app, which gets xml data from the db. The query was called 10x per second. After 10 hours the db was out of memory since I was using just one session and I forgot the close().
Is this correct?
Klaus
Similar Messages
-
Tuxedo Memory Leak Issue (Tuxedo 8.1 - Windows Server 2003)
Hi
We are running tuxedo 8.1, 32 bit with patch level 258 in our windows server 2003 based production environment. We are currently facing an issue where the memory usage of machine slowly keeps on going higher and higher eventually resulting in “Memory Allocation Failure” to tuxedo servers. We then have to do a complete restart of tuxedo which stabilizes the system for other few days.
We have been analyzing the our source code in development/test environment using different tools like a customized Alzheimer tool and IBM purify but both tools reported no memory leaks. We then developed a test tuxedo server exposing a tuxedo service which simply allocates a memory to a response buffer and then returns the response buffer. I then configured tuxedo queue with same name “MEMTEST3” and configured a TMQForward server to call this “MEMTEST3” service every time a message is en-queued to the MEMTEST3 queue.
unsigned long _LIBENTRY ulTPAlloc(FBFR32 **ppc, long size)
unsigned long ulRes = MSG_SUCCESS_c;
ppc = (FBFR32 ) tpalloc("FML32", (char *) 0, size);
if (*ppc == (FBFR32 *) 0) {
vLogMessage(hGetLogHandle(), MSG_MEM_ALLOC_ERR_c, (char *) 0, (Event_t *) 0,
BM_NOSUPPRESS_c, size);
ulRes = MSG_MEM_ALLOC_ERR_c;
return (ulRes);
/*==============================================================================
Service MEMTEST2
==============================================================================*/
void MEMTEST3(TPSVCINFO *pRequest)
FBFR32 *pFmlResponse = NULL;
FBFR32 *pFml = NULL;
unsigned long ulRes = MSG_SUCCESS_c;
unsigned long ulActionCode = 0;
int iExitValue = 0;
long lTpurcode = 0;
FBFR32 *pFmlNULL = NULL;
userlog("Starting MEMTEST3 service.");
if (pRequest == NULL || pRequest->data == NULL)
vLogMessage(hGetLogHandle(), MSG_API_ARGS_ERR_c, NULL, NULL, BM_NOSUPPRESS_c);
ulRes = MSG_API_ARGS_ERR_c;
else
pFml = (FBFR32 *) pRequest->data;
userlog("MEMTEST3: GET THE MEM");
ulRes = ulTPAlloc(&pFmlResponse, 1024);
userlog("Ending MEMTEST3 service.");
tpreturn( iExitValue, lTpurcode, ( char * ) pFmlResponse , 0L, 0L );
While I was en-queuing the messages to the queue, I kept on monitoring the memory usage of the server hosting the service. What I observed was that I saw an initial hike in the usage of memory of the server followed by small jumps in memory increase. I kept on monitoring the server for a long time and the memory was never returned. What I suspect is that there is memory leak in tuxedo TMQforward process as it never released the memory allocated in the service.
Can anyone help how this situation can be avoided ?
Kind Regards,
AsimHi Todd,
Also as well as my previous question, I also found your reply to another user posting something similar at Re: Memory leaks in Tuxedo libraries
You mention that:
In general Tuxedo will free anything it allocates, although there are cases where memory is allocated and not freed because:
+1) it is one time or a fixed number of times allocations that will not continue to grow, and freeing up the memory just before exiting isn't of any benefit.+
+2) the memory is under Tuxedo's memory management functions where we manage our own look aside lists to provide better buffer allocation performance and again freeing these before process termination is of little benefit.+
Our code does only issue TPALLOC once and then a TPRETURN - could point (1) of your comment above also be something of concern to us, where we would observe a continuous growth of memory usage?
I know it may sound like a stupid question but do we need to run our code 20,000 times before memory gets freed?
Kind Regards,
Asim -
Memory leaks in MFC while using CDatabase::OpenEx()
Hi,
This question has been asked previously but the explanation was not in detail and i could never reach to the bottom of it.
I hope i can elaborate more on the problem statement and i can get a resolution/explanation from the experts here.
Consider the following two sample codes;
1.
int count = 200;
for (int i=0; i <count; ++i)
try
CDatabase *db = new CDatabase;
BOOL bRes = db->OpenEx(_T("DSN=MyData;UID=anon;PWD=pass"));
db->Close();
delete db;
db=NULL;
catch (CDBException* e)
e->Delete();
2.
CDatabase *db = new CDatabase;
int count = 200;
for (int i=0; i <count; ++i)
try
BOOL bRes = db->OpenEx(_T("DSN=MyData;UID=anon;PWD=pass"));
db->Close();
catch (CDBException* e)
e->Delete();
delete db;
db=NULL;
return 0;
delete db;
db=NULL;
The first sample code leaks a lot of memory and it can be easily observed from the task manager, the memory usage keeps on growing.
The second sample code does not leak any memory if i observe the memory usage from the task manager.
To find out the cause of the memory leak i ran the code through rational purify, both the codes are leaking memory according to rational purify. The first code leaks significantly more memory than the second one. The DLL pointed by rational purify are MFC
DLLs (inserting the screen shot below)
Is this a known issue with the MFC DLL or am i doing something wrong?
I have a server application where i have to create CDatabase object multiple times and i end up leaking a lot of memory over a period of time.
I can provide more information about this issue if required. Thanks in advance.I am trying to reproduce this issue on my side, but it seem there is no memory leak in my simple sample. I use _CrtDumpMemoryLeaks() to test the memory leak.
https://msdn.microsoft.com/en-us/library/d41t22sb.aspx
If I comment this line: db->Close();
I can detect the memory leak at CDatabase
*db =
new CDatabase;
See the screenshot.
If follow your sample code, there is memory leak message in the output view pane.
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif.....int CMFCCdbMLTestApp::ExitInstance()
// TODO: Add your specialized code here and/or call the base class
_CrtDumpMemoryLeaks();
return CWinApp::ExitInstance();
May you can use some use tool like WinDbg tool to find more information about this issue.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Memory leak with Visa Close in loop
I read the other posts about the memory leak problems with Visa Close, but eliminating the Visa Close from VI causes problems with read & write (it seems to go out of sync). Any suggestions? Example attached.
Attachments:
MKS_651C_Serial_Communication.vi 144 KBSolved the problem. I had to change the bit count and adjust sort. Removing the Visa Close did eliminate the memory leak.
-
Memory leak in OCI Direct Path sample program in threaded mode
I have a slightly (okay, more than slightly) modified version of the sample program cdemodp.c, which uses OCI to do a Direct Path load. Since my eventual aim is to make a C++ module that loads a table from a file as part of a multithreaded program, I made the necessary changes so that cdemodp.c would compile with g++ (v3.3.1, on Solaris 2.8), and I put in the following in place of the OCIInitialize() and OCIEnvCreate() calls (since the docs say those are deprecated):
OCI_CHECK(0, 0, ociret, ctlp, OCIEnvCreate(&ctlp->envhp_ctl, OCI_THREADED, (void *) 0, 0, 0, 0, (size_t) 0, (void **) 0));
When I compile and run this version of the program using Purify, I get a 60-byte memory leak inside the OCI code (meaning I can't see the source-code line that is causing the leak). I am pretty sure it's not anything in my code (i.e., me failing to free all handles or something) because when I change the above line so that the mode parameter is OCI_DEFAULT and recompile, there is no memory leak. Since this will be part of a threaded application that is always running, it is critical to make sure there are no leaks.
Purify says that the leaked memory was allocated from:
malloc [rtlib.o]
calloc [rtlib.o]
nlepeinit [nlepe.c]
nlstdggo [nlstdgo.c]
nlstdgg [nlstdgo.c]
nigini1 [nigini.c]
I am using Oracle 10g (client version 10.1.0).
Anyone else had this happen?
Thanks,
--Tina MancusoThis sounds very similar to the memory leak I have in Oracle 9i using Pro*C++. Everytime a connect is made memory appears to leak and it only happens in multithreaded mode not default mode. There is a thread about this under the Oracle C++ call interface. Under 9i it appears to leak about 60K per connect rather than 60 bytes.
Paul -
Memory leaks during child window close
Hi All,
We have a tool that generates code for WPF application. In one of the applications WPF main window displays a child window in the form of a tab. The main window here can hold multiple child windows. I did a small test. I opened main window and
took memory snapshot with the help of .Net memory profiler. Opened child window and closed it immediately. I took snapshot again and compared with the previous one. To my surprise , many new objects/collections have been active in the heap and due to this
memory consumption got increased almost exponentially. If I open and close more and more child windows then memory consumption is keep on increasing.
During child window close , I am performing all the clean up like clearing all collections , hashmaps etc. As per the suggestions mentioned in forums , I am taking care of cleaning up all the members data like DispatcherTimer , unregistering event handlers
etc. But still memory is not being freed up even after closing the child window. As per the profiler output most of the memory has been occupied by Hashtable , Hastable.bucket[]. Profiler even reported few pinned instances as well but it looks everything is
evident from framework API not from my code. I could see styles, controltemplates , System resources etc as active and reachable objects.
I am just wondering am I getting affected by framework flaws or could there be anything I can do in my source to get rid of this memory leak. Request your comment and appreciate your help on this.
Thanks,
Brahmaji.Hi ,
Thanks for the response. Basically I first opened parent panel which is of type Window. It included menu , toolbar etc. For menu/toolbar events it opens child windows which gets displayed in main window in the form of tabs. This is my use case.
I tried the suggested profiler Redgate Ants profiler. Its very good and informative! I ran the profiler
got the following output. Though I closed the child window it seems objects are still there in memory . No where I left out string , byte array objects in my code.
Not sure why Runtimemethodinfo , hastable bucket are there in memory. I even tried the workaround mentioned at here.
I thought panel resources might have not been freed up and in my code I am clearing them as well. Still did not see much improvement. Any additional things do I need to check? Please let me know.
Thanks,
Brahmaji. -
ListOfValues Cancel button creates memory leak
I believe one nuance of the listOfValues element (in an LOV page) gives rise to a memory leak. The examples and listOfValues documentation shows storing data needed by listOfValues events in the session. This is all fine and good if the user clicks on the "Select" button, as you get both a lovSelect and lovUpdate event to work with and clean out session data. But in the case of a user clicking the "Cancel" button, no event is fired, nor is a forward to another DataAction done. The window is simply closed. This strands all the data for the LOV (which could be quite sizable) in the user's session. You can't send this data on the request, because the LOV data must exist across several requests.
Am I completely missing something? How does one clean out a user's session when the Cancel button is clicked on a listOfValues component?
BradI am using JDeveloper 9.0.5.2. The restrictions of the project prevent using a newer version of JDeveloper. I am using ADF/Struts, and pure UIX (no JSPS).
The functionality I am speaking of is the standard behavior of the <listOfValues> component (lov for short). The lov component generates events for various behaviors (lovFilter, lovUpdate, loveSelect, etc.). It also completely encapsulates the Cancel and Select buttons, so you have no direct access to those. In order to manage an lov web page (presumably launched from an <lovInput> component on a previous page), the events need access to a certain collection of data (data for the table, max size, starting row, selection, validity, etc.). Because use of the lov page will result in potentially multiple submits, the request is not a good place to store this data, as the data needs to persist for the life of the lov page.
If you look at some of the lovInput/listOfValues examples on the OTN, you'll see that this data is persisted in the user's session. In and of itself, this is fine.
The problem is introduced by the fact that the lov's Cancel button (or window close) does not generate any events, and you don't have direct access to those controls to add an event of your own. When the cancel button is clicked, the window just closes, and in the words of the lov documentation "no other events occur."
This is very problematic -- your session is still stuffed full of data to support the lov. I am looking for a way to remove that data.
Frank -- in your post, you say:
"why can't you add an event to clean the session from the data?"
If you know how to add such an event -- one that fires when the Cancel button is clicked, please enlighten me. I would greatly appreciate it!
Thanks,
Brad -
Memory leak in JSpinner implementation (maybe others?)
Hi,
I am developing an application using Java and Swing, and have run into some problems with memory leaks. After examining the source code and making an example program (provided below), I can only come to the conclusion that there is a bug in the implementation of JSpinner in Sun Java 1.6.0_03.
If one uses a custom model with the JSpinner, it attaches itself as a listener to the model. However, it never removes the listening connection, even if the model is changed. This causes the JSpinner to be kept in memory as long as the model exists, even if all other references to the component have been removed.
An example program is available at http://eddie.dy.fi/~sampo/ModelTest.java . It is a simple swing program that has the JSpinner and two buttons, the first of which writes to stdout the listeners of the original model and the second changes the spinner model to a newly-created model. A sample output is below:
Running on 1.6.0_03 from Sun Microsystems Inc.
Listeners before connecting to JSpinner:
Model value is 0, 0 listeners connected:
Listeners after connecting to JSpinner:
Model value is 0, 2 listeners connected:
1: interface javax.swing.event.ChangeListener
2: javax.swing.JSpinner$ModelListener@9971ad
Listeners now:
Model value is 8, 2 listeners connected:
1: interface javax.swing.event.ChangeListener
2: javax.swing.JSpinner$ModelListener@9971ad
Changing spinner model.
Listeners now:
Model value is 8, 2 listeners connected:
1: interface javax.swing.event.ChangeListener
2: javax.swing.JSpinner$ModelListener@9971adThis shows that even though the model of the JSpinner has been changed, it still listens to the original model. I haven't looked at other components whether they retain connections to the old models as well.
In my case, I have an adaptor-model which provides a SpinnerModel interface to the actual data. The adaptor is implemented so that it listens to the underlying model only when it itself is being listened to. If the JComponents using the model were to remove the listening connections, it, too, would be automatically garbage-collected. However, since JSpinner does not remove the connections, the adaptor also continues to listen to the underlying model, and neither can be garbage-collected.
All in all, the listener-connections seem to be a very easy place to make memory leaks in Java and especially in Swing. However, as I see it, it would be a simple matter to make everything work automatically with one simple rule: Listen to the models only when necessary.
If a component is hidden (or alternatively has no contact to a parent JFrame or equivalent), it does not need to listen to the model and should remove the connections. When the component is again set visible (or connected to a frame) it can re-add the connections and re-read the current model values just as it does when initializing the component. Similarly, any adaptor-models should listen to the underlying model only when it itself is being listened to.
If the components were implemented in this way, one could simply remove a component from the frame and throw it away, and automatically any listener-connections will be removed and it can be garbage-collected. Similarly any adaptor-models are collected when they are no longer in use.
Changing the API implementation in this way would not require any changes to applications, as the only thing that changes are the listener-connections. Currently used separate connection-removing methods should still work, though they would be unnecessary any more. The API would look exactly the same from the view of an application programmer, only that she would not need to care about remnant listening connections. (As far as I can tell, the current API specification would allow the API to be implemented as described above, but it should of course require it to be implemented in such a way.)
Am I missing something, or is there some valid reason why the API is not implemented like this?
PS. I'm new to these forums, so if there is a better place to post these reports, please tell me. Thanks.Another cognition: It's the following code, that causes the memory to be accumulated:
obj = m_orb.resolve_initial_references("NameService");
ctx = NamingContextExtHelper.narrow(obj);For the first 4 calls to this code the memory usage of the nameservice is unchanged. From the 5th to the 8th call, it's increased by approx. 10KB per call. And thenceforward (beginning with the 9th call) it's increasing by approx. 10MB.
What's going wrong here? -
Pro*c multithreaded application has memory leak
Hi there,
I posted this message a week ago in OCI section, nobody answer me.
I am really curious if my application has a bug or the pro*c has a bug.
Anyone can compile the sample code and test it easily.
I made multithreaded application which queries dynamic SQL, it works.
But the memory leaks when i query the SQL statement.
The more memory leaks, the more i query the SQL statement, even same SQL
statement.
I check it with top, shell command.
My machine is SUN E450, Solaris 8. Oracle 9.2.0.1
Compiler : gcc (GCC) 3.2.2
I changed source code which is from
$(ORACLE_HOME)/precomp/demo/proc/sample10.pc
the sample10 doesn't need to be multithreaded. But i think it has to work
correctly if i changed it to multithreaded application.
the make file and source code will be placed below.
I have to figure out the problem.
Please help
Thanks in advance,
the make file is below
HOME = /user/jkku
ORA = $(ORACLE_HOME)
CC = gcc
PROC = proc
LC_INCL = -I$(HOME)/work/dbmss/libs/include
lc_incl = include=$(HOME)/work/dbmss/libs/include
SYS_INCL =
sys_incl =
ORA_INCL = -I. \
-I$(ORA)/precomp/public \
-I$(ORA)/rdbms/public \
-I$(ORA)/rdbms/demo \
-I$(ORA)/rdbms/pbsql/public \
-I$(ORA)/network/public \
-DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD
INCLUDES = $(LC_INCL) $(SYS_INCL) $(ORA_INCL)
includes = $(lc_incl) $(sys_incl)
LC_LIBS =
SYS_LIBS = -lpthread -lsocket -lnsl -lrt
ORA_LIBS = -L$(ORA)/lib/ -lclntsh
LIBS = $(LC_LIBS) $(SYS_LIBS) $(ORA_LIBS)
# Define C Compiler flags
CFLAGS += -D_Solaris64_ -m64
CFLAGS += -g -D_REENTRANT
# Define pro*c Compiler flags
PROCFLAGS += THREADS=YES
PROCFLAGS += CPOOL=YES
# Our object files
PRECOMPS = sample10.c
OBJS = sample10.o
.SUFFIXES: .o .c .pc
.c.o:
$(CC) -c $(CFLAGS) $(INCLUDES) $*.c
.pc.c:
$(PROC) $(PROCFLAGS) $(includes) $*.pc $*.c
all: sample10
sample10: $(PRECOMPS) $(OBJS)
$(CC) $(CFLAGS) -o sample10 $(OBJS) $(LIBS)
clean:
rm -rf *.o sample10 sample10.c
the source code is below which i changed the oracle sample10.pc to
multithreaded application.
Sample Program 10: Dynamic SQL Method 4
This program connects you to ORACLE using your username and
password, then prompts you for a SQL statement. You can enter
any legal SQL statement. Use regular SQL syntax, not embedded SQL.
Your statement will be processed. If it is a query, the rows
fetched are displayed.
You can enter multi-line statements. The limit is 1023 characters.
This sample program only processes up to MAX_ITEMS bind variables and
MAX_ITEMS select-list items. MAX_ITEMS is #defined to be 40.
#include <stdio.h>
#include <string.h>
#include <setjmp.h>
#include <sqlda.h>
#include <stdlib.h>
#include <sqlcpr.h>
/* Maximum number of select-list items or bind variables. */
#define MAX_ITEMS 40
/* Maximum lengths of the names of the
select-list items or indicator variables. */
#define MAX_VNAME_LEN 30
#define MAX_INAME_LEN 30
#ifndef NULL
#define NULL 0
#endif
/* Prototypes */
#if defined(__STDC__)
void sql_error(void);
int oracle_connect(void);
int alloc_descriptors(int, int, int);
int get_dyn_statement(void);
void set_bind_variables(void);
void process_select_list(void);
void help(void);
#else
void sql_error(/*_ void _*/);
int oracle_connect(/*_ void _*/);
int alloc_descriptors(/*_ int, int, int _*/);
int get_dyn_statement(/* void _*/);
void set_bind_variables(/*_ void -*/);
void process_select_list(/*_ void _*/);
void help(/*_ void _*/);
#endif
char *dml_commands[] = {"SELECT", "select", "INSERT", "insert",
"UPDATE", "update", "DELETE", "delete"};
EXEC SQL INCLUDE sqlda;
EXEC SQL INCLUDE sqlca;
EXEC SQL BEGIN DECLARE SECTION;
char dyn_statement[1024];
EXEC SQL VAR dyn_statement IS STRING(1024);
EXEC SQL END DECLARE SECTION;
EXEC ORACLE OPTION (ORACA=YES);
EXEC ORACLE OPTION (RELEASE_CURSOR=YES);
SQLDA *bind_dp;
SQLDA *select_dp;
/* Define a buffer to hold longjmp state info. */
jmp_buf jmp_continue;
char *db_uid="dbmuser/dbmuser@dbmdb";
sql_context ctx;
int err_sql;
enum{
SQL_SUCC=0,
SQL_ERR,
SQL_NOTFOUND,
SQL_UNIQUE,
SQL_DISCONNECT,
SQL_NOTNULL
int main()
int i;
EXEC SQL ENABLE THREADS;
EXEC SQL WHENEVER SQLERROR DO sql_error();
EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
/* Connect to the database. */
if (connect_database() < 0)
exit(1);
EXEC SQL CONTEXT USE :ctx;
/* Process SQL statements. */
for (;;)
/* Allocate memory for the select and bind descriptors. */
if (alloc_descriptors(MAX_ITEMS, MAX_VNAME_LEN, NAME_LEN) != 0)
exit(1);
(void) setjmp(jmp_continue);
/* Get the statement. Break on "exit". */
if (get_dyn_statement() != 0)
break;
EXEC SQL PREPARE S FROM :dyn_statement;
EXEC SQL DECLARE C CURSOR FOR S;
/* Set the bind variables for any placeholders in the
SQL statement. */
set_bind_variables();
/* Open the cursor and execute the statement.
* If the statement is not a query (SELECT), the
* statement processing is completed after the
* OPEN.
EXEC SQL OPEN C USING DESCRIPTOR bind_dp;
/* Call the function that processes the select-list.
* If the statement is not a query, this function
* just returns, doing nothing.
process_select_list();
/* Tell user how many rows processed. */
for (i = 0; i < 8; i++)
if (strncmp(dyn_statement, dml_commands, 6) == 0)
printf("\n\n%d row%c processed.\n", sqlca.sqlerrd[2], sqlca.sqlerrd[2] == 1 ? '\0' : 's');
break;
/* Close the cursor. */
EXEC SQL CLOSE C;
/* When done, free the memory allocated for pointers in the bind and
select descriptors. */
for (i = 0; i < MAX_ITEMS; i++)
if (bind_dp->V != (char *) 0)
free(bind_dp->V);
free(bind_dp->I); /* MAX_ITEMS were allocated. */
if (select_dp->V != (char *) 0)
free(select_dp->V);
free(select_dp->I); /* MAX_ITEMS were allocated. */
/* Free space used by the descriptors themselves. */
SQLSQLDAFree(ctx, bind_dp);
SQLSQLDAFree(ctx, select_dp);
} /* end of for(;;) statement-processing loop */
disconnect_database();
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL COMMIT WORK RELEASE;
puts("\nHave a good day!\n");
return;
* Allocate the BIND and SELECT descriptors using sqlald().
* Also allocate the pointers to indicator variables
* in each descriptor. The pointers to the actual bind
* variables and the select-list items are realloc'ed in
* the set_bind_variables() or process_select_list()
* routines. This routine allocates 1 byte for select_dp->V
* and bind_dp->V, so the realloc will work correctly.
alloc_descriptors(size, max_vname_len, max_iname_len)
int size;
int max_vname_len;
int max_iname_len;
int i;
* The first sqlald parameter determines the maximum number of
* array elements in each variable in the descriptor. In
* other words, it determines the maximum number of bind
* variables or select-list items in the SQL statement.
* The second parameter determines the maximum length of
* strings used to hold the names of select-list items
* or placeholders. The maximum length of column
* names in ORACLE is 30, but you can allocate more or less
* as needed.
* The third parameter determines the maximum length of
* strings used to hold the names of any indicator
* variables. To follow ORACLE standards, the maximum
* length of these should be 30. But, you can allocate
* more or less as needed.
if ((bind_dp =
SQLSQLDAAlloc(ctx, size, max_vname_len, max_iname_len)) ==
(SQLDA *) 0)
fprintf(stderr,
"Cannot allocate memory for bind descriptor.");
return -1; /* Have to exit in this case. */
if ((select_dp =
SQLSQLDAAlloc(ctx, size, max_vname_len, max_iname_len)) == (SQLDA *)
0)
fprintf(stderr,
"Cannot allocate memory for select descriptor.");
return -1;
select_dp->N = MAX_ITEMS;
/* Allocate the pointers to the indicator variables, and the
actual data. */
for (i = 0; i < MAX_ITEMS; i++) {
bind_dp->I = (short *) malloc(sizeof (short));
select_dp->I = (short *) malloc(sizeof(short));
bind_dp->V = (char *) malloc(1);
select_dp->V = (char *) malloc(1);
return 0;
int get_dyn_statement()
char *cp, linebuf[256];
int iter, plsql;
for (plsql = 0, iter = 1; ;)
if (iter == 1)
printf("\nSQL> ");
dyn_statement[0] = '\0';
fgets(linebuf, sizeof linebuf, stdin);
cp = strrchr(linebuf, '\n');
if (cp && cp != linebuf)
*cp = ' ';
else if (cp == linebuf)
continue;
if ((strncmp(linebuf, "EXIT", 4) == 0) ||
(strncmp(linebuf, "exit", 4) == 0))
return -1;
else if (linebuf[0] == '?' ||
(strncmp(linebuf, "HELP", 4) == 0) ||
(strncmp(linebuf, "help", 4) == 0))
help();
iter = 1;
continue;
if (strstr(linebuf, "BEGIN") ||
(strstr(linebuf, "begin")))
plsql = 1;
strcat(dyn_statement, linebuf);
if ((plsql && (cp = strrchr(dyn_statement, '/'))) ||
(!plsql && (cp = strrchr(dyn_statement, ';'))))
*cp = '\0';
break;
else
iter++;
printf("%3d ", iter);
return 0;
void set_bind_variables()
int i, n;
char bind_var[64];
/* Describe any bind variables (input host variables) */
EXEC SQL WHENEVER SQLERROR DO sql_error();
bind_dp->N = MAX_ITEMS; /* Initialize count of array elements. */
EXEC SQL DESCRIBE BIND VARIABLES FOR S INTO bind_dp;
/* If F is negative, there were more bind variables
than originally allocated by sqlald(). */
if (bind_dp->F < 0)
printf ("\nToo many bind variables (%d), maximum is %d\n.",
-bind_dp->F, MAX_ITEMS);
return;
/* Set the maximum number of array elements in the
descriptor to the number found. */
bind_dp->N = bind_dp->F;
/* Get the value of each bind variable as a
* character string.
* C contains the length of the bind variable
* name used in the SQL statement.
* S contains the actual name of the bind variable
* used in the SQL statement.
* L will contain the length of the data value
* entered.
* V will contain the address of the data value
* entered.
* T is always set to 1 because in this sample program
* data values for all bind variables are entered
* as character strings.
* ORACLE converts to the table value from CHAR.
* I will point to the indicator value, which is
* set to -1 when the bind variable value is "null".
for (i = 0; i < bind_dp->F; i++)
printf ("\nEnter value for bind variable %.*s: ",
(int)bind_dp->C, bind_dp->S);
fgets(bind_var, sizeof bind_var, stdin);
/* Get length and remove the new line character. */
n = strlen(bind_var) - 1;
/* Set it in the descriptor. */
bind_dp->L = n;
/* (re-)allocate the buffer for the value.
sqlald() reserves a pointer location for
V but does not allocate the full space for
the pointer. */
bind_dp->V = (char *) realloc(bind_dp->V, (bind_dp->L + 1));
/* And copy it in. */
strncpy(bind_dp->V, bind_var, n);
/* Set the indicator variable's value. */
if ((strncmp(bind_dp->V, "NULL", 4) == 0) ||
(strncmp(bind_dp->V, "null", 4) == 0))
*bind_dp->I = -1;
else
*bind_dp->I = 0;
/* Set the bind datatype to 1 for CHAR. */
bind_dp->T = 1;
return;
void process_select_list()
int i, null_ok, precision, scale;
if ((strncmp(dyn_statement, "SELECT", 6) != 0) &&
(strncmp(dyn_statement, "select", 6) != 0))
select_dp->F = 0;
return;
/* If the SQL statement is a SELECT, describe the
select-list items. The DESCRIBE function returns
their names, datatypes, lengths (including precision
and scale), and NULL/NOT NULL statuses. */
select_dp->N = MAX_ITEMS;
EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp;
/* If F is negative, there were more select-list
items than originally allocated by sqlald(). */
if (select_dp->F < 0)
printf ("\nToo many select-list items (%d), maximum is %d\n",
-(select_dp->F), MAX_ITEMS);
return;
/* Set the maximum number of array elements in the
descriptor to the number found. */
select_dp->N = select_dp->F;
/* Allocate storage for each select-list item.
sqlprc() is used to extract precision and scale
from the length (select_dp->L).
sqlnul() is used to reset the high-order bit of
the datatype and to check whether the column
is NOT NULL.
CHAR datatypes have length, but zero precision and
scale. The length is defined at CREATE time.
NUMBER datatypes have precision and scale only if
defined at CREATE time. If the column
definition was just NUMBER, the precision
and scale are zero, and you must allocate
the required maximum length.
DATE datatypes return a length of 7 if the default
format is used. This should be increased to
9 to store the actual date character string.
If you use the TO_CHAR function, the maximum
length could be 75, but will probably be less
(you can see the effects of this in SQL*Plus).
ROWID datatype always returns a fixed length of 18 if
coerced to CHAR.
LONG and
LONG RAW datatypes return a length of 0 (zero),
so you need to set a maximum. In this example,
it is 240 characters.
printf ("\n");
for (i = 0; i < select_dp->F; i++)
char title[MAX_VNAME_LEN];
/* Turn off high-order bit of datatype (in this example,
it does not matter if the column is NOT NULL). */
sqlnul ((unsigned short *)&(select_dp->T), (unsigned short
*)&(select_dp->T), &null_ok);
switch (select_dp->T)
case 1 : /* CHAR datatype: no change in length
needed, except possibly for TO_CHAR
conversions (not handled here). */
break;
case 2 : /* NUMBER datatype: use sqlprc() to
extract precision and scale. */
sqlprc ((unsigned int *)&(select_dp->L), &precision,
&scale);
/* Allow for maximum size of NUMBER. */
if (precision == 0) precision = 40;
/* Also allow for decimal point and
possible sign. */
/* convert NUMBER datatype to FLOAT if scale > 0,
INT otherwise. */
if (scale > 0)
select_dp->L = sizeof(float);
else
select_dp->L = sizeof(int);
break;
case 8 : /* LONG datatype */
select_dp->L = 240;
break;
case 11 : /* ROWID datatype */
case 104 : /* Universal ROWID datatype */
select_dp->L = 18;
break;
case 12 : /* DATE datatype */
select_dp->L = 9;
break;
case 23 : /* RAW datatype */
break;
case 24 : /* LONG RAW datatype */
select_dp->L = 240;
break;
/* Allocate space for the select-list data values.
sqlald() reserves a pointer location for
V but does not allocate the full space for
the pointer. */
if (select_dp->T != 2)
select_dp->V = (char *) realloc(select_dp->V,
select_dp->L + 1);
else
select_dp->V = (char *) realloc(select_dp->V,
select_dp->L);
/* Print column headings, right-justifying number
column headings. */
/* Copy to temporary buffer in case name is null-terminated */
memset(title, ' ', MAX_VNAME_LEN);
strncpy(title, select_dp->S, select_dp->C);
if (select_dp->T == 2)
if (scale > 0)
printf ("%.*s ", select_dp->L+3, title);
else
printf ("%.*s ", select_dp->L, title);
else
printf("%-.*s ", select_dp->L, title);
/* Coerce ALL datatypes except for LONG RAW and NUMBER to
character. */
if (select_dp->T != 24 && select_dp->T != 2)
select_dp->T = 1;
/* Coerce the datatypes of NUMBERs to float or int depending on
the scale. */
if (select_dp->T == 2)
if (scale > 0)
select_dp->T = 4; /* float */
else
select_dp->T = 3; /* int */
printf ("\n\n");
/* FETCH each row selected and print the column values. */
EXEC SQL WHENEVER NOT FOUND GOTO end_select_loop;
for (;;)
EXEC SQL FETCH C USING DESCRIPTOR select_dp;
/* Since each variable returned has been coerced to a
character string, int, or float very little processing
is required here. This routine just prints out the
values on the terminal. */
for (i = 0; i < select_dp->F; i++)
if (*select_dp->I < 0)
if (select_dp->T == 4)
printf ("%-*c ",(int)select_dp->L+3, ' ');
else
printf ("%-*c ",(int)select_dp->L, ' ');
else
if (select_dp->T == 3) /* int datatype */
printf ("%*d ", (int)select_dp->L,
*(int *)select_dp->V);
else if (select_dp->T == 4) /* float datatype */
printf ("%*.2f ", (int)select_dp->L,
*(float *)select_dp->V);
else /* character string */
printf ("%-*.*s ", (int)select_dp->L,
(int)select_dp->L, select_dp->V);
printf ("\n");
end_select_loop:
return;
void help()
puts("\n\nEnter a SQL statement or a PL/SQL block at the SQL> prompt.");
puts("Statements can be continued over several lines, except");
puts("within string literals.");
puts("Terminate a SQL statement with a semicolon.");
puts("Terminate a PL/SQL block (which can contain embedded
semicolons)");
puts("with a slash (/).");
puts("Typing \"exit\" (no semicolon needed) exits the program.");
puts("You typed \"?\" or \"help\" to get this message.\n\n");
int connect_database()
err_sql = SQL_SUCC;
EXEC SQL WHENEVER SQLERROR DO sql_error();
EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
EXEC SQL CONTEXT ALLOCATE :ctx;
EXEC SQL CONTEXT USE :ctx;
EXEC SQL CONNECT :db_uid;
if(err_sql != SQL_SUCC){
printf("err => connect database(ctx:%ld, uid:%s) failed!\n", ctx, db_uid);
return -1;
return 1;
int disconnect_database()
err_sql = SQL_SUCC;
EXEC SQL WHENEVER SQLERROR DO sql_error();
EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
EXEC SQL CONTEXT USE :ctx;
EXEC SQL COMMIT WORK RELEASE;
EXEC SQL CONTEXT FREE:ctx;
return 1;
void sql_error()
printf("err => %.*s", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);
printf("in \"%.*s...\'\n", oraca.orastxt.orastxtl, oraca.orastxt.orastxtc);
printf("on line %d of %.*s.\n\n", oraca.oraslnr, oraca.orasfnm.orasfnml,
oraca.orasfnm.orasfnmc);
switch(sqlca.sqlcode) {
case -1: /* unique constraint violated */
err_sql = SQL_UNIQUE;
break;
case -1012: /* not logged on */
case -1089:
case -3133:
case -1041:
case -3114:
case -3113:
/* �6�Ŭ�� shutdown�ǰų� �α��� ���°� �ƴҶ� ��b�� �õ� */
/* immediate shutdown in progress - no operations are permitted */
/* end-of-file on communication channel */
/* internal error. hostdef extension doesn't exist */
err_sql = SQL_DISCONNECT;
break;
case -1400:
err_sql = SQL_NOTNULL;
break;
default:
err_sql = SQL_ERR;
break;
EXEC SQL CONTEXT USE :ctx;
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK WORK;
void sql_not_found()
err_sql = SQL_NOTFOUND;Hi Jane,
What version of Berkeley DB XML are you using?
What is your operating system and your hardware platform?
For how long have been the application running?
What is your current container size?
What's set for EnvironmentConfig.setThreaded?
Do you know if containers have previously not been closed correctly?
Can you please post the entire error output?
What's the JDK version, 1.4 or 1.5?
Thanks,
Bogdan -
HTTPService + XML Load + Memory Leak
Hi all....
I have noticed a memory leak in my application. This leak was
not apparent when the application was completed some months back
which is what left me a little confused as all I have done since
was upgrade to Flex 3 and possibly updated / changed my Flash
player.
I think I have found the cause to this problem (below) but am
not 100% sure that it is the "actual" problem or any reasons to
back my thoughts up, so have listed what I have checked / tried
along the way (maybe I have missed something)....
My Discovery Process:
I started profiling my application but did not find anything
out of the ordinary. I did a code walk-through double checking I
had cleaned up after myself, removing and even nulling all items
etc but still to now success - the leak is still there.
I have profiled the app in the profiler for reasonably long
periods of time.
All the classes etc being used within the app are consistent
in size and instance amount and there is no sign of any apparent
leak.
I am using a HTTPService that is loading XML data which I am
refreshing every 5 seconds. On this 5 second data refresh some
class instances are incremented but are restored to the expected
amount after a GC has occurred. The GC seems to take longer, the
longer the app is running, therefore more and more instances are
being added to the app, but when the GC eventually runs it "seems"
to clear these instances to the expected amount.
After scratching my head for a while I decided to make a copy
of my application, rip everything out, and focus in my data load,
where I found a problem!
I have now just a HTTPService that loads an XML file every 5
seconds, and this is all I currently have in the app (as I ripped
the rest of the code out), e.g:
Code:
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
....... creationComplete="initApp()" >
<mx:HTTPService
id="httpServiceResults"
url="
http://myIP:myPort/myRoot/myXML.cfm"
resultFormat="e4x"
result="httpResultHandler(event)" />
<script....... >
private var timerPulse:Timer;
private function initApp():void
httpServiceResults.send();
timerPulse = new Timer(5000, 0);
private function httpResultHandler(event:ResultEvent):void
timerPulse.start();
timerPulse.addEventListener(TimerEvent.TIMER, timerRefresh);
public function timerRefresh(eventObj:TimerEvent):void
timerPulse.stop();
timerPulse.removeEventListener(TimerEvent.TIMER,
timerRefresh);
timerPulse.reset();
httpServiceResults.send();
</script>
</mx:Application>
This is pretty much the code I am currently using and it
leaks.
I ran and monitored this in both the profiler and the
activity / task manager, and after running the app for 1800 seconds
(30 min) in the profiler, the memory size grew from 50mg to 165mg
just sending the HTTPService.
I tried loading the service in multiple ways including in AS
rather than MXML creating new instances of it each time, resetting
it, nulling it etc... but nothing prevented this memory increase.
I then tried to load the XML using different methods such as
using the URLRequest and URLLoader which again caused a memory
leak.
What still confuses me is that this leak did not exist in the
previous version and not a great deal has changed since then apart
from upgrading to Flex 3 and possibly upgrading my Flash payer
(which I believe is a possible cause)
After looking into this issue a bit more deeply, I read a few
blogs / forums and other people are experiencing the same problems
- even with a lot bigger leaks in some cases all when reloading
large sets of XML data into Flex - however, I as of yet found no
solution to this leak - people with a similar problem believe it is
not due to a memory leak more a GC error, and others pointing
towards the Flash Player itself that is leaking - I don't really
know.
Findings so far during investigation of this issue:
* App leaks for both HTTPService and ULRRequest / URLLoader
methods
* App only leaks when calling a data loader
* The size of the leak seems to depend on the size of the
XML being loaded
* The size of the leak also seems to be affected by the
applications heaviness - the greater seems to enhance the leak
An interesting factor I have noticed is that if I copy the
XML from my "myXML.cfm" that I link to in my HTTPService and copy
the contents of the file into my own XML file stored within the
Flex project root itself: ""myXML.xml"" the leak disappears... like
it seems to link when loading the XML over a network, however as my
network knowledge is not great I am not sure what to make of this -
any ideas???
Could the connection to the XML document cause leaks??? is
there anything else that could cause this leak??? have I something
in my code sample that could cause this leak??? or could any of the
other things I have mentioed cause this leak???
Any help / ideas would be greatly appreciated.
Thanks,
Jon.I also observed heavy memory leak from using httpservice with
XML data. I am using Flex3 builder under Linux. My Flex application
polls httpservice every 10 seconds. The reply is a short XML
message less than 100 bytes. This simple polling will consume 30+
MB of memory every hour. I leave it idling for several hours and it
took 200 MB of memory. No sign of garbage collection at all. -
Seems to be a memory leak in itunes 10.6.3.25
I cant seem to find a usefull end-user bug reporting system; so i just post it here: had to redownload all my songs (lots of them); after a few 100 iTunes displayed a message saying something cryptic like that there was not enough memory to save the library or so; little later iTunes completely hung; checked in task manager... about 1GB of memory usage. Just restarted downloading the rest of my music, memory usage is already over 200MB again... think you guys have a memory leak in your downloading or caching code.
Close your iTunes,
Go to command Prompt -
(Win 7/Vista) - START/ALL PROGRAMS/ACCESSORIES, right mouse click "Command Prompt", choose "Run as Administrator".
(Win XP SP2 n above) - START/ALL PROGRAMS/ACCESSORIES/Command Prompt
In the "Command Prompt" screen, type in
netsh winsock reset
Hit "ENTER" key
Restart your computer.
If you do get a prompt after restart windows to remap LSP, just click NO.
Now launch your iTunes and see if it is working normal now.
If you are still having these type of problems after trying the winsock reset, refer to this article to identify which software in your system is inserting LSP:
Apple software on Windows: May see performance issues and blank iTunes Store
http://support.apple.com/kb/TS4123?viewlocale=en_US -
Memory leak in external interface SetReturnValue?
I'm having trouble with a memory leak in my application. I'm
hoping someone out there can help me find a fix or workaround, or
tell me what I'm doing wrong.
The leak seems to be coming from the flash external
interface; specifically, IShockwaveFlash.SetReturnValue(String). My
application is written in Visual Basic 2008, connecting to Flash
9.0.124.0 (activex version).
I've written a fairly simple flash/VB program pair to
illustrate the problem.
The SWF contains a button, 2 dynamic text fields, and the
ActionScript 2 code below.
The VB project contains a Form with a AxShockwaveFlash object
and the VB code below.
When this program is run, and the button is clicked a lot
(10's of thousands of times), the application's memory creeps up
and never seems to fall back down. If the string passed to
SetReturnValue is longer, memory is consumed faster. But if the
call to SetReturnValue is commented-out, the application's memory
usage remains stable.
If anyone has any suggestions on how to proceed, I'd be
grateful.
(By the way: I'm using a freeware program called DoItAgain to
automate the button pressing.)I have developed two simple Java and corresponding
C++ classes. Use code tags when you post your code.
You are missing a lot of error checking. JNI calls, every single one, will usually be followed by some sort of error checking. Any that access classes, methods, fields or allocate object must be followed by checks for java exceptions.
You will need to reduce your code to a smaller sample. Otherwise it is unlikely anyone will look at it.
You also need to specify how you know that a memory leak is occurring. -
Memory leak in AudioServicesCreateSystemSoundID with sound files
hi !
Instruments indicates a 64Ko memory leak in "AudioServicesCreateSystemSoundID" when I use a sound that I have created with GBand / iTunes. When I use the sound file "tap.aif" from the "sysSound" sample, there is no memory leak.
What's wrong with my audio file ?
It's a AIFF file, 95Ko, 8 bit mono 22Khz @ 176kbps.
thanks...appFile = [ [ NSBundle mainBundle ] pathForResource : _filename ofType : _extension ];
FileUrl = [ NSURL fileURLWithPath: appFile ];
if ( AudioServicesCreateSystemSoundID( ( CFURLRef ) FileUrl, &soundID ) != kAudioServicesNoError )
return false;
I don't think the code is wrong because when I change the name of the sound in '_filename', there is no leak.
I haven't found in the documentation the audio file properties ( 8/16 bits, ... ) supported by 'AudioServicesCreateSystemSoundID'.
The code is for iPhone. -
Memory Leak in Adobe Premiere CC on Windows
I installed Premiere CC on Windows 7 ( Intel Core i7-3770K [email protected] GHz, 16GB RAM). Software has a serious memory leak. After less than hour working on a very simple project (no rendering, no effects) memory usage reached 15 GB, at which point Premiere stopped responding. After closing and reopening software memory usage again started to increase. I was testing it by just scrubbing over timeline, no editing, memory usage still slowly crept-up. I called Adobe technical support, they tried to tell me, that this is normal. Right! It is normal to be forced to close and reopen application every hour? I do not think so. I have Premiere CC also installed on my MAC Book Pro, checked memory usage on much bigger project, it was steady, not creeping up, using beween 1 and 2 GB. I checked forums for this problem, there are several posts, but have not found any response from Adobe regarding this.
Update:
Tonight I continued working on same small project, within 2 hours I had to shut down Premiere 3 times. I also limited in setting memory Premier can use, that did not make any difference, usage by Premiere went to maximum - total 16 GB with about 2 GB taken by system and other stuff running. I am monitoring memory usage on resource monitor. Used Physical memory went 100 %, Commit Charge about 60%. This so far happened three times in a row.
Adobe, can you hear me?
Milan
Message was edited by: milan-to
Message was edited by: milan-toAdobe, can you hear me?
Not guaranteed when posting here. Try below instead.
https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform
Having said that, this is not a problem I see on any of the four Windows machines I work on. And it's not a problem commonly reported here. So my inclination is to suggest that something may be funky with your install. -
FIrefox betrayed by its own "developers"? Memory Leak Work Around at Bottom
Firefox SUCKS memory and holds onto it. Try this test: Open it, leave ONE tab, open and sit back and and watch the damn thing crash.
Funny, as soon as the project people started getting so much money from Google that they had to restructure to avoid losing its non-profit status Firefox developed an insatiable thirst for RAM that has only gotten worse in the YEARS since. They won't fix the problem, they won't acknowledge the problem, the ignore every post about it . . . . So, is killing FF's user base the price for the continued Google money that they so quickly whored themselves out for? Has FF been run by Google these last few years? They certainly couldn't wreck any better.
Posted by Wahoo at https://support.mozilla.org/en-US/questions/939920
"Using ADD-ons to remove memory leak. Mozilla says to remove add-ons to fix leak. Firefox sucks memory. it always has and always will. Nobody wants to admit it exsists on the Mozilla side must less fix it. Firewalls , etc do not cause the leak. You can remove all your ad-ons and leave firefox open and it will suck memory. Every tab you open drains your memory and continues to climb without opening any more. You can then close all your tabs and Firefox will not release the memory. Just fix it guys, it cant be that difficult "
Posteby Onmicide at https://support.mozilla.org/en-US/questions/939920
"There is a way to stay on top of the memory usage:
Go to about:memory and scroll to the bottom. There are buttons there for garbage collection and minimizing memory usage. "Please try this two minute test.
'''Create a new Firefox profile'''
A new profile will have your system-installed plugins (e.g., Flash) and extensions (e.g., security suite toolbars), but no themes, other extensions, or other customizations. It also should have completely fresh settings databases and a fresh cache folder.
Exit Firefox and start up in the Profile Manager using Start > search box (or Run):
firefox.exe -P
Any time you want to switch profiles, exit Firefox and return to this dialog.
You'll click the Create Profile button. I recommend using the default location suggested, and to avoid data loss, not re-using any existing folder. Then start Firefox in the new profile you created.
What happens with memory usage with the two default tabs open, or another tab of your choice?
When returning to the Profile Manager, you might be tempted to use the Delete Profile button. But... it's a bit too easy to accidentally delete your "real" profile, so I recommend resisting the temptation. If you do want to clean up later, I suggest making a backup of all your profiles first in case something were to go wrong.
Maybe you are looking for
-
Errors fresh out of instalation. Known problems? Point 2
Hello, Right after a new instalation with the new binaries, a colleague tried accessing the BPM composer and was met with the error: "ADFC-00008: The ADF Controller is unable to find DataControlFrame for a task flow". 30 mins afterwards it started wo
-
Please let me know a good query to find out the memory being used in DB
Hi All, We are using Automotic memory management by using parameter memory_target option. I want to find out the total memory being used and which is free. ie;(SGA+PGA). Please let me know. Thanks & Regards, Vikas Krishna
-
Why can't I only buy two programs instead of all of them?
Hi Adobe! I dont have the need of all the programs in Creative Cloud. I only use Photoshop and After Effects, why haven't you got a deal where you put togather your own programs that you want to use but with a cheaper price since I dont need all of t
-
S415 Touch stop working (International Warranty is a Lie?)
Hi, I have a Laptop S415 touch from 6 months ago, and last week stop working, after blue screen. I'm in Argentina, call to Lenovo support, and they did not give me any type of support as this model is not sell here. I'm trying to call to the US phone
-
How to increase performance for early '06 iMac
I am an iMac newbie (so please pardon my ignorance) having just purchased a second-hand iMac. I am very keen on increasing the current performance substantially due to the fact that I will be in the near-term using some rather advanced software. In o