Memory Leak Acrobat 9.3.1 Batch Conversion

I set Acrobat to the task of converting ~3.5k text documents to PDFs, using the File | Create PDF | Batch Create Multiple Files menu option.
The interface was slow handling the list of 3500 items, but it began processing them at a rate of about 1/sec. After about 45 minutes, ~2500 were processed and an error appeard, "Out of Memory" (with the only option being to acknowledge with OK).
When I click OK, the conversion status bar briefly reappears (hence how I can tell that approximately 2500 were processed), but disappears so quickly that I cannot click the Stop button before the "Out of Memory" error appears again.
Checking the Task Manager, I see that Acrobat.exe *32 is using almost 1.7GB of memory.
The largest text file to be converted is 135k. The average size is 19k.
It appears my only options are to click OK 1,000 times or to kill the process.
Clearly, this is a bug. Please fix as soon as possible.
If I can provide additional information, please let me know.

This is a user-to-user forum. If you want to report a bug to Adobe, you can
do so here:
https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform
However, you should know that this is not a new bug. It has existed in many
previous versions. Acrobat's memory handling functions are quite bad,
especially in batch processes. Good luck, though...
Edit: When this happens, aren't you able to kill the process using the Task Manager?

Similar Messages

  • Batch sequence memory leak?

    I wrote a JavaScript batch sequence and ran it in Acrobat 9 Pro on a folder of PDFs. Acrobats memory use steadily increased until it hit 1.1 GB. Then an Acrobat dialog said no files were processed, the memory use dropped back to normal and the CPU usage dropped to zero. So it looks like the problem includes a memory leak. As a test, I replaced my batch sequence with a simple, one-line test:
    var r = test;
    It has the same behavior. Any ideas?

    thanks for your reply.
    i have gone through those APIs you have mentioned and understood that we can run any custom command or existing global command using those APIs.
    my requirement is to launch the sequence file created. is there any way to directly launch the sequence file or else do i need to process the sequence file to know the command and parameters?
    if i need to process the sequence file, it will be always "Recognize text using OCR" and parameters may differ. for this, what is the command i need to execute?
    i am new to this environment, please dont mistake me.
    thanks in advance.
    regards

  • Memory-Leak in communication of Acrobat-Flash and JS

    Hi
    The situation is as follows:
    I have a Flash-SWF (in which I have programmed a GUI)
    I have a 3D-Annotation containing an annotation-script with some functions that can be called from the GUI.
    So far so good.
    The SWF is added as overlay to a 3D-Annotation. The SWF contains some AS3-Functions, among them an enterframe-event, that keeps repeating an external-interface call to a function in the 3D Annotation-script. It works so far.
    When I tested for performance however I noticed that there is a memory-leak under these conditions. I tested my setup, and noticed the memory-useage increase by about 1 MB every 3 seconds. To further test this I stripped about everything from both the swfs Actionscript  and the annotation-JavaScript. Still the memory-useage of process "acrobat.exe*32" gradually climbs by 7-10 MB per minute. The memory-useage of "A3DUtility.exe" remains constant. Deactivating the annotation will decrease the memory-useage by a certain amount (though not to the initial value upon opening the file and starting the annotation) , but upon re-activating it immediately jumps back to the value assumed last before deactivating it. From that last value the increase starts again as well. I could observe this behaviour both in Acrobat 9 Pro Extended, Acrobat X and ReaderX.
    It seems something is wrong with the ExternalInterface-Object.

    OK, I'll do that.
    By the way, imho it's not that minor. ~1mb in two seconds sums up to ~30mb/minute, i.e. 2gb/hour. So if you leave your PDF open for some 15 minutes that's 500mb ram down the drain. Considering the file started at merely 30mb that's quite massive.

  • Memory leak in Acrobat X?

    I use Acrobat X Standard version 10.0.2 under Windows XP. When working with large documents,
    I often have problems with the Acrobat program. The first symptom is that icons on the toolbar disappear or become black
    boxes. Then whole pages of the document fail to display when paging up or down.
    Finally Acrobat crashes with a dialog box that says "An internal error has occured".
    Task manager tells me that Acrobat is using around 300 Mbytes of RAM when the problems start. The memory usage keeps going up as time goes on. The system is a Lenovo W510 notebook with 4 Gbytes of physical RAM.
    The updater says no updates are available.
    This is totally repeatable - it happens the same way everytime I use Acrobat.
    Am I the only one seeing this issue?

    Yes, I can confirm that I also have a memory leak that culminates in blackouts and an unceremonious crash when running both Adobe Reader and a trial version of Adobe Acrobat X Pro on Windows 7.  I neither receive any error message, nor is Windows 7 able to report any solution for the problem.
    On opening a PDF, the app utilises memory amounting to about 2.5 times its file size.  Fair enough.  However:
    Simply changing the state of the application window, immediately takes me to 125% of the initial value.
    Scrolling 10% of the document length takes me to 235% of the initial value.
    Scrolling 20% of the document length takes me to 315% of the initial value.
    Scrolling 50% of the document length takes me to 430% of the initial value.
    Scrolling 100% of the document length takes me to 570% of the initial value.
    This insatiable greed for memory is just about sustainable when I am working on a 15 MB PDF, but certainly not if I want to work on a 125 MB file.
    I understand that scrolling performance is improved by this massive memory utilisation, but it is hardly good performance if the application crashes as a result.  These forums contain many complaints about this issue from me and others, but Adobe appears to show little interest in its customers' concerns.
    This appears to be sloppy programming and is why I will not be paying $hundreds for Acrobat when my trial expires.
    Best wishes,
    Alan

  • Acrobat Plugin Memory Leak

    I am using the Acrobat 9.1.0 plugin under Firefox extremely heavily, so it is possible that nobody has stressed it to the extent that I have.  I have observed that there is a memory leak that manifests in various ways after viewing a few hundred PDF files. Occasionally Windows reports a memory shortage and suggests shutting down applications, but more often the problem manifests as applications hanging because they are unable to obtain the memory to call system services for display, or most common of all Firefox crashes.  The crash is caught by Firefox and has been reported to Mozilla support, but since the actual problem is in the Acrobat plugin there is not a lot that Firefox can do to handle this.
    How can I report this problem to the appropriate authorities?
    Although the problem is arising on PDF images that I am retrieving from the Library and Archives of Canada web site the easiest way to reproduce it is to take advantage of the web front-end that I have on my own site http://www3.sympatico.ca/jamescobban/database/Images1891.html.  Just click on "View Image" to load the first PDF image and then click on "Advance By" a few hundred times.

    This is a user to user forum. You can report to Adobe by either calling up Adobe support or logging the bug at :
    http://www.adobe.com/cfusion/mmform/index.cfm?name=wishform

  • 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

  • Memory leak in Jain-SIP ?

    Hi there.
    We implemented a SIP gateway to MS OCS 2007 using
    Jain-SIP version 1.2.1906.
    One problem we have is memory consumption.
    Using jconsole we found out that memory is not
    completely released when SIP clients log out.
    E.g. the following classes keep on accumulating:
    53134 instances of class gov.nist.core.NameValueList
    41730 instances of class gov.nist.core.NameValue
    20330 instances of class gov.nist.core.Host
    20330 instances of class gov.nist.core.HostPort
    19767 instances of class gov.nist.core.DuplicateNameValueList
    19767 instances of class gov.nist.core.MultiValueMapImpl
    16162 instances of class gov.nist.javax.sip.address.Authority
    16162 instances of class gov.nist.javax.sip.address.SipUri
    13570 instances of class gov.nist.javax.sip.address.UserInfo
    12261 instances of class gov.nist.javax.sip.address.AddressImpl
    5210 instances of class gov.nist.javax.sip.header.Protocol
    5210 instances of class gov.nist.javax.sip.header.Via
    4168 instances of class gov.nist.javax.sip.header.CallID
    4168 instances of class gov.nist.javax.sip.header.CallIdentifier
    3901 instances of class gov.nist.javax.sip.header.CSeq
    3901 instances of class gov.nist.javax.sip.header.ContentLength
    3901 instances of class gov.nist.javax.sip.header.From
    3901 instances of class gov.nist.javax.sip.header.MaxForwards
    3901 instances of class gov.nist.javax.sip.header.RequestLine
    3901 instances of class gov.nist.javax.sip.header.To
    3901 instances of class gov.nist.javax.sip.header.ViaList
    3901 instances of class gov.nist.javax.sip.message.SIPRequest
    3901 instances of class gov.nist.javax.sip.stack.SIPTransaction$TransactionSemaphore
    2858 instances of class gov.nist.javax.sip.DialogFilter
    2618 instances of class gov.nist.javax.sip.header.Route
    2618 instances of class gov.nist.javax.sip.header.RouteList
    2592 instances of class gov.nist.javax.sip.stack.SIPServerTransaction
    2590 instances of class gov.nist.javax.sip.header.ContentDisposition
    2590 instances of class gov.nist.javax.sip.header.ContentType
    2590 instances of class gov.nist.javax.sip.header.MediaRange
    1579 instances of class org.apache.xmlbeans.SchemaType$Ref
    1309 instances of class gov.nist.javax.sip.header.UserAgent
    1309 instances of class gov.nist.javax.sip.parser.Pipeline
    1309 instances of class gov.nist.javax.sip.parser.PipelinedMsgParser
    1309 instances of class gov.nist.javax.sip.parser.StringMsgParser
    1309 instances of class gov.nist.javax.sip.stack.HopImpl
    1309 instances of class gov.nist.javax.sip.stack.SIPClientTransaction
    1309 instances of class gov.nist.javax.sip.stack.SIPClientTransaction$TransactionTimer
    1309 instances of class gov.nist.javax.sip.stack.SIPDialog
    These all are classes from the SIP stack aren't they ?
    Are there any known issues with memory leaks
    in Jain-SIP ?
    Is it probably a configuration issue with
    the properties/parameters for the SIP stack ?
    (There is a property gov.nist.javax.sip.AGGRESSIVE_CLEANUP which we set
    to TRUE but it didn't help)
    Do we miss to release/initialize anything in the SIP stack manually ?
    Thanks a lot in advance,
    Fred

    Nobody else seems ton have this problem. I haven't run my SIP code for as long as a week at a time but i didn't notice any undue memory usage, and I also trawled inside the source a lot without seeing anything odd. So is it your code leaking? Are you sure you're releasing everything to do with a conversation when it ends? Rather than say accumulating things in some static data structure?

  • How to fix huge iTunes memory leak in 64-bit Windows 7?

    iTunes likes to allocate as much as 1.6GB of memory on my dual-quad XEON 8GB 64-Bit Windows computer and then becomes unresponsive.
    This can happen several times a day and has been going on for as long as I can remember.  No other software that I use does this - only Apple's iTunes.  Each version I have installed of iTunes appears to have this same memory leak.  Currently I am running version 10.7.0.21.
    I love iTunes when it works.  But having to constantly kill and relaunch the app throughout the day is bringing me down.
    Searching for a fix for this on the internet just surfaces more and more complaints about this problem - but without a solution.
    Having written shrinkwrapped software for end users as well as for large corporations and governments for more than 25 years I know a thing or two about software.  A leak like this should take no more than a day or two to locate using modern software tools and double that to fix it.  So why with each new version of iTunes does this problem persist?  iTunes for Windows is the flagship software product Apple makes for non-Mac users - yet they continue to pass up each opportunity they have had over the years with each new release to fix this issue.  Why is this?
    Either the software engineers are not that good or they have been told NOT to spend time on this issue.  I personally believe that the engineers at Apple are very good, and therefore am left thinking that the latter is more likely the case.  Maybe this is to coax people to purchase a Mac so that they can finally run iTunes without these egregious memory leaks.  I would like to offer another issue to consider.
    Just as Amazon sold Kindles and Google sold Nexus tablets at low cost - not counting on margin for profit - but instead they wanted to saturate the marketplace with tools for making future purchases of content almost trivial to do with their devices.  Apple also counts on this model with their pricer hardware - but they also have iTunes.  Instead of trying to get people to switch to a MAC by continuing to avoid fixing this glaring issue in iTunes for Windows I would like to suggest that by allowing their engineers to address this issue that Apple will help keep Windows users from jumping ship to another music app.  The profit to be made by keeping those Windows users happy and wedded to the iTunes store is obvious.
    By continuing to keep this leak in iTunes for Windows all it does is lower my esteem for the company and start to make me wonder if the software is just as buggy on Macs.

    I have same issue. Ongoing for more than 1 year and currently running iTunes 11.3.
    My PC is Dell OptiPlex 990 I7 processor, 8GB ram, W7 64 [always keep things patched up to latest OS updates etc]
    I use this iTunes install to stream music videos etc to multiple appleTVs, ipads, iphones etc .. via Home Sharing
    Store all my media including music, videos and apps on separate NAS  .. so the iTunes running on PC is only doing the traffic cop role and streaming / using files stored on NAS .. creates lots of IO across my network
    Previous troubleshooting suggest possible contributing causes include
    a) podcast updates  .. until recently I had this auto updates on multiple podcast subscriptions, presumably the iTunes would flow this from the PC to save on the NAS across the network .. if the memory leak is in the iTunes network communication layer (?bonjour?)  this may be sensitive to IO that would not normally occur if the iTunes file saving was local on the same PC
    b) app updates .. have 200+ apps in my library and there is always a batch of updates .. some updates 100s of MB is size .. routinely see 500MB to 1GB of updates in single update run .. all my apps are
    c) streaming music / movies .. seems when we ramp up streamlining of music or movies . memory leak grows faster .. ie within hours of clean start
    c) large syncs of music or videos to ipads or iphones .. noticed that get big problems when I rebuild an ipad .. I typically have 60+ GB of data in terms of apps /  music / videos to load .. have to do rebuild in phases due to periodic lockups

  • Memory leak in tagsrv.exe

    I'm seeing a memory leak in tagsrv.exe on my laptop, where I use DSC
    v8.2.  When I close the screen (suspend the laptop), and then open
    it again (resume), the tagsrv.exe memory usage jumps dramatically,
    often to over 125MB.  What is more, it appears each time I do this
    the memory jumps again by this amount (I'm not completely sure how
    consistent the incremental increase is, but I've often seen over 250MB
    memory usage, and as high as 500MB).  Has anyone else encountered
    this, or does anyone have a solution?
    Thanks.
    David Moerman
    TruView Technology Integration Ltd.

    Attached are some images of memory usage.  Interesting, but the
    problem does NOT occur if I simply hibernate then resume over a short
    period of time.  The images you see are the result of hibernating
    OVERNIGHT.  Not sure what to make of that.  I did not have
    LabVIEW running when the memory jump occured.
    The LV DSC project I'm working on has about 40 shared variables, many
    of which are supposed to be connected to a Modbus/TCP client via
    OPC.  However, during this development period I do not have the
    hardware, so some shared variable errors result which I ignore. 
    Also, I'm using a dataset I/O server to create batch-oriented datasets.
    -Dave
    Attachments:
    memory1.GIF ‏49 KB
    memory2.GIF ‏49 KB

  • Batch conversion of Microsoft word to PDF?

    Hi Gang,
    I'm not sure which forum to put this in, but I've been all over google and can't find a solution. I'm hoping someone here has a suggestion.
    Does anyone know a way to do a batch conversion of MS word to PDF? I installed adobe acrobat pro, and it looks like it will do batch conversions, but only of post script files, not MS word. Which is a waste, because if I can save the files as post scrip, I might as well just save as PDF.
    I also tried acrobat distiller, but it tells me it can not read the file type.
    I know how to print, save to pdf for a single file, but I'm trying to streamline this process.
    I'm not familiar with command line or scripting... I was hoping for an app.
    Anyone have ideas?
    thanks
    Ethan-

    Hi Ethan
    Have a look at creating a WorkFlow with Automator which comes with your Mac.
    You should be able to modify one of the batching routines in Automator to open folders of Word files and print to .pdf.
    Get onto the Automator forum and see what specific assistance they can offer:
    http://discussions.apple.com/forum.jspa?forumID=1261
    Peter

  • Htmleditorkit memory leak

    We are using the HtmlEditorKit class to parse documents in a Java program using Java version 1.4.1_02. While the class seems to work correctly, we eventually run out of memory when processing large numbers of documents. The problem seems to worsen when we process big documents. We had the same problem with Java version 1.4.0_03. In our class constructor we have the following code:
    // create the HTML document
    kit = new HTMLEditorKit();
    doc = kit.createDefaultDocument();
    Inside our processing loop we do the following:
    if (doc.getLength() > 0 ) {
    doc.remove(0, doc.getLength());
    // Create a reader on the HTML content.
    Reader rd = getReader(inFilePath);
    // Parse the HTML. -- Here is a memory leak
    kit.read(rd, doc, 0);
    // Close a reader
    rd.close();
    Any help will be much appreciated.
    Michael Sperling
    516-998-4803

    Hi,
    if you process HTML files in a loop I assume you do not want to actually show them on the screen. It seems as if you rather do something with the HTML file such as reading the HTML code and change it / store it / transform it as you go in batch type of manner on multiple files.
    If the above is true I would not recommend to use HTMLEditorKit.read at all because this will not only parse HTML, it will also build a HTMLDocument with respective element structure each time. This in turn is only necessary for showing the HTML file in a text component and to work on the document interactively.
    Depending on the actual purpose of your processing loop, you might want to simply parse the HTML file using class HTMLEditorKit.ParserCallback. By creating a subclass if HTMLEditorKit.ParserCallback you can implement / customize the way you would like to process HTML files.
    The customized subclass of HTMLEditorKit.ParserCallback then can be used by calling
    new ParserDelegator().parse(new FileReader(srcFileName), MyParserCallback, true);
    HTH
    Ulrich

  • Memory leak with variant/OCX

    I'm trying to get images from an IP webcam thanks to an ActiveX and process them with IMAQ.
    This ActiveX needs a variant to put chars from the image. It seems to work fine, (nearly 'in real-time') when I convert a string into a variant. Nevertheless, I have memory leak, if I put this sub-VI into a while loop.
    So, rather than using a string conversion, I've tried to use a Uchar array conversion. It also seems to work but it is really slow and in this case I don't have any leak of memory !
    I'm likely misunderstand the memory managment of Labview.
    Thank you very much for your help.

    Sorry for the VIs I've sent.
    Here are simplified VIs, with comments that illustrate the problem.
    I hope this will bring you clearer informations.
    Olivier M.
    Attachments:
    test_snap.vi ‏57 KB
    InitAxis.vi ‏36 KB
    SnapAxis.vi ‏38 KB

  • Memory Leak With Spatial queries

    We are using 8.1.6 on NT (4.0) for spatial data queries. We are facing memory leak problems. At the starting our job will run very fast and after some time it will start slipping. I'm monitoring PGA size from v$sessionstat/v$sysstat and it is regularly increasing. Same is the case for memory on NT machine when I'm monitoring thru performance monitor. I have already applied the spatial patch available for 8.1.6 but no improvement.
    Please let me know If there is any workaround. When I'm submitting my job in parts and shutdown the database in between then It is releasing all the memory and It is working fine. Without shutting the database it is not relasing the memory even though I stop my spatial data batch job.
    null

    Hi,
    Thanks for your responses.
    This is the query:
    SELECT a.geo_id, mdsys.sdo_geom.sdo_length(
    mdsys.sdo_cs.transform(
    mdsys.sdo_geometry(2002, 8307, null,
    mdsys.sdo_elem_info_array(1,2,1),
    mdsys.sdo_ordinate_array(' &#0124; &#0124;
    longi &#0124; &#0124;
    ', ' &#0124; &#0124;
    lati &#0124; &#0124;
    a.geo_geometry.sdo_point.x,
    a.geo_geometry.sdo_point.y )),
    mdsys.sdo_dim_array(mdsys.sdo_dim_element(' &#0124; &#0124;
    '''' &#0124; &#0124;
    'X' &#0124; &#0124;
    '''' &#0124; &#0124;
    ',-180,180, .00000005),
    mdsys.sdo_dim_element(' &#0124; &#0124;
    '''' &#0124; &#0124;
    'Y' &#0124; &#0124;
    '''' &#0124; &#0124;
    ',-90,90, .00000005)), 41004),
    .00000005) * 6.213712e-04 distance_in_miles
    FROM ' &#0124; &#0124;
    t_name &#0124; &#0124;
    ' a
    WHERE mdsys.sdo_nn(a.geo_geometry,
    mdsys.sdo_geometry(1, 8307,
    mdsys.sdo_point_type(' &#0124; &#0124;
    longi &#0124; &#0124;
    ', ' &#0124; &#0124;
    lati &#0124; &#0124;
    ', null),
    null, null),' &#0124; &#0124;
    '''' &#0124; &#0124;
    'SDO_NUM_RES=5' &#0124; &#0124;
    '''' &#0124; &#0124;
    ') = ' &#0124; &#0124;
    '''' &#0124; &#0124;
    'TRUE' &#0124; &#0124;
    '''' &#0124; &#0124;
    AND a.geo_id ' &#0124; &#0124;
    filter &#0124; &#0124;
    ORDER BY 2;
    Here we are passing the tname and filter dynamically based on certain conditions and the memory leak is almost 100K to 200K per query.
    First I tried to closing the session only but that didn't work. Database shutdown is only able to release the memory. I'm monitoring v$sysstat/v$sesstat and size of oracle.exe in NT performance monitor. Please let me know If something else need to be monitor.
    Thanks.
    Sandeep
    null

  • Batch Conversion of PDF to Postscript

    I've been trying write a script for Batch conversion of PDF to PS files, using "silent" printing. I'm apparently missing something, because acrobat keeps crashing after executing the script (and the .ps files are not being created). Its also still prompting me for a filename. Not really sure of the syntax for keeping the same filename? I'm new to java script, so I'm sure its something I have wrong. My code is below, if anyone can help me out. I'm using Acrobat 7.0.9
    this.print ({bUI: false,bSilent: true,bShrinktoFit: true,});
    var pp = this.getPrintParams();
    pp.interactive = pp.constants.interactionLevel.automatic;
    pp.printername = "Xerox Docuprint 92C NPS PS2 C1";
    pp.filename = "c:\temp\$filename$.ps";
    this.print(pp);
    Thanks

    Why are you calling the print method twice?
    Your syntax in the first call to print is in error. You have a comma after bShrinkToFit: true which is telling the JS interpreter to expect another argument.
    Use this for filename (not the capital N in filename ... use proper case for property names):
    pp.fileName = "/c/temp/" + this.documentFileName + ".ps";
    Also, when printing to PostScript you shouldn't specify a printer name. Use this (again, note the proper case for properties):
    pp.printerName = "";
    It says exactly this in the documentation for the fileName property of the PrintParams object. I suggest you read the documentation relating to the methods you're trying to use ... always a good place to find answers.
    > When printerName is an empty string and fileName is specified, the current document is saved as a PostScript file.
    Although it may not consider C:\temp a "safe path" (I can't remember off the top of my head). You'll want to read the documentation regarding JavaScript "safe paths". If it is still prompting you for a filename it is most likely ignoring your path due to security restrictions.

  • Memory leak in xquery code in DbXml?

    While running a xml db which is update and xquery heavy, we are seeing the memory foot print grow to multiple gigs in a few minutes.
    One of the sample output from running it in valgrind is as follows.
    ==6847== 792,931,233 bytes in 4,695,090 blocks are still reachable in loss record 323 of 323
    ==6847== at 0x4A19007: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
    ==6847== by 0x64BE0C5: BaseMemoryManager::allocate(unsigned long) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x554A0C0: xercesc_2_8::XMemory::operator new(unsigned long, xercesc_2_8::MemoryManager*) (in /usr/local/maui/lib/libxerces-c.so.28.0)
    ==6847== by 0x64E2BC8: xercesc_2_8::RefHash2KeysTableOf<int>::RefHash2KeysTableOf(unsigned, bool, xercesc_2_8::MemoryManager*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x64E181E: StaticAnalysis::StaticAnalysis(XPath2MemoryManager*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x61A7076: DbXml::SequentialScanQP::SequentialScanQP(DbXml::ImpliedSchemaNode::Type, DbXml::ImpliedSchemaNode*, DbXml::ContainerBase*, unsigned, XPath2MemoryManager*) (QueryPlan.hpp:160)
    ==6847== by 0x61A7136: DbXml::SequentialScanQP::copy(XPath2MemoryManager*) const (XPath2MemoryManager.hpp:175)
    ==6847== by 0x619474F: DbXml::QueryPlan::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (stl_vector.h:557)
    ==6847== by 0x618DC2E: DbXml::QueryPlan::createAlternatives(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (QueryPlan.cpp:128)
    ==6847== by 0x61CC1D5: DbXml::LevelFilterQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (LevelFilterQP.cpp:101)
    ==6847== by 0x61994A0: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (QueryPlan.cpp:157)
    ==6847== by 0x6182852: DbXml::StructuralJoinQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (StructuralJoinQP.cpp:260)
    ==6847== by 0x61994A0: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (QueryPlan.cpp:157)
    ==6847== by 0x61B2C13: DbXml::NodePredicateFilterQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (NodePredicateFilterQP.cpp:290)
    ==6847== by 0x61994A0: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (QueryPlan.cpp:157)
    ==6847== by 0x618258C: DbXml::StructuralJoinQP::applyConversionRules(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) (XPath2MemoryManager.hpp:202)
    ==6847== by 0x618355D: DbXml::ChildJoinQP::applyConversionRules(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) (ChildJoinQP.cpp:46)
    ==6847== by 0x619958D: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (stl_iterator.h:614)
    ==6847== by 0x61824FE: DbXml::StructuralJoinQP::applyConversionRules(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) (XPath2MemoryManager.hpp:202)
    ==6847== by 0x619958D: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (stl_iterator.h:614)
    ==6847== by 0x61B2C13: DbXml::NodePredicateFilterQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (NodePredicateFilterQP.cpp:290)
    ==6847== by 0x618DC2E: DbXml::QueryPlan::createAlternatives(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (QueryPlan.cpp:128)
    ==6847== by 0x61B25A0: DbXml::NodePredicateFilterQP::applyConversionRules(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) (XPath2MemoryManager.hpp:202)
    ==6847== by 0x619958D: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (stl_iterator.h:614)
    ==6847== by 0x618258C: DbXml::StructuralJoinQP::applyConversionRules(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) (XPath2MemoryManager.hpp:202)
    ==6847== by 0x618355D: DbXml::ChildJoinQP::applyConversionRules(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) (ChildJoinQP.cpp:46)
    ==6847== by 0x619958D: DbXml::QueryPlan::createReducedAlternatives(double, unsigned, DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (stl_iterator.h:614)
    ==6847== by 0x6182892: DbXml::StructuralJoinQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (StructuralJoinQP.cpp:264)
    ==6847== by 0x61CAF39: DbXml::BufferQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (XPath2MemoryManager.hpp:202)
    ==6847== by 0x6198964: DbXml::QueryPlan::chooseAlternative(DbXml::OptimizationContext&, char const*, bool) const (QueryPlan.cpp:291)
    ==6847== by 0x61CAD75: DbXml::BufferQP::createCombinations(DbXml::OptimizationContext&, std::vector<DbXml::QueryPlan*, std::allocator<DbXml::QueryPlan*> >&) const (BufferQP.cpp:230)
    ==6847== by 0x6198964: DbXml::QueryPlan::chooseAlternative(DbXml::OptimizationContext&, char const*, bool) const (QueryPlan.cpp:291)
    ==6847== by 0x61567BE: DbXml::QueryPlanOptimizer::optimizeQueryPlanToAST(DbXml::QueryPlanToAST*) (QueryPlanToAST.hpp:29)
    ==6847== by 0x66506E6: ASTVisitor::optimizeForTuple(ForTuple*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x665066A: ASTVisitor::optimizeTupleNode(TupleNode*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664FF63: ASTVisitor::optimizeReturn(XQReturn*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664F9B3: ASTVisitor::optimize(ASTNode*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x6650DBF: ASTVisitor::optimize(XQQuery*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664F7A4: Optimizer::startOptimize(XQQuery*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664F7A4: Optimizer::startOptimize(XQQuery*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664F7A4: Optimizer::startOptimize(XQQuery*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664F7A4: Optimizer::startOptimize(XQQuery*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x664F7A4: Optimizer::startOptimize(XQQuery*) (in /usr/local/maui/lib/libxqilla.so.4.0.1)
    ==6847== by 0x6079D98: DbXml::QueryExpression::QueryExpression(std::string const&, DbXml::XmlQueryContext&, DbXml::Transaction*) (ScopedPtr.hpp:41)
    ==6847== by 0x60D6A5B: DbXml::XmlManager::prepare(DbXml::XmlTransaction&, std::string const&, DbXml::XmlQueryContext&) (XmlManager.cpp:563)
    ==6847== by 0x60D6B70: DbXml::XmlManager::query(DbXml::XmlTransaction&, std::string const&, DbXml::XmlQueryContext&, unsigned) (XmlManager.cpp:581)
    Message was edited by:
    user626230

    This looks like a memory leak. Please correct me if I am wrong. Also, since the library uses a memory manager would'nt it be reported differently?
    They allocate a a new QueryPlan when they do a copy
    QueryPlan SequentialScanQP::copy(XPath2MemoryManager mm) const
    if(!mm) {
    mm = memMgr_;
    SequentialScanQP *result = new (mm) SequentialScanQP(nodeType_, isn_, container_, flags_, mm);
    result->nameid_ = nameid_;
    result->nsUriID_ = nsUriID_;
    result->cost_ = cost_;
    result->setLocationInfo(this);
    return result;
    Which is called from
    void QueryPlan::createCombinations(OptimizationContext &opt, QueryPlans &combinations) const
    combinations.push_back(copy(opt.getMemoryManager()));
    which is never freed here.
    void QueryPlan::createAlternatives(OptimizationContext &opt, QueryPlans &alternatives) const
    QueryPlans combinations;
    createCombinations(opt, combinations);
    // Generate the alternatives by applying conversion rules to the combinations
    for(QueryPlans::iterator it = combinations.begin(); it != combinations.end(); ++it) {
    (*it)->applyConversionRules(opt, alternatives);
    }

Maybe you are looking for

  • Questions re: GPIB-ENET, LabView 5 and 7, license and Win XP

    We have a full development version of LabView 5.0 on a Win 98 SE machine, and just acquired a GPIB-ENET box that came with Solaris drivers. I loaded the GPIB and VISA software on LabView 5.0 and tried to connect to test the setup to no avail. It appe

  • Setting content type to pdf

    Hi guys I want my jsp output in pdf format. I have written following lines at the start of jsp: response.setContentType("application/pdf"); response.setHeader("content-disposition","attachment;"); But acrobat reader is giving following error: "Acroba

  • Website can't communicate with db - SQL Express 2005

    Here's the error message: [Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name. I have successfully connected to the db through coldfusion admin. I can see the tables in SQL Express 2005,

  • Failure on one Server casues other to lock

              Greetings,           I am running a WLS 6.1 sp2 cluster with 2 managed server instances on 2 W2K servers.           When one server in the cluster fails (eg java.lang.OutOfMemoryError) and stops responding,           the other server in the

  • Printing of waveforms

    Hi all, I'm trying to find a way to get a printout of a waveform. So far the only thing I've found is the Print Panel.vi and that's not quite what I'm after. Is there a way of getting a waveform to print out in some kind of scaleable format (ie. rast