JCA Database adapter

Hello,
I have to use a JCA DB adapter in my project and I have to figure out if this adapter has any protection( maybe PreparedStatment) against SQL injection. I'm assuming that it does, but that's not enough.
Thanks,
Vasile

HI,
Please finf the below cases for adapter creation.
1)polling adapter-->change in polling logic-->need to create new adapter
2)update adapter-->change in polling logic-->need to create new adapter
3)calling function/stored procedure adapter-->change in body of store procedure-->no need to create new adapter(SPname should be same).
Abhishek Amle

Similar Messages

  • Setting up JDBC Data Source for JCA Database Adapter  in WLS - only SID?

    Following the documentation for setting up a connection for use with the JCA Database Adapter (http://otnbeta.oracle.com/fmw11g/582tj30eapvb/integration.1111/e10231/life_cycle.htm), section 2.4.1, Step 8 simply says "Enter the connection properties in the Connection Properties page, and then click Next"
    In the "Create a New JDBC Data Source" screen of the WLS Administration Console there is the entry field vaguely labeled as "Database Name:" Of course I entered the Oracle RDBMS service name (which we should ALWAYS be using), only to be informed upon clicking next, that WLS was expecting the SID.
    Two things:
    1. At least through this maintenance console, it appears that BEA did not understand the whole concept or value of Oracle RDBMS logical service names versus the SID (I have seen this in several products that Oracle has acquired). Best practice would be to use the Oracle RDBMS service name, which doesn't appear to be an option in this console.
    2. The OFM documentation should be more helpful in explaining.

    Compare to the analogous setup in OAS 10.1.3.4/EM... far better clarity in the maintenance console and option of either SID or service name.

  • JCA database adapter issue due to database schema dependency

    Hi,
    I am using the JCA database adapter to call a stored procedure. The adapter uses the database schema name while calling the Stored procedure. The schema name is added in the namespace of XSD, wsdl files.
    If I have to use a different database schema name, how can I update the existing code without much modification.
    Thanks!

    Thanks for your reply Prabhu.
    But the modification in JCA file is resulting in the following Exception.
    I think this change has resulted in references related issue. Please let me know if any further changes are required.
    <> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=> Could not invoke operation against the 'Database Adapter' due to:
    BINDING.JCA-11811
    Stored procedure invocation error.
    Error while trying to prepare and execute the old_schema_name.stored_procedure_name.
    An error occurred while preparing and executing the old_schema_name.stored_procedure_name.
    API. Cause: java.sql.SQLException: ORA-06550: line 1, column 7:
    PLS-00201: identifier old_schema_name.stored_procedure_name.
    must be declared
    ORA-06550: PL/SQL: Statement ignored

  • JCA Database adapter - stored procedure xa or non xa datasource

    Hi
    I have a quick question about datasources. Does the database adapter support both xa and non xa? I am currently running in non xa I really do not need any xa functionality, but I am experiencing some calls to the database that takes a very long time. Might be an issue with the database tuning, but trying to cover all the bases.
    Have searched quite a lot on it, but cant find anything, so I hope some of you know.
    Thanks in advance.
    /Øyvind

    Does the database adapter support both xa and non xa? Yes, it supports both.
    but I am experiencing some calls to the database that takes a very long time. May be database is slow or data-source is not fine tuned. Does it happen under heavy load? What is the independent normal execution time and how much it is taking actually when you use DB adapter?
    Regards,
    Anuj

  • I need Fusion help creating a demo of BRM JCA Resource Adapter

    I need Fusion help creating a demo of BRM JCA Resource Adapter.
    I know BRM well but am clueless with Fusion.
    I am trying to figure out what Fusion products to download and install and how I manipulate the Fusion side to manipulate BRM.
    My BRM docs say:
    Installing the BRM JCA Resource Adapter ->
    Software requirements
    (yada yada install a bunch of BRM stuff I know how to do)
    The adapter must be deployed on a J2EE 1.4-compliant application server that has implemented the JCA 1.5 specification. The adapter runs only in a managed environment. (Does this imply some particular Fusion package?)
    (more yada yada about installing more BRM packages I know how to do)
    Deploying and configuring the BRM JCA Resource Adapter ->
    Overview of the BRM JCA Resource Adapter configuration procedure
    The procedure for setting up the BRM JCA Resource Adapter includes the following tasks:
    Installing the adapter on your BRM system, if you have not already done so. See Installing the BRM JCA Resource Adapter.
    Generating the schema files for the adapter. See Generating the schema files for your system. (links to some BRM commands np)
    Specifying how to construct XML tags. See Specifying the XML tags for extended fields. (links to an oob file included with directions on how to address BRM customizations np)
    Generating the WSDL files for the adapter. See Generating the WSDL files for your system. (links to an oob file with directions to configure. I could use some help if/when I get this far)
    The last two look pretty important but I haven't a clue. I pasted the text from the docs below.
    Deploying the adapter on your application server. See Deploying the BRM JCA Resource Adapter on an Oracle application server.
    Connecting the adapter to the BRM software. See Connecting the adapter to BRM in Oracle AS.
    Deploying the BRM JCA Resource Adapter on an Oracle application server
    The adapter is dependent on Java Archive (JAR) files to deploy properly. The following table lists the JAR files that the adapter requires from each application in your system.
    Application
    JAR files
    J2EE application server
    classes12.jar, connector15.jar, and jta.jar
    Oracle BPEL process
    bpm-infra.jar, orabpel-thirdparty.jar, orabpel.jar, and xmlparserv2.jar
    BRM J2EE Resource Adapter
    pcm.jar and pcmext.jar
    Apache
    xercesImpl.jar
    If you are deploying the adapter in a standalone Oracle Containers for Java EE (OC4J) instance, make sure these JAR files are available to the class loader that is loading the adapter.
    If you are deploying the adapter by using Oracle SOA Suite, these JAR files are available as part of the oracle.bpel.common code source. You import these libraries as follows:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Add the oracle.bpel.common entry (shown in bold below) to the imported-shared-libraries section of the file:
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Restart the application server or the J2EE instance.
    After you make the JAR files available, deploy the adapter on the Oracle application server by using either the Oracle Application Server (Oracle AS) Application Server Control (ASC) or the Oracle admintool.jar file. Copy the adapter archive file (BRM_home/apps/brm_integrations/jca_adapter/OracleBRMJCA15Adapter.rar) from the installation directory to a location that is accessible to the adapter deployment tool. You can then open and deploy the archive file on your application server.
    After successful deployment, return the applications.xml file to its original settings and add the oracle.bpel.common codesource to the BRM Adapter oc4j-ra.xml file:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Remove the following oracle.bpel.common entry (shown in bold below):
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Open the JCA Resource Adapter oc4j-ra.xml file from the Oracle_home/j2ee/Instance/application-deployments/default/BRMAdapterDeploymentName directory.
    Add the oracle.bpel.common entry (shown in bold below) to the oc4j-connector-factories section of the file:
    <oc4j-connector-factories...>
    <imported-shared-libraries>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    <oc4j-connector-factories>
    Save and close the file.
    Restart the application server or the J2EE instance.
    For more information about deploying the adapter, see your application server’s documentation.
    Connecting the adapter to BRM in Oracle AS
    You connect the adapter to the BRM software by creating connection pools and connection factories. As part of the adapter deployment, the application server creates oc4j-ra.xml from the packaged ra.xml. The ra.xml file is located in the Oracle_home/j2ee/Instance/connectors/AdapterDeploymentName/AdapterDeploymentName/META-INF directory. For example, Oracle_home/j2ee/home/connectors/BRMAdapter/BRMAdapter/META-INF/ra.xml.
    Use the resource adapter home page from the Oracle AS ASC page to create connection pools and connection factories.
    Create your connection pool by following the performance and tuning guidelines in Configuring Connection Pooling in OC4J in Oracle Containers for J2EE Resource Adapter Administrator's Guide. See download.oracle.com/docs/cd/B31017_01/web.1013/b28956/conncont.htm.
    Make sure you set the pool’s Maximum Connections parameter (maxConnections XML entity) equal to or greater than the Oracle BPEL process manager’s dspMaxThreads parameter. For more information, see Oracle BPEL Process Manager Performance Tuning in Oracle Application Server Performance Guide for 10g Release 3 (10.1.3.1.0) at download.oracle.com/docs/cd/B31017_01/core.1013/b28942/tuning_bpel.htm.
    Note To set up JCA Resource Adapter transaction management in BPEL, you must create a private connection pool and set its Inactive Connection Timeout property (inactivity-timeout XML entity) to 0. See About JCA Resource Adapter transaction management in BPEL for more information.
    Create as many connection factories as your system needs. For each connection factory, specify the following:
    The JNDI location for the connection factory.
    The connection pool to use.
    How to connect to BRM by using these entries:
    Entry
    Description
    ConnectionString
    Specify the protocol, host name, and port number for connecting to the BRM software. For example: ip Server1 12006.
    DBNumber
    Specify the database number for the BRM database. For example, enter 1 or 0.0.0.1 for database 0.0.0.1.
    InputValidation
    Specifies whether to validate the input XMLRecord:
    True — The adapter validates the input XMLRecord against the opcode schema.
    False — The adapter does not validate the input XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    OutputValidation
    Specifies whether to validate the output XMLRecord:
    True — The adapter validates the output XMLRecord against the opcode schema.
    False — The adapter does not validate the output XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    LoginType
    Specifies the authentication method:
    1 — The adapter logs in to BRM by using the specified login name and password.
    0 — The adapter logs in to BRM by using the specified service type and POID ID.
    The default is 1.
    UserName
    Specifies the login name the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    Password
    Specify the password the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    PoidID
    Specifies the POID ID. This entry should be set to 1.
    ServiceType
    Specifies the service the adapter uses to log in to the BRM software.
    The default is /service/pcm_client.
    You have successfully configured the adapter to connect to BRM.

    I need Fusion help creating a demo of BRM JCA Resource Adapter.
    I know BRM well but am clueless with Fusion.
    I am trying to figure out what Fusion products to download and install and how I manipulate the Fusion side to manipulate BRM.
    My BRM docs say:
    Installing the BRM JCA Resource Adapter ->
    Software requirements
    (yada yada install a bunch of BRM stuff I know how to do)
    The adapter must be deployed on a J2EE 1.4-compliant application server that has implemented the JCA 1.5 specification. The adapter runs only in a managed environment. (Does this imply some particular Fusion package?)
    (more yada yada about installing more BRM packages I know how to do)
    Deploying and configuring the BRM JCA Resource Adapter ->
    Overview of the BRM JCA Resource Adapter configuration procedure
    The procedure for setting up the BRM JCA Resource Adapter includes the following tasks:
    Installing the adapter on your BRM system, if you have not already done so. See Installing the BRM JCA Resource Adapter.
    Generating the schema files for the adapter. See Generating the schema files for your system. (links to some BRM commands np)
    Specifying how to construct XML tags. See Specifying the XML tags for extended fields. (links to an oob file included with directions on how to address BRM customizations np)
    Generating the WSDL files for the adapter. See Generating the WSDL files for your system. (links to an oob file with directions to configure. I could use some help if/when I get this far)
    The last two look pretty important but I haven't a clue. I pasted the text from the docs below.
    Deploying the adapter on your application server. See Deploying the BRM JCA Resource Adapter on an Oracle application server.
    Connecting the adapter to the BRM software. See Connecting the adapter to BRM in Oracle AS.
    Deploying the BRM JCA Resource Adapter on an Oracle application server
    The adapter is dependent on Java Archive (JAR) files to deploy properly. The following table lists the JAR files that the adapter requires from each application in your system.
    Application
    JAR files
    J2EE application server
    classes12.jar, connector15.jar, and jta.jar
    Oracle BPEL process
    bpm-infra.jar, orabpel-thirdparty.jar, orabpel.jar, and xmlparserv2.jar
    BRM J2EE Resource Adapter
    pcm.jar and pcmext.jar
    Apache
    xercesImpl.jar
    If you are deploying the adapter in a standalone Oracle Containers for Java EE (OC4J) instance, make sure these JAR files are available to the class loader that is loading the adapter.
    If you are deploying the adapter by using Oracle SOA Suite, these JAR files are available as part of the oracle.bpel.common code source. You import these libraries as follows:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Add the oracle.bpel.common entry (shown in bold below) to the imported-shared-libraries section of the file:
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Restart the application server or the J2EE instance.
    After you make the JAR files available, deploy the adapter on the Oracle application server by using either the Oracle Application Server (Oracle AS) Application Server Control (ASC) or the Oracle admintool.jar file. Copy the adapter archive file (BRM_home/apps/brm_integrations/jca_adapter/OracleBRMJCA15Adapter.rar) from the installation directory to a location that is accessible to the adapter deployment tool. You can then open and deploy the archive file on your application server.
    After successful deployment, return the applications.xml file to its original settings and add the oracle.bpel.common codesource to the BRM Adapter oc4j-ra.xml file:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Remove the following oracle.bpel.common entry (shown in bold below):
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Open the JCA Resource Adapter oc4j-ra.xml file from the Oracle_home/j2ee/Instance/application-deployments/default/BRMAdapterDeploymentName directory.
    Add the oracle.bpel.common entry (shown in bold below) to the oc4j-connector-factories section of the file:
    <oc4j-connector-factories...>
    <imported-shared-libraries>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    <oc4j-connector-factories>
    Save and close the file.
    Restart the application server or the J2EE instance.
    For more information about deploying the adapter, see your application server’s documentation.
    Connecting the adapter to BRM in Oracle AS
    You connect the adapter to the BRM software by creating connection pools and connection factories. As part of the adapter deployment, the application server creates oc4j-ra.xml from the packaged ra.xml. The ra.xml file is located in the Oracle_home/j2ee/Instance/connectors/AdapterDeploymentName/AdapterDeploymentName/META-INF directory. For example, Oracle_home/j2ee/home/connectors/BRMAdapter/BRMAdapter/META-INF/ra.xml.
    Use the resource adapter home page from the Oracle AS ASC page to create connection pools and connection factories.
    Create your connection pool by following the performance and tuning guidelines in Configuring Connection Pooling in OC4J in Oracle Containers for J2EE Resource Adapter Administrator's Guide. See download.oracle.com/docs/cd/B31017_01/web.1013/b28956/conncont.htm.
    Make sure you set the pool’s Maximum Connections parameter (maxConnections XML entity) equal to or greater than the Oracle BPEL process manager’s dspMaxThreads parameter. For more information, see Oracle BPEL Process Manager Performance Tuning in Oracle Application Server Performance Guide for 10g Release 3 (10.1.3.1.0) at download.oracle.com/docs/cd/B31017_01/core.1013/b28942/tuning_bpel.htm.
    Note To set up JCA Resource Adapter transaction management in BPEL, you must create a private connection pool and set its Inactive Connection Timeout property (inactivity-timeout XML entity) to 0. See About JCA Resource Adapter transaction management in BPEL for more information.
    Create as many connection factories as your system needs. For each connection factory, specify the following:
    The JNDI location for the connection factory.
    The connection pool to use.
    How to connect to BRM by using these entries:
    Entry
    Description
    ConnectionString
    Specify the protocol, host name, and port number for connecting to the BRM software. For example: ip Server1 12006.
    DBNumber
    Specify the database number for the BRM database. For example, enter 1 or 0.0.0.1 for database 0.0.0.1.
    InputValidation
    Specifies whether to validate the input XMLRecord:
    True — The adapter validates the input XMLRecord against the opcode schema.
    False — The adapter does not validate the input XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    OutputValidation
    Specifies whether to validate the output XMLRecord:
    True — The adapter validates the output XMLRecord against the opcode schema.
    False — The adapter does not validate the output XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    LoginType
    Specifies the authentication method:
    1 — The adapter logs in to BRM by using the specified login name and password.
    0 — The adapter logs in to BRM by using the specified service type and POID ID.
    The default is 1.
    UserName
    Specifies the login name the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    Password
    Specify the password the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    PoidID
    Specifies the POID ID. This entry should be set to 1.
    ServiceType
    Specifies the service the adapter uses to log in to the BRM software.
    The default is /service/pcm_client.
    You have successfully configured the adapter to connect to BRM.

  • Error while invoking custom API using Database Adapter

    Hi,
    I've a requirement where in I need to fetch the data returned by a recordtype of a custom API. I've implemented this by invoking the custom API using Database Adapter. I'm facing a problem while performing this.
    The custom API holds the signature as:
    PROCEDURE EMP_DET
    Argument Name Type      In/Out Default?
    P_DEPTNO NUMBER IN
    L_LINE_TBL TABLE OF RECORD OUT
    I've a schema with which it needs to be validated. It looks like:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:po="http://www.mycompany.com/ns/sales" targetNamespace="http://www.mycompany.com/ns/sales" elementFormDefault="qualified">          
    <element name="EmployeeDetails">          
    <complexType>               
    <sequence>                    
    <element name="EmpNo" type="integer"/>                    <element name="EName" type="string"/>                    <element name="Job" type="string"/>                    <element name="Mgr" type="integer"/>                    <element name="HireDate" type="date"/>                    <element name="Sal" type="decimal"/>                    <element name="Comm" type="decimal"/>               </sequence>          
    </complexType>     
    </element>
    </schema>
    I did a transformation to the above stated Emp.xsd with the xsd created for my custom API by the BPEL process. I could create the process and deploy successfully, but while invoking I get the following error. (I'm using BPM 10.1.3.1 with JDev 10.1.3.1)
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>6502</code>
    </part><part name="summary"><summary>file:/D:/OraBPEL/bpel/domains/default/tmp/.bpel_my_poc_1.0_16c5d0f7b937c780d27d8975726a15cb.tmp/emp_details.wsdl [ emp_details_ptt::emp_details(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'emp_details' failed due to: Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the SCOTT.BPEL_EMP_DETAILS.EMP_PKG$EMP_DET API. Cause: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at line 1
    [Caused by: ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at line 1
    ; nested exception is:
         ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the SCOTT.BPEL_EMP_DETAILS.EMP_PKG$EMP_DET API. Cause: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at line 1
    [Caused by: ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at line 1
    Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable.
    </summary>
    </part><part name="detail"><detail>
    Internal Exception: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at "SCOTT.BPEL_EMP_DETAILS", line 1
    ORA-06512: at line 1
    Error Code: 6502</detail>
    </part></remoteFault>
    Can someone let me know as to why I'm getting this error? Also lemme know if such an approach is valid to do, if not please suggest me alternate methods to do this.
    Thanks in advance,
    Gayathri

    The 'numeric or value error' is one we have seen many times. The problem has been identified and fixed. Refer to this thread for more information.
    Issue with DB Adapter - ORABPEL-11811

  • Error Invoking Database Adapter

    I am trying to create a simple bpel process which updates table in Oracle Database, but getting some JCA connection issue below:
    "<bpelFault><faultType>0</faultType><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'insert' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. Project1:writeDB [ writeDB_ptt::insert(ContactOutputCollection) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element &lt;connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the &lt;connection-factory/> element: location='eis/DB/XE_DB'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '&lt;jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/XE_DB. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary></part><part name="detail"><detail>JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element &lt;connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the &lt;connection-factory/> element: location='eis/DB/XE_DB'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '&lt;jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/XE_DB. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server </detail></part><part name="code"><code>12510</code></part></bindingFault></bpelFault>"
    thanks

    Hi
    Checklist
    1) Create DataSource
    2) Connection Pool in the DB Adapter(with jndi eis/DB/XE_DB)
    Edit the default connection pool created and point the xaDataSource or Datasource to jndi of datasource created in step1
    Regards,
    Ajay

  • Problems while compiling a project that uses Database Adapter

    Hi,
    I am working on a small WebService that uses the Database Adapter to connect with the Oracle-Lite database. The process is a synchronous process which has client and DatabaseService as the partner link. The goal of this project is to get two inputs from the user and send it over to the DatabaseService for it to select the rows from the table based on the inputs sent. The process activity has an invoke function which had two varibles Invoke_1_inputVarible and Invoke_1_outputVarible. I have included the *.xds that contains the database schema. When I compile the project i get the following error
    Error(38): [Error ORABPEL-10035]: wrong messageType [Description]: in line 38 of "D:\OraBPELPM_2\integration\jdev\jdev\mywork\Workspace1\Login\Login.bpel", messageType "{http://xmlns.oracle.com/pcbpel/adapter/db/ds/}EmployeeRole_msg" of variable "Invoke_1_dsSelect_InputVariable" does not match the expected messageType "{http://xmlns.oracle.com/pcbpel/adapter/db/ds/}dsSelect_inparameters" in <invoke>. [Potential fix]: make sure the correct variable is used in invoke.
    My question is how do I assign correct messageType for the variables.
    XSD File:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/Login" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/Login" elementFormDefault="unqualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="EmployeeRoleCollection" type="EmployeeRoleCollection"/>
    <xs:element name="EmployeeRole" type="EmployeeRole"/>
    <xs:complexType name="EmployeeRoleCollection">
    <xs:sequence>
    <xs:element name="EmployeeRole" type="EmployeeRole" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EmployeeRole">
    <xs:sequence>
    <xs:element name="empid" type="xs:decimal" minOccurs="0" nillable="true"/>
    <xs:element name="password" type="xs:string" minOccurs="0" nillable="true"/>
    <xs:element name="role" type="xs:string" minOccurs="0" nillable="true"/>
    <xs:element name="uid" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="findAllInputParameters" type="findAll"/>
    <xs:complexType name="findAll">
    <xs:sequence/>
    </xs:complexType>
    <xs:element name="dsSelectInputParameters" type="dsSelect"/>
    <xs:complexType name="dsSelect">
    <xs:sequence/>
    </xs:complexType>
    </xs:schema>
    DatabaseService.wsdl
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions
    >
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/Login"
    schemaLocation="EmployeeRole_table.xsd"/>
    </schema>
    </types>
    <message name="EmployeeRoleCollection_msg">
    <part name="EmployeeRoleCollection" element="top:EmployeeRoleCollection"/>
    </message>
    <message name="dsSelect_inparameters">
    <part name="dsSelect_inparameters" element="top:dsSelectInputParameters"/>
    </message>
    <message name="EmployeeRole_msg">
    <part name="EmployeeRole" element="top:EmployeeRole"/>
    </message>
    <portType name="ds_ptt">
    <operation name="dsSelect">
    <input message="tns:dsSelect_inparameters"/>
    <output message="tns:EmployeeRoleCollection_msg"/>
    </operation>
    <operation name="queryByExample">
    <input message="tns:EmployeeRole_msg"/>
    <output message="tns:EmployeeRoleCollection_msg"/>
    </operation>
    </portType>
    <binding name="ds_binding" type="tns:ds_ptt">
    </binding>
    <service name="ds">
    <port name="ds_pt" binding="tns:ds_binding">
    <jca:address location="eis/DB/BPELSamples"
    />
    </port>
    </service>
    </definitions>
    <b>Login.bpel</b>
    <process name="Login" targetNamespace="http://xmlns.oracle.com/Login" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/ds/" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xmlns.oracle.com/pcbpel/adapter/db/top/Login" xmlns:client="http://xmlns.oracle.com/Login" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
    <partnerLinks>
    <partnerLink name="client" partnerLinkType="client:Login" myRole="LoginProvider"/>
    <partnerLink name="PartnerLink_1" partnerRole="ds_role" partnerLinkType="ns1:ds_plt"/>
    </partnerLinks>
    <variables>
    <variable name="inputVariable" messageType="client:LoginRequestMessage"/>
    <variable name="outputVariable" messageType="client:LoginResponseMessage"/>
    <variable name="Invoke_1_dsSelect_InputVariable" messageType="ns1:EmployeeRole_msg"/>
    <variable name="Invoke_1_dsSelect_OutputVariable" messageType="ns1:EmployeeRoleCollection_msg"/>
    </variables>
    <sequence name="main">
    <receive name="receiveInput" partnerLink="client" portType="client:Login" operation="process" variable="inputVariable" createInstance="yes"/>
    <assign name="Assign_1">
    <copy>
    <from variable="inputVariable" part="payload"/>
    <to variable="Invoke_1_dsSelect_InputVariable" query="/ns2:EmployeeRole"/>
    </copy>
    </assign>
    <invoke name="Invoke_1" partnerLink="PartnerLink_1" portType="ns1:ds_ptt" operation="dsSelect" inputVariable="Invoke_1_dsSelect_InputVariable" outputVariable="Invoke_1_dsSelect_OutputVariable"/>
    <assign name="Assign_2">
    <copy>
    <from variable="Invoke_1_dsSelect_OutputVariable" part="EmployeeRoleCollection"/>
    <to variable="outputVariable" part="payload"/>
    </copy>
    </assign>
    <reply name="replyOutput" partnerLink="client" portType="client:Login" operation="process" variable="outputVariable"/>
    </sequence>
    </process>
    Thanks,
    Niv

    Help! SOS....
    Niv

  • Error retrieving record through database adapter.  (ORABPEL-11614)

    Am trying to pass a customer name into a database adapter to retrieve customer info. It is working, but it is also faulting.
    When I invoke the process with the name "3M COMPANY", I get the following audit message
    [2008/06/05 17:36:01] Faulted while invoking operation "GetCustomerDataSelect_paramName" on provider "GetCustomerData".less
    -<messages>
    -<input>
    -<customerName>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="GetCustomerDataSelect_paramName_inparameters">
    -<GetCustomerDataSelect_paramNameInputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/GetCustomerData">
    <paramName>3M COMPANY
    </paramName>...
    WSIF JCA Execute of operation 'GetCustomerDataSelect_paramName' failed due to: DBReadInteractionSpec Execute Failed Exception.
    Query name: [GetCustomerDataSelect], Descriptor name: [GetCustomerData.Cstcgvmp].
    ; nested exception is:
         ORABPEL-11614
    DBReadInteractionSpec Execute Failed Exception.
    Query name: [GetCustomerDataSelect], Descriptor name: [GetCustomerData.Cstcgvmp].
    See root exception for the specific exception. Caused by Exception [TOPLINK-6044] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.QueryException
    Exception Description: The primary key read from the row [DatabaseRecord(
         => 101
         => A
         => 3M COMPANY
         => 3M CENTER
         => SAINT PAUL
         => MN
         => 551441000
         => 22)] during the execution of the query was detected to be null. Primary keys must not contain null.
    Query: ReadAllQuery(bpel___localhost_default_Onboarding_1_0__MD5_8f8d9220a0bc6957be6fb657cf4ffabd_.GetCustomerData.Cstcgvmp).
    </summary ...
    The retrieved data is correct. The Database Adapter is pointing to an AS/400 table which does not have primary keys defined. In the offline database, I've defined CGVMSTCST to be the primary key.
    The toplink_mappings.xml reflects that:
    <opm:alias>Cstcgvmp</opm:alias>
    <opm:primary-key>
    <opm:field table="CSTCGVMP" name="CGVMSTCST" xsi:type="opm:column"/>
    </opm:primary-key>
    The value of this field for 3M is 101 (which was correctly picked up).
    Why am I getting a primary key is null error?

    I did, but I'm not sure how.
    I deleted the Database Adapter and the associated offline file and reran the wizard (having a better idea of how to implement a parameter search) and it worked.
    I was not able to identify what was created differently the second time.

  • Error in Database Adapter Insert Or Update (Merge) Operation

    I have a simple SOA composite which reads XML files and posts data to a database table using a database adapter. I would like to perform a merge operation but I keep getting this error in the log -
    SEVERE: JCABinding=> XML2DB:WriteInvToDB [ WriteInvToDB_ptt::merge(InventoryCollection) ] Could not invoke operation 'merge' against the 'Database Adapter' due to:
    BINDING.JCA-11616
    DBWriteInteractionSpec Execute Failed Exception.
    merge failed. Descriptor name: [WriteInvToDB.Inventory].
    Caused by java.lang.NullPointerException.
    Here is the complete log:
    SEVERE: JCABinding=> XML2DB:WriteInvToDB [ WriteInvToDB_ptt::merge(InventoryCollection) ] Could not invoke operation 'merge' against the 'Database Adapter' due to:
    BINDING.JCA-11616
    DBWriteInteractionSpec Execute Failed Exception.
    merge failed. Descriptor name: [WriteInvToDB.Inventory].
    Caused by java.lang.NullPointerException.
    Please see the logs for the full DBAdapter logging output prior to this exception.
    Jan 3, 2009 10:58:06 AM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log
    SEVERE: JCABinding=> [default/XML2DB!1.0*2008-12-23_13-27-06_078.WriteInvToDB]:merge One-way interaction failed
    Jan 3, 2009 10:58:06 AM oracle.tip.mediator.serviceEngine.MediatorServiceEngine post2Mesh
    SEVERE: Post 2 messah failed
    oracle.fabric.common.FabricInvocationException: BINDING.JCA-12563
    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. Descriptor name: [WriteInvToDB.Inventory].
    Caused by java.lang.NullPointerException.
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
         at oracle.integration.platform.blocks.adapter.fw.jca.cci.EndpointInteractionException.getFabricInvocationException(EndpointInteractionException.java:74)
         at oracle.integration.platform.blocks.adapter.AdapterReference.post(AdapterReference.java:226)
         at oracle.integration.platform.blocks.mesh.AsynchronousMessageHandler.doPost(AsynchronousMessageHandler.java:153)
         at oracle.integration.platform.blocks.mesh.MessageRouter.post(MessageRouter.java:152)
         at oracle.integration.platform.blocks.mesh.MeshImpl.post(MeshImpl.java:159)
         at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
    Caused by: BINDING.JCA-12563
    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. Descriptor name: [WriteInvToDB.Inventory].
    Caused by java.lang.NullPointerException.
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
         at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:428)
         at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeJcaReference(JCAInteractionInvoker.java:509)
         at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeAsyncJcaReference(JCAInteractionInvoker.java:493)
         at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAEndpointInteraction.performAsynchronousInteraction(JCAEndpointInteraction.java:429)
         at oracle.integration.platform.blocks.adapter.AdapterReference.post(AdapterReference.java:193)
         ... 49 more
    Caused by: BINDING.JCA-11616
    DBWriteInteractionSpec Execute Failed Exception.
    merge failed. Descriptor name: [WriteInvToDB.Inventory].
    Caused by java.lang.NullPointerException.
    Please see the logs for the full DBAdapter logging output prior to this exception.
         at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:488)
         at oracle.tip.adapter.db.exceptions.DBResourceException.outboundWriteException(DBResourceException.java:529)
         at oracle.tip.adapter.db.transaction.DBTransaction.commit(DBTransaction.java:287)
         at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:311)
         ... 53 more
    Caused by: java.lang.NullPointerException
         at oracle.toplink.descriptors.DescriptorQueryManager.putCachedUpdateCalls(DescriptorQueryManager.java:1605)
         at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.prepareUpdateObject(ExpressionQueryMechanism.java:1608)
         at oracle.toplink.internal.queryframework.StatementQueryMechanism.updateObject(StatementQueryMechanism.java:405)
         at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.updateObjectForWriteWithChangeSet(DatabaseQueryMechanism.java:1136)
         at oracle.toplink.queryframework.UpdateObjectQuery.executeCommitWithChangeSet(UpdateObjectQuery.java:69)
         at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:279)
         at oracle.toplink.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:47)
    Jan 3, 2009 10:58:06 AM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log
    WARNING: JCABinding=> ReadXML ReadXMLonReject: The resource adapter 'File Adapter' requested handling of a malformed inbound message. However, the following Service property has not been defined: 'rejectedMessageHandlers'. Please define it and redeploy the module. Will use the default Rejection Directory file://jca\ReadXML\rejectedMessages for now.
    Jan 3, 2009 10:58:06 AM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log
    WARNING: JCABinding=> ReadXML ReadXMLonReject: Sending invalid inbound message to Exception Handler:
    Jan 3, 2009 10:58:06 AM oracle.tip.mediator.common.error.ErrorMessageEnqueuer$EnqueuerThread run
    SEVERE: Failed to enqueue error message
    javax.jms.TransactionInProgressException: Cannot call commit on a XA capable JMS session.
         at oracle.j2ee.ra.jms.generic.RAUtils.make(RAUtils.java:595)
         at oracle.j2ee.ra.jms.generic.RAUtils.toTransactionInProgressException(RAUtils.java:846)
         at oracle.j2ee.ra.jms.generic.RAUtils.toTransactionInProgressException(RAUtils.java:840)
         at oracle.j2ee.ra.jms.generic.SessionWrapper.commit(SessionWrapper.java:197)
         at oracle.tip.mediator.common.error.ErrorMessageEnqueuer$EnqueuerThread.run(ErrorMessageEnqueuer.java:187)
         at java.lang.Thread.run(Thread.java:595)
    Any help is greatly appreciated.
    The INSERT operation works fine with the database adapter, but I cannot get MERGE and UPDATE operations to work as expected!
    Thanks.

    hi Sudeep,
    We are at first hand struggling with DB adapter problem getting down everytime. Don't know the reason why.
    DB adapter is in down state and when trying to make it up gives below error:
    "weblogic.application.ModuleException: weblogic.connector.exception.RAException: Jndi Name is null or empty."
    I just created a simple sync process using DB adapter (custom select) and deplyed successfully. I hope jndi name is not to be configured in weblogic-ra.xml file.
    This is the first time we are using this JNDI name (eis/DB/calvindb).
    Any inputs will be appreciated.
    Thanks,
    Nikhil

  • PollingInterval in database adapter

    Hi,
    I have SOA 11g with two nodes. I have a database adapter that polls a table after every 30 seconds and perform logical delete on the rows read. I came across interesting situation. When one node is up and PollingInterval=30, it works okay and polling is done right after 30 seconds but when both nodes are up the PollingInterval property doesnt work as expected. It will poll after 24 seconds and then second node will again poll after 6 seconds (node1+node2=30 seconds in total).
    Just wondering if I am missing something or doing something wrong? I want each node to run after 30 seconds (i.e only one instance after 30 seconds). My JCA file is:
    <connection-factory location="eis/DB/myConn" UIConnectionName="Connection1" adapterRef=""/>
    <endpoint-activation portType="MY_DATABASE_ptt" operation="receive">
    <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
    <property name="DescriptorName" value="MY_DATABASE.XYZTABLE"/>
    <property name="QueryName" value="MY_DATABASESelect"/>
    <property name="MappingsMetaDataURL" value="MY_DATABASE-or-mappings.xml"/>
    <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
    <property name="MarkReadColumn" value="PROCESSED_FLAG"/>
    <property name="MarkReadValue" value="P"/>
    <property name="MarkUnreadValue" value="Y"/>
    <property name="PollingInterval" value="30"/>
    <property name="MaxRaiseSize" value="100"/>
    <property name="MaxTransactionSize" value="100"/>
    <property name="SequencingColumn" value="TRANSACTION_ID"/>
    <property name="NumberOfThreads" value="1"/>
    <property name="ReturnSingleResultSet" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    Any help will be appreciated.
    Thanks!

    Hi,
    Just have at look at this can be helpful
    http://javaoraclesoa.blogspot.ca/2012/04/polling-with-dbadapter-in-clustered.html'
    This reserved value (MarkReservedValue in _db.jca) causes an instance of the process to set an identifier. This identifier is skipped by the other polling instances in the cluster.*
    Regards,
    Tarak.

  • Database Adapter using Logical Delete Polling Strategy not updating field

    I have an ESB database adapter defined against a table. The adapter is set to use the Logical Delete Polling Strategy, and the table has an extra column defined as the "delete" field. When I register the adapter to the ESB and add a record to the table, the adapter reads the contents of the record as expected. However, 15 seconds later (that being the polling interval) it reads it again, and again 15 seconds after that, ad infinitum.
    I have defined the logical delete field as a single character field and set the Read value for "T" (a record is normally inserted with that field having a null value). Results as outlined in the previous paragraph. I redefined the field as a number and set the Read value to "1" (with a record normally inserted with that field having a value of "0"). Results as outlined in the previous paragraph.
    Apparently the update of the logical delete value to the Read value is not occurring. My question (obviously) is: Why?
    Thanks for your time.

    Here is the adapter WSDL:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions
    name="Poll_PM_LOG"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/Poll_PM_LOG/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/Poll_PM_LOG/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:pc="http://xmlns.oracle.com/pcbpel/"
    xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/PollPMLOG"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/PollPMLOG"
    schemaLocation="PollPMLOG_table.xsd"/>
    </schema>
    </types>
    <message name="LogCollection_msg">
    <part name="LogCollection" element="top:LogCollection"/>
    </message>
    <portType name="Poll_PM_LOG_ptt">
    <operation name="receive">
    <input message="tns:LogCollection_msg"/>
    </operation>
    </portType>
    <binding name="Poll_PM_LOG_binding" type="tns:Poll_PM_LOG_ptt">
    <pc:inbound_binding/>
    <operation name="receive">
    <jca:operation
    ActivationSpec="oracle.tip.adapter.db.DBActivationSpec"
    DescriptorName="PollPMLOG.Log"
    QueryName="Poll_PM_LOG"
    PollingStrategyName="LogicalDeletePollingStrategy"
    MarkReadFieldName="PROCESSED"
    MarkReadValue="T"
    SequencingFieldName="ID"
    MaxRaiseSize="1"
    MaxTransactionSize="unlimited"
    PollingInterval="15"
    NumberOfThreads="1"
    UseBatchDestroy="false"
    ReturnSingleResultSet="false"
    MappingsMetaDataURL="PollPMLOG_toplink_mappings.xml" />
    <input/>
    </operation>
    </binding>
    <service name="Poll_PM_LOG">
    <port name="Poll_PM_LOG_pt" binding="tns:Poll_PM_LOG_binding">
    <jca:address location="eis/DB/PM"
    UIConnectionName="PM"
    ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory"
    />
    </port>
    </service>
    <plt:partnerLinkType name="Poll_PM_LOG_plt" >
    <plt:role name="Poll_PM_LOG_role" >
    <plt:portType name="tns:Poll_PM_LOG_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    The field PROCESSED is defined as CHAR(1), and is normally null when a record is inserted. The value of the field is to be set to 'T' when the record is read by the polling adapter.

  • Database Adapter Logical Delete Not Working....

    Hi,
    I have an issue with the DB Adapter under BPEL GA 10.1.3.1. I'm trying to do a logical delete on a table however the logical delete isn't updating the records to show that they've been processed.
    I've created a simple test case with a 3 column table sitting in Oracle XE DB with the third column containing the logical delete flag. I've created a new process consisting of a DB Adapter partnerlink and a receive. In the logs (below) I can see the Select statement followed by the Update (logical delete) occurring but the Update statement just actually run against the DB. I can copy the update statement and run this through SQL as the same DB user and it updates the records.
    Has anyone seen this before?
    Thanks.
    <2006-11-13 15:06:30,901> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> client acquired
    <2006-11-13 15:06:30,917> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> SELECT A, B, C FROM F_TABLE WHERE (C = ?)
         bind => [IN]
    <2006-11-13 15:06:30,917> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> client acquired
    <2006-11-13 15:06:30,917> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> TX beginTransaction, status=NO_TRANSACTION
    <2006-11-13 15:06:30,917> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> TX Internally starting
    <2006-11-13 15:06:30,917> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> external transaction has begun internally
    <2006-11-13 15:06:30,917> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.DBAdapterConstants isElementFormDefaultQualified> Element is FTABLE namespace is http://xmlns.oracle.com/pcbpel/adapter/db/top/ReadTABLE
    <2006-11-13 15:06:30,933> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.ox.O_XParser parse> Transforming the row(s) [<FTABLE Record A />, <FTABLE Record B />, <FTABLE Record C />] read from the database into xml.
    <2006-11-13 15:06:30,933> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> [Read_TABLE_ptt::receive(FTABLECollection)]Posting inbound JCA message to BPEL Process 'Read_TABLE' receive activity:
    <FTABLECollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/ReadTABLE">
    <FTABLE>
    <a>Record</a>
    <b>A</b>
    <c>IN</c>
    </FTABLE>
    <FTABLE>
    <a>Record/a>
    <b>B</b>
    <c>IN</c>
    </FTABLE>
    <FTABLE>
    <a>Record</a>
    <b>C</b>
    <c>IN</c>
    </FTABLE>
    </FTABLECollection>
    <2006-11-13 15:06:30,933> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Delivery Thread 'JCA-work-instance:Database Adapter-6 performing unsynchronized post() to localhost
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> Begin batch statements
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> UPDATE F_TABLE SET C = ? WHERE ((A = ?) AND (B = ?))
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log>      bind => [OUT, Record, A]
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log>      bind => [OUT, Record, B]
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log>      bind => [OUT, Record, C]
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> End Batch Statements
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> TX commitTransaction, status=STATUS_ACTIVE
    <2006-11-13 15:06:31,073> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> TX Internally committing
    <2006-11-13 15:06:31,323> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> external transaction has committed internally
    <2006-11-13 15:06:31,323> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> client released
    <2006-11-13 15:06:31,323> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> onBatchBegin: Batch 'bpel___localhost_default_Read_TABLE_1_4__1163389596916.ReadTABLE.FTABLE1163394391323' (bpel___localhost_default_Read_TABLE_1_4__1163389596916.ReadTABLE.FTABLE1163394391323) starting...
    <2006-11-13 15:06:31,323> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> onBatchComplete: Batch 'bpel___localhost_default_Read_TABLE_1_4__1163389596916.ReadTABLE.FTABLE1163394391323' (bpel___localhost_default_Read_TABLE_1_4__1163389596916.ReadTABLE.FTABLE1163394391323) has completed - final size = 3
    <2006-11-13 15:06:31,323> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> client released
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELExecution::Read_TABLE> entering <scope> at line [no line]
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELExecution::Read_TABLE> entering <scope> at line [no line]
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELExecution::Read_TABLE> entering <sequence> at line 55
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELExecution::Read_TABLE> entering <sequence> at line 55
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELEntryReceiveWMP::Read_TABLE> executing <receive> at line 58
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELEntryReceiveWMP::Read_TABLE> set variable 'Read_TABLE_receive_InputVariable' to be readOnly, payload ref {FTABLECollection=108e2d22815529ac:-3067a9ff:10edf296212:-78da}
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELEntryReceiveWMP::Read_TABLE> variable 'Read_TABLE_receive_InputVariable' content {FTABLECollection=oracle.xml.parser.v2.XMLElement@1303465}
    <2006-11-13 15:06:31,339> <DEBUG> <default.collaxa.cube.engine.bpel> <BPELInvokeWMP::Read_TABLE> executing <invoke> at line 61

    Hi,
    I haven't yet used 10.1.3, but we had a number of issues under 10.1.2.0.2 around caching and upd/ins/del.
    A number of things we changed were
    - set usesBatchWriting to false in oc4j-ra.xml file
    - set identityMap to NoIdentityMap via toplink work bench
    - set should-always-refresh-cache-on-remote,should-disable-cache-hits,should-disable-cache-hits-on-remote to true in toplink mappings.xml file (note this last one is only if toplink was not used to insert the source data).
    Ashley

  • Dynamically Pass sql query in Database adapter

    hi',
    How can we dynamically pass sql query in Database adapter, is there any way, I am using SOA 11G.
    Thanks
    Yatan

    Hi,
    Tried that too. No luck. Gives me this.
    The selected operation process could not be invoked.
    An exception occured while invoking the webservice operation. Please see logs for more details.
    oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: Exception occured when binding was invoked.
    Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'selectUsingIn' failed due to: Pure SQL Exception.
    Pure SQL Execute of select interface_id, property_name, property_value from ( (?) ) failed.
    Caused by java.sql.SQLSyntaxErrorException: ORA-00903: invalid table name
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
    Regards,
    Neeraj Sehgal

  • Multiple stored procedure in Database Adapter

    Can I manually create the wsdl for database adapter, which can have multiple operations for different stored procedures?
    I tried creating a wsdl as -
    <definitions
    name="CustomAdapter"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/db/"
    >
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/" location="DBAdapterOutboundHeader.wsdl"/>
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    schemaLocation="myadapter.xsd" />
    </schema>
    </types>
    <message name="args_in_msg_tscp1">
    <part name="InputParameters" element="db:InputParametersTSCP1"/>
    </message>
    <message name="args_in_msg_sample">
    <part name="InputParameters" element="db:InputParametersSAMPLE"/>
    </message>
    <message name="args_out_msg_sample">
    <part name="OutputParameters" element="db:OutputParametersSAMPLE"/>
    </message>
    <portType name="Proc1_ptt">
    <operation name="Proc1">
    <input message="tns:args_in_msg_tscp1"/>
    </operation>
    <operation name="Proc2">
    <input message="tns:args_in_msg_sample"/>
    <output message="tns:args_out_msg_sample"/>
    </operation>
    </portType>
    <binding name="Proc1_binding" type="tns:Proc1_ptt">
    <jca:binding />
    <operation name="Proc1">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="TSCP1"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    </operation>
    <operation name="Proc2">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="MYSAMPLEPROC"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    <output/>
    </operation>
    </binding>
    <service name="Proc1">
    <port name="Proc1_pt" binding="tns:Proc1_binding">
    <!--Your runtime connection is declared in
    J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
    These mcf properties here are from your design time connection and
    save you from having to edit that file and restart the application server
    if eis/DB/System25 is missing.
    These mcf properties are safe to remove.-->
    <jca:address location="eis/DB/DBConn25" UIConnectionName="System25"
    />
    </port>
    </service>
    <plt:partnerLinkType name="Proc1_plt" >
    <plt:role name="Proc1_role" >
    <plt:portType name="tns:Proc1_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    Then I copied this wsdl and corresponding xsd to my BPEL process and created a partnerlink for this wsdl.
    I added two invoke activities, one for Proc1 operation and other for Proc2 operation.
    When I tried testing this BPEL process, the BPEL process manager was invoking only Proc1 operation for both invoke activities and giving me error as-
    <Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
    <faultcode>null:bindingFault</faultcode>
    <faultstring>business exception</faultstring>
    <faultactor>cx-fault-actor</faultactor>
    <detail>
    <code>1400</code>
    <summary>file:/D:/Morrisons/OracleProducts/product/Oracle_SOA/bpel/domains/TestPOC/tmp/.bpel_MyAdapterTest_1.0_c564165702d743346cadb68bc5bbb594.tmp/CustomAdapter.wsdl [ Proc1_ptt::Proc1(InputParameters) ] - WSIF JCA Execute of operation 'Proc2' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable. </summary>
    <detail> Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 Error Code: 1400</detail>
    </detail>
    </Fault>
    I want to create only one wsdl for all the strored procedures.

    Can I manually create the wsdl for database adapter, which can have multiple operations for different stored procedures?
    I tried creating a wsdl as -
    <definitions
    name="CustomAdapter"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/db/"
    >
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/" location="DBAdapterOutboundHeader.wsdl"/>
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    schemaLocation="myadapter.xsd" />
    </schema>
    </types>
    <message name="args_in_msg_tscp1">
    <part name="InputParameters" element="db:InputParametersTSCP1"/>
    </message>
    <message name="args_in_msg_sample">
    <part name="InputParameters" element="db:InputParametersSAMPLE"/>
    </message>
    <message name="args_out_msg_sample">
    <part name="OutputParameters" element="db:OutputParametersSAMPLE"/>
    </message>
    <portType name="Proc1_ptt">
    <operation name="Proc1">
    <input message="tns:args_in_msg_tscp1"/>
    </operation>
    <operation name="Proc2">
    <input message="tns:args_in_msg_sample"/>
    <output message="tns:args_out_msg_sample"/>
    </operation>
    </portType>
    <binding name="Proc1_binding" type="tns:Proc1_ptt">
    <jca:binding />
    <operation name="Proc1">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="TSCP1"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    </operation>
    <operation name="Proc2">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="MYSAMPLEPROC"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    <output/>
    </operation>
    </binding>
    <service name="Proc1">
    <port name="Proc1_pt" binding="tns:Proc1_binding">
    <!--Your runtime connection is declared in
    J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
    These mcf properties here are from your design time connection and
    save you from having to edit that file and restart the application server
    if eis/DB/System25 is missing.
    These mcf properties are safe to remove.-->
    <jca:address location="eis/DB/DBConn25" UIConnectionName="System25"
    />
    </port>
    </service>
    <plt:partnerLinkType name="Proc1_plt" >
    <plt:role name="Proc1_role" >
    <plt:portType name="tns:Proc1_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    Then I copied this wsdl and corresponding xsd to my BPEL process and created a partnerlink for this wsdl.
    I added two invoke activities, one for Proc1 operation and other for Proc2 operation.
    When I tried testing this BPEL process, the BPEL process manager was invoking only Proc1 operation for both invoke activities and giving me error as-
    <Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
    <faultcode>null:bindingFault</faultcode>
    <faultstring>business exception</faultstring>
    <faultactor>cx-fault-actor</faultactor>
    <detail>
    <code>1400</code>
    <summary>file:/D:/Morrisons/OracleProducts/product/Oracle_SOA/bpel/domains/TestPOC/tmp/.bpel_MyAdapterTest_1.0_c564165702d743346cadb68bc5bbb594.tmp/CustomAdapter.wsdl [ Proc1_ptt::Proc1(InputParameters) ] - WSIF JCA Execute of operation 'Proc2' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable. </summary>
    <detail> Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 Error Code: 1400</detail>
    </detail>
    </Fault>
    I want to create only one wsdl for all the strored procedures.

