3 Replies Latest reply on Jan 24, 2017 1:51 PM by Kumar_9985

    DB adapter - Parse struct converstion error in Procedure calling


      Hi Team,


      We have a Procedure in the schema where the input is PL/SQL record ( rowtype ). When i tried to create a DB adapter on this actual procedure (CTL_BATCH_CONTROL_Prc), a wrapper procedure got created internally (internal Wrapper procedure name: TOPLEVEL$CTL_BATCH_CONTROL_Pr, Wrapper_Package: BPEL_XXRBS_BATCH_CONTROL_PRC)

      (Reason is : if there is any argument with data type : PL SQL Record/ PL SQL Boolean / PL SQL Table then an internal wrapper procedure will be created).


      Now in the run time while calling the procedure (DB procedure : 'CTL_Batch_Control_Prc'), wrapper procedure is getting invoked and failing saying


      faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'XXRBS_BATCH_CONTROL_PRC' failed due to: Parse struct conversion error. An error occurred while parsing XML representing a Java struct. Unable to convert the XSD element P_BATCH_CONTROL whose user defined type is XXRBS_SOA_OWNER.ROWTYPE_SQLX131280X1X1 to a Java struct. Cause: java.sql.SQLException: ORA-01403: no data found ORA-06512: at line 1 Check to ensure that the XML data describing the user defined type matches the definition of the struct in the XSD. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-1403" 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. </summary> ,detail=<detail>ORA-01403: no data found ORA-06512: at line 1 </detail> ,code=<code>1403</code>}

      " .


      I am not getting why ORA-01403 is generating when all the values are properly passing through the payload.


      What could be the reason for this issue and how to fix this?




        • 1. Re: DB adapter - Parse struct converstion error in Procedure calling
          Vidya Bhushan Tipparaju

          Can you share XSD created by the adapter ?

          • 2. Re: DB adapter - Parse struct converstion error in Procedure calling
            Martien van den Akker



            Could you share your wrapper procedure and it's generated datatypes as well as the actual procedure?

            What I'd try is to create a test script in SQLDeveloper with the same values you try to pass to the DB Adapter and then debug it.

            No data found is when you have a select-into that returns no rows.


            The database adapter generates these kinds of wrapper procedures with oracle types, because it's not able to work with Record Types (either rowtype or userdefined). But it's perfectly capable of working with Oracle Types, and sheer endlessly complex hierarchy.

            So I'd refactor the procedure to use Oracle Types as parameters. You could (re-)use the generated code, but I'd incorporate it in the actual implementation.



            • 3. Re: DB adapter - Parse struct converstion error in Procedure calling

              Hi All,


              Got the issue !!

              In my project we call the DB objects through read only schema by creating synonym. For the above wrapper package and object, script is created in the actual owner (XXRBS_soa_owner), but synonym is not present in the read only schema (XXRBS_RSBSOA_APPUSER).


              When i created a test data source on the actual schema and ran the same DB adapter it worked, later i created the synonym in the read only user and it got worked.


              But what i am not getting is the Object related object type is not found ('XXRBS_SOA_OWNER.ROWTYPE_SQLX131280X1X1') then ideally No object exist error should generate, but here Ora-1403 no Data found is coming.


              Thank u all for ur suggestions !!