RunTime binding of database adapter.

Hi All,
I am trying to work through a requirement where the ESB uses a DB adapter to extract information from various data sources (databases), which have the same table structres.
Design is to have a single interface, which would connect into the source system, wherein the connection string needs to be passed through the adapter at run time.
Please advice how this can be achieved.
Regards,
Sambhav.

Thanks for the reply Marc.
Your advise is good, however, for my design, invoking a SQL package would be an overkill..is it possible that we can override the behavour of the JCA to achieve run time binding?
Regards,
Sambhav.
Edited by: Sambhav on Jun 9, 2009 4:16 AM

Similar Messages

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

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

  • Database Adapter - Using in Clause

    In the Database adapter - I need to generate a Query like
    Select * from employee where empid in (1,2).
    empid - is a integer column
    I have tried the pure sql option and generated a query like Select * from employee where empid in (#ids).
    In the transformation, I am creating a comma separated string for ids and have bound it to ids variable.
    The above works for a single ID but throws an binding error when multiple Id's are passed.
    Whats the best way to handle 'In' Clause on a integer column? (There is no issue with string columns - multiple values can be passed)

    You will need utility PL/SQL function for that:
    create or replace type myTableType
    as table of number;
    create or replace function str2tbl( p_str in varchar2 ) return myTableType
    as
    l_str long default p_str || ',';
    l_n number;
    l_data myTableType := myTabletype();
    begin
    loop
    l_n := instr( l_str, ',' );
    exit when (nvl(l_n,0) = 0);
    l_data.extend;
    l_data( l_data.count ) :=
    ltrim(rtrim(substr(l_str, 1, l_n - 1)));
    l_str := substr( l_str, l_n+1 );
    end loop;
    return l_data;
    end;
    and then in Db Adapter:
    Select * from employee where empid in ( select * from TABLE ( cast ( str2tbl( #ids) as myTableType ))
    Hope that helps,
    Adam

  • 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

  • Java.sql.SQLException: Invalid column index in database adapter

    I have a query that works fine if I run the sql in a JDeveloper SQL editor, but I get a "java.sql.SQLException: Invalid column index" error if I paste it in a database adapter. If I put this query in the adapter:
    select <column>
      from <table>
       where <column> in (select
        trim( substr (txt,
              instr (txt, ',', 1, level  ) + 1,
              instr (txt, ',', 1, level+1)
                 - instr (txt, ',', 1, level) -1 ) )
          as token
        from (select ','||#bindVariable||',' txt
                from dual)
      connect by level <=
         length(#bindVariable)-length(replace(#bindVariable,',',''))+1)I get the error. But if I just put the sub query in the adapter as:
    select
        trim( substr (txt,
              instr (txt, ',', 1, level  ) + 1,
              instr (txt, ',', 1, level+1)
                 - instr (txt, ',', 1, level) -1 ) )
          as token
        from (select ','||#bindVariable||',' txt
                from dual)
      connect by level <=
         length(#bindVariable)-length(replace(#bindVariable,',',''))+1the error goes away. Does anyone know what might be causing this?
    Thanks in advance

    Hi,
    Could you please make sure your binding style(Oracle Positional,Oracle named..etc) of the Seeded VO and Custom Vo are same.
    This is the option you will get when you are extending your vo. So make sure that both are same.
    You can refer the below link too
    VO extension leads to "Invalid column index" exception
    Thanks
    Bharat

  • 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

  • Conditional where clauses in database adapter

    I am trying to write a query in a database adapter that allows for conditional where clauses. Specifically, I want to include or not include a where clause (and clause) if an input variable is empty or not. Can a prepared statement with lexical parameters be used in a database adapter? Or is there another way to do this?
    Thanks in advance.

    I am afraid that you can only bind parameters to the SQL, you can't bind the SQL itself to the SQL. We do have QueryByExample support, where based on what fields are set in an example object, it will construct a different SQL select.
    If you pass in
    <Address>
    <street/>
    <city>
    <state>CA</state>
    </Address>
    it will return all addresses in California. If you pass in:
    <Address>
    <street/>
    <city>Los Angeles</city>
    <state/>
    </Address>
    it will return all addresses in Los Angeles.
    Thanks
    Steve

  • How to pass dynamic values to JDBC Database adapter in PureSQL operation?

    I want to fetch the records from the table via JDBC database adapter with the criteria but I should not hardcode the values inside my query. I am using Execute by PureSQL operation. Values might change in future and it is the reason I should not hardcode the values and instead I should pass it dynamically.
    This is my query:
    SELECT FROM Table0 t0, Table1 t1 WHERE t0.Field1= 'ABC' AND t0.Field2= 'DEF' AND t0.Field3 = 'CBA' AND t1.FLAG IS NULL AND t1.Field1 = t0.Field4*
    The values 'ABC', 'DEF', 'CBA', 'NULL' are not fixed and it can be changed. Hence, I need to pass the values for these fields dynamically. What must be passed in the query and where to pass the User Defined Values during the run time.
    Please can anyone suggest how to resolve this. I am using SOA 11g.
    Thanks in advance.

    Hi,
    Ensure that you use the Adapter Configuration Wizard to do the query modification suggested by Arik. This will allow the schema for the DB Adapter getting created automatically. Also revisit this schema to assure that the data types of the bind parameters (parameters with #) have been correctly populated in the schema.
    You can get some help from this too although this doesn't fully match your use-case.
    Regards,
    Neeraj Sehgal

  • Dynamic JNDI name for database adapter in BPEL

    Hi All,
    I am having some major issues trying to make the JNDI location for the database adapter dynamic (10.1.3.4). I already went through the followin link, but that didnt work for me: http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html
    The below example works, but only the first run. Second time around the first runs JNDI value gets retained and connects to that database.
    This is what worked atleast the first time.
    I parameterized the JNDI with a variable defined in the partnerlink definition in the bpel.xml
    In Bpel. xml
    <partnerLinkBinding name="updatetbl">
    <property name="wsdlLocation">updatetbl.wsdl</property>
    <property name="CONN">eis/DB/na</property>
    <property name="retryInterval">60</property>
    </partnerLinkBinding>
    In the updatetbl.wsdl file
    <service name="updatetbl">
    <port name="updatetbl_pt" binding="tns:updatetbl_binding">
    <jca:address location="$CONN"/>
    </port>
    </service>
    At run time I change the partnerlink CONN variable in embedded Java.
    try
    Element targetAdapterElement =(Element)getVariableData("Invoke_getFromTbl_OutputVariable","getFromTblOutputCollection","/ns2:getFromTblOutputCollection/ns2:getFromTblOutput/ns2:SRC_JNDI");
    getLocator().lookupProcess("JndiIssueTest").getDescriptor().getPartnerLinkBindings().getPartnerLinkBinding ("updatetbl").setPropertyValue ("CONN",targetAdapterElement.getTextContent());
    ("updatetbl").getPropertyValue ("CONN"));
    catch(Exception ex)
    addAuditTrailEntry("Error is " + ex);
    This works fine the first time, but the second time I run it to look at a different CONN value, it somehow still connects using the first runs value!
    If I redeploy or clear the WSDL cache, it works. But we plan to run it multiple times from several environment so manually or programatically clearing WSDL is not the right solution.
    Can someone tell me what is the standard process of doing this so it works everytime?
    Thanks,
    Shaf

    Shaf,
    Please refer the mail thread for details. If you want I can send you(send me your email id) the sample BPEL process which uses Dynamic JNDI.
    Re: How to externalize JNDI name (setting JNDI name dynamically)
    Thanks,
    Sen

  • Can't connect to Database from Database Adapter in BPM 11g

    I added a database adapter in BPM 11g to the composite.xml. This database adapter is just to load data into a XML document (UI payload). I can’t seem to get a connection to the database. I am getting a error, see 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 'GetRequestInfoSelect' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. FundsDisbursementProject:GetRequestInfo [ GetRequestInfo_ptt::GetRequestInfoSelect(GetRequestInfoSelect_inputParameters,FdRequestHeaderCollection) ] : 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='jndi/FDF_Database'. 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 jndi/FDF_Database. 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='jndi/FDF_Database'. 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 jndi/FDF_Database. 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>
    The docs says I need to add an Outbound Connection Pool to to SOA DbAdaptor in WebLogic. The problem is I can’t seem to make my changes take effect. This is the same error recorded here:
    BPEL DB adapter
    The problem is when trying to change the property, xADataSourceName, the changes don’t take effect. I also notice that in our test environment I get a dialog box to change the deployment plan. On my local WLS, I don’t get this dialog box. Either way the changes to xADataSourceName will not take effect.
    There must be a simple solution, I just don’t see it.
    Any help is greatly appreciated.
    Regards,
    Mark
    Edited by: M Peterson on Jul 15, 2010 5:33 AM

    When you enter the xADataSourceName property, did you hit enter on the field? If you simply tab off the field and hit save changes without hitting the enter key then it doesn't record the change to the property.

  • Error with Database adapter

              Hi All,
    I am using a database adapter to write values to database.The build was successful.However when i test it in the console with the sameple input I am getting the below error.
    ERROR:
    java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: Client received SOAP Fault from server : 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. NGW_PP_DBAdapter:Write_DB_Adapter [ Write_DB_Adapter_ptt::insert(StgProductportfolioCollection) ] : 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 <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/DB/DB_Conn'. 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 '<jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/DB_Conn. 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 Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception.
    Can anyone help me out to fix this error.
    Thanks in advance.

    From the error it is clear that your composite is not able to find the DB jndi.The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/DB/DB_Conn'.
    Please follow these steps:
    1) Have u created DB jndi eis/DB/DB_Conn that you are using on weblogic console.
    2) After creating did you redeploy the DB adapter on weblogic console.
    3) If you have done above 2 steps cross check your jndi exists in ur DB adapter or not on weblogic console.
    That could only be the possible reasons for the error you are getting.
    Hope this helps.
    Regards,
    Karan
    Oracle Fusion Middleware Blog

  • Database adapter causes deadlock

    We use database adapter on 3 standalone tables with no FK. At the beginning of the process, we do a read
    <jca:operation
    ActivationSpec="oracle.tip.adapter.db.DBActivationSpec" ...>
    At the end we do an update with
    <jca:binding />
    <operation name="merge">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBWriteInteractionSpec"...>
    That is, two db adapters at two ends.
    We have got deadlocks with <lock-mode>1</lock-mode> or <lock-mode>0</lock-mode>.
    We ahve two bpel nodes (10.1.2) in a cluster running on 10g RAC.
    Any suggestion of avoiding deadlocks?

    If you are using SOA Suite 11g you can use query by example option to achieve part of that.
    It support only equality check but on dynamic number of fields
    Adam

Maybe you are looking for

  • Db_load error: Cannot allocate memory

    Hi when I try to import an dump file, i always get this error: db_load: BDB2055 Lock table is out of available lock entries db_load: Cannot allocate memory I executed "db_load -f outdb/outdb2 -h env xass.db" and i have set max locks by: dbenv->set_lk

  • HP recovery could not restore computer error code 0xe0ef000e

    I bought a nice Solid State drive.  Unfortunately it is not possible to upgrade my system to new hard drive.  It fails every time with HP recovery could not restore computer error code 0xe0ef000e.  This is after removing everything...  graphics card,

  • Date in Oracle 10g

    Hi, OS:- HP-UX B.11.11 DATABASE:- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit When I check the date on OS using DATE command: 17:14:05 IST When I check in database using following query: select to_char(sysdate,'DD/MM/RRRR HH24:M

  • How to mount a device/filesystem at multiple mount points

    Hi, my device /dev/disk1s1 is auto mounted at /Volumes/UNTITLED. i want to mount the device again on different path like /Volumes/temp. so that i can have same device mounted at two different place. When i type " mount /dev/disk1s1 /Volumes/temp" in

  • Putting code from .as files directly into a frame instead

    Hi, I have a situation where I am modifying a working FLA file to work in just one Scene of a project I am working on. The FLA file is linked to two external .as files. I would like to take that code and call it from Fram 1 of the Scene as it will on