Maybe you are looking for

  • Just updated to firefox 3.6.8 and now my laptop's hard drive failed after subsequent firefox crashes.

    I just updated to firefox 3.6.8 this morning after getting prompted to update as I started firefox. The firefox update successfully installed page said that I should update to the latest adobe flashplayer, so I did that as well, although that install

  • Problem when sorting data based on date

    I am trying to sort the following data based on the Transaction Receipt date column,unable to do it usi g the following syntax: <?sort:TRANSACTION_RECEIPT_DATE;'ascending';data-type='date'?> I have problem in converting the date in report to canonica

  • Performance issue in KM as a WebDAV client

    Hi all, I have configured KM as a WebDAV client.But there is a performance issue.Whenever i try accessing the folder,its been cached. Can some suggest how to avoid caching of data everytime. I am using a memory cache. thanx and regards, anuradha

  • Turkish Character Problem Using Database Link

    Hi all, I have a link created to a 10g XE database, from a 9i database. The link works fine for everything, but there is a problem with Turkish characters. Consider following query; INSERT INTO xxer_char_deneme_brk@teta -- obviously teta is the link

  • Pivot table data format type

    Hi. I was trying to make a simple crosstable report with this structure: ----------Name ID-------Description Example: ---------Name1------------Name2-------------Name3 ID1---Description1 ID2----------------Description2 ID3----------------------------