Facing low Performance when iterating records of database using cursor

Hi ,
i inserted nearly 80,000,000 records into a database, by reading a file whose size is nealry 800MB, in 10 minutes.
when i am iterating the records using Cursor with Default lock mode , it is taking nearly 1 hour.
My Bdb details are as follows
Environment : Non transactional , non locking
Database : Deferred write.
Cache : 80% of JVM ( -Xms=1000M -Xmx=1200m )
Could you please explain why it is taking such a long time ? did i make any mistakes on settings ?
Thanks
nvseenu
Edited by: nvseenu on Jan 15, 2009 5:47 AM

Hello Gary,
StoredMap is a convenience API wrapper for a Database. It has the same performance and multi-threading characteristics as a Database. You don't need to synchronize a StoredMap, or use Database to get better performance.
The lock conflicts are the thing to focus on here. This is unrelated to the topic discussed earlier in this thread.
How many threads are inserting and how many performing queries?
What other work, other than inserting and reading, are these threads performing?
Does any thread keep an iterator (which is a cursor) open?
How large are the data items in the map?
What is the resolution of the timestamp? Milliseconds?
I don't think the exception you posted is complete. Please post the full exception including the cause exception.
I can't tell from the exception but it looks like multiple insertion threads are conflicting with each other, not with the query threads. If you test only the insertions (no queries), do the lock conflicts still occur?
One possibility is that multiple insertions threads are using the same timestamp as the key. Only one thread will be able to access that key at a time, the others will wait. Even so, I don't understand why it's taking so long to perform the inserts. But you can easily make the key unique by appending a sequence number -- use a two part key {timestamp, sequence}.
Please upgrade to JE 3.3 in order to take advantage of the improvements and so we can better support you. We're not actively working with JE 3.2, which is very outdated now.
--mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • Validations when inserting records into database using table control?

    hi , guru's.
          iam inserting records into database table through table control when i press insert i want check which record is existing and which is not . so please give me any sample code
    regards,
    satheesh.

    hi , arjun.
    please check this code.
        WHEN 'INSERT'.
        data: g_vcontrol_itab1 like table of zcust_call_rec,
              g_vcontrol_wa1 like g_vcontrol_wa.
         SELECT *  FROM zcust_call_rec
                   INTO CORRESPONDING FIELDS OF TABLE g_vcontrol_itab1
                   FOR ALL ENTRIES IN g_vcontrol_itab
                   WHERE kunnr = g_vcontrol_itab-kunnr AND budat = g_vcontrol_itab-budat.
            loop at g_vcontrol_itab into g_vcontrol_wa.
               read table g_vcontrol_itab1 into g_vcontrol_wa1
                    with table key  g_vcontrol_wa-kunnr = kunnr and g_vcontrol_wa-budat = budat.
                     if sy-subrc = 0.
                       delete g_vcontrol_itab.
                     endif.
            endloop.
          LOOP AT g_vcontrol_itab INTO g_vcontrol_wa.
            INSERT into zcust_call_rec values g_vcontrol_wa.
          ENDLOOP.
    with this iam getting error message like this.
              <b>g_vcontrol_wa-budat is not expected.</b>

  • Problem When deleting record from database

    Hi ,
    I have a question. Firstly I'm using VB
    I have a problem about deleting any record from access database , That's the code I'm use it for add new item and it's work but it's not work when I tried to edit any rows " it's not want to Save" but work for add new Item.
    Try
    Me.Validate()
    Me.CustomerBindingSource.EndEdit()
    Me.CustomerTableAdapter.Update(Me.KonoDataSet.Customer)
    MsgBox("Update Successful")
    Catch ex As Exception
    MsgBox("Update Failed")
    End Try
    And That's my code for Deleting any record from database But it's not work and that's a problem.
    CustomerBindingSource.RemoveCurrent()
    CustomerBindingSource.EndEdit()
    Me.CustomerTableAdapter.Update(Me.KonoDataSet.Customer)
    Can anybody help me about that issue ?

    Hi kono20006000,
    Your issue seems really strange. I would recommend you make a troubleshooting.
    1.Made sure your code works with the single copy of the database. You could check if it scans hard drive for the database file name and check if it modifies dates on found files. You could check if you operate with the same database.
    2. Use the application update the record at the form_load event to see if it would work correctly.
    3.Check the table in update statement and the table in add statement.
    Best Regards,
    Edward
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

  • How to perform auto update in staging database using warehouse builder ?

    Hi ,
    here our client requirement is?
    our client want to transfer data from their production database to staging database using warehouse builder.and also what ever the update occur in production database
    that must be reflected in staging database.
    here we are transfering data from product-db to staging using etl(maping--insert/update operator )
    it is transfering fine.but it is not automaticaly updating in staging db with new update in production database?
    can any body give me the details how to achive it.
    Thanks & regards,
    k azamtulla khan.

    Hi,
    firstly there are two threads for the same issue from youself(excluding this one) which is a waste of others time so kindly refrain from doing so and use one thread.
    OWB: how can automatic updation  perform in staging database using OWB
    OWB: how to use insert/update table operator for target table
    secondly, with regards to the options , here are some options:
    1. Use trigger for update.
    2. Use materialized view(refresh on commit)
    3. Use oracle advance queing mechanism (OAQ) for queing the recent inserted/updated records.
    Kindly close other threads and maintain just one thread.
    Regards
    Message was edited by: Rado
    user647181

  • Inserting a record in database using Java

    Hello All,
    i have connected a Java Application to the SAP BO Database using DI API and would like to insert a record in the demo database without using an SQL Query "Insert into table1...." but using the following snippet though i dont know if am using the right classes :
                                    ICompany company = conn.getCompany();
                                     IItems items = SBOCOMUtil.newItems(company);
                        items.setItemCode("124");
                        items.setItemName("VXC");
                        items.setItemsGroupCode(1);
                        items.setItemType(0);
                        items.add();
    What i am trying to do here is insert a new record but i dont know where i should mention the table name for e.g. there is table called OITM in the demo database from BO where i would like to create a new Item.
    Could anyone help me here.
    Regards,
    Amit Hingher

    Hi Amit,
    You don't need to reference the destination tables as there is a class for each data object in the DI API and the data tables associated with the object are hardcoded in the class.
    The Items class is the correct one for adding item master data (ie data in OITM, OITW etc).
    I'm not very familiar with these Java objects but I think the add method should return an integer value (as it does with the COM objects used by .NET). If the return value is zero then the add was successful. If the add failed then you'll get a non-zero value which is the SBO error code.
    Kind Regards,
    Owen

  • Ffmpeg - low fps when i record my desktop;

    Hello. When i am running ffmpeg on 1280x768 resolution, program record with ~100fps, When i change resolution to my native(1366x768), program record with ~29 fps and system running slow.
    Record with 1280x768
    frame=   66 fps=0.0 q=17.0 size=     417kB time=00:00:00.30 bitrate=11374.4kbitsframe=  132 fps=131 q=17.0 size=     449kB time=00:00:00.63 bitrate=5832.5kbits/frame=  199 fps=132 q=17.0 size=     449kB time=00:00:00.96 bitrate=3807.7kbits/frame=  256 fps=127 q=24.0 size=     481kB time=00:00:01.25 bitrate=3149.3kbits/frame=  321 fps=128 q=17.0 size=     769kB time=00:00:01.57 bitrate=4000.0kbits/
    Record with 1366x768
    frame=   18 fps=0.0 q=18.0 size=     390kB time=00:00:00.06 bitrate=53303.6kbitsframe=   33 fps= 32 q=17.0 size=     443kB time=00:00:00.13 bitrate=26879.3kbitsframe=   48 fps= 31 q=17.0 size=     465kB time=00:00:00.21 bitrate=18156.8kbitsframe=   63 fps= 31 q=17.0 size=     482kB time=00:00:00.28 bitrate=13841.4kbitsframe=   78 fps= 30 q=18.0 size=     502kB time=00:00:00.36 bitrate=11420.9kbitsframe=   93 fps= 30 q=18.0 size=     516kB time=00:00:00.43 bitrate=9708.7kbits/
    ffmpeg commend
    ffmpeg -f x11grab -r 100 -s 1366x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 5 arch.mkv
    sysinfo
    Linux adrian 3.8.3-2-ARCH #1 SMP PREEMPT Sun Mar 17 13:04:22 CET 2013 x86_64 GNU/Linux
    hardware info:
    i5 8gb ram 630m
    Do u know how to get better fps on my native resolution?
    THX
    Dziękuje i Pozdrawiam:}
    Last edited by Vatri91 (2013-03-23 11:30:29)

    Couple of thoughts.
    30 fps is DVD quality. I would drop (-r 100) to (-r 24) I don't know what you are gaining capturing at 100fps.
    You can also dump to raw video then encode the file later.
    You can lower the video bitrate that you encode to (c:v libx264 -b:v 500k). Depends on how active your screen is. If you are just doing a tutorial of something then you may be able to drop down to (300k). Anything under (1000k) will be noticeable if you have a lot of movement on the screen.
    This example gives a smooth full screen capture (without sound) (On an AMDx2)
    ffmpeg -f x11grab -r 24 -s 1920x1080 -i :0.0 -an -c:v libx264 -b:v 500k output.mpg
    This is easier on the CPU
    ffmpeg -f x11grab -r 24 -s 1920x1080 -i :0.0 -an -c:v libx264 -crf 0 -preset ultrafast output.mpg
    Another example using -qscale
    ffmpeg -f x11grab -r 24 -s 1920x1080 -i :0.0 -an -c:v libx264 -qscale 10 output.mpg
    For a raw video
    ffmpeg -f x11grab -r 24 -s 1920x1080 -i :0.0 -an -f rawvideo output.raw
    You have a raw video now so to play it, or take it and encode it.
    mplayer -demuxer rawvideo -rawvideo w=1920:h=1080:y8 output.mpg
    If framerate is dropping below specified while capturing with ffmpeg then, you'll have to lower the bitrate that you are encoding at, dump the stream as a raw video then encode it later, capture a smaller area of screen, or I hear that recordmydesktop does well.
    EDIT: reason for edit, syntax correction.
    Last edited by teckk (2013-03-27 14:57:33)

  • 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.

  • Getting virtual memory error when fetching records from database

    HI,
    I am using Oracle as Database and the Oracle JDBC driver. I have simple code which is a select statement but the problem is the resultset dies while fetching the data i.e. 5,50,000. And it gives me the memory error as its storing all in the memory. One of the way which i have serched in the old threads is using the batch method fetching rows at a time but can you tell me how to implement in my code. I am pasting my code.
    The overall functionality of my code is that it's reterving data from database and generating an XML file that would be validated with a DTD.
    //My Code
    public class Invoicef3 implements ExtractF3 {
         final String queryString = "select * from hsbc_f3_statement
    order by bill_no, duplicate,
    invoice_address1,
    invoice_address2,
    invoice_address3,
    invoice_address4,
    invoice_address5,
    invoice_address6,
    main_section, order_1, page,
    section, product_category,
    sub_sect_1, order_2,
    sub_sect_2, child_product,
    sub_sect_3, account,
    line,entry_date, currency, tier";
         public ArrayList process() {
              Connection con = null;
              Statement stmt = null;
              ResultSet rset = null;
              ArrayList arr1 = null;
              try {
                   con =
    ConnectionManager.getConnection();
                   stmt = con.createStatement();
              rset = stmt.executeQuery(queryString);
                   arr1 = new ArrayList();
                   while (rset.next()) {
                        arr1.add(
                             new F3StatementExtract(
                                  rset.getString(1),
                                  rset.getInt(2),
                                  rset.getString(3),
                                  rset.getInt(4),
                                  rset.getInt(5),
                                  rset.getString(6),
                                  rset.getInt(7),
                                  rset.getString(8),
                                  rset.getInt(9),
                                  rset.getString(10),
                                  rset.getInt(11)));
                   rset.close();
                   stmt.close();
              } catch (SQLException e) {
                   e.printStackTrace();
              } finally {
                   ConnectionManager.close(rset);
                   ConnectionManager.close(stmt);
                   ConnectionManager.close(con);
              return arr1;
    }

    The problem is that you are fetching and processing all the rows for the query, which the VM cannot handle given the heap space available. The points you could think over are:
    * Allocate more heap memory (this would help only to a limited extent)
    * Try to process only a few records at a time instead of all of them (there is actually no need to process all the records at a time. Try processing records in lots of say 1000)
    * Avoid selecting all the columns [SELECT *] from the table, if all of them are not going to be used.
    There is a slight change i have done in the code is that i am using two quereies now one is fetching all the Bills and the secondquery is fetching all the data for the relevant BILL.
    //My Code
    public class Invoicef3 implements ExtractF3 {
         /*Query to get distinct bill numbers*/
         final String queryString1 =
              "select distinct(bill_no) from hsbc_print_bills";
         /*Query to get distinct bill numbers statement details*/
         final String queryString =
              "select * from hsbc_f3_statement where bill_no='";
         public ArrayList process() {
              Connection con = null;
              Statement stmt = null;
              ResultSet rset = null;
              ArrayList arr1 = null;
              ArrayList arr2 = null;
              try {
                   con = ConnectionManager.getConnection();
                   stmt = con.createStatement();
                   rset = stmt.executeQuery(queryString1);
                   arr1 = new ArrayList();
                   while (rset.next()) {
                        arr1.add(new F3BillExtract(rset.getString(1))); //generating the Bill_No's
                   System.out.print(arr1.size());
                   rset.close();
                   stmt.close();
                   for (int i = 0; i < arr1.size(); i++) {
                        stmt = con.createStatement();
                        rset =
                             stmt.executeQuery(
                                  queryString
                                       + (((F3BillExtract) arr1.get(i)).getBill_No())
                                       + "'");
                        arr2 = new ArrayList();
                        /*Fetching the statement Details of the particular Bill_No*/
                        while (rset.next()) {
                             arr2.add(
                                  new F3StatementExtract(
                                       rset.getString(1),
                                       rset.getInt(2),
                                       rset.getString(3),
                                       rset.getInt(4),
                                       rset.getInt(5),
                                       rset.getString(6),
                                       rset.getInt(7),
                                       rset.getString(8),
                                       rset.getInt(9),
                                       rset.getString(10),
                                       rset.getInt(11),
                                       rset.getString(12),
                                       rset.getFloat(13),
                                       rset.getDate(14),
                                       rset.getString(15),
                                       rset.getInt(16),
                                       rset.getString(17),
                                       rset.getString(18),
                                       rset.getString(19),
                                       rset.getString(20),
                                       rset.getString(21),
                                       rset.getString(22),
                                       rset.getString(23),
                                       rset.getString(24),
                                       rset.getString(25),
                                       rset.getString(26),
                                       rset.getString(27),
                                       rset.getString(28),
                                       rset.getString(29),
                                       rset.getString(30),
                                       rset.getDate(31),
                                       rset.getDate(32),
                                       rset.getDate(33),
                                       rset.getDate(34),
                                       rset.getString(35),
                                       rset.getString(36),
                                       rset.getString(37),
                                       rset.getString(38),
                                       rset.getString(39),
                                       rset.getString(40),
                                       rset.getFloat(41),
                                       rset.getFloat(42),
                                       rset.getFloat(43),
                                       rset.getInt(44),
                                       rset.getFloat(45),
                                       rset.getString(46),
                                       rset.getString(47)));
                        rset.close();
                        stmt.close();
                        ((F3BillExtract) arr1.get(i)).setArr(arr2);
              } catch (SQLException e) {
                   e.printStackTrace();
              } finally {
                   ConnectionManager.close(rset);
                   ConnectionManager.close(stmt);
                   ConnectionManager.close(con);
              return arr1;
    }

  • Low performances when querying data dictionary Oracle 11g

    Query:
    SELECT
    ucc_fk.column_name FK_COLUMN_NAME,
    ucc_pk.table_name PK_TABLE_NAME,
    ucc_pk.column_name PK_COLUMN_NAME
    FROM user_constraints uc_fk
    INNER JOIN user_cons_columns ucc_fk ON (ucc_fk.constraint_name = uc_fk.constraint_name)
    INNER JOIN user_constraints uc_pk ON (uc_pk.constraint_name = uc_fk.r_constraint_name)
    INNER JOIN user_cons_columns ucc_pk ON (ucc_pk.constraint_name = uc_fk.r_constraint_name AND ucc_pk.position = ucc_fk.position)
    WHERE
    uc_fk.constraint_type = 'R' AND
    uc_pk.constraint_type = 'P' AND
    uc_fk.table_name = 'TABLE_NAME';
    works ok on 10g but is very slow on 11g? How to improve performances?

    You dont need to join with user_constraints again unless you are trying to avoid references to a unique key.
    SELECT ucc_fk.column_name FK_COLUMN_NAME, ucc_pk.table_name PK_TABLE_NAME, ucc_pk.column_name PK_COLUMN_NAME
      FROM user_constraints uc_fk
           JOIN user_cons_columns ucc_fk
              ON (ucc_fk.constraint_name = uc_fk.constraint_name)
           JOIN user_cons_columns ucc_pk
              ON (ucc_pk.constraint_name = uc_fk.r_constraint_name
              AND ucc_pk.position = ucc_fk.position)
    WHERE uc_fk.constraint_type = 'R'
       AND uc_fk.table_name = 'TABLE_NAME';As you can see I have removed the join to user_constraints and hence the condition uc_pk.constraint_type = 'P'
    The reason being the it is already validated to be in ('P','U') for all r_constraint_names.
    G.

  • Low Performance when opening attachments in va23 documents

    Dear Forum,
    I have a very strange issue, I hope that some one can help out.
    We recently upgraded from 4.6c to ECC 6.0 and the error is the following:
    1° When you run VA23 and display a Quote/Document
    2° then click on the services for object icon
    3° then click on Attachment list icon and
    4° then double click on any of the Attachments that are available there,
    issue: The attachments are taking like 10 minutes to be displayed
    I have searched for notes with no success... any ideas.. thoughts..?
    Thank you,
    PR

    Hi Guys,
    Thank you for your answers. This issue is rather old but it was not solved yet at this customer.
    One particular aspect is that this "delay" affects only the EMEA enployees while the Americas employees dont have any delay in their response time, so I also think it might not be related to SAP but to the network. On the other hand, this issue started right after an upgrade from 4.0b to ECC 6.0 so that also lets me thinking this might be SAP related.
    Best regards,
    Pablo

  • Low performance when connected users exceed 250 in OAS10g

    hi,
    in OAS10g app server whenconnected user to app server are less than approximately 250-280 every thin is good and there is no performance problem,
    but where connected users exceed 280 , server response to requests such as opening a form(without query data from db ) took 10-12 seconds.
    in this case Os resources are: cpu usage <45% and mem usage <50%.
    is it HTTPServer performance issue?
    how can i solve this problem?
    thank in advance
    carol.

    You can try to change the JVM for Forms Servlet, maybe add more Threats with more memory assigment and that this threats get distroyed after resolving certain number of request, also in Apache, you may want to increase the number of MaxClients Directive, as well the Max Connections in WebCache.
    Greetings.

  • Unable to create records in database using PHP Data Service

    Hello, I've been stuck on this for a few days and search up and down for this on the net, no response I've found has worked, so I come to you...
    Here are the steps I've taken, I think it's pretty standard
    1. I have a macbook pro running osx 10.7.3
    2. I installed MAMP all default (I've acually reinstalled this because someone suggested this might fix it)
    3. Thru phpMyAdmin I created a database called my_test
    4. In that database I created a table, this is the export of that table: (I've also tried this with InnoDB which is the default)
    CREATE TABLE `customer` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(50) NOT NULL,
      `email` varchar(150) NOT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    5. I created a new Flx Project (Running Flash Builder 4.5.1 Premium)
         Project Name: PHPTest
         Application Type: Desktop (Although I've done the same thing with Web and got the same results)
         >> Next
         Application Server Type: PHP
         Web Root: /Applications/MAMP/htdocs/
         URL Root: http://localhost:8888/
         Clicked 'Validate Configuration' and that worked
         Output Folder: /Applications/MAMP/htdocs/PHPService (default by Flash Builder)
         >> Finished
    6. On the Data/Services tab on the bottom I click 'Connect to Data/Service...'
         Select 'PHP'
         >> Next
         Select 'Click here to generate a sample'
         Select 'Generate from database' radio button
         Username: root
         Password: root (default for MAMP)
         Host name: localhost
         Server port: 8889 (default for MAMP MySQL port, the HTTP port default is 8888 which in both cases seem to work but every video I've seen that uses MAMP on youtube uses 8889)
         Database: my_test
         Click 'Test Connection' (works)
         Table: customer
         Primary Key: id (this field is greyed out and Flash Builder selects 'id' which it figures out from the SQL table)
         >> Click OK
    7. Then if I don't have the Zend Framework folder in my /Applications/MAMP/htdocs/ folder it tells me its going to create that and I say alright. Then Flash Builder says stuff about how this is really only for testing and not production server ready and I say alright.
    8. Then it takes me back to the Form from Step 6 when I get the chance to select 'Click here to generate a sample'
         These fields are now filled with this data automaticly:
         PHP Class: /Applications/MAMP/htdocs/PHPTest/services/CustomerService.php
         Service name: CustomerService
         Service package: services.customerservice
         Data type package: valueObjects
         >> Click Next (shows all the functions that will be now availible)
         >> Click Finished (End of the forms and it opens Dreamweaver to the php file it created CustomerService.php which I have no need to edit so I close that down)
    9. Back in Flash Builder I switch to design view and drag a datagrid onto the big white area in the middle, whatever that is called.
    10. Then below in Data/Services tab on the bottom I click drag the function 'GetAllCustomer' on top of the datagrid.
         I say yes to rebound and click ok and the view of the datagrid is updated with the colums from the 'customer' table in mySQL.
    (Now let me say that when I hit save and compile this, if I actually had records in this table that I insert thru phpMyAdmin, this does show in the datagrid. So for the whole CRUD thing I am able to get the R which is Read)
    11. Now going back to the design view in Flash Builder I will create a form to create records in the table... (I guess this isn't really a step)
    12. In the Data/Service tab on the bottom I select 'createCustomer' function and then there is an icon called 'Generate Form' that looks like a white piece of paper with a gear on the bottom of it.
    13. This opens up a new form and since I don't have a crazy bunch of fields in my table I just click Finished (If you click next you can specify which fields you want to exclude from the form but this time I don't need to)
    14. This actually creates 2 forms if you look at the code, the second just shows the return type from when you click 'CreateCustomer' button on the first form. Because they overlap in design view I drag the form out of the way so you can see the input form, the return form, and the datagrid
    15. Then I save and compile...
    (Also if your actually reading this I didn't remove the id form field, I get the same result either way, but if you do remove the form field in the code/design you also have to update the button function to not deal with the id before it gets sent off to the php page since in this case the MySQL table is set to auto_increment the id, sorry this doesn't make much sence but this little area doesn't matter much either way)
    16. Now fill in whatever data you want for name and email, try differnt numbers in the id field like 0, nothing, 1, 1000 and click 'CreateCustomer'
    (For me nothing happens, no return is put in the return field, no error pops up and the datagrid is not updated with the new record, also going over to phpMyAdmin and checking out the table browse doesn't show any changes either, I know the button is calling the function because if I add a state change in that function it changes, it would seem that the line:
    createCustomerResult.token = customerService.createCustomer(customer2); doesn't do anything)
    So any idea what is wrong here, I'm convenced it's something stupid easy simple I just can't see it.

    In case you need more info, here is a code dump on a mxml project that has this problem:
    <?xml version="1.0" encoding="utf-8"?>
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                           xmlns:s="library://ns.adobe.com/flex/spark"
                           xmlns:mx="library://ns.adobe.com/flex/mx"
                           xmlns:customerservice="services.customerservice.*"
                           xmlns:valueObjects="valueObjects.*"
                           currentState="State1">
        <fx:Script>
            <![CDATA[
                import mx.controls.Alert;
                import mx.events.FlexEvent;
                protected function dataGrid_creationCompleteHandler(event:FlexEvent):void
                    getAllCustomerResult.token = customerService.getAllCustomer();
                protected function button_clickHandler(event:MouseEvent):void
                    var customer2:Customer = new Customer();
                    customer2.id = parseInt(idTextInput.text);
                    customer2.name = nameTextInput.text;
                    customer2.email = emailTextInput.text;
                    currentState = "Test";
                    createCustomerResult.token = customerService.createCustomer(customer2);
            ]]>
        </fx:Script>
        <s:states>
            <s:State name="State1"/>
            <s:State name="Test"/>
        </s:states>
        <fx:Declarations>
            <s:CallResponder id="getAllCustomerResult"/>
            <customerservice:CustomerService id="customerService"
                                             fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
                                             showBusyCursor="true"/>
            <valueObjects:Customer id="customer"/>
            <s:CallResponder id="createCustomerResult"/>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <s:DataGrid id="dataGrid" includeIn="State1" x="330" y="10" width="392"
                    creationComplete="dataGrid_creationCompleteHandler(event)" requestedRowCount="4">
            <s:columns>
                <s:ArrayList>
                    <s:GridColumn dataField="id" headerText="id"></s:GridColumn>
                    <s:GridColumn dataField="name" headerText="name"></s:GridColumn>
                    <s:GridColumn dataField="email" headerText="email"></s:GridColumn>
                </s:ArrayList>
            </s:columns>
            <s:typicalItem>
                <fx:Object id="id1" email="email1" name="name1"></fx:Object>
            </s:typicalItem>
            <s:AsyncListView list="{getAllCustomerResult.lastResult}"/>
        </s:DataGrid>
        <s:Form includeIn="State1" defaultButton="{button}">
            <s:FormItem label="Id">
                <s:TextInput id="idTextInput" text="{customer.id}"/>
            </s:FormItem>
            <s:FormItem label="Name">
                <s:TextInput id="nameTextInput" text="{customer.name}"/>
            </s:FormItem>
            <s:FormItem label="Email">
                <s:TextInput id="emailTextInput" text="{customer.email}"/>
            </s:FormItem>
            <s:Button id="button" label="CreateCustomer" click="button_clickHandler(event)"/>
        </s:Form>
        <s:Form includeIn="State1" x="0" y="204">
            <s:FormItem label="CreateCustomer">
                <s:TextInput id="createCustomerTextInput" text="{createCustomerResult.lastResult as int}"/>
            </s:FormItem>
        </s:Form>
    </s:WindowedApplication>

  • Error while inserting record into database using BPEL

    I am trying to read from an xml file using a File Adapter and insert the values read into a database (by invoking a database adapter).
    I formed the BPEL Process in the following manner:
    1.Receive activity to receive the values read from the file
    2.Assign activiuty to assign the values read to the Database input variable
    3.Invoke activity to invoke the Database adapter.
    The process deploys fine although with a warning : Trying to assign incompatible types.
    But when the process is executed, it is faulting at the invoke stage.
    The error i am getting is :
    <messages><input><InvokeDBInput><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="EmployeesCollection"><EmployeesCollection xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/SaveToDB">
    <ns0:Employees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/filetoDB D:\Smita\Software\jdevstudio10133\jdev\mywork\FileToDatabase\filetoDB\emp.xsd" xmlns="http://xmlns.oracle.com/filetoDB" xmlns:ns0="http://xmlns.oracle.com/pcbpel/adapter/db/top/SaveToDB">
         <Name>John Smith</Name>
         <Email>[email protected]</Email>
         <Department>Finance</Department>
         <Designation>Accountant</Designation>
         <Grade>5</Grade>
    </ns0:Employees>
    </EmployeesCollection>
    </part></InvokeDBInput></input><fault><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>null</code>
    </part><part name="summary"><summary>file:/D:/product/10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_FileToDBTest1_3.5_1558cd90a5c3c9708cd747f1b3638054.tmp/SaveToDB.wsdl [ SaveToDB_ptt::insert(EmployeesCollection) ] - WSIF JCA Execute of operation 'insert' failed due to: Mapping Not Found Exception.
    The mapping [Name] for descriptor [class bpel___localhost_default_FileToDBTest1_3_5__MD5_02e1d439ab7f9c7430b64c2a306ee77c_.SaveToDB.Employees] could not be found. The input xml record had an element [Employees/Name].
    ; nested exception is:
         ORABPEL-11627
    Mapping Not Found Exception.
    The mapping [Name] for descriptor [class bpel___localhost_default_FileToDBTest1_3_5__MD5_02e1d439ab7f9c7430b64c2a306ee77c_.SaveToDB.Employees] could not be found. The input xml record had an element [Employees/Name].
    Make sure that the input xml is valid relative to the xsd and that the mapping exists in the Mappings.xml. If an old version of the descriptor without this mapping has been loaded by the database adapter, you may need to bounce the app server. If the same descriptor is described in two separate Mappings.xml files, make sure both versions include this attribute/mapping.
    </summary>
    </part><part name="detail"><detail>null</detail>
    </part></bindingFault></fault></messages>
    The xml and xsd files i have used are these:
    XML File (Employee.xml ) :
    <?xml version="1.0" encoding="UTF-8"?>
    <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/filetoDB D:\Smita\Software\jdevstudio1013\jdev\mywork\FileToDatabase\filetoDB\emp.xsd" xmlns="http://xmlns.oracle.com/filetoDB">
         <Name>John Smith</Name>
         <Email>[email protected]</Email>
         <Department>Finance</Department>
         <Designation>Accountant</Designation>
         <Grade>5</Grade>
    </person>
    Schema file : (emp.xsd) :
    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://xmlns.oracle.com/filetoDB"
    xmlns="http://xmlns.oracle.com/filetoDB"
    elementFormDefault="qualified">
    <xs:element name="person">
    <xs:complexType>
    <xs:sequence>
         <xs:element name="Name" type="xs:string"/>
         <xs:element name="Email" type="xs:string"/>
         <xs:element name="Department" type="xs:string"/>
         <xs:element name="Designation" type="xs:string"/>
         <xs:element name="Grade" type="xs:integer"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element></xs:schema>
    can someone help me out?

    I figured where i was going wrong...added a transform activity after the assign activity to map the file input fieds to the database columns. Now it works fine.

  • Poor performance when Distinct and Order By Used

    Hello,
    I am getting an slow answer when I add Distinct and Order By to the query:
    Without Distinct and Order By lasts 3.57 seconds; without Distinct and Order By lasts 28.15 seconds, which it's too much for our app.
    The query is:
    select distinct CC.acceso, CC.ext_acceso, TIT.TITULO_SALIDA
    from (((Ocurrencias CT01 inner join
    palabras p0 on (CT01.cod_palabra = p0.cod_palabra and p0.palabra like 'VENEZUELA%' AND p0.campo = 'AUTOR')) INNER JOIN
    CENTRAL CC ON (CT01.ACCESO = CC.ACCESO AND CT01.EXT_ACCESO = CC.EXT_ACCESO))) inner join
    codtit ctt on (CC.acceso = ctt.acceso and CC.ext_acceso = ctt.ext_acceso) inner join
    titulos tit on (ctt.cod_titulo = tit.cod_titulo and ctt.portada = '1')
    where CC.nivel_reg <> 's'
    ORDER BY 3 ASC;
    The query plan for the query WITH Distinct and Order By is:
    Elapsed: 00:00:28.15
    Execution Plan
    0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=301 Card=47 Bytes=12220)
    1 0 SORT (ORDER BY) (Cost=301 Card=47 Bytes=12220)
    2 1 SORT (UNIQUE) (Cost=300 Card=47 Bytes=12220)
    3 2 NESTED LOOPS (Cost=299 Card=47 Bytes=12220)
    4 3 NESTED LOOPS (Cost=250 Card=49 Bytes=4165)
    5 4 NESTED LOOPS (Cost=103 Card=49 Bytes=2989)
    6 5 NESTED LOOPS (Cost=5 Card=49 Bytes=1960)
    7 6 TABLE ACCESS (BY INDEX ROWID) OF 'PALABRAS' (TABLE) (Cost=3 Card=1 Bytes=19)
    8 7 INDEX (RANGE SCAN) OF 'PALABRA' (INDEX (UNIQUE)) (Cost=2 Card=1)
    9 6 INDEX (RANGE SCAN) OF 'PK_OCURRENCIAS' (INDEX (UNIQUE)) (Cost=2 Card=140 Bytes=2940)
    10 5 TABLE ACCESS (BY INDEX ROWID) OF 'CENTRAL' (TABLE) (Cost=2 Card=1 Bytes=21)
    11 10 INDEX (UNIQUE SCAN) OF 'PK_CENTRAL' (INDEX (UNIQUE)) (Cost=1 Card=1)
    12 4 TABLE ACCESS (BY INDEX ROWID) OF 'CODTIT' (TABLE) (Cost=3 Card=1 Bytes=24)
    13 12 INDEX (RANGE SCAN) OF 'PK_CODTIT' (INDEX (UNIQUE)) (Cost=2 Card=1)
    14 3 TABLE ACCESS (BY INDEX ROWID) OF 'TITULOS' (TABLE) (Cost=1 Card=1 Bytes=175)
    15 14 INDEX (UNIQUE SCAN) OF 'PK_TITULOS' (INDEX (UNIQUE)) (Cost=0 Card=1)
    Statistics
    154 recursive calls
    0 db block gets
    32070 consistent gets
    1622 physical reads
    0 redo size
    305785 bytes sent via SQL*Net to client
    2807 bytes received via SQL*Net from client
    212 SQL*Net roundtrips to/from client
    10 sorts (memory)
    0 sorts (disk)
    3149 rows processed
    The query plan for the query WITHOUT Distinct and Order By is:
    Elapsed: 00:00:03.57
    Execution Plan
    0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=299 Card=47 Bytes=12220)
    1 0 NESTED LOOPS (Cost=299 Card=47 Bytes=12220)
    2 1 NESTED LOOPS (Cost=250 Card=49 Bytes=4165)
    3 2 NESTED LOOPS (Cost=103 Card=49 Bytes=2989)
    4 3 NESTED LOOPS (Cost=5 Card=49 Bytes=1960)
    5 4 TABLE ACCESS (BY INDEX ROWID) OF 'PALABRAS' (TABLE) (Cost=3 Card=1 Bytes=19)
    6 5 INDEX (RANGE SCAN) OF 'PALABRA' (INDEX (UNIQUE)) (Cost=2 Card=1)
    7 4 INDEX (RANGE SCAN) OF 'PK_OCURRENCIAS' (INDEX (UNIQUE)) (Cost=2 Card=140 Bytes=2940)
    8 3 TABLE ACCESS (BY INDEX ROWID) OF 'CENTRAL' (TABLE) (Cost=2 Card=1 Bytes=21)
    9 8 INDEX (UNIQUE SCAN) OF 'PK_CENTRAL' (INDEX (UNIQUE)) (Cost=1 Card=1)
    10 2 TABLE ACCESS (BY INDEX ROWID) OF 'CODTIT' (TABLE) (Cost=3 Card=1 Bytes=24)
    11 10 INDEX (RANGE SCAN) OF 'PK_CODTIT' (INDEX (UNIQUE)) (Cost=2 Card=1)
    12 1 TABLE ACCESS (BY INDEX ROWID) OF 'TITULOS' (TABLE) (Cost=1 Card=1 Bytes=175)
    13 12 INDEX (UNIQUE SCAN) OF 'PK_TITULOS' (INDEX (UNIQUE)) (Cost=0 Card=1)
    Statistics
    3376 recursive calls
    0 db block gets
    33443 consistent gets
    1061 physical reads
    0 redo size
    313751 bytes sent via SQL*Net to client
    2807 bytes received via SQL*Net from client
    422 SQL*Net roundtrips to/from client
    90 sorts (memory)
    0 sorts (disk)
    3149 rows processed
    I would appreciate a lot if somebody can tell me how to improve the performance of the query with Distinct and Order By.
    Thank you very much,
    Icaro Alzuru C.

    Hello,
    I am getting an slow answer when I add Distinct and Order By to the query:
    Without Distinct and Order By lasts 3.57 seconds; without Distinct and Order By lasts 28.15 seconds, which it's too much for our app.
    The query is:
    select distinct CC.acceso, CC.ext_acceso, TIT.TITULO_SALIDA
    from (((Ocurrencias CT01 inner join
    palabras p0 on (CT01.cod_palabra = p0.cod_palabra and p0.palabra like 'VENEZUELA%' AND p0.campo = 'AUTOR')) INNER JOIN
    CENTRAL CC ON (CT01.ACCESO = CC.ACCESO AND CT01.EXT_ACCESO = CC.EXT_ACCESO))) inner join
    codtit ctt on (CC.acceso = ctt.acceso and CC.ext_acceso = ctt.ext_acceso) inner join
    titulos tit on (ctt.cod_titulo = tit.cod_titulo and ctt.portada = '1')
    where CC.nivel_reg <> 's'
    ORDER BY 3 ASC;
    The query plan for the query WITH Distinct and Order By is:
    Elapsed: 00:00:28.15
    Execution Plan
    0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=301 Card=47 Bytes=12220)
    1 0 SORT (ORDER BY) (Cost=301 Card=47 Bytes=12220)
    2 1 SORT (UNIQUE) (Cost=300 Card=47 Bytes=12220)
    3 2 NESTED LOOPS (Cost=299 Card=47 Bytes=12220)
    4 3 NESTED LOOPS (Cost=250 Card=49 Bytes=4165)
    5 4 NESTED LOOPS (Cost=103 Card=49 Bytes=2989)
    6 5 NESTED LOOPS (Cost=5 Card=49 Bytes=1960)
    7 6 TABLE ACCESS (BY INDEX ROWID) OF 'PALABRAS' (TABLE) (Cost=3 Card=1 Bytes=19)
    8 7 INDEX (RANGE SCAN) OF 'PALABRA' (INDEX (UNIQUE)) (Cost=2 Card=1)
    9 6 INDEX (RANGE SCAN) OF 'PK_OCURRENCIAS' (INDEX (UNIQUE)) (Cost=2 Card=140 Bytes=2940)
    10 5 TABLE ACCESS (BY INDEX ROWID) OF 'CENTRAL' (TABLE) (Cost=2 Card=1 Bytes=21)
    11 10 INDEX (UNIQUE SCAN) OF 'PK_CENTRAL' (INDEX (UNIQUE)) (Cost=1 Card=1)
    12 4 TABLE ACCESS (BY INDEX ROWID) OF 'CODTIT' (TABLE) (Cost=3 Card=1 Bytes=24)
    13 12 INDEX (RANGE SCAN) OF 'PK_CODTIT' (INDEX (UNIQUE)) (Cost=2 Card=1)
    14 3 TABLE ACCESS (BY INDEX ROWID) OF 'TITULOS' (TABLE) (Cost=1 Card=1 Bytes=175)
    15 14 INDEX (UNIQUE SCAN) OF 'PK_TITULOS' (INDEX (UNIQUE)) (Cost=0 Card=1)
    Statistics
    154 recursive calls
    0 db block gets
    32070 consistent gets
    1622 physical reads
    0 redo size
    305785 bytes sent via SQL*Net to client
    2807 bytes received via SQL*Net from client
    212 SQL*Net roundtrips to/from client
    10 sorts (memory)
    0 sorts (disk)
    3149 rows processed
    The query plan for the query WITHOUT Distinct and Order By is:
    Elapsed: 00:00:03.57
    Execution Plan
    0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=299 Card=47 Bytes=12220)
    1 0 NESTED LOOPS (Cost=299 Card=47 Bytes=12220)
    2 1 NESTED LOOPS (Cost=250 Card=49 Bytes=4165)
    3 2 NESTED LOOPS (Cost=103 Card=49 Bytes=2989)
    4 3 NESTED LOOPS (Cost=5 Card=49 Bytes=1960)
    5 4 TABLE ACCESS (BY INDEX ROWID) OF 'PALABRAS' (TABLE) (Cost=3 Card=1 Bytes=19)
    6 5 INDEX (RANGE SCAN) OF 'PALABRA' (INDEX (UNIQUE)) (Cost=2 Card=1)
    7 4 INDEX (RANGE SCAN) OF 'PK_OCURRENCIAS' (INDEX (UNIQUE)) (Cost=2 Card=140 Bytes=2940)
    8 3 TABLE ACCESS (BY INDEX ROWID) OF 'CENTRAL' (TABLE) (Cost=2 Card=1 Bytes=21)
    9 8 INDEX (UNIQUE SCAN) OF 'PK_CENTRAL' (INDEX (UNIQUE)) (Cost=1 Card=1)
    10 2 TABLE ACCESS (BY INDEX ROWID) OF 'CODTIT' (TABLE) (Cost=3 Card=1 Bytes=24)
    11 10 INDEX (RANGE SCAN) OF 'PK_CODTIT' (INDEX (UNIQUE)) (Cost=2 Card=1)
    12 1 TABLE ACCESS (BY INDEX ROWID) OF 'TITULOS' (TABLE) (Cost=1 Card=1 Bytes=175)
    13 12 INDEX (UNIQUE SCAN) OF 'PK_TITULOS' (INDEX (UNIQUE)) (Cost=0 Card=1)
    Statistics
    3376 recursive calls
    0 db block gets
    33443 consistent gets
    1061 physical reads
    0 redo size
    313751 bytes sent via SQL*Net to client
    2807 bytes received via SQL*Net from client
    422 SQL*Net roundtrips to/from client
    90 sorts (memory)
    0 sorts (disk)
    3149 rows processed
    I would appreciate a lot if somebody can tell me how to improve the performance of the query with Distinct and Order By.
    Thank you very much,
    Icaro Alzuru C.

  • When i open the database using web i get error

    When i open the Oracle 10g database by clinching on the Datacontrol - OPSENV, i get the following message
    Failed to Connect
    Firefox can't establish a connection to the server at tci06597.ad.trinityconsultants.com:5500.
    Though the site seems valid, the browser was unable to establish a connection.
    * Could the site be temporarily unavailable? Try again later.
    * Are you unable to browse other sites? Check the computer's network connection.
    * Is your computer or network protected by a firewall or proxy? Incorrect settings can interfere with Web browsing.
    I created this yesterday and it worked fine then and today morning. I do not know why this happens. The other database i was using developed the same problem and i deleted and recreated this new one.
    I appreciate any help.
    Thanks and Regards,
    Raj Mandya

    Database Control is started? emctl status dbconsole
    Werner

Maybe you are looking for

  • Logic Pro 9.1.4 Crashes when trying to save

    Any help would be greatly appreciated........It starts up normal and all other processes work fine, however, when I attempt to click any of the save features, it crashes Here is the full crash report: Process:         Logic Pro [4345] Path:          

  • How can i host my own website through the server?

    Hello, I am very new to the server and I bought it specifacally because I thought I could host my own website and not have to go through something like godaddy. How can I do this with the Mac OSX Lion Server? Have a domain name and publish it through

  • Displaying internal table fields data based on user selection

    Hi all, I am having a checkbox for each field in the internal table. and i only have to display the fields of the internal table which the user has selected based on the check boxes provided. Could you plz help me out, how can i display the data of o

  • IVR - Invalid Number on CDT

    Hi, I am busy setting up the IVR for one of our customers. I have setup the call dispatcher, applications and queues correctly. I have also added the application on the IVR Administrator and activated it successfully. However, when I call my u201CMai

  • I cannot reply to emails I received on my iphone5s

    I cannot reply to emails I received on my iPhone 5s? Please help!