Generating large amounts of XML without running out of memory

Hi there,
I need some advice from the experienced xdb users around here. I´m trying to map large amounts of data inside the DB (Oracle 11.2.0.1.0) and by large I mean files up to several GB. I compared the "low level" mapping via PL/SQL in combination with ExtractValue/XMLQuery with the elegant XML View Mapping and the best performance gave me the View Mapping by using the XMLTABLE XQuery PATH constructs. So now I have a View that lies on several BINARY XMLTYPE Columns (where the XML files are stored) for the mapping and another view which lies above this Mapping View and constructs the nested XML result document via XMLELEMENT(),XMLAGG() etc. Example Code for better understanding:
CREATE OR REPLACE VIEW MAPPING AS
SELECT  type, (...)  FROM XMLTYPE_BINARY,  XMLTABLE ('/ROOT/ITEM' passing xml
     COLUMNS
      type       VARCHAR2(50)          PATH 'for $x in .
                                                            let $one := substring($x/b012,1,1)
                                                            let $two := substring($x/b012,1,2)
                                                            return
                                                                if ($one eq "A")
                                                                  then "A"
                                                                else if ($one eq "B" and not($two eq "BJ"))
                                                                  then "AA"
                                                                else if (...)
CREATE OR REPLACE VIEW RESULT AS
select XMLELEMENT("RESULTDOC",
                 (SELECT XMLAGG(
                         XMLELEMENT("ITEM",
                                      XMLFOREST(
                                           type "ITEMTYPE",
) as RESULTDOC FROM MAPPING;
----------------------------------------------------------------------------------------------------------------------------Now all I want to do is materialize this document by inserting it into a XMLTYPE table/column.
insert into bla select * from RESULT;
Sounds pretty easy but can´t get it to work, the DB seems to load a full DOM representation into the RAM every time I perform a select, insert into or use the xmlgen tool. This Representation takes more than 1 GB for a 200 MB XML file and eventually I´m running out of memory with an
ORA-19202: Error occurred in XML PROCESSING
ORA-04030: out of process memory
My question is how can I get the result document into the table without memory exhaustion. I thought the db would be smart enough to generate some kind of serialization/datastream to perform this task without loading everything into the RAM.
Best regards

The file import is performed via jdbc, clob and binary storage is possible up to several GB, the OR storage gives me the ORA-22813 when loading files with more than 100 MB. I use a plain prepared statement:
        File f = new File( path );
       PreparedStatement pstmt = CON.prepareStatement( "insert into " + table + " values ('" + id + "', XMLTYPE(?) )" );
       pstmt.setClob( 1, new FileReader(f) , (int)f.length() );
       pstmt.executeUpdate();
       pstmt.close(); DB version is 11.2.0.1.0 as mentioned in the initial post.
But this isn´t my main problem, the above one is, I prefer using binary xmltype anyway, much easier to index. Anyone an idea how to get the large document from the view into a xmltype table?

Similar Messages

  • Aperture runs out of memory generating previews

    Aperture 3.2.3
    65K photos in library
    OSX 10.7.3
    Model Identifier:          MacPro1,1
    Processor Name:          Dual-Core Intel Xeon
    Processor Speed:          2.66 GHz
    Total Number of Cores:          4
    L2 Cache (per Processor):          4 MB
    Memory:          10 GB
    After moving my photoes to an external drive as referenced images, and a library rebuild, Aperture is attempting to recreatea all of my previews.  After generateing a couple of hunderd previews, it runs out of memory and I can see the following errors in the system console:
    5/11/12 6:03:09.040 PM [0x0-0xfe0fe].com.apple.Aperture: Aperture(37843,0xb071b000) malloc: *** mmap(size=1464881152) failed (error code=12)
    5/11/12 6:03:09.040 PM [0x0-0xfe0fe].com.apple.Aperture: *** error: can't allocate region
    5/11/12 6:03:09.040 PM [0x0-0xfe0fe].com.apple.Aperture: *** set a breakpoint in malloc_error_break to debug
    5/11/12 6:03:09.040 PM [0x0-0xfe0fe].com.apple.Aperture: Aperture(37843,0xb071b000) malloc: *** mmap(size=1464881152) failed (error code=12)
    5/11/12 6:03:09.040 PM [0x0-0xfe0fe].com.apple.Aperture: *** error: can't allocate region
    5/11/12 6:03:09.040 PM [0x0-0xfe0fe].com.apple.Aperture: *** set a breakpoint in malloc_error_break to debug
    5/11/12 6:03:09.041 PM [0x0-0xfe0fe].com.apple.Aperture: Aperture(37843,0xb071b000) malloc: *** mmap(size=1464881152) failed (error code=12)
    5/11/12 6:03:09.041 PM [0x0-0xfe0fe].com.apple.Aperture: *** error: can't allocate region
    5/11/12 6:03:09.041 PM [0x0-0xfe0fe].com.apple.Aperture: *** set a breakpoint in malloc_error_break to debug
    Inactive memory quickly uses up all available memory and is not released.  Quitting Aperture only releases half of the inactive memory.
    Any ideas on how to get previews generated without running out of memory?  I've tried running aperture in 32-bit mode, with no difference in behavior.

    Are Previews being generated as you import, or later?  I am asking because I can identify with memory issues when editing numerous images from my D800 in succession (which are huge), but i am not seeing it while importing.
    Ernie

  • Workfow Iterate to subprocess runs out of memory

    I have a workflow that returns all suspended tasks and then calls a subprocess for each task. The subprocess decides whether the task needs to be deleted and if so it processes the task in various ways before deleting the taskinstance.
    I have no issues when there are not too many tasks returned by the query but when the workflow returns 2000+ items, I run out of memory.
    What is the best way to workflow to call the subprocess without running out of memory?
    Do I need to cleanup something at the end of subprocess?
    Do I need to add something in the workflow to beakup the list of tasks into smaller chunks?
    <Activity id='3' name='ProcessTasks'>
    <Action id='0' name='processTasks' process='processTheTask'>
    <Iterate for='taskInstanceName' in='mytasks'/>
    <Argument name='taskInstanceName' value='$(taskInstanceName)'/>
    </Action>
    Edited by: user1937458 on Mar 14, 2012 3:12 PM

    I didnt think that this would put that much stress on the system.
    1) Use IDM best practice to generate low memory tasks, use exposedVariables and extendedVariables in manual actions to generate low memory tasks, that will save lots of memory.
    No manual action. This is a scheduled task.
    2) Run this workflow on dedicated server which is responsible to run this task only.
    I have run this when no one else was using the system but that did not help either.
    3) You can put some more conditions to get the limited return data which your server can handle in one go.
    we normally have 8000 tasks in the system. About 5000 are completed so I can ignore those in the workflow. The rest need to be looked at to determine if we need to update the request. Let's say that I can use a rule to determine that in the workflow before the subprocess is called and I end up with a list of 500 taskinstance names, I think that the process will still run out of memory unless there is some other solution.
    2000 task names in a list should not take up that much space. I am pretty sure that the subprocess which determines if the task needs to be deleted is chewing up resources. This is going to be a scheduled task with no manual actions.
    My thinking was that workflow calls the subprocess and the subprocess does a lot of work as far as canceling a request, disabling accounts in some cases, auditing and notifying users that their request was cancelled. Upon return to the workflow to get the next taskinstance name, there is probably some variable that keeps getting larger with each iteration.
    I have run smaller lists and the flow diagram that returns at the end shows the flowchart for every item that was deleted so that is probably 1 place where the variable keeps getting larger.
    Is there a way to clean everything so that each subprocess acts as if it was the 1st and only time it was getting called?
    I tried the following at the end of the subprocess but that did not help:
    <Action id='0' name='CleanUp'>
    <expression>
    <set name='WF_CASE_RESULT'/>
    </expression>
    </Action>
    I will try to debug and see what variables are getting larger and larger but any other suggestions are appreciated.

  • Why does the iPad 2 run out of memory

    Why does the iPad 2 run out of memory?

    First ...read deggie's response. Makes sense - even a computer running a large amount of RAM can run short on memory depending upon the operation you are performing so sometimes you have to do what is available to "clear" the memory.
    You can ...close apps and restart the iPad on occasion. You close apps by double tapping the home button to bring up your recent apps in the multitasking tray. Tap and hold down on any of the icons until they all begin to wiggle. Then tap the minus signs in the corner of the apps to close them. Close all of your apps in that area. Also take note of how many apps are down there. That may have something to do with why the iPad is running out of memory. Tap the home button twice to return to the home screen. Then restart your iPad by holding down on the sleep button until the red slider appears and slide to shut off. To power up, hold the sleep button until the Apple logo appears and let go of the button.
    If you do this once in a while, it may make a difference in how your iPad performs. In any event, it will not hurt anything.

  • Photoshop running out of memory on fast system

    Hi!
    I use Photoshop CC on a Win7 System with 16GB RAM and 8Cores (x2,11Ghz)
    Since some days, let it be the last update, any of the operations that before have never been a problem suddenly get memory errors.
    I cant work like that, i have architectural images with several layers to blend and how can i explain a customer i cant hold a deadline because my
    expensive and world leading software isn´t able even to save the workfile without running out of memory??
    If it´s a problem with my hardware ok, but if it´s somehow  softwarebased, please correct that an pop another update- i don´t want to swap to Gimp

    I don´t know why excactly, but now it is working again.
    I reinstalled some plugins and now it seems to be ok.
    Thank´s for the effort

  • How to send large amount of XML data in one CLOB variable

    Hi,
    I am sending large amount of XML data to TCP/IP port in one CLOB variable.
    My requirement is to send the whole data in one go in one CLOB variable.
    But that CLOB variable is not sufficient to hold all the data.
    Please suggest some solution.
    Thanks in advance

    Hi Here is my code:
    CREATE OR REPLACE PACKAGE BODY APPS.XXMB_WIP_PROD_TAG_DOOR_PKG
    AS
    PROCEDURE xxmb_get_xml_data_1270 (
    -- errbuf OUT VARCHAR2,
    -- retcode OUT NUMBER,
    p_org IN VARCHAR2,
    p_limit_to_global IN VARCHAR2,
    p_label IN VARCHAR2,
    p_printer IN VARCHAR2,
    p_quantity IN VARCHAR2,
    p_print_method IN VARCHAR2,
    p_enable_release IN VARCHAR2,
    p_enable_serial_no IN VARCHAR2,
    p_release IN VARCHAR2,
    p_rep_group IN VARCHAR2,
    p_cart_type IN VARCHAR2,
    p_cart_no_from IN VARCHAR2,
    p_cart_no_to IN VARCHAR2,
    p_serial_no IN VARCHAR2
    AS
    CURSOR c_xml_data_door (
    p_org IN VARCHAR2,
    p_label IN VARCHAR2,
    p_printer IN VARCHAR2,
    p_quantity IN VARCHAR2,
    p_print_method IN VARCHAR2,
    p_rep_group IN VARCHAR2,
    p_release IN VARCHAR2,
    p_cart_type IN VARCHAR2,
    p_cart_no_from IN VARCHAR2,
    p_cart_no_to IN VARCHAR2,
    p_serial_no IN VARCHAR2
    IS
    SELECT xxasa.item_id AS item_id, xcs.serial_number AS serial_number,xxcpf.cart_type,xcs.destination_cart_num cart,xcs.destination_slot_num slot
    CURSOR c_product_detail (
    l_product IN NUMBER,
    l_serial_num IN VARCHAR2,
    p_limit_to_global IN VARCHAR2
    IS
    SELECT xcra_specie.reference_id AS reference_id,
    xcra_ege.attribute_value AS ege, xcs.item_id AS item_id,
    AND msib.inventory_item_id = l_product
    and xcs.organization_id = nvl(p_org, xcs.organization_id)
    AND xcs.serial_number = NVL (l_serial_num, xcs.serial_number);
    /*-------------------------------------------------------+
    | Cursor to fetch the data for special Message Label |
    +-------------------------------------------------------*/
    CURSOR c_count (p_item_id IN NUMBER)
    IS
    SELECT xcrav.attribute_value, xcs.serial_number, xcs.cabinet_number
    FROM xxmb_czmfg_ref_attributes xcrav,
    cz_config_attributes cca,
    AND msib.organization_id = xcs.organization_id
    AND msib.inventory_item_id = xcs.item_id;
    /*--------------------------+
    | Common variables |
    +--------------------------*/
    v_limit_to_global VARCHAR2 (100);
    l_label_count NUMBER := 1;
    total_rec NUMBER;
    l_rewrite VARCHAR2 (1) := 'N';
    l_file_count NUMBER := 1;
    l_separate_line VARCHAR2 (10);
    BEGIN
    fnd_profile.get ('WMS_LABEL_OUTPUT_DIRECTORY', l_output_dir);
    fnd_profile.get ('WMS_LABEL_FILE_PREFIX', l_output_file_prefix);
    l_request_id := apps.fnd_global.conc_request_id;
    l_output_file_name :=
    l_output_file_prefix || l_request_id || l_file_end;
    l_dir_seperator := '/';
    IF (INSTR (l_output_dir, l_dir_seperator) = 0)
    THEN
    l_dir_seperator := '\';
    END IF;
    v_label := p_label;
    v_printer := p_printer;
    v_quantity := p_quantity;
    V_LIMIT_TO_GLOBAL := P_LIMIT_TO_GLOBAL;
    L_XML_CONTENT := '<?xml version="1.0" encoding="UTF-8" ?>';
    L_XML_CONTENT := L_XML_CONTENT || '<!DOCTYPE labels SYSTEM "label.dtd">';
    L_XML_CONTENT := L_XML_CONTENT || '<labels>';
    FOR r_xml_data_door IN c_xml_data_door (p_org,
    p_label,
    p_printer,
    p_quantity,
    p_print_method,
    p_rep_group,
    p_release,
    p_cart_type,
    p_cart_no_from,
    p_cart_no_to,
    p_serial_no
    LOOP
    -- dbms_output.put_line ( 1 );
    FOR r_product_detail IN
    c_product_detail (r_xml_data_door.item_id,
    r_xml_data_door.serial_number,
    v_limit_to_global
    LOOP
    -- dbms_output.put_line ( 2 );
    -- l_xml_content := '<?xml version="1.0" encoding="UTF-8" ?>';
    -- l_xml_content := l_xml_content || '<!DOCTYPE labels SYSTEM "label.dtd">';
    -- l_xml_content := l_xml_content || '<labels>';
    fnd_file.put_line (fnd_file.LOG, 'label cnt: ' || l_label_count);
    dbms_output.put_line (l_label_count);
    L_XML_CONTENT := L_XML_CONTENT || '<label _FORMAT='
    || '"'
    || 'lib://FRD/'
    || v_label
    || '"'
    || ' _PRINTERNAME='
    || '"'
    || v_printer
    || '"'
    || ' _QUANTITY='
    || '"'
    || v_quantity
    || '"'
    || '>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Color">'
    || R_PRODUCT_DETAIL.COLOR
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT ||'<variable name= "Model">'
    || R_PRODUCT_DETAIL.model
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Build_Date">'
    || R_PRODUCT_DETAIL.BUILD_DATE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Assy_Cart">'
    || R_PRODUCT_DETAIL.ASSY_CART
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Assy_Slot">'
    || R_PRODUCT_DETAIL.ASSY_SLOT
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Assy_Line">'
    || R_PRODUCT_DETAIL.ASSY_LINE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Finish_Cart">'
    || R_PRODUCT_DETAIL.FINISH_CART
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Finish_Slot">'
    || R_PRODUCT_DETAIL.FINISH_SLOT
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Serial_Number">'
    || R_PRODUCT_DETAIL.SERIAL_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Serial_Number_Barcode">'
    || R_PRODUCT_DETAIL.SERIAL_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Specie">'
    || R_PRODUCT_DETAIL.SPECIE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT ||'<variable name= "Truck_Group">'
    || R_PRODUCT_DETAIL.TRUCK_GROUP
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Label_Sequence_No">'
    || L_LABEL_COUNT
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT ||'<variable name= "WIP_Cart">'
    || R_PRODUCT_DETAIL.WIP_CART
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "WIP_Slot">'
    || R_PRODUCT_DETAIL.WIP_SLOT
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Cabinet_Sequence_No">'
    || R_PRODUCT_DETAIL.CAB_SEQ_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "RAW_PART_NO">'
    || R_PRODUCT_DETAIL.RAW_PART_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "JC">'
    || R_PRODUCT_DETAIL.JC
    || '</variable>' ;
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "QC">'
    || R_PRODUCT_DETAIL.QC
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Thickness">'
    || R_PRODUCT_DETAIL.THICKNESS
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Width">'
    || R_PRODUCT_DETAIL.width
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Length">'
    || R_PRODUCT_DETAIL.length
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Overlay">'
    || R_PRODUCT_DETAIL.OVERLAY
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Options">'
    || R_PRODUCT_DETAIL.OPTIONS
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Stop">'
    || R_PRODUCT_DETAIL.stop
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Profile_No">'
    || R_PRODUCT_DETAIL.PROFILE_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Door_Style">'
    || R_PRODUCT_DETAIL.DOOR_STYLE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Glaze">'
    || R_PRODUCT_DETAIL.GLAZE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Shape">'
    || R_PRODUCT_DETAIL.SHAPE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Glass">'
    || R_PRODUCT_DETAIL.GLASS
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Hinge_Side">'
    || R_PRODUCT_DETAIL.HINGE_SIDE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Hinge_Type">'
    || R_PRODUCT_DETAIL.HINGE_TYPE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "EGE">'
    || R_PRODUCT_DETAIL.EGE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Door_Style_Code">'
    || R_PRODUCT_DETAIL.DOOR_STYLE_CODE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Finish_Technique">'
    || R_PRODUCT_DETAIL.FINISH_TECHNIQUE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Hinge_Location">'
    || R_PRODUCT_DETAIL.HINGE_LOCATION
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Construction_Type">'
    || R_PRODUCT_DETAIL.CONSTRUCTION_TYPE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Panel_Type">'
    || R_PRODUCT_DETAIL.PANEL_TYPE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Panel_Profile_No">'
    || R_PRODUCT_DETAIL.PANEL_PROFILE_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Rail_Profile_No">'
    || R_PRODUCT_DETAIL.RAIL_PROFILE_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Rail_1_Length">'
    || R_PRODUCT_DETAIL.RAIL_1_LENGTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Stile_Profile_No">'
    || R_PRODUCT_DETAIL.STILE_PROFILE_NO
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Rail_2_Length">'
    || R_PRODUCT_DETAIL.RAIL_2_LENGTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Stile_1_Length">'
    || R_PRODUCT_DETAIL.STILE_1_LENGTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Stile_2_Length">'
    || R_PRODUCT_DETAIL.STILE_2_LENGTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Panel_1_Width">'
    || R_PRODUCT_DETAIL.PANEL_1_WIDTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Panel_1_Length">'
    || R_PRODUCT_DETAIL.PANEL_1_LENGTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Panel_2_Width">'
    || R_PRODUCT_DETAIL.PANEL_2_WIDTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Panel_2_Length">'
    || R_PRODUCT_DETAIL.PANEL_2_LENGTH
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT ||'</label>';
    /*-----------------------------------------+
    | Handling XML data for special message |
    +-----------------------------------------*/
    FOR rec_count IN c_count (r_product_detail.item_id)
    LOOP
    L_XML_CONTENT := L_XML_CONTENT || '<label _FORMAT='
    || '"'
    || 'lib://FRD/SpecMessage_Door.btw'
    || '"'
    || ' _PRINTERNAME='
    || '"'
    || v_printer
    || '"'
    || ' _QUANTITY='
    || '"'
    || v_quantity
    || '"'
    || '>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Serial_Number">'
    || REC_COUNT.SERIAL_NUMBER
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Special_Message">'
    || REC_COUNT.ATTRIBUTE_VALUE
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT || '<variable name= "Cabinet_Sequence_No">'
    || REC_COUNT.CABINET_NUMBER
    || '</variable>';
    L_XML_CONTENT := L_XML_CONTENT ||'</label>';
    EXIT WHEN c_count%NOTFOUND;
    end LOOP;
    -- L_XML_CONTENT := L_XML_CONTENT || '</labels>';
    fnd_file.put_line (fnd_file.LOG, l_xml_content);
    dbms_output.put_line ( l_xml_content );
    L_LABEL_COUNT := L_LABEL_COUNT + 1;
    -- apps.inv_print_request.sync_print_tcpip (l_xml_content,
    -- l_job_status,
    -- l_printer_status,
    -- l_status_type,
    -- l_return_status,
    -- l_return_msg
    END LOOP;
    END LOOP;
    l_xml_content := l_xml_content || '</labels>';
    fnd_file.put_line (fnd_file.LOG, l_xml_content);
    apps.inv_print_request.sync_print_tcpip (l_xml_content,
    l_job_status,
    l_printer_status,
    l_status_type,
    l_return_status,
    l_return_msg
    L_XML_CONTENT := null;
    /*--------------------------------------------------------------------------------------+
    | APPS.INV_PRINT_REQUEST.SYNC_PRINT_TCPIP will send the XML data to TCP/IP Port |
    +--------------------------------------------------------------------------------------*/
    fnd_file.put_line (fnd_file.LOG,
    'Printer Status:' || ' ' || l_printer_status
    fnd_file.put_line (fnd_file.LOG,
    'Return Status:' || ' ' || l_return_status
    fnd_file.put_line (fnd_file.LOG,
    'Return Message:' || ' ' || L_RETURN_MSG
    COMMIT;
    EXCEPTION
    WHEN OTHERS
    THEN
    fnd_file.put_line
    (fnd_file.LOG,
    'Unexpected error in the xxmb_get_xml_data_1270 procedure, error is : '
    || SQLERRM
    || ', '
    || SQLCODE
    END xxmb_get_xml_data_1270;
    END xxmb_wip_prod_tag_door_pkg;
    /

  • How can I avoid running out of memory when creating components dynamically

    Hello everyone,
    Recently, I am planning to design a web application. It will be used by all middle school teachers in a region to make examination papers and it must contain the following main functions.
    1)Generate test questions dynamically. For instance, a teacher who logs on the web application will only see a select one menu and a Next Quiz button. The former is used for determining the number of options for the current multiple/single choice question. The later is dedicated to creating appropriate input text elements according to the selected option number. That is to say, if the teacher selects 4 in the menu and presses the Next Quiz button, 5 input text form elements will appear. The first one is for the question to be asked such as "1.What is the biggest planet in the solar system?", the others are optional answers like a)Uranus. b) Saturn. c)Jupiter. d)Earch. Each answer stands for an input text elements. When the teacher fills in the fourth answer, another select one menu and Next Quiz button will emerge on the fly just under this answer, allowing the teacher to make the second question. The same thing repeats for the following questions.
    2)Undo and Redo. Whenever a teacher wants to roll back or redo what he has done, just press the Undo or[i] Redo button. In the previous example, if the teacher selects the third answer and presses the Delete button to drop this answer, it will delete both the literal string content[i] and the input text element, changing the answer d to c automatically. After that, he decides to get back the original answer c, Jupiter, he can just click the Undo button as if he hadn�ft made the deleting operation.
    3)Save the unfinished working in the client side. If a teacher has done half of his work, he can choose to press the Save button to store what he has done in his computer. The reason for doing so is simply to alleviate the burden of the server. Although all finished test papers must be saved in a database on the server, sometimes the unfinished papers could be dropped forever or could form the ultimate testing papers after several months. So if these papers keep in the server, it will waste the server computer�fs room. Next time the teacher can press the Restore button on the page to get the previously stored part of the test paper from his own computer and continue to finish the whole paper.
    4)Allow at least 1,000 teachers to make test papers at the same time. The maximum question number per examination paper is 60.
    Here are my two rough solutions,
    A.Using JSF.
    B.Using JavaScript and plain JSP[b] without JSF.
    The comparison of the two solutions:
    1)Both schemas can implement the first and the second requirements. In JSF page I could add a standard panelGird tag and use its binding attribute. In the backing bean, the method specified by the binding attribute is responsible for generating HtmlInput objects and adding them to the HtmlPanelGird object on the fly. Every HtmlInput object is corresponding to a question subject or an optional answer. The method is called by an actionListener, which is registered in the Next Quiz commandButton, triggering by the clicking on this button in the client side. Using JSF can also be prone to managing the HtmlInput objects, e.g. panelGird.getChildren().add(HtmlInput) and panelGird.getChildren().remove(HtmlInput) respond to the undoing operation of deleting an optional answer and the redoing operation of the deleting action respectively. I know JavaScript can also achieve these goals. It could be more complex since I don�ft know well about JavaScript.
    2)I can not find a way to meet the third demand right now. I am eager to know your suggestion.
    3)Using JSF, I think, can�ft allow 1,000 teachers to do their own papers at the same time. Because in this scenario, suppose each questionnaire having 60 questions and 4 answers per question, there will be approximately 300,000 HtmlInput objects (1,000X60X(4+1)) creating on the server side. The server must run out of memory undoubtedly. To make things better, we can use a custom component which can be rendered as a whole question including its all optional answers. That is to say, a new custom component on the server side stands for a whole question on the client side. Even so, about 60,000(1,000X60) this type of custom components will be created progressively and dynamically, plus other UISelectOne and UICommand objects, it also can�ft afford for most servers. Do I have to use JavaScript to avoid occupying the server's memory in this way? If so, I have to go back and use JavaScript and plain JSP without JSF.
    Thank you in advance!
    Best Regards, Ailsa
    2007/5/4

    Thank you for your quick response, BalusC. I really appreciate your answer.
    Yes, you are right. If I manually code the same amount of those components in the JSF pages instead of generating them dynamically, the server will still run out of memory. That is to say, JSF pages might not accommodate a great deal of concurrent visiting. If I upgrade the server to just allow 1,000 teachers making their own test papers at the same time, but when over 2,000 students take the same questionnaire simultaneously, the server will need another upgrading. So I have to do what you have told me, using JS+DOM instead of upgrading the server endlessly.
    Best Regards, Ailsa

  • Running out of memory despite having set je.maxMemory to a moderate value

    I have set je.maxMemory to 20MB (je.maxMemory=20000000) and allowed a max heap size of 512MB (-Xms256M -Xmx512M).
    After two hours of running my web service, I'm running out of memory. After having profiled my service (using Yourkit Java Profiler 1.10.6), I can see the following:
    Name                                               Objects ShallowSize  RetainedSize
    byte[]                                               16711   124124880     124124880
    com.sleepycat.je.tree.BIN                              181       24616     116254200
    com.sleepycat.je.tree.Node[]                           187       98736     115743184
    com.sleepycat.je.tree.LN                              7092      226944     115253600
    java.util.concurrent.ConcurrentHashMap$HashEntry       554       17728      78328944
    java.util.concurrent.ConcurrentHashMap$HashEntry[]    1053       34728      77489632
    java.util.concurrent.ConcurrentHashMap                 117        5616      71812072
    java.util.concurrent.ConcurrentHashMap$Segment[]       118       10304      71807912
    java.util.concurrent.ConcurrentHashMap$Segment        1052       42080      71798808
    com.sleepycat.je.tree.IN                                 6         672      45592352
    java.lang.String                                    135888     4348416      14152664The memory profiler claims further, that com.sleepycat.je.tree.BIN is responsible for 71% of all heap memory.
    In any case, com.sleepycat.je.tree.BIN claims ~ 116MB of heap memory, which is by any goodwill, exceeded the limit of 20MB.
    How can this be?
    How is JE ensuring that the limit is not exceeded? Is there a timer (thread) running which once a while checks the memory used and then cleans up ; or is memory usage checked creating a com.sleepycat.je.tree.BIN object?
    My environment:
    BDB JE 4.0.92 - used as cache loader within Jboss Cache (3.2.7.GA), running on a JBOSS Application Server, Java 1.6 (IBM) on Linux. Further details are listed in the system properties below (except some deleted security items).
    System properties:
    (java.lang.String, int, java.lang.StringBuffer, int)=contains
    DestroyJavaVM helper thread=(java.lang.String, java.security.KeyStore$Entry, java.security.KeyStore$ProtectionParameter)
    base.collection.name=CD2JAVA
    bind.address=10.12.25.130
    catalina.base=/work/ocrgws_test/server0
    catalina.ext.dirs=/work/ocrgws_test/server0/lib
    catalina.home=/work/ocrgws_test/server0
    catalina.useNaming=false
    com.arjuna.ats.arjuna.objectstore.objectStoreDir=/work/ocrgws_test/server0/data/tx-object-store
    com.arjuna.ats.jta.lastResourceOptimisationInterface=org.jboss.tm.LastResource
    com.arjuna.ats.tsmx.agentimpl=com.arjuna.ats.internal.jbossatx.agent.LocalJBossAgentImpl
    com.arjuna.common.util.logger=log4j_releveler
    com.arjuna.common.util.logging.DebugLevel=0x00000000
    com.arjuna.common.util.logging.FacilityLevel=0xffffffff
    com.arjuna.common.util.logging.VisibilityLevel=0xffffffff
    com.ibm.cpu.endian=little
    com.ibm.jcl.checkClassPath=
    com.ibm.oti.configuration=scar
    com.ibm.oti.jcl.build=20100326_1904
    com.ibm.oti.shared.enabled=false
    com.ibm.oti.vm.bootstrap.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64
    com.ibm.oti.vm.library.version=24
    com.ibm.util.extralibs.properties=
    com.ibm.vm.bitmode=64
    common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
    epo.jboss.deploymentscanner.extradirs=/work/ocrgws_test/app/
    external.cert.ldap.* = ***************
    file.encoding=UTF-8
    file.separator=/
    flipflop.activation.time=16:30
    hibernate.bytecode.provider=javassist
    ibm.signalhandling.rs=false
    ibm.signalhandling.sigchain=true
    ibm.signalhandling.sigint=true
    ibm.system.encoding=UTF-8
    jacorb.config.log.verbosity=0
    java.assistive=ON
    java.awt.fonts=
    java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
    java.awt.printerjob=sun.print.PSPrinterJob
    java.class.path=/work/ocrgws_test/config:/usr/local/jboss-eap-4.3-cp07/bin/run.jar:/opt/ibm/java-x86_64-60/lib/tools.jar
    java.class.version=50.0
    java.compiler=j9jit24
    java.endorsed.dirs=/usr/local/jboss-eap-4.3-cp07/lib/endorsed
    java.ext.dirs=/opt/ibm/java-x86_64-60/jre/lib/ext
    java.fullversion=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8-20100401_55940 (JIT enabled, AOT enabled)
    J9VM - 20100401_055940
    JIT - r9_20100401_15339
    GC - 20100308_AA_CMPRSS
    java.home=/opt/ibm/java-x86_64-60/jre
    java.io.tmpdir=/tmp
    java.jcl.version=20100408_01
    java.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64:/usr/lib64/mpi/gcc/openmpi/lib64:/usr/lib
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.net.preferIPv4Stack=true
    java.protocol.handler.pkgs=org.jboss.net.protocol
    java.rmi.server.codebase=http://10.12.25.130:8083/
    java.rmi.server.hostname=10.12.25.130
    java.rmi.server.randomIDs=true
    java.runtime.name=Java(TM) SE Runtime Environment
    java.runtime.version=pxa6460sr8-20100409_01 (SR8)
    java.security.krb5.conf=/usr/local/jboss/etc/krb5.conf
    java.specification.name=Java Platform API Specification
    java.specification.vendor=Sun Microsystems Inc.
    java.specification.version=1.6
    java.util.prefs.PreferencesFactory=java.util.prefs.FileSystemPreferencesFactory
    java.vendor.url=http://www.ibm.com/
    java.vendor=IBM Corporation
    java.version=1.6.0
    java.vm.info=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8-20100401_55940 (JIT enabled, AOT enabled)
    J9VM - 20100401_055940
    JIT - r9_20100401_15339
    GC - 20100308_AA_CMPRSS
    java.vm.name=IBM J9 VM
    java.vm.specification.name=Java Virtual Machine Specification
    java.vm.specification.vendor=Sun Microsystems Inc.
    java.vm.specification.version=1.0
    java.vm.vendor=IBM Corporation
    java.vm.version=2.4
    javax.management.builder.initial=org.jboss.mx.server.MBeanServerBuilderImpl
    javax.net.ssl.trustStore=/usr/local/jboss/etc/ldap.truststore
    javax.net.ssl.trustStorePassword=password
    jboss.bind.address=10.12.25.130
    jboss.home.dir=/usr/local/jboss-eap-4.3-cp07
    jboss.home.url=file:/usr/local/jboss-eap-4.3-cp07/
    jboss.identity=30df88bc0a52e350x6e2ff59cx136c17794d5x-8000757
    jboss.lib.url=file:/usr/local/jboss-eap-4.3-cp07/lib/
    jboss.messaging.controlchanneludpaddress=239.1.200.4
    jboss.messaging.datachanneludpaddress=239.1.200.4
    jboss.partition.name=ocrgws_test_Partition
    jboss.partition.udpGroup=239.1.200.4
    jboss.remoting.domain=JBOSS
    jboss.remoting.instanceid=30df88bc0a52e350x6e2ff59cx136c17794d5x-8000757
    jboss.remoting.jmxid=luu002t.internal.epo.org_1334685694459
    jboss.remoting.version=22
    jboss.security.disable.secdomain.option=true
    jboss.server.config.url=file:/work/ocrgws_test/server0/conf/
    jboss.server.data.dir=/work/ocrgws_test/server0/data
    jboss.server.home.dir=/work/ocrgws_test/server0
    jboss.server.home.url=file:/work/ocrgws_test/server0/
    jboss.server.lib.url=file:/work/ocrgws_test/server0/lib/
    jboss.server.log.dir=/work/ocrgws_test/server0/log
    jboss.server.name=luu002t_ocrgws_test_server0
    jboss.server.temp.dir=/work/ocrgws_test/server0/tmp
    jboss.tomcat.udpGroup=239.1.200.4
    jbossmx.loader.repository.class=org.jboss.mx.loading.UnifiedLoaderRepository3
    je.maxMemory=20000000
    jgroups.bind_addr=10.12.25.130
    jmx.console.bindcredential=3bpwdmpc
    jmx.console.binddn=cn=jbossauth-ro,ou=accounts,ou=auth,dc=epo,dc=org
    jmx.console.rolesctxdn=ou=roles-test,ou=jboss,ou=applications,ou=internal,dc=epo,dc=org
    jndi.datasource.name=java:MainframeDS
    jnp.disableDiscovery=true
    jxe.current.romimage.version=15
    jxe.lowest.romimage.version=15
    line.separator=
    mainframelogin.password=720652a1e842fc7f
    mainframelogin.username=test_t
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
    org.apache.tomcat.util.http.ServerCookie.VERSION_SWITCH=true
    org.epo.jboss.application.home=/work/ocrgws_test
    org.hyperic.sigar.path=/work/ocrgws_test/server0/./deploy/hyperic-hq.war/native-lib
    org.jboss.ORBSingletonDelegate=org.jacorb.orb.ORBSingleton
    org.omg.CORBA.ORBClass=org.jacorb.orb.ORB
    org.omg.CORBA.ORBSingletonClass=org.jboss.system.ORBSingleton
    org.w3c.dom.DOMImplementationSourceList=org.apache.xerces.dom.DOMXSImplementationSourceImpl
    os.arch=amd64
    os.name=Linux
    os.version=2.6.32.46-0.3-xen
    package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
    package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
    path.separator=:
    poll.interval.milliseconds=300000
    program.name=run.sh
    server.loader=
    shared.loader=
    spnego.config=/usr/local/jboss/etc/spnego.properties
    sun.arch.data.model=64
    sun.boot.class.path=/usr/local/jboss-eap-4.3-cp07/lib/endorsed/xercesImpl.jar:/usr/local/jboss-eap-4.3-cp07/lib/endorsed/xalan.jar:/usr/local/jboss-eap-4.3-cp07/lib/endorsed/serializer.jar:/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs/jclSC160/vm.jar:/opt/ibm/java-x86_64-60/jre/lib/annotation.jar:/opt/ibm/java-x86_64-60/jre/lib/beans.jar:/opt/ibm/java-x86_64-60/jre/lib/java.util.jar:/opt/ibm/java-x86_64-60/jre/lib/jndi.jar:/opt/ibm/java-x86_64-60/jre/lib/logging.jar:/opt/ibm/java-x86_64-60/jre/lib/security.jar:/opt/ibm/java-x86_64-60/jre/lib/sql.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmorb.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmorbapi.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcfw.jar:/opt/ibm/java-x86_64-60/jre/lib/rt.jar:/opt/ibm/java-x86_64-60/jre/lib/charsets.jar:/opt/ibm/java-x86_64-60/jre/lib/resources.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmpkcs.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcertpathfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjgssfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjssefw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmsaslfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjcefw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjgssprovider.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjsseprovider2.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcertpathprovider.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmxmlcrypto.jar:/opt/ibm/java-x86_64-60/jre/lib/management-agent.jar:/opt/ibm/java-x86_64-60/jre/lib/xml.jar:/opt/ibm/java-x86_64-60/jre/lib/jlm.jar:/opt/ibm/java-x86_64-60/jre/lib/javascript.jar:/tmp/yjp201202191932.jar
    sun.boot.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64
    sun.io.unicode.encoding=UnicodeLittle
    sun.java.command=org.jboss.Main -b 10.12.25.130 -Djboss.server.home.dir=/work/ocrgws_test/server0 -Djboss.server.home.url=file:/work/ocrgws_test/server0 -Djboss.server.name=luu002t_ocrgws_test_server0 -Djboss.partition.name=ocrgws_test_Partition -Depo.jboss.deploymentscanner.extradirs=/work/ocrgws_test/app/ -Dorg.epo.jboss.application.home=/work/ocrgws_test
    sun.java.launcher.pid=17781
    sun.java.launcher=SUN_STANDARD
    sun.java2d.fontpath=
    sun.jnu.encoding=UTF-8
    sun.rmi.dgc.client.gcInterval=3685000
    sun.rmi.dgc.server.gcInterval=3685000
    system=java.io.ObjectStreamField
    tomcat.util.buf.StringCache.byte.enabled=true
    user.country=US
    user.dir=/work/ocrgws_test
    user.home=*****************
    user.language=en
    user.name=***********
    user.timezone=Europe/Berlin
    user.variant=

    The memory profiler claims further, that com.sleepycat.je.tree.BIN is responsible for 71% of all heap memory. In any case, com.sleepycat.je.tree.BIN claims ~ 116MB of heap memory, which is by any goodwill, exceeded the limit of 20MB. >
    I'm not sure whether the profiler is reporting live objects only (referenced) or all objects (including those not yet reclaimed). If the latter, it isn't telling you how much memory is actually referenced by the JE cache.
    Please look at the JE stats to see what the cache usage is, from JE's point of view.
    If you believe there is a bug in JE cache management, you'll need to write a small standalone test to demonstrate it and submit it to us, since we don't know of any such bug. Also note that we'll have difficulty supporting JE 4.0 (without a support contract anyway). Please use JE 5.0, or at least 4.1.
    Eviction occurs as objects are allocated, as well as in background threads. Eviction in background threads and concurrent eviction were greatly improved in JE 4.1.
    --mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Running out of memory... what to do?

    I am using a mid-2012 non-retina 13" MacBook Pro that I upgraded with a large SSD and 16 gigs of RAM, but I find myself running out of memory every day. I am developing a DirectX11 game engine in a virtualized Windows 7 environment, and my memory needs apparently exceed the 16GB I have. Is there any way to add more memory to my MacBook Pro, or can any Apple notebook hold more than 16 gigs of RAM? (officially or unofficially)
    I can't afford a Mac Pro (a shame since it would have been right at home in my chain of Thunderbolt devices) but if I could upgrade my MacBook Pro with 32GB of memory or more, that would be a life saver. I am starting to think it is unreasonable of me to except my consumer notebook to do the work of a professional workstation, but I figured it couldn't hurt to ask around.
    Thank you for your time!
    -Faye

    FayeCS wrote:
    Is there any way to add more memory to my MacBook Pro, or can any Apple notebook hold more than 16 gigs of RAM? (officially or unofficially)
    I'm sorry, but 16 GB of RAM is the maximum amount of RAM MacBooks Pro can use.
    As you are using Windows in a virtual machine, this RAM problem would be solved if you install Windows through Boot Camp. By doing this, your Mac will run faster because you will not be using all the RAM, apart from getting the maximum performance in Windows.
    Your Mac supports 64-bit Windows 7, Windows 8 and Windows 8.1, so you can install any of them. Then, follow the steps to install Windows in your computer > http://manuals.info.apple.com/MANUALS/1000/MA1636/en_US/boot_camp_install-setup_ 10.8.pdf
    I do not recommend to use Windows in virtual machines if you want to do tasks like game design because they require that your GPU and CPU work at the best performance.

  • Premiere Pro CS5 runs out of memory

    I have the same problem with Premiere running out of memory loading a project with lots of images in it.  Running task manager, you can see it eat memory at 250MB per second until it pegs the meter after a short time and then things start failing.  The CS4 version does not have this problem and opens the project without error.

    What are the pixel x pixel dimensions of those still images? If they are overly-large, there is a very heavy load, when working with that Project. For Scaling them to fit the Sequence Frame Size, with automation in PS, see this ARTICLE.
    If one's computer is already on the borderline for resources, overly-large stills can shove it over the brink. There are few reasons to use overly-large images, as one can only ever see the pixels in the Sequence's Frame Size. The only reason for using images larger than that Frame Size are to Pan on Zoomed out images, with Effect>Motion>Position.
    Good luck,
    Hunt

  • I have windows 7I have downloaded most updates and use no mobile devices just use itunes my pc. what programs can I eleminate as I'm running out of memory?

    What itunes/sony programs can I elimnate from my pc if I only use it on my pc?  I have no mobile devices and afraid Im have sony, safari browser and other programs on my computer. I routinely down loaded all updates and afraid I have many uneeded programs and also have problems of running out of memory, can somebody help

    Thank you for your quick response, BalusC. I really appreciate your answer.
    Yes, you are right. If I manually code the same amount of those components in the JSF pages instead of generating them dynamically, the server will still run out of memory. That is to say, JSF pages might not accommodate a great deal of concurrent visiting. If I upgrade the server to just allow 1,000 teachers making their own test papers at the same time, but when over 2,000 students take the same questionnaire simultaneously, the server will need another upgrading. So I have to do what you have told me, using JS+DOM instead of upgrading the server endlessly.
    Best Regards, Ailsa

  • Problems with PNGs... Overall compression + Running out of memory!

    We're having a number of issues with PNGs while working on our first iPhone project, and any assistance would be greatly appreciated!
    Our game is using a large number of PNG assets, some of which are full-frame (though the full-frame files tend to mostly be transparent/use alphas, though apparently that doesn't help memory issues much).
    We're running into two huge problems -
    1) We're running out of memory on device when calling to these full frame sequences, which tend to be anywhere from 10-40 frames each at anywhere from 50 to 250kb in size.
    2) Our overall package size is huge, sitting at around 60mb. I've already compressed the pngs through photoshop to the best of my ability, and I'm not having much luck with downloadable compressors like pngcrush. IS there a way to compress all the pngs through xcode/c++/objective C? The programmers are informing me right now that the only compression possible is whatever I apply directly to my pngs on my end - nothing through code.
    I'm stumped as to how I'm seeing seemingly-complex apps with plenty of content at 1-5mbs, and running smoothly with full-frame animations. I'm imagining the problem is that we're not using a proprietary engine to properly manage things, but I'm wondering if there is a simple solution.
    Thanks in advance, guys!
    P.S. - Already done a bunch of research on my own, and not having much luck. Just wondering if there is something obvious that both the programmers and I are missing!

    * Make image frame smaller? A fully transparent border around an image is pure overhead -- there is still data in the actual pixels (even though you cannot see them), plus the transparent border itself. All it needs is an x/y coordinate and a tiny code adjustment.
    * Use less transparency bits? Perhaps you could do with 1-bit transparency on some images. It'll use 1/8 times the memory (well, globally).
    * Use less colors? 24 bit color might compress down to 16 bits without visual artifacts (esp. when you don't have lots of gradients). Perhaps even 8 bit palettized.
    * Make images smaller? You might be able to get away with enlarging some images.
    Just a few things you could check right away, without major rewrites.

  • Logic Pro 7 running out of memory!?!

    Hi!
    I am working on a project were I basically want to cut up every beat of a drum recording on 12 tracks and correct their timing individually (I have my reasons for doing this).
    This creates a decent amount of regions and for some reason Logic starts complaining about running short on memory and not having enough memory for the undo history.
    It bugs me because I am working on a Dual 2.5GHz G5 with 2 GB of RAM. Activity monitor says I have 480 MB of inactive memory and 1.25GB of free memory. Logic uses 300 MB of real memory and 762 MB of virtual memory. No other apps running.
    How can I make Logic use ALL the available memory?
    Is there a limit on the amount of memory that Logic can address? What is this limit, and how much memory is reasonably motivated for a PM running Logic?
    How about plug ins? Do they have separate memory spaces not limited by Logics potential limits? "Drumkit from ****" can by itself use a couple of Gigs of RAM if available...
    Thanks in advance!
    /Jont Olof

    Jont Olof Lyttkens, "Logic Pro 7 running out of memory!?!" #5, 03:19pm Sep 7, 2005 CDT
    However in the earlier days, running under Mac OS pre 9.x the ability to allocate memory to a specific application could increase the amount for the song event memory
    No, it didn't. It increased application memory, but the song event memory remained the same, just as it does now.
    I think, though, that with all Logic's new features, there is more actual data in an equivalent song, so the limit may be coming earlier. (I can't be sure of that though)
    I know you don't want to, but did you at least try reducing the undo history size (in prefs) ?
    Does deleting undo history and then saving help ?
    Another thing to consider, although I don't think it generates warnings like you are seeing, is Virtual Memory. If the computer has been up for a long time, running memory-intensive apps, like Logic, then it can get overloaded (too many pageouts) which can slow things down a lot. If you do notice things getting slower, then restarting the computer will flush the Swap File and get things going again.

  • I have a file where I am running out of memory can anyone take a look at this file and see?

    I am trying to make this file 4'x8'.
    Please let me know if anyone can help me get this file to that size.
    I have a quad core processor with 6 gig of ram and have gotten the file to 50"x20", but I run out of memory shortly thereafter.  Any help would be appreciated.
    Thanks,

    Where to begin? You should look into using a swatch pattern instead of those repeating circles. Also, I see that each circle in your pattern is actually a stack of four circles, but I see no reason why. Perhaps Illustrator is choking on the huge number of objects required to make that patterns as you haave constructed it.
    Here is a four foot by eight foot Illustrator file using a swatch pattern. Note that, despite the larger size, the file is less than one 16th the size.

  • Oracle 9i running out of memory

    Folks !
    I have a simple 3 table schema with a few thousand entries each. After dedicating gigabytes of hard disk space and 50% of my 1+ GB memory, I do a few simple Oracle Text "contains" searches (see below) on these tables and oracle seems to grow some 25 MB after each query (which typically return less than a dozen rows each) till it eventually runs out of memory and I have to reboot the system (Sun Solaris).
    This is on Solaris 9/Sparc with Oracle 9.2 . My query is simple right outer join. I think the memory growth is related to Oracle Text index/caching since memory utilization seems pretty stable with simple like '%xx%' queries.
    "top" shows a dozen or so processes each with about 400MB RSS/SIZE. It has been a while since I did Oracle DBA work but I am nothing special here. Databse has all the default settings that you get when you create an Oracle database.
    I have played with SGA sizes and no matter how large or small the size of SGA/PGA, Oracle runs out of memory and crashes the system. Pretty stupid to an Enterprise databas to die like that.
    Any clue on how to arrest the fatal growth of memory for Oracle 9i r2?
    thanks a lot.
    -Sanjay
    PS: The query is:
    SELECT substr(sdn_name,1,32) as name, substr(alt_name,1,32) as alt_name, sdn.ent_num, alt_num, score(1), score(2)
    FROM sdn, alt
    where sdn.ent_num = alt.ent_num(+)
    and (contains(sdn_name,'$BIN, $LADEN',1) > 0 or
    contains(alt_name,'$BIN, $LADEN',2) > 0)
    order by ent_num, score(1), score(2) desc;
    There are following two indexes on the two tables:
    create index sdn_name on sdn(sdn_name) indextype is ctxsys.context;
    create index alt_name on alt(alt_name) indextype is ctxsys.context;

    I am already using MTS.
    Atached is the init.ora file below.
    may be I should repost this article with subject "memory leak in Oracle" to catch developer attention. I posted this a few weeks back in Oracle Text groiup and no response there either.
    Thanks for you help.
    -Sanjay
    # Copyright (c) 1991, 2001, 2002 by Oracle Corporation
    # Cache and I/O
    db_block_size=8192
    db_cache_size=33554432
    db_file_multiblock_read_count=16
    # Cursors and Library Cache
    open_cursors=300
    # Database Identification
    db_domain=""
    db_name=ofac
    # Diagnostics and Statistics
    background_dump_dest=/space/oracle/admin/ofac/bdump
    core_dump_dest=/space/oracle/admin/ofac/cdump
    timed_statistics=TRUE
    user_dump_dest=/space/oracle/admin/ofac/udump
    # File Configuration
    control_files=("/space/oracle/oradata/ofac/control01.ctl", "/space/oracle/oradata/ofac/control02.ctl", "/space/oracle/oradata/ofac/control03.ctl")
    # Instance Identification
    instance_name=ofac
    # Job Queues
    job_queue_processes=10
    # MTS
    dispatchers="(PROTOCOL=TCP) (SERVICE=ofacXDB)"
    # Miscellaneous
    aq_tm_processes=1
    compatible=9.2.0.0.0
    # Optimizer
    hash_join_enabled=TRUE
    query_rewrite_enabled=FALSE
    star_transformation_enabled=FALSE
    # Pools
    java_pool_size=117440512
    large_pool_size=16777216
    shared_pool_size=117440512
    # Processes and Sessions
    processes=150
    # Redo Log and Recovery
    fast_start_mttr_target=300
    # Security and Auditing
    remote_login_passwordfile=EXCLUSIVE
    # Sort, Hash Joins, Bitmap Indexes
    pga_aggregate_target=25165824
    sort_area_size=524288
    # System Managed Undo and Rollback Segments
    undo_management=AUTO
    undo_retention=10800
    undo_tablespace=UNDOTBS1

Maybe you are looking for