Memory and performance  when copying a sorted table to a standard table

Hello,
As you all probably know, it's not possible to use a sorted table as a tables parameter of a function module, but sometimes you want to use a sorted table in your function module for performance reasons, and at the end of the function module, you just copy it to a standard table to return to the calling program.
The problem with this is that at that moment, the contents of the table is in memory twice, which could result in the well known STORAGE_PARAMETERS_WRONG_SET runtime exception.                                                                               
I've been looking for ways to do this without using an excessive amount of memory and still being performant.  I tried four methods, all have their advantages and disadvantages, so I was hoping someone here could help me come up with the best way to do this.  Both memory and performance are an issue. 
Requirements :
- Memory usage must be as low as possible
- Performance must be as high as possible
- Method must work on all SAP versions from 4.6c and up
So far I have tried 3 methods.
I included a test report to this message, the output of this on my dev system is :
Test report for memory usage of copying tables    
table1[] = table2[]                                        
Memory :    192,751  Kb                                    
Runtime:    436,842            
Loop using workarea (with delete from original table)      
Memory :    196,797  Kb                                    
Runtime:  1,312,839        
Loop using field symbol (with delete from original table)  
Memory :    196,766  Kb                                    
Runtime:  1,295,009                                                                               
The code of the program :
I had some problems pasting the code here, so it can be found at [http://pastebin.com/f5e2848b5|http://pastebin.com/f5e2848b5]
Thanks in advance for the help.
Edited by: Dries Horions on Jun 19, 2009 1:23 PM
Edited by: Dries Horions on Jun 19, 2009 1:39 PM
Edited by: Dries Horions on Jun 19, 2009 1:40 PM
Edited by: Dries Horions on Jun 19, 2009 1:40 PM

I've had another idea:
Create a RFC function like this (replace SOLI_TAB with your table types):
FUNCTION Z_COPY_TABLE .
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IT_IN) TYPE  SOLI_TAB
*"  EXPORTING
*"     VALUE(ET_OUT) TYPE  SOLI_TAB
et_out[] = it_in[].
ENDFUNCTION.
and then try something like this in your program:
DATA: gd_copy_done TYPE c LENGTH 1.
DATA: gt_one TYPE soli_tab.
DATA: gt_two TYPE soli_tab.
PERFORM move_tables.
FORM move_tables.
  CLEAR gd_copy_done.
  CALL FUNCTION 'Z_COPY_TABLE'
    STARTING NEW TASK 'ztest'
    PERFORMING copy_done ON END OF TASK
    EXPORTING
      it_in = gt_one[].
  CLEAR gt_one[].
  WAIT UNTIL gd_copy_done IS NOT INITIAL.
ENDFORM.
FORM copy_done USING ld_task TYPE clike.
  RECEIVE RESULTS FROM FUNCTION 'Z_COPY_TABLE'
   IMPORTING
     et_out        = gt_two[].
  gd_copy_done = 'X'.
ENDFORM.
Maybe this is a little bit faster than the Memory-Export?
Edited by: Carsten Grafflage on Jul 20, 2009 11:06 AM

Similar Messages

  • Calculating the memory and performance of a oracle query

    Hi,
    I am now developing application in java with oracle as a back-end. In my application i require lot of queries to be executed. Hence, the system is getting is slow due to queries.
    So, i planned to develop one Stand-alone application in java, that should show the statistics like, memory and performance. for ex:- if i enter one SQL query in the text box, my standalone application should display, the processing time it requires to fetch the values and the memory is used for that query.
    Can anybody give ideas, suggestion, etc etc...
    Thanks in Advance
    Regards,
    Rajkumar

    This is now Oracle question, not JDBC question. :)
    Followings are sample for explain plan/autotrace/SQL*Trace.
    (You really need to read stuffs like Oracle SQL Tuning books...)
    SQL> create table a as select object_id, object_name from all_objects
    2 where rownum <= 100;
    Table created.
    SQL> create index a_idx on a(object_id);
    Index created.
    SQL> exec dbms_stats.gather_table_stats(user,'A');
    SQL>  explain plan for select from a where object_id = 1;*
    Explained.
    SQL> select from table(dbms_xplan.display());*
    PLAN_TABLE_OUTPUT
    Plan hash value: 3632291705
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    PLAN_TABLE_OUTPUT
    | 0 | SELECT STATEMENT | | 1 | 11 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| A | 1 | 11 | 2 (0)| 00:00:01 |
    |* 2 | INDEX RANGE SCAN | A_IDX | 1 | | 1 (0)| 00:00:01 |
    PLAN_TABLE_OUTPUT
    Predicate Information (identified by operation id):
    2 - access("OBJECT_ID"=1)
    SQL> set autot on
    SQL> select * from a where object_id = 1;
    no rows selected
    Execution Plan
    Plan hash value: 3632291705
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 11 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| A | 1 | 11 | 2 (0)| 00:00:01 |
    |* 2 | INDEX RANGE SCAN | A_IDX | 1 | | 1 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    2 - access("OBJECT_ID"=1)
    Statistics
    1 recursive calls
    0 db block gets
    1 consistent gets
    0 physical reads
    0 redo size
    395 bytes sent via SQL*Net to client
    481 bytes received via SQL*Net from client
    1 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    0 rows processed
    SQL> exec dbms_monitor.session_trace_enable(null,null,true,true);
    -- SQL> alter session set events '10046 trace name context forever, level 12';
    -- SQL> alter session set sql_trace = true;
    PL/SQL procedure successfully completed.
    SQL> select * from a where object_id = 1;
    no rows selected
    * SQL> exec dbms_monitor.session_trace_disable(null, null);*
    -- SQL> alter session set events '10046 trace name context off';
    -- SQL> alter session set sql_trace = false;
    PL/SQL procedure successfully completed.
    SQL> show parameter user_dump_dest
    */home/oracle/admin/WASDB/udump*
    SQL>host
    JOSS:oracle:/home/oracle:!> cd /home/oracle/admin/WASDB/udump
    JOSS:oracle:/home/oracle/admin/WASDB/udump:!> ls -lrt
    -rw-r----- 1 oracle dba 2481 Oct 11 16:38 wasdb_ora_21745.trc
    JOSS:oracle:/home/oracle/admin/WASDB/udump:!> tkprof wasdb_ora_21745.trc trc.out
    TKPROF: Release 10.2.0.3.0 - Production on Thu Oct 11 16:40:44 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    JOSS:oracle:/home/oracle/admin/WASDB/udump:!> vi trc.out
    select *
    from
    a where object_id = 1
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 0.00 0.00 0 1 0 0
    total 3 0.00 0.00 0 1 0 0
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 55
    Rows Row Source Operation
    0 TABLE ACCESS BY INDEX ROWID A (cr=1 pr=0 pw=0 time=45 us)
    0 INDEX RANGE SCAN A_IDX (cr=1 pr=0 pw=0 time=39 us)(object id 65441)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 25.01 25.01
    Hope this helps

  • Printing memory and performance optimization

    Hello,
    I am using JVM 1.3 for a big Java Application.
    Print Preview consumes 1.5MB of JVM's memory and performance is slow.
    Please give your valuable ways to reduce memory usage and performance improvement
    will be appreciated.
    /* print method in ScrollablePanel extends JPanel */
         public int print(Graphics g, PageFormat pf, int pi) throws PrinterException
              double pageHeight = 0;
              double pageWidth = 0;
              Graphics2D g2 = (Graphics2D)g;
              pageWidth = pf.getImageableWidth();
              if (pi >= pagecount)
                   return Printable.NO_SUCH_PAGE;
              g2.translate(pf.getImageableX(),pf.getImageableY());
    // < Print Height manipultion>
              g2.setClip(0,(int)(startHeight[pi]), (int) pageWidth, (int)(endHeight[pi] - startHeight[pi]) );
              g2.scale(scaleX,scaleX);
              this.print(g2);
              g2.dispose();
              System.gc();
              return PAGE_EXISTS;
    /* print preview */
    private void pagePreview()
    BufferedImage img = new BufferedImage(m_wPage, m_hPage, BufferedImage.TYPE_INT_ARGB);
    Graphics g = img.getGraphics();
    g.setColor(Color.white);
    g.fillRect(0, 0, m_wPage, m_hPage);
    target.print(g, pageFormat, pageIndex);
    pp = new PagePreview(w, h, img); // pp is JPanel
    g.dispose();
    img.flush();
    m_preview = new PreviewContainer(); //m_preview is JPanel
    m_preview.add(pp);
    ps = new JScrollPane(m_preview);
    getContentPane().add(ps, BorderLayout.CENTER);
    Best Regards,
    Krish

    Good day,
    As I tried, there are two ways of doing printPreview.
    To handle this problem, add only one page at a time.
    To browse through the page use Prev Page, Nexe Page buttons in the toolbar.
    1) BufferedImage - occupies memory .
    Class PagePreview extends JPanel
    public void paint(Graphics g) {
    g.setColor(getBackground());
    g.fillRect(0, 0, getWidth(), getHeight());
    g.drawImage(m_img, 0, 0, this);
    paintBorder(g);
    This gives better performance, but consumes memory.
    2) getPageGraphics in the preview panel . This occupies less memory, but re-paint the graphics everytime when paint(Graphics g) is called.
    Class PagePreview extends JPanel
    public void paint(Graphics g)
    g.setColor(Color.white);
    RepaintManager currentManager = RepaintManager.currentManager(this);
    currentManager.setDoubleBufferingEnabled(false);
    Graphics2D g2 = scrollPanel.getPageGraphics();
    currentManager.setDoubleBufferingEnabled(true);
    g2.dispose();
    This addresses memory problem, but performance is better.
    Is there any additional info from you?
    Good Luck,
    Kind Regards,
    Krish

  • Memory and performance crashing 8.2.1

    Hi there,
    On both macOS and window XP the memory and perfomance profiler crashes the complee LV Dev Environment instantly
    once the start button is click.  I update to LV8.2.1f4 same thing.
    Also recently, after more than 5 years developing my application and in use during this period, 24 hours per day, with uptimes of 1- 2 months,  now after a certain number of measurement interations it crashes ( window xp  aplology meassage - ).
    The WinXP event viewer states that my LV app crashed in a third party ActiveX module.
    The ActiveX component has been used unchanged for more than 2 years so I doubt it is the problem, unless some window/lv update has caused it to hang.
    I have carefully examined my code for nto closing refs and file pointers and notification quese that never get emptied/read
    and i believe there are none, but of course i can never rule that out, but it is very minimal likely hood.
    if i watch the memory use of the application in Windows Task manger i do see the memery increase very slowly, but that could also be just more data accumalating - althohg it is not stored in arrays but immediatly to file.
    Any thoughts welcome.
    michael proctor
    Stanford University

    Michael,
    When LabVIEW crashes from running the performance and memory profiler, do you get the CPP error dialog the next time you start LabVIEW?  If so, I would suggest submitting an error report with it.  This will send us the error log file and help us determine what may have happened.
    As for your application, you say this has not been changed and was running for five years, correct?  Has anything else changed on the computer?  Did you recently add new software to the system? 
    How long does it take before the program crashes?  Is the time it takes reproduceable?  How long have you been seeing this behavior?  Did the crashes just suddenly start? 
    In certain cases, shared resource conflicts or corrupt files could cause problems like this.  For XP, this can often be solved by doing a system restore to the time before the crashes started happening.
    Regards,
    Craig D
    Applications Engineer
    National Instruments

  • Printer loops and stalls when copying

    When copying a document on the flatbed of the printer,  often - but not always- the printer "says" it is copying but is really in a loop.  The only solution I have found has been to turn off the power or unplug the printer, wait 30 seconds, then return the power to it.  Note:  I have not used the document feed much; do not know if the loop occurs with that source too.
    I have noticed this problem frequently after using the printer to SCAN a document.  So I recently started changing the printer settings on my computer after scanning to revert back to PRINT.  It still loops on the next COPY.
    What can I do to fix this?  Or, what am I doing wrong?

    Hi @DelmarDaisy 
    Do you have the printer connected directly to a wall outlet or is it in a surge protector or power bar? Even if you have been using a surge protector/power bar all this time and you feel it is not the cause, please connect it to a wall outlet just so we can eliminate the power source as the root cause.   Issues when Connected to an Uninterruptible Power Supply/Power Strip/Surge Protector
    In this document you will see, ISSUE: Problems or issues may arise when an HP LaserJet series printer is connected to an uninterruptible power supply (UPS), a power strip, or a surge protector
    ^ This is not limited to Laserjet printers.
     It is possible the printer is not getting enough power.
    If the printer is already connected to a wall outlet, or if you move it and the issue persists, please call us. If you are in Canada or US call 800 474 6836, or you can Contact HP Worldwide.
    HP printers generally have a 1 year warranty from their purchase date, you can verify the warranty using the following link if you would like; warranty check. 
    I hope this helps.
    Please click the Thumbs up icon below to thank me for responding.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Please click “Accept as Solution” if you feel my post solved your issue, it will help others find the solution.
    Sunshyn2005 - I work on behalf of HP

  • 30-40x processes called "unar" eats up harddrive, memory and processor when TV is connected as external display. What is this and how do I get rid of it?

    What is this process and why does it eat up all my hard drive space, memory and processor every time external display is connected? If I have the display connected for long enough, it could easily eat up 60-70 gigs of my hard drive.

    Somehow we need to identify what this "unar" process is.
    Are you sure that this UnrarX is not in your login items ?? (the things to be automatically started at login)
    Perhaps removing any login startup items would help in isolating the problem
    As far as I find out, there's no easy way.
    There is the source of simple program that will tell you the path to a process from it PID. That's certainly not very elegant but you can find it here.
    Looking at your screen shot it would appear (just looking at the indentation) that the "unar" processes are not running as a sub-process of some other process like launchd, sh, Terminal, or something else.
    If that's not the case then a important piece of information would be the parent process.
    In the screenshot of a fragment of Activity Monitor below, bash is a sub process of login which is a sub process of Terminal. This structure only shows up if you sleected "all Processes, Hierarchically"
    It would be useful to look at all the views of processes available in Activity Monitor.
    By identifying in which views it shows up we can learn if it is a:
    System process
    one of My processes
    other User Process
    Windowed process
    etc
    This will help us in knowing where to look for "unar" and perhaps to figure out what it is, and why it keeps showing up

  • How to,Pass HASHED table data to STANDARD table

    i have itab1 as Hashed.
    when i pass this as out put table for
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    it gives me error,saying hashed type cannot be used..
    please suggest the remedy..

    IT_DEV2[ ] = IT_DEV[ ].
    seems to be right..it works fine in this code....but if the selected records are huge it gives irrelevant values
    REPORT ZMONTHLY_STOCK .
    DATA : IT_DEV TYPE ZBIW_MNTH_STK_L .
    DATA : IT_DEV2 LIKE STANDARD TABLE OF  ZBIW_MNTH_STK.
    *Selection-Screen
    Parameters : LFMON type LFMON obligatory,
                 LFGJA type LFGJA obligatory,
                 BWKEY type BWKEY.
    START-OF-SELECTION.
        SELECT e~MATNR e~BWKEY e~LFGJA e~LFMON e~LBKUM e~SALK3 l~MTART
    l~MATKL l~MEINS f~WAERS  FROM
       MBEWH AS e INNER JOIN
       MARA AS l ON  e~MATNR = l~MATNR
    INNER JOIN
       T001K AS n ON  e~BWKEY = n~BWKEY
    INNER JOIN
       T001 AS f ON  n~BUKRS = f~BUKRS
       INTO CORRESPONDING
       FIELDS OF TABLE it_dev
              WHERE
              e~LFGJA EQ LFGJA AND e~LFMON EQ LFMON.
    IF SY-SUBRC = 0.
    IT_DEV2[] = IT_DEV[].
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = SY-CPROG
        I_STRUCTURE_NAME                  = 'ZBIW_MNTH_STK'
       TABLES
         T_OUTTAB                          = IT_DEV2.
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDIF.

  • Need Dynamic Table instead of Standard Table in FM INFO_SICHERN_S001

    Hi Guys,
                  I have copied standard FM INFO_SICHERN_S001 into Zdefined FM.
    My requirement is instead of
    Updating or  Modifying or  Deleting  standard table I need to do all these things for entered table.
    How to do this.
    Thanks in Advance.
    Prasad.

    I solved Myself.

  • Table defined as *Standard table name

    Hi all,
    Tables in standard program are defined as *table name,  i want to know how to use it and why they r defined as *table name
    and what is the use of defining like this.
    example:
    Include Program FPLTDATA
    TABLES: FPLT, *FPLT, TFPLT.
    TABLES: FPLTD, *FPLTD.
    TABLES: CCDATA, *CCDATA, CCDATE, CCARD_CVV, CCARD_RCVV.
    Thanks
    Venkatesh babu V

    Hi Venkatesh,
    just use F1 help on command TABLES.
    Tables *tablename
    declares an additional table work area.
    Regards
    rea

  • Bad performance when iterating/updating the rows of a tree table

    Hello,
    we have a tree table based on a VO and EO (with transient attributes). One of the attribute is a flag.
    The VO is populated with a complex query having many thousands of rows.
    Now, when the user clicks on a parent node, all the children are updated (their flag is set to true) recursively.
    This is really really slow. It might require several minutes, while a similar update via PL/SQL on a real table would required few seconds.
    Is there any way to improve the performance? We have already applied all the tunings on both the EO and VO mentioned in Oracle Documentation, but they had almost no effect:
    - retain viewlink row set iterators
    - query hints
    - Use update batching
    The algorithm we use is the following:
        private void checkTreeNodes(JUCtrlHierNodeBinding node, Boolean check) {
            if (node == null) {
                return;
           TreeVORowImpl nodeRow = (TreeVORowImpl)node.getRow();
            if (nodeRow != null) {
                    nodeRow.setFlag(check);
            List<JUCtrlHierNodeBinding> children = null;
            if (!nodeRow.getLevel().equals("4"))  // no more than 4 levels
                children = node.getChildren();
            if (children != null) {
                for (JUCtrlHierNodeBinding _node : children) {
                    checkTreeNodes(_node, check);
        }

    Thanks for you answer.
    I am trying to move the logic in a method of the AM. But I have an exception (jdev 11.1.2.1):
        public void checkTreeNodes(TreeVORowImpl node, Boolean check, int level) {
            if (node == null)
                return;
            node.setFlag(check);
            if (level >= 4)
                return;
            Key key = new Key(new String[] { node.getId() }); // Id is the primary Key
            // By debugging via System.out.println, the code stops here:
            RowIterator rowIt = getMyVO().findByAltKey("ParentId", key , -1, false); // children have ParentId = Id
            while (rowIt.hasNext()) {
                TreeVORowImpl row = (TreeVORowImpl)rowIt.next();
                checkTreeNodes(row, check, level + 1);
        }findByAltKey gives the following exception (since it's called from the UI by getting the AM from DataControl):
    oracle.jbo.InvalidObjNameException: JBO-25005: [...]
         at oracle.adf.model.binding.DCBindingContainerState.validateStateFromString(DCBindingContainerState.java:573)
         at oracle.adf.model.binding.DCBindingContainerState.validateStateFromString(DCBindingContainerState.java:504)
         at oracle.adf.model.binding.DCBindingContainerState.validateToken(DCBindingContainerState.java:684)
    Do you see anything wrong or not efficient?
    Thanks.

  • Losing Layer Information and Names when Copying and Pasting

    I have an illustrator CS4 file that has a character created on a single layer.  Within that layer are many sub-layers, all with specific naming conventions.  For instance, there is a layer titled head, and within head are eyes nose mouth etc. When I copy, and paste it into another document all my layer information is destroyed. Any ideas?

    In the target document, check "Paste remembers layers" in the layers panel.

  • Retaining SFX and music when copying/pasting one project to another

    I noticed that when I tried to copy/paste one project into another, the video makes it, but any added sound effects and background music do not get brought along.
    Does anyone know how to override this, so when I copy and paste the project, the SFX and music get copies and pasted, too? Thanks.

    I spoke with AppleCare and they said this is not possible.

  • Memory and Performance, and Arrays of Objects.

    I have a Class called ChannelObject. The Class has 15 to 20 primitive types. Each object of this class represents data read in from a file or received over a network. I don't know how many of these objects will be created, it could be anywhere between 0 and 5 million.
    Which would be a better way to store these objects?
    1. In an ArrayList(since it's dynamic and I can add to it when I have data, but I've read that an ArrayList isn't good when you're adding the same type of object) or
    2. A very large array(that could be mostly empty and wasted space)
    3. Or another option?
    I am concerned about the speed and memory of this program since it has the possibility of processing a great deal of data.
    Thank You in Advance!

    My ChannelObject Class has several primitive types.
    long time;
    float elevation;
    float meas1;
    float meas2;
    float meas3;
    float meas4;
    boolean statusFlag;
    ... There about 10 more variables.
    int crc;
    The Constructor for my Class takes a DataInputStream, checks the crc to verify the data, and then breaks the DataInputStream into the primitive types.
    Once I have read in the hole file or collected a day or more of data from the network, I want to scroll through the data and modify some of the data using a kalman filter and another smoothing filter. I receive a new data point once a second. This package is a building block for several other programs that will use it. Some of those programs will want to sue a days worth of data and some will want 3 months.
    The data will be in order of time(I hope), and there is the possibily that I will have no data from either a network outage or the site that sends us the data can crash.
    When scrolling through the data I will start at the first time(I'm assuming that's the first Object in my list), and using the initial states of my kalman filter, I will modify meas1 and meas2. Now that I have data I will update the constraints of the filter using this time and I will move onto the next time and repeat the process. Once I finish this run, I will have to do another run that will use my smoothing filter and modify meas3 and meas4. Both filters are dependent on time/order of the data.
    I hope I explained this well enough.
    Thanks
    PS: If anyone knows of a Kalman Filter class that's already been written, I'd appreciate not having to migrate my c version. Thanks Again!

  • Running out of cursors, memory and performance

    1. using xsql servlet .9.9.1 command-line with a query that involves cursor expressions, grouping and a join, i run into the following error:
    <ERROR>oracle.xml.sql.OracleXMLSQLException: ORA-00604: error occurred at recursive SQL level 1
    ORA-01000: maximum open cursors exceeded
    </ERROR>
    using a quick program with OracleXMLQuery from XSU 1.2, i get the same error with the same query.
    the database i'm testing is supposed to return 1 million+ rows; only 300 or so can be returned if i specify maxrows to be 300. anything beyond that gives me the cursor error.
    SQL*Plus handles the query just fine.
    2. if i take away the cursor expression in the query, and remove the maxrow spec, i get a java out of memory error.
    3. i can't enhance the performance via using OracleConnection object and wanting to use cursor expressions with XSU at the same time. i get a "protocol error" instead.
    So the questions are:
    1. how can i resolve the cursor issue for the result set size i'm trying to retrieve?
    2. how can i resolve the memory issue for the result set size i'm trying to retrieve? since XSU tries to load the entire result set into memory to build the DOM tree, is it possible to stream it out so that it doesn't have to be capped by memory limitations? if so, do you have sample code i can take a look at?
    3. is it possible to tune the oracle jdbc in conjunction of the use of XSU?
    null

    We are encountering the same problem. We are just inserting via http and no matter how we do things we end up running out of cursors. We are using the production version of the servlet. Have you been able to resolve your problem and do you know if there is a fix. Thanks for any information.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by alfred h:
    1. using xsql servlet .9.9.1 command-line with a query that involves cursor expressions, grouping and a join, i run into the following error:
    <ERROR>oracle.xml.sql.OracleXMLSQLException: ORA-00604: error occurred at recursive SQL level 1
    ORA-01000: maximum open cursors exceeded
    </ERROR>
    using a quick program with OracleXMLQuery from XSU 1.2, i get the same error with the same query.
    the database i'm testing is supposed to return 1 million+ rows; only 300 or so can be returned if i specify maxrows to be 300. anything beyond that gives me the cursor error.
    SQL*Plus handles the query just fine.
    2. if i take away the cursor expression in the query, and remove the maxrow spec, i get a java out of memory error.
    3. i can't enhance the performance via using OracleConnection object and wanting to use cursor expressions with XSU at the same time. i get a "protocol error" instead.
    So the questions are:
    1. how can i resolve the cursor issue for the result set size i'm trying to retrieve?
    2. how can i resolve the memory issue for the result set size i'm trying to retrieve? since XSU tries to load the entire result set into memory to build the DOM tree, is it possible to stream it out so that it doesn't have to be capped by memory limitations? if so, do you have sample code i can take a look at?
    3. is it possible to tune the oracle jdbc in conjunction of the use of XSU?
    <HR></BLOCKQUOTE>
    null

  • Clearing PERSK and PERSG when copying using PBA7

    Hi All,
    I am currently working within HR (background in CRM) and have a requirement to clear down the values for Employee group and subgroup so that a change of position does not have the old values defaulted (the new values will be deived in the screen).
    I have looked at the user exit EXIT_SAPFP50M_001 and added my own coding to include ZXPADU01 to try to clear the variables down, but (as the structures that contain them are import parameters) they are not being cleared.
    The values in innnn are for infotype 0000 and do not reflect the values I require.
    Have also looked into the HRPAD00INFTY BADI to provide a solution for this but the same appears to be the case.
    Isn there some way of reading and clearing the global variables within the user exit or the BADI.. I can clear the values down in table pspar within MP000020 and this does provide me with the solution I am after but, obviously, I need to do this in a customer enhancement/exit.
    Also had no luck searching these forums for an answer (specifically for my requirements) either.
    Many Thanks in advance
    Gary Hawkins

    Hi,
    Say you have hired a employee with position 9000001, pa -0001,psa-1001,eg-01,esg-n7.
    Next, you are hiring another employe and the values of pa,eg ,esg are defaulted from buffer.
    once you enter new position and press enter the new values get defaulted.
    if you feeling that the values of previous employee shouldn't be defaulted,which is from buffer .there is no way to stop this.
    But if you can make that pa,psa,eg,esg,g rayed that is through screen modifications t588m and p0001 .then..even though the previous values are defaulted it will be changed based on position.
    If you are you dont want to default the values from om ie position.then delete or delimit the entries of account assignment (1008) ,employee group subgroup (1013) through pp01 object type 's'object id.
    or uncheck the pa,eg,esg field in personnel actions table T529A ,then they wont be able see in actions 0000,directly they can enter 0001 (you need to enbale pa,psa,eg,esg for 0001 thru feature P0001 and table t588m )

Maybe you are looking for

  • HP Laserjet 4050 toner cartridge issue

    I look after a laserjet 4050 printer for a company. They recently started using a new toner cartridge (higher quality) but they have started to have issues with black ink lines down one side of the paper. They have sent back toner cartridges (thinkin

  • jsp:getProperty.... in a taglib-tag ???

    Hi ! I have taglib where I have defined a lots of classes and one of them I have a attribute who should be dynamic. I have tryed this: <easyTagz:submit iteration='<jsp:getProperty name='submission' property='maxCount'/>' /> but it dosen`t seem to wor

  • Make simultaneously or sequentially moveable and editable fields or text sprites in movie.

    I am having a bit of a problem with creating field or text sprites that are both editable and moveable. I want a user to be able to enter text into the sprites and move them around on the stage to serve as labels for schematics they are making. I can

  • The Dreaded Classpath & Packages

    Hi, I'm semi new to Java (I just finished my first intro class), and to my surprise the prof. did not go into detail regarding classpaths and how to use them, blasphemy, I know. He had everyone rely on an IDE for this� I have three problems compiling

  • How to Install & Migrate APEX 4.2x on 11gR2 database.

    Hi All, What is the best way to migrate APEX software and Applications FROM APEX 4.1.1.00.23 on 10g TO APEX 4.2.1.00.08 on 11gR2. I have enabled APEX 3x with Embedded PL/SQL Gateway on 11gR2 database. The older version APEX4.1 is uses HTTP server. An