DbAdapter Merge/Insert

Whilst using DBAdapter the merge/insert operation doesn't seem to recuperate unlike the Select operation , after the database is bounced.It requires the application server to be bounced after the database comes back up for the insert/merge to work !! Am I missing anything ?

Hi there,
merge/insert may take longer to recover from than select because the former because of an issue with transactional contexts.
If the select fails and the connection is recovered, then the select can proceed right there because there is no transactional context to worry about.
If the merge/insert fails and the connection is recovered, I still have to throw the exception if I was in the middle of a transaction. The latest drivers seem to let beginTransaction always pass, so a Merge/insert always fails as the first exception happens midway through the transaction. Unfortunate but just means you need to give merge/insert more retries.
Please see the
integration/orabpel/samples/tutorials/122.DBAdapter/InsertWithCatch
tutorial for how to configure this but basically you need to open the bpel.xml and add two properties to your partnerlink:
<partnerLinkBinding name="BPELSamples">
<property name="wsdlLocation">insert.wsdl</property>
<property name="retryInterval">60</property>
<property name="retryMaxCount">60</property>
</partnerLinkBinding>
You can also define the connection in the data-sources.xml, and then allow the app server to manage the connection pool.
Thanks
Steve

Similar Messages

  • DBAdapter Merge failed

    Hi Experts,
    Does anyone had issue (ORA-00001: unique constraint) while invoking DBAdapter Merge (Insert and Update) to a table
    which having a primary key of combination of 3 fields?
    My table is :
    LOCAL_CURRENCY NOT NULL CHAR(4)
    FOREIGN_CURR NOT NULL CHAR(4)
    DATE_MOD NOT NULL CHAR(8)
    CONV_RATE NOT NULL NUMBER(15,7)
    with PK: LOCAL_CURRENCY, FOREIGN_CURR, DATE_MOD
    The detail of bindFault from BPEL is:
    ORA-00001: unique constraint (TS.SYS_C0013840) violated
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed.
    This fault happened when i want to update CONV_RATE for a particular record in DB.
    For example, a record in DB (LOCAL_CURRENCY = 'EUR', FOREIGN_CURR ='USD', DATE_MOD= '20110101',CONV_RATE='1.5') is updated to new CONV_RATE='1.6'.
    My environment: SOA Suite 11.1.1.3, DB target Oracle 11g.
    Any hints are most welcome.
    Thanks.
    Ferdy

    I am having a similar problem. Trying to perform a merge on DB2 AS400 from BPEL. The table has a composite key with 6 fields (JD Edwards table):
    SELECT * FROM DEVDTA.F0902 WHERE GBAID = ? AND GBCTRY = ? AND GBFY = ? AND GBFQ = ? AND GBLT = ? AND GBSBL = ?
    When trying to call DB Adapter merge operation for an existing record I get the following error:
    <Mar 23, 2011 2:19:50 PM PDT> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=> [default/integ_F0902!1.0*soa_e5af67e1-0aba-417a-a7d6-3b1295a14cfe.World_F0902_Sync]:merge One-way operation merge() failed>
    <Mar 23, 2011 2:19:50 PM PDT> <Error> <oracle.soa.bpel.engine.ws> <BEA-000000> <got FabricInvocationExceptionjava.sql.BatchUpdateException: [SQL0803] Duplicate key value specified.
    Is this a known limitation, or a bug? This is on SOA BPEL 11.1.1.4.
    Thank you,
    Igor

  • DBAdapter merge operation error

    Hello,
    I run into a problem when trying the DBAdapter merge operation. I believe the merge operation first executes a query operation based on the primary keys, if not found, then will execute an insert operation, my problem is when I pass in the input as " " for one primary key, seems the merge operation internally transform it to "" then do the query, so there is no record found, then it will do the insert with the right primary key " ", which results in the violation of the unique constraint (suppose I inserted a record with primary key " " before).
    Does anyone have any suggestion for this?
    Thanks.
    Leo

    I'm using database triggers as well, if your acquanted with pl/sql that would be the 1st choice, especially because you can generate the needed triggers for all your audit columns.
    On the other hand you can define annotations in JPA, EJB3.0 now to populate your audit-columns automatically, maybe this can be done as well in the toplink mapping files?
    It should be possible, but I don't now until which level annotations are supported in toplink used by the dbAdapters.
    Kind regads,
    Nathalie

  • Oracle 10g Merge Insert performance

    Hi All,
    Performance wise, is it better to use a regular insert statement or Merge (insert only) statement ... in Oracle10g. (no updates are used in this merge statement).
    Thanks for the input.

    thanks for the comment ... here is the more info for INSERT alone using Merge ... thought Oracle has a reason for this to add in 10g.
    http://www.oracle-developer.net/display.php?id=310
    I am looking for right answer about the performance

  • Unique constraint is not thrown when used MERGE INSERT (alone) via dblink.

    We found some interesting behaviour of unique constraint on Merge query when we use Merge When Not Matched Insert (no update query) via a dblink.
    In one Schema S1, on Table A1(c1,c2,c3) there is a unique constraint on column (c1,c2).
    Column c2 is nullable and has null for some records.
    Now i have a table A2 with same defintion as A1 in Schema S2.In S2 , i have a dblink of S1 as S1 itself.
    I have data in S2.A2. Here also i have some records with c2 as null and c1 matching with the data of S1.A1.
    Now from schema S2,
    I am using the following Merge Query,
    MERGE INTO S1.A1 target
    USING S2.A2 source
    ON (target.c1 = source.c1 and target.c2 = source.c2)
    WHEN NOT MATCHED
    INSERT (c1,c2,c3) values (source.c1, source.c2,source.c3)
    WHEN MATCHED
    UPDATE c3 = source.c3;
    Now when i execute this merge in schema S2,
    if i have some data in S1.A1 and S2.A2 having c1 as same and c2 as null, as oracle does not treat two nulls same, it goes for an insert, i have got unique constraint violated error.
    But if i execute MERGE INSERT alone, though that record is getting inserted , i am not getting unique constraint violated error.
    Oracle version we are using is 10g (10.2...).
    Is it a bug in oracle or what could have caused this behaviour.

    Dear,
    ERROR at line 1:
    ORA-00001: unique constraint (SYS_C00137508) violatedYou need to think about two things
    (a) read consistency : what was the situation of table_1 when the maching clause has been initially evaluated ; there were 0 rows matching which means the merge operation will be all insert
    (b) your matching clause has a problem : the join column must be unique in both tables otherwise the merge will be ambigous. You don't have a unique key on the source table
    (c) think that the merge operation will never insert id =1 and then update id = 1 within the same operation. This will never happen
    Hope this helps
    Mohamed Houri

  • Weblogic OSB 10.3 DBAdapter merge not working

    I am using the DBAdapter to execute a database insert or update from a Publish Action. When using the merge operation it is not performing an update but instead always performing an insert, therefore I always get a unique constraint error due to the record already being in the table.
    Is there something special I need to do in order to tell the mapping file which fields are the primary key so it recognizes it needs to be an update versus an insert?
    Thanks in advance

    I figured it out, the toplink file had every column specified as the primary key, once I only used the correct keys, it worked just fine.

  • DBAdapter Merge

    Trying to update a table using DBAdapter and Merge operation. The table has besides other columns creation_date and last_update_date. What is the best way to populate the creation_date and last_update_date to sysdate when inserting a row, and only populate last_update_date when updating a row in the database?
    Thanks,

    I'm using database triggers as well, if your acquanted with pl/sql that would be the 1st choice, especially because you can generate the needed triggers for all your audit columns.
    On the other hand you can define annotations in JPA, EJB3.0 now to populate your audit-columns automatically, maybe this can be done as well in the toplink mapping files?
    It should be possible, but I don't now until which level annotations are supported in toplink used by the dbAdapters.
    Kind regads,
    Nathalie

  • Merge inserting duplicate rows

    Hi,
    I first check if a particular dept_no exists in the table, if not insert into the table. I am getting duplicate rows inserted.
    This is the table data before Merge.
       CUST_ID FIRST_NAME           LAST_NAME               DEPT_NO     SALARY
             1 Dan                  Morgan                       10     100000
             2 Jack                 Cline                        20     100000
             3 Helen                Lofstrom                     20      50000This is the table data after Merge.
    3 rows merged.
       CUST_ID FIRST_NAME           LAST_NAME               DEPT_NO     SALARY
             1 Dan                  Morgan                       10     100000
             2 Jack                 Cline                        20     100000
             3 Helen                Lofstrom                     20      50000
             4 Ram                  Bharad                       30       2000
             4 Ram                  Bharad                       30       2000
             4 Ram                  Bharad                       30       2000
    6 rows selected.This is the code to merge
    MERGE INTO customer c
    USING ( SELECT cust_id,
                   first_name,
                   last_name,
                   dept_no,
                   salary
            FROM customer ) e
    ON ( c.dept_no = 30 )
    WHEN MATCHED THEN
        UPDATE SET
               c.cust_id    = 4,
               c.first_name = 'Ram',
               c.last_name  = 'Bharad',
               c.salary     = 2000
    WHEN NOT MATCHED THEN
        INSERT
        (c.cust_id,c.first_name, c.last_name,c.dept_no,c.salary)
        VALUES
        (4,'Ram','Bharad',30,2000);Shouldn't the above code insert once, and update twice?
    Thanks

    You have done it wrong...
    Try like this
    SQL> create table customer(cust_id number,first_name varchar2(20), last_name varchar2(20), dept_no number, salary number)
      2  /
    Table created.
    SQL> insert into customer
      2  select 1, 'Dan','Morgan',10,100000 from dual
      3  union all
      4  select 2, 'Jack','Cline',20,100000 from dual
      5  union all
      6  select 3, 'Helen','Lofstrom',20,50000 from dual
      7  /
    3 rows created.
    SQL> commit
      2  /
    Commit complete.
    SQL> select * from customer
      2  /
       CUST_ID FIRST_NAME           LAST_NAME               DEPT_NO     SALARY
             1 Dan                  Morgan                       10     100000
             2 Jack                 Cline                        20     100000
             3 Helen                Lofstrom                     20      50000
    SQL> MERGE INTO customer c
      2  USING ( SELECT 4 cust_id,
      3                 'Ram' first_name,
      4                 'Bharad' last_name,
      5                 30 dept_no,
      6                 2000 salary
      7          FROM dual ) e
      8  ON ( c.dept_no = e.dept_no )
      9  WHEN MATCHED THEN
    10      UPDATE SET
    11             c.cust_id    = e.cust_id,
    12             c.first_name = e.first_name,
    13             c.last_name  = e.last_name,
    14             c.salary     = e.salary
    15  WHEN NOT MATCHED THEN
    16      INSERT
    17      (c.cust_id,c.first_name, c.last_name,c.dept_no,c.salary)
    18      VALUES
    19      (e.cust_id,e.first_name, e.last_name,e.dept_no,e.salary);
    1 row merged.
    SQL> select * from customer
      2  /
       CUST_ID FIRST_NAME           LAST_NAME               DEPT_NO     SALARY
             1 Dan                  Morgan                       10     100000
             2 Jack                 Cline                        20     100000
             3 Helen                Lofstrom                     20      50000
             4 Ram                  Bharad                       30       2000but beware of the fact that you are joining based on dept_no so multiple rows can get updated with same cust_id. see below.
    SQL> rollback
      2  /
    Rollback complete.
    SQL>  MERGE INTO customer c
      2   USING ( SELECT 4 cust_id,
      3             'Ram' first_name,
      4             'Bharad' last_name,
      5             20 dept_no,
      6             2000 salary
      7      FROM dual ) e
      8   ON ( c.dept_no = e.dept_no )
      9   WHEN MATCHED THEN
    10       UPDATE SET
    11         c.cust_id    = e.cust_id,
    12         c.first_name = e.first_name,
    13         c.last_name  = e.last_name,
    14         c.salary     = e.salary
    15   WHEN NOT MATCHED THEN
    16       INSERT
    17       (c.cust_id,c.first_name, c.last_name,c.dept_no,c.salary)
    18       VALUES
    19       (e.cust_id,e.first_name, e.last_name,e.dept_no,e.salary);
    2 rows merged.
    SQL> select * from customer
      2  /
       CUST_ID FIRST_NAME           LAST_NAME               DEPT_NO     SALARY
             1 Dan                  Morgan                       10     100000
             4 Ram                  Bharad                       20       2000
             4 Ram                  Bharad                       20       2000Thanks,
    Karthick.

  • DBAdapter insert only operation issue

    Hi Gurus,
    I'm trying to create the BPEL SOA composite which is receive the input using File Adapter (file only containt 2 rows) and insert into database table using DBAdapter with Insert only operation using mediator.
    The data will be inserted to seeded employees table in hr schema.
    1st try, i got error constraint violated because i did not provide the last name (NOT NULL constraint).
    I updated last name of the same data and try again, but i got error constraint violated for email (UNIQUE constraint).
    Mar 27, 2015 2:13:15 AMMessageError during invoking 2-way operation "insert" on target service "FdyWriteEmpToDB"
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'insert' failed due to: DBWriteInteractionSpec Execute Failed Exception. insert failed. Descriptor name: [FdyWriteEmpToDB.Employees]. Caused by java.sql.BatchUpdateException: ORA-00001: unique constraint (HR.EMP_EMAIL_UK) violated . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-1" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    If i disable the EMP_EMAIL_UK constraint, it is working fine, but the 1st row is inserted twice and 2nd row is not inserted.
    Following is the mediator transformation mapping.
    Anything am doing wrong here? Appreciate any help.
    Regards,
    Fendy

    Hi Fendy,
    could you look inside the audit trail in the enterprise manager to see if the transformations is really working?  For what I see, I think there is an error in your xslt. It should be like this:
    <top:EmployeesCollection>
        <xml:for-each select="/imp:Employees/imp:EmpDetail">
        <top:firstName>
          <xsl:value-of select ="/impl:FirstName" />
        </top:firstName>
        <top:LastName>
          <xsl:value-of select ="/impl:LastName" />
        </top:LastName>
    <top:email>
          <xsl:value-of select ="/impl:Email" />
        </top:email>
        </xml:for-each>
    </top:EmployeesCollection>
    best regards, Nicolas

  • Will insert (ignore duplicates) have a better performance than merge?

    Will insert (ignore duplicates) have a better performance than merge (insert if not duplicate)?

    Ok. Here is exactly what is happenning -
    We had a table with no unique index on it. We used 'insert all' statement to insert record.
    But later when we found duplicates in there we started removing them manually.
    Now, to resolve the issue we added unique index and added exception handling to ignore DUP_VAL_ON_INDEX exception.
    But with this all records being inserted by 'INSERT ALL' statement gets ignored even if only one record is duplicate.
    Hence we have finally replaced 'insert all' with merge statement. Which inserts only if a corresponding record is not found (match based on column in unique index) in the table.
    But I am wondering how much performance will get impacted.

  • DbAdapter (nolock in merge operation)

    Hello,
    I'm currently with performance problems when I do various operations on a SQL Server 2000 using a dbAdapter(merge operations).
    I did some analysis in the database and realized that I am having lock in "select" operation, and I have to wait for the "update". How can I add the command "nolock" at the end of this query?
    Thanks
    Zanatto

    Yes, this is to prevent confusion when the merge result falls outside of the active filter and is thus hidden from the user.  Sometimes it will, sometimes it won't - so we chose consistency of behavior.
    You should be able to prevent this by clicking the padlock icon in the upper right of the grid view and filter area. This will lock the filter.

  • Merge update insert into with exception

    I m opening a new thread for the same question i had posted earlier....
    create Table test(
    col1 varchar2(200),
    col2 varchar2(200),
    col3 varchar2(200),
    id varchar2(200),
    job_id varchar2(10)
    create Table test1(
    col1 varchar2(200),
    col2 varchar2(200),
    col3 varchar2(200),
    id varchar2(200),
    job_id varchar2(10)
    create Table test2(
    col1 varchar2(200),
    col2 varchar2(200),
    col3 varchar2(200),
    id varchar2(200),
    job_id varchar2(10)
    create Table err_tbl(
    col1 varchar2(200),
    col2 varchar2(200),
    col3 varchar2(200),
    id varchar2(200),
    job_id varchar2(10)
    ===============================================================
    merge into test t
    using (select distinct col1, col2, col3,id, job_id
    from test1
    where job_id = curr_job_id -- cur_job_id is variable which is declared in the procedure to sysdate
    union
    select distinct col1, col2, col3,id, job_id
    from test2
    where job_id = curr_job_id --cur_job_id is variable which is declared in the procedure to sysdate
    ) ss
    on (t.id = ss.id
    AND t.job_id = ss.job_id)
    when matched then update
    set t.col1 = ss.col1,
    t.col2 = ss.col2,
    t.col3 = ss.col3
    when not matched then insert into
    ( t.col1,
    t.col2,
    t.col3,
    t.id,
    t.job_id
    )Values
    ( ss.col1,
    ss.col2,
    ss.col3,
    ss.id,
    ss.jobid,
    exception
    when others then
    insert into err_tbl (
    col1,
    col2,
    col3,
    id,
    job_id )
    values ( ss.col1,
    ss.col2,
    ss.col3,
    ss.id,
    ss.jobid,
    Above, all i m trying to do is Updating or inserting into TEST table, and if there is any Duplicate records or any bad records then making use of exception i m INSERTING into ERR_TBL
    i get error with the merge insert update code ....
    The error i get is --- "ss.col1" column is not allowed here
    Any idea guys ????
    Hey one more quick question ....Can we use exception in merge insert update block ???

    user642297 wrote:
    I m opening a new thread for the same question i had posted earlier....
    Any idea guys ????
    Hey one more quick question ....Can we use exception in merge insert update block ???Did you learn nothing nothing from [Your other thread|http://forums.oracle.com/forums/thread.jspa?messageID=3810396&#3810396]
    (Maybe that's why you never bothered to close it)
    It looks like you did learn something, since you ended up saying
    Thanks alex...i think i got the answer.....so i cannot use exception handler in merge statement...
    Thank you so much!!!What beats me is that yu post the exact same question again, when you already got the answer
    ?:|
    Peter

  • DBAdapter and Sequcne on 10.1.3.3

    I have an issue regarding using native sequnce in DBAdapter to insert a new record into database.
    For Bpel 10.1.2
    I have to problem to use native sequnce by setting *mappig.xml and oc4j.xml.
    For Bpel 10.1.3.3 I saw "cnnot insert NULL" error. I am not sure why.
    ==The error message
    ORA-01400: cannot insert NULL into ("AP"."AP_INVOICES_INTERFACE"."INVOICE_ID") Error Code: 1400 Query:InsertObjectQuery(&lt;ApInvoiceLinesInterface {&lt;ApInvoicesInterface null />} null />)</detail> }}
    ==Setting on my ApInvoice.xml
    <opm:primary-key>
    opm:field table="AP_INVOICE_LINES_INTERFACE" name="INVOICE_ID" xsi:type="opm:column"/>
    <opm:field table="AP_INVOICE_LINES_INTERFACE" name="INVOICE_LINE_ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <toplink:sequencing>
    <toplink:sequence-name>AP.AP_INVOICE_LINES_INTERFACE_S</toplink:sequence-name>
    <toplink:sequence-field table="AP_INVOICE_LINES_INTERFACE" name="INVOICE_LINE_ID" xsi:type="opm:column"/>
    </toplink:sequencing>
    <opm:primary-key>
    <opm:field table="AP_INVOICES_INTERFACE" name="INVOICE_ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <toplink:sequencing>
    <toplink:sequence-name>AP.AP_INVOICES_INTERFACE_S</toplink:sequence-name>
    <toplink:sequence-field table="AP_INVOICES_INTERFACE" name="INVOICE_ID" xsi:type="opm:column"/>
    </toplink:sequencing>

    I did some experiments
    I created a sequence TESTAN_S start with 50 increment by 50.
    I have inserted 300 rows using DB adaptrer with native sequencing option.
    The ID's in table are incremented by 1 staring with 50 ie 50,51,52,53.....upto 351..
    This is wrong as sequence.nextval should always be incerments of 50 not 1. I dont know why this is happening. What is the significance of preallocation size tag?
    Here are the steps I followed to achieve this. its working somewhat but not exactly what i was expecting. I just changes the files manually and did not run any wizards after changing the files manually.
    1. On the Top link I have selected Native sequencing Option and pre allocation=50 and Save
    2. Open the bpel/servicename_toplink_mappings.xml and add sequence.. see the xml pasted below.
    <?xml version="1.0" encoding="UTF-8"?>
    <toplink:object-persistence version="Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)" xmlns:opm="http://xmlns.oracle.com/ias/xsds/opm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:toplink="http://xmlns.oracle.com/ias/xsds/toplink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <opm:name>readtest_service</opm:name>
    <opm:class-mapping-descriptors>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>readtestservice.Readtest</opm:class>
    <opm:alias>Readtest</opm:alias>
    <opm:primary-key>
    <opm:field table="READTEST" name="ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy">
    <opm:queries>
    <opm:query name="findAllReadtest" xsi:type="toplink:read-all-query">
    <toplink:timeout>0</toplink:timeout>
    <toplink:reference-class>readtestservice.Readtest</toplink:reference-class>
    <toplink:cache-usage>primary-key</toplink:cache-usage>
    <toplink:lock-mode>none</toplink:lock-mode>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </opm:query>
    </opm:queries>
    <toplink:does-exist-query xsi:type="toplink:does-exist-query">
    <toplink:existence-check>check-database</toplink:existence-check>
    </toplink:does-exist-query>
    </opm:querying>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>id</opm:attribute-name>
    <opm:field table="READTEST" name="ID" xsi:type="opm:column"/>
    <opm:attribute-classification>java.math.BigDecimal</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>value</opm:attribute-name>
    <opm:field table="READTEST" name="VALUE" xsi:type="opm:column"/>
    <opm:attribute-classification>java.lang.String</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>updateDate</opm:attribute-name>
    <opm:field table="READTEST" name="UPDATE_DATE" xsi:type="opm:column"/>
    <opm:attribute-classification>java.sql.Timestamp</opm:attribute-classification>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>independent</toplink:descriptor-type>
    <toplink:caching>
    <toplink:cache-type>weak-reference</toplink:cache-type>
    <toplink:always-refresh>true</toplink:always-refresh>
    </toplink:caching>
    <toplink:remote-caching>
    <toplink:cache-type>weak-reference</toplink:cache-type>
    </toplink:remote-caching>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
              <toplink:sequencing>
    <toplink:sequence-name>TESTAN_S</toplink:sequence-name>
    <toplink:sequence-field table="READTEST" name="ID" xsi:type="opm:column"/>
    </toplink:sequencing>
    <toplink:tables>
    <toplink:table name="READTEST"/>
    </toplink:tables>
    </opm:class-mapping-descriptor>
    </opm:class-mapping-descriptors>
    </toplink:object-persistence>
    3. add following in class descriptor.xml in toplink/servicename/descripter/servicename.tablename.ClassDescripter.xml
    <sequence-number-name>TESTAN_S</sequence-number-name>
    <uses-sequencing>true</uses-sequencing>
    see below for the complete file:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <descriptor>
    <unique-filename>readtestservice.Readtest.ClassDescriptor</unique-filename>
    <active>true</active>
    <bldr-class>readtestservice.Readtest</bldr-class>
    <mappings>
    <mapping>
    <inherited>false</inherited>
    <instance-variable-name>id</instance-variable-name>
    <default-field-names>
    <default-field-name>direct field=</default-field-name>
    </default-field-names>
    <uses-method-accessing>false</uses-method-accessing>
    <read-only>false</read-only>
    <get-method-handle>
    <method-handle/>
    </get-method-handle>
    <set-method-handle>
    <method-handle/>
    </set-method-handle>
    <direct-mapping-field-handle>
    <field-handle>
    <field-table>APPS.READTEST</field-table>
    <field-name>ID</field-name>
    </field-handle>
    </direct-mapping-field-handle>
    <mapping-class>MWDirectToFieldMapping</mapping-class>
    </mapping>
    <mapping>
    <inherited>false</inherited>
    <instance-variable-name>value</instance-variable-name>
    <default-field-names>
    <default-field-name>direct field=</default-field-name>
    </default-field-names>
    <uses-method-accessing>false</uses-method-accessing>
    <read-only>false</read-only>
    <get-method-handle>
    <method-handle/>
    </get-method-handle>
    <set-method-handle>
    <method-handle/>
    </set-method-handle>
    <direct-mapping-field-handle>
    <field-handle>
    <field-table>APPS.READTEST</field-table>
    <field-name>VALUE</field-name>
    </field-handle>
    </direct-mapping-field-handle>
    <mapping-class>MWDirectToFieldMapping</mapping-class>
    </mapping>
    <mapping>
    <inherited>false</inherited>
    <instance-variable-name>updateDate</instance-variable-name>
    <default-field-names>
    <default-field-name>direct field=</default-field-name>
    </default-field-names>
    <uses-method-accessing>false</uses-method-accessing>
    <read-only>false</read-only>
    <get-method-handle>
    <method-handle/>
    </get-method-handle>
    <set-method-handle>
    <method-handle/>
    </set-method-handle>
    <direct-mapping-field-handle>
    <field-handle>
    <field-table>APPS.READTEST</field-table>
    <field-name>UPDATE_DATE</field-name>
    </field-handle>
    </direct-mapping-field-handle>
    <mapping-class>MWDirectToFieldMapping</mapping-class>
    </mapping>
    </mappings>
    <sequence-number-name>TESTAN_S</sequence-number-name>
    <uses-sequencing>true</uses-sequencing>
    <should-always-refresh-cache>true</should-always-refresh-cache>
    <primary-key-field-handles>
    <field-handle>
    <field-table>APPS.READTEST</field-table>
    <field-name>ID</field-name>
    </field-handle>
    </primary-key-field-handles>
    <primary-table>APPS.READTEST</primary-table>
    <associated-tables>
    <associated-table>
    <name>APPS.READTEST</name>
    </associated-table>
    </associated-tables>
    <sequence-number-field-handle>
    <field-handle/>
    </sequence-number-field-handle>
    <class-descriptor-query-manager>
    <query-manager>
    <descriptor-alias>Readtest</descriptor-alias>
    <query-list>
    <query>
    <name>findAllReadtest</name>
    <query-type>oracle.toplink.queryframework.ReadAllQuery</query-type>
    <cache-usage>Check Cache by Primary Key</cache-usage>
    <lock-mode>Do Not Acquire Locks</lock-mode>
    <distinct-state>Uncomputed Distinct</distinct-state>
    <in-memory-query-indirection-policy>Throw Indirection Exception</in-memory-query-indirection-policy>
    <cache-query-results>false</cache-query-results>
    <maintain-cache>true</maintain-cache>
    <refresh-identity-map-result>false</refresh-identity-map-result>
    <refresh-remote-identity-map-result>false</refresh-remote-identity-map-result>
    <use-wrapper-policy>true</use-wrapper-policy>
    <prepare>true</prepare>
    <query-timeout>0</query-timeout>
    <maximum-rows>0</maximum-rows>
    <format>
    <query-format>
    <main-compound-expression>
    <expression>
    <operator-type>AND</operator-type>
    <expression-class>MWCompoundExpression</expression-class>
    </expression>
    </main-compound-expression>
    <query-format-class>MWExpressionQueryFormat</query-format-class>
    </query-format>
    </format>
    </query>
    </query-list>
    </query-manager>
    </class-descriptor-query-manager>
    <class-descriptor-identity-policy>
    <identity-policy>
    <identity-map-size>100</identity-map-size>
    <identity-map-class-name>oracle.toplink.internal.identitymaps.WeakIdentityMap</identity-map-class-name>
    <existence-checking>Check database</existence-checking>
    </identity-policy>
    </class-descriptor-identity-policy>
    <descriptor-class>MWClassDescriptor</descriptor-class>
    </descriptor>

  • ESB-DBAdapter issue

    Hi all,
    I have DBAdapter to insert records into oracle XE DB from my ESB process.
    Though the record gets successfully inserted,the ESB instance is itself
    marked as errored.
    The following is the stacktrace
    oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException:
    An unhandled exception has been thrown in the ESB system.
    The exception reported is: "oracle.tip.esb.server.common.exceptions.BusinessEventRejectionException:
    An unhandled exception has been thrown in the ESB system.
    The exception reported is:
    "org.collaxa.thirdparty.apache.wsif.WSIFException:
    esb:///ESB_Projects/SOAOrchestration_FulfillmentESB/FedexShipment.wsdl
    [ FedexShipment_ptt::insert(FedexshipmentCollection) ] - WSIF JCA Execute of
    operation 'insert' failed due to:
    DBWriteInteractionSpec Execute Failed Exception. unknown failed.
    Descriptor name: [unknown]. ; nested exception is:
    ORABPEL-11616 DBWriteInteractionSpec Execute Failed Exception.
    unknown failed. Descriptor name: [unknown]. Caused by Exception [TOPLINK-2004] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004))
    : oracle.toplink.exceptions.ConcurrencyException Exception Description:
    A signal was attempted before wait() on ConcurrencyManager.
    This normally means that an attempt was made to commit or
    rollback a transaction before it was started, or to rollback a transaction twice..
    at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:623)
    at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeInputOnlyOperation(WSIFOperation_JCA.java:726)
    at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(Unknown Source) ...
    Any help/insight will be very helpful.
    Regards,
    Manu

    We have same issue as yours.
    But worst for us, we need logical delete the record in Source database. And if this Exception happen, the transaction will roll back.
    A oracle guy told me this is an internal bug:5519509 only in 10.1.3.1. I don't know when it will be fixed.

  • Multiple record insert thru PROCEDURE - Urgent

    All,
    My requirement is, I have to invoke a procedure which accepts two input and 1 out variable. The operation of the procedure is to insert the data to two tables(head_tab and line_tab-accepts multiple record). I used %rowtype for the two inputs i.e procedure proc(head_var head_tab%rowtype, line_var line_tab%rowtype, out_var out number). The incoming doc comes from 3rd party application which sends a header record and multiple line record for the same header.
    I used the transformation activity, to insert line record I used for-each loop for multiple record. But %rowtype being a scalar data type, it doesn't accept array of record to it! I'm stuck here. Can we achieve this scenario with using of procedure? or should I configure DBAdapter to insert the data directly to the table rather the procedure does this? If we can achieve it thru procedure, how can I go about?
    Thanks,
    Sen

    Hi,
    I believe you should change the signature of the procedure.
    I tried below code for my proc to send multiple records without use of for loop.
    Type line_var_rec IS RECORD(
    Var1;
    var2;
    Type line_var_tab IS TABLE OF line_var_rec INDEX BY BINARY INTEGER;
    Type head_var_rec IS RECORD(
    var3;
    var4;
    line_var line_var_tab ;
    Type head_var_tab IS TABLE OF head_var_rec INDEX BY BINARY INTEGER;
    proc(head_var IN head_var_tab, out_var out number);
    With the above code you can insert multiple header records each having multiple line records.
    Pls let me know if u have any questions.

Maybe you are looking for

  • Classic won't go into disc mode.

    Ipod classic will not go into disc mode manually. It will not connect to computer   what can I do?

  • Using READ_TEXT to read SO10 (standard texts)

    Hi, When we use READ_TEXT F.M for SO10 texts what are the parameters to pass. ID - ST LANGUAGE - EN NAME - Z_TEL (SO10 text id) OBJECT - ? What i should pass to OBJECT & what else i need to input! Thanks in advance. Thanks, Deep.

  • 2540 2nd controller offline issue

    I see some others had the same issue but I don't see the solution. The array is new. It has 2 controller boards and 12 disks. When the array is powered on controller B fails to configure. It looks like it is powering up but then the service light com

  • ComboBox issue

    So I am sure Jonathan groans when he sees my name pop up, but I found another ComboBox issue and I am looking for help finding a workaround. (I opened a JIRA - http://javafx-jira.kenai.com/browse/RT-27654) Seems that calling clearSelecion() on a Comb

  • How to set up Mail - hotmail - out going mail server?

    Hi, I need a help in that particular case, I cant set up Mail on Mac OS X 10.5.8, Outgoing Mail Server - what should I wrote down there? I cant sort that out. Please help Thanks Kate