Advantages JCA DB Adapter vs EJB

The recent acquiring of Bea by Oracle unveiled a bunch of JCA adapters to do connectivity to (backend) resources. One of them is the DB Adapter. A wizard in JDeveloper creates a JCA adapter that internally uses Toplink. Although this looks like a nice approach still I have some hestitation to use it. You could decide to do the interaction with the database based on EJBs (or other more direct approach). No one in our team has any experience with JCA what so ever. So when the wizard or generated adapter fails it will be quit a problem for us.
The wizard based approach of the adapter gives you quick results. The downside is the restriction of what the wizard offers. If it does not fit you can edit the toplink stuff. But this would mean you have to dive deep inside the JCA internals. From a wizard to that is quit a big "jump". The need for this OR mapping somewhat puzzles me anyways although I can image that building a configurable adapter based on such a framework makes life easier (It is always good to combine existring stuff into a new product than building it all from scratch).
If this is the way forward into connecting with a database from OSB (in our case) it might be needed to invest in this approach. Questions are raised why we cannot use an approach that does not introduce a new stack of technologies (JCA, Toplink). We will be connecting with a single big Oracle database/Schema. Currently we are doing simple queries or calling PL/SQL functions. So looking at the current requirements the wizard will be able to handle that.
Does anyone has an opinion in this or some guidelines/best practices.
Regards
Frank (ALSB/J2EE background)

The downside is the restriction of what the wizard offers. If it does not fit you can edit the toplink stuff. But this would mean you have to dive deep inside the JCA internals.If it does not fit you can edit the toplink stuff. But this would mean you have to dive deep inside the JCA internals. From a wizard to that is quit a big "jump". The need for this OR mapping somewhat puzzles me anyways although I can image that building a configurable adapter based on such a framework makes life easier (It is always good to combine existring stuff into a new product than building it all from scratch).The value addition is highest when use-cases require connecting to various DB instances (eg Oracle, Sybase,DB2 etc). In such cases DB adapter will allow you to develop application very fast, with out spending much time in understanding and coding for each DB. Other value addition of using DB adapter is it allows getting inbound events from DB and has support for multiple strategies. As with any other technologies, improvements in productivity are accomplished by constantly adding technology stacks. So toplink/JCA is one such stack which improves productivity for accessing DB. There might be some rare cases which DB adapter doesn't support. In such cases we can always go with JavaCallout/JDBC approach.
Currently we are doing simple queries or calling PL/SQL functions. So looking at the current requirements the wizard will be able to handle thatDB adapter should well suite this case.Only issue you have raised is new stack being introduced which needs mastering.
These productivity improvements change from case to case. Eg. A use case that will only require requiring only one simple insert into Oracle DB is better coded with JavaCallout/JDBC rather than using DB adapter. A use-case that requires that we poll on table and get the update on table is very complex to implement by code(ie we have to write the logic for the polling /avoiding duplicate records) . In such cases it makes sense to use DB adapter rather than write java code.
At the end it boils down to deciding if the new stack is worth adopting given the productivity improvements it can bring.
My two cents
Manoj

Similar Messages

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

  • OSB Error in deploying a project with jca file adapter

    Hi,
    I am facing an issue where I am getting an error when deploying a service from Eclipse. I am using OSB/SOA 11.1.1.5 2 node cluster. I have an OSB service where I am writing to a file and am using file adapater. I created a composite with file adapter to write a file then imported .jac, .wsdl and composite into eclipse and generated a business service out of .jca file. When I deploy the project from eclipse I am getting the below error and am not able to deploy the project.
    Conflicts found during publish.
    Invalid JCA transport endpoint configuration, exception: javax.resource.ResourceException: Cannot locate Java class oracle.tip.adapter.file.outbound.FileInteractionSpec
    Cannot locate Java class oracle.tip.adapter.file.outbound.FileInteractionSpec
    I have FileAdapter deployed and pointed to OSB manage servers cluster. Here is a snippet of config.xml.
    <app-deployment>
        <name>FileAdapter</name>
        <target>SOA_Cluster,OSB_Cluster</target>
        <module-type>rar</module-type>
        <source-path>/app/oracle/fmw/Oracle_SOA1/soa/connectors/FileAdapter.rar</source-path>
        <deployment-order>321</deployment-order>
        <plan-dir xsi:nil="true"></plan-dir>
        <plan-path>/app/oracle/shared/SOA_Cluster/dp/FileAdapterPlan.xml</plan-path>
        <security-dd-model>DDOnly</security-dd-model>
        <staging-mode>nostage</staging-mode>
      </app-deployment>
    Also inside console -> deployments  -> FileAdapter -> Targets and OSB_Cluster is checked also.
    Here is the .jca file
    <adapter-config name="writeFile" adapter="File Adapter" wsdlLocation="writeFile.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
      <connection-factory location="eis/HAFileAdapter"/>
      <endpoint-interaction portType="Write_ptt" operation="Write">
        <interaction-spec className="oracle.tip.adapter.file.outbound.FileInteractionSpec">
          <property name="PhysicalDirectory" value="C:\ORACLE"/>
          <property name="Append" value="false"/>
          <property name="FileNamingConvention" value="a_%SEQ%.doc"/>
          <property name="NumberMessages" value="1"/>
        </interaction-spec>
      </endpoint-interaction>
    </adapter-config>
    Any idea what might be wrong.
    Thanks.

    I already have the fileAdapter JNDI is already configured in console. The error I am getting is during the deployment
    Conflicts found during publish.
    Invalid JCA transport endpoint configuration, exception: javax.resource.ResourceException: Cannot locate Java class oracle.tip.adapter.file.outbound.FileInteractionSpec
    Cannot locate Java class oracle.tip.adapter.file.outbound.FileInteractionSpec
    Thanks

  • Error getting VARCHAR2 in an object using JCA DB Adapter.

    I am facing a problem with the JCA db Adapter and i am not able to solve.
    I have created an Oracle Object like:
    CREATE OR REPLACE TYPE FACTURAE AS OBJECT
    ( MODALIDAD VARCHAR2(1),--I
    TipoEmisorfactura VARCHAR2(2),--EM
    Then i have created a procedure which returns the mentioned type;
    FUNCTION FUsorgen_obtenerdatosFactura (IDFACTURA IN NUMBER,strTipoFactura IN VARCHAR2)RETURN FACTURAE
    IS
    Then i have created a JCA db Adapter in Jdeveloper obtaining an wsdl and a xsd schema. Both files are valid
    Finally i have created a business service based on this wsdl. When i have tested this y get an xml like:
    <OutputParams>
    <MODALIDAD>???</MODALIDAD>
    <TipoEmisorfactura>12</TipoEmisorfactura>
    </OutputParams>
    I have checked that executing the procedure with the same parameters the field "MODALIDAD" has value "I" so it is not null nor "???".
    Have anybody an idea what is happening? Is there a known bug with personaliced objects and DB Adapter?
    Best Regards.

    Perhaps you could post your XSD and the instance XML that you provide for the input parameters.
    The generated XML for the output parameters should look something like the following.
    <OutputParameters ...>
        <FUsorgen_obtenerdatosFactura>
            <MODALIDAD> ... </MODALIDAD>
            <TipoEmisorfactura> ... </TipoEmisorfactura>
        </FUsorgen_obtenerdatosFactura>
    </OutputParameters>Notice that the function name is the name of pseudo-parameter encapsulating the attributes of your object type.

  • Error getting VARCHAR2 in a object using JCA DB Adapter.

    I am facing a problem with the JCA db Adapter and i am not able to solve.
    I have created an Oracle Object like:
    CREATE OR REPLACE TYPE FACTURAE AS OBJECT
    ( MODALIDAD VARCHAR2(1),--I
    TipoEmisorfactura VARCHAR2(2),--EM
    Then i have created a procedure which returns the mentioned type;
    FUNCTION FUsorgen_obtenerdatosFactura (IDFACTURA IN NUMBER,strTipoFactura IN VARCHAR2)RETURN FACTURAE
    IS
    Then i have created a JCA db Adapter in Jdeveloper obtaining an wsdl and a xsd schema. Both files are valid
    Finally i have created a business service based on this wsdl. When i have tested this y get an xml like:
    <OutputParams>
    <MODALIDAD>???</MODALIDAD>
    <TipoEmisorfactura>12</TipoEmisorfactura>
    </OutputParams>
    I have checked that executing the procedure with the same parameters the field "MODALIDAD" has value "I" so it is not null nor "???".
    Have anybody an idea what is happening? Is there a known bug with personaliced objects and DB Adapter?
    Best Regards.

    Perhaps you could post your XSD and the instance XML that you provide for the input parameters.
    The generated XML for the output parameters should look something like the following.
    <OutputParameters ...>
        <FUsorgen_obtenerdatosFactura>
            <MODALIDAD> ... </MODALIDAD>
            <TipoEmisorfactura> ... </TipoEmisorfactura>
        </FUsorgen_obtenerdatosFactura>
    </OutputParameters>Notice that the function name is the name of pseudo-parameter encapsulating the attributes of your object type.

  • Jca Ftp Adapter - XA support

    Hi,
    I have requirement to move files between two ftp servers. I have implemented this using OSB services configured with jca ftp adapter. After reading the files from the source system the adapter is configured to delete the file from source directory. While moving the files if the target system is unreachable the transaction should roll back and the file should remain in the source directory.
    Can this be achievable using jca ftp adapter. Does ftp adapter have XA capability?
    Thanks,
    Sai.

    OSB's ftp transport is transactional on the inbound side ( proxy service side) .. So you could use this.. Make sure you are not configuring any reply actions in any of the error handlers.. When route error occurs make sure the error is allowed to propagate back to the system error handler.. .
    By default osb's ftp transport will retry only once and then move the file to the error directory. If you want to change this behaviour say retry infinitely or retry after a delay , you have to change the dleivery failure settings for the internal JMS queue WLSAdmin Console --> JMSModules --> jmsResources --> wlsb.internal.transport.task.queue.ftp_auto_2 ( wlsb.internal.transport.task.queue.ftp_auto_3 and so on) Delivery Failure and change redelivery delay and redelivery limit.
    Note OSB's ftp transport is not transactional outbound(business service) , so you might get only "At-least once" (and not "exactly-once") quality of service using this ..

  • JCA Polling Adapter not picking up records

    Hello All
    I have been trying to configure a JCA polling adapter to pick up records from the Database, the first time I configured it, it read a whole bunch of records. Now I have configured the following in the database and am getting no records being polling.
    1. Poll for new or changed records
    2. Update a field in the table F40g02 for logical delete
    3. Read value = READ, UNREAD value = UNREAD, Reserved value = RESERVED
    4.Polling interval 5 seconds, Database XROWS per xml document 1, Database Rows per Transaction 10
    I ran the SQL specified in the adapter and I get a record. Does anyone have any idea.
    I have seen this warning in the EM
    Database Adapter <oracle.tip.adapter.db.inbound.IPAddrPollingService getUniqueMarkReservedValue> The markReservedValue of distributed polling might not be a unique value.  To make it so, you can add the last x digits (default = 2) of the host IP address using this format for the MarkReservedValue: [original_val]${IP[-x]}
    Regards

    Hello
    The problem I am facing is I can't get the records that are processed (already READ) to not poll again despite the value being changed to the READ value configured, if I set the READ value in the configuration it will poll every record all the time despite the fact it is equal to the READ value.  Then if I set the READ value and any other value no records will poll.
    Consider 4 records in the DB (currently in test I have 431 but I have used distributed locking and ReturnSingleResultSet to limit it)
    ID = 1, STATUS = PROCESSED
    ID = 2, STATUS = UNPROCESSED
    ID = 3, STATUS = UNPROCESSED
    ID = 4, STATUS = OTHER
    Config 1: If READ = PROCESSED records 1,2,3,4 will poll
    Config 2: If READ = PROCESSED, UNREAD = UNPROCESSED no records will poll
    Config 3: If READ = PROCESSED, UNREAD = UNPROCESSED, RESERVED = OTHER no records will poll
    Config 4: If READ = PROCESSED and TOPLINK STATUS not equal string "PROCESSED" then records 1,2,3,4 will poll
    What I want is Record 2 and 3 to poll which I believe is config 3 should do. However I believe there have been some changes that relate to distributed polling for clusters in 11.1.1.3 onwards which means in jdeveloper (11.1.1.6) when I go to re-config the db adapter after setting the RESERVED value it disappears from the editor .
    JCA properties obviously with a MarkReservedValueand MarkUnreadValue column jumping in.depending on which config I am trying
          <property name="DescriptorName" value="dbPollBlockRecords.F40G02"/>
          <property name="QueryName" value="dbPollBlockRecordsSelect"/>
          <property name="MappingsMetaDataURL" value="dbPollBlockRecords-or-mappings.xml"/>
          <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
          <property name="MarkReadColumn" value="STATUS"/>
          <property name="MarkReadValue" value="PROCESSED"/>
          <property name="PollingInterval" value="700"/>
          <property name="MaxRaiseSize" value="1"/>
          <property name="MaxTransactionSize" value="10"/>
          <property name="NumberOfThreads" value="1"/>
          <property name="ReturnSingleResultSet" value="true"/>   (This property has been manually configured, will unfortunately poll all records that match without it)
    Regards

  • File Adapter to EJB  in BPEL

    Hi,
    I have one XML file that i am reading using File Adapter in BPEL process. after reading i want to pass those values to EJB Adapter.
    I used Trasform to mapp output variables of File Adapter to Input parameter of EJB service.
    But the Invoke process is not happening.
    How to Pass values from File Adapter to EJB ?
    Thanks

    Hi Sonia
    It is not possible to achieve this using debatching. In fact, the use of the Debatching technique is appropriate when your requirement is exactly the opposed: When you need to run instances simultaneously.
    If you need to process each record sequentially, you should consider using just one instace (not using debatching and let the process reads the entire file), using a while and considering your XML as an array, processing each record as a single unit.
    If the CSV file is too big, you should consider using a process A that breaks the file into smaller files and copy sequentially the small pieces to a directory where process B is reading the entire file.
    []´s
    Marcelo

  • How can I extend the  JCA File Adapter

    I would like to extend the JCA File adapter. I want to overcome the file size limit of the File Adapter.
    I want to the JCA Fileadapter to have the following functionalites.
    1. Split a file into smaller chunks, The chunk size will be set at design time and will be in bytes, an example would be split the file into 500K chunks.
    2. Each file chunk will contain a Correlation Identifier and Message Sequence identification fields so it can be rebuilt by the receiver.
    Is the beat approach is to write my own JCA File Adapter if I do how do I incorporate it within Jdeveloper?

    In short, you will have to do the following:
    1. Develop an adapter which is compliant to JCA 1.5 spec. You should be able to run that as a web application within the OAS.
    2. It should create a WSDL which is adhering to the WSDL Spec 1.1. Then JDeveloper will consume the same without any issues during the design time.
    Alternately,
    You can check with Oracle with the new featuren requrest for enhancing the File adapter.

  • JCA Inbound adapter error

    Hi everybody,
    I have an ESB project which reads a file from a folder and writes it into another folder. The issue is that sometimes it works ok, but some others the in adapter fails and I get this error:
    JCA inbound adapter service listener for "SUBIRA.INM.LeerCarpetaINM_RS.LeerINM" with endpoint ID "[LeerINM_ptt::LeerINM(opaque)]" has
    been requested to shutdown by Resource Adapter due to fatal error. Reason : ORABPEL-11004
    Error al publicar el mensaje.
    Se ha producido un error al publicar el mensaje del archivo C:\FTPINM\20070402221542_82AVC00001540.dat
    Compruebe la pila de errores y corrija la causa del error. Póngase en contacto con los Servicios de Soporte Oracle si no se puede
    corregir el error.
    Resuming it in english it would be: Error trying to publish the message. An error has occurred while publishing the file message. Check the error stack and fix it. Contact Oracle Support Services if you are not able to fix the error.
    This error appears randomly, I mean, I haven't change anything in the project. Any suggestions?

    Hi alex,
    Cause of problem
    Both OC4J running BPEL and the database adapter reached the maximum number of connections and were unable to establish new ones.
    The reason for the problem is a database adapter Bug 5595347.
    According to Bug 5595347, the database adapter might leave open connections behind.
    The fix for Bug 5595347 is included in Patch 5638122.
    Solution
    To implement the solution, please execute the following steps:
    Apply Patch 5638122.
    References
    Bug 5595347 - ORIONCMTCONNECTION NOT CLOSED IN ORABPEL~OC4J_BPEL~DEFAULT_ISLAND~1
    Note 314422.1 - Remote Diagnostic Agent (RDA) 4 - Getting Started
    Patch 5638122 - MERGE LABEL REQUEST ON TOP OF 10.1.2.0.2 FOR BUGS 5149866 5595347 5205630
    Cheers,
    Abhi...

  • BINDING.JCA-12510 JCA Resource Adapter location error in SOA 11g Suite

    Hi,
    I am just testing one simple SOA Application in SOA 11g Suite. Created a SOA Composite Application with one DB Adapter at designtime all worked fine with DB Adapter. But when I deploy the Application on the server I get the following error:
    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/soademoDatabase'. 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/soademoDatabase. 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 ".Do I need to jndi-name in weblogic-ra.xml if so what is the exact location. Any help is appreciated.
    Thanks

    I did but still not able to connect now getting the following error. I went to the Weblogic Console, clicked on deployments, selected DBAdapter, clicked on configuration ,
    and then I don't see outbound configurations instead it shows Outbound Connection Pools, Under Outbound Connection Pools tab I clicked on New and it asked to select Outbound Connection Group I selected the one that was already there (with JNDI eis/DB/SOADemo) and then created my JNDI which was added to the default Outbound Connection Group and in the end it asked to save the Plan.xml which I saved it under a new directory created under soa directory. But still am not able to connect.
    How do I create my own Connection Group as don't want to use the defualt one out there.
    After creating the JNDI Name it asks for saving the Plan.xml file. Where exactly we save this file. Are there any standards.
    Why can't I update any properties when I click on the new JNDI name it takes to Settings for javax.resource.cci.ConnectionFactory --> Outbound Connection Properties but there I see a save buttn but I can't make any changes.
    BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'getCreditValidationSelect' failed due to: Could not create/access the TopLink Session. This session is used to connect to the datastore. Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception. Missing Property: [DBManagedConnectionFactory.userName]. You may have set a property (in _db.jca) which requires another property to be set also. Make sure the property is set in the interaction (activation) spec by editing its definition in _db.jca. . ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. Is there any documentation that lists all these steps as I couldn't find it anywhere. The guide only talks abou DBAdapter but how to configure etc can't find any info. Any help is appreciated.
    Thanks.

  • Problem with PCK 7.1 SP07 JCA Sample Adapter

    Hello!
    I have a Problem with the JCA Sample Adapter in the PCK 7.1 SP07. I will test the Configuration ( http://help.sap.com/saphelp_nwpi71/helpdata/en/f7/0c2441509fa831e10000000a1550b0/content.htm ) .
    But the receiver channel has a Massage processing failure: u201CMessage processing failed. Cause: java.lang.Exception: JNDI name of the ra connectionFactory is not configured. Go to the directory and create a value with name 'JNDIName' and value 'deployedAdapters/<ra name>/shareable/<ra name>' as module configuration data of the module 'ModuleProcessorExitBean'u201D
    In the JNDI-Browser of Netwaver Administration canu2019t found JNDIName from directory ('deployedAdapters/sample_ra/shareable/sample_ra). I have located the name deployedAdapters/com.sap.aii.adapter.sample.ra/shareable/com.sap.aii.adapter.sample.ra and change this in the receiver channel  u201CTo_Au201D. But I have the same problem.
    I hope you can help me!
    Thanks & Regards
    Stefan

    Hello!
    Yes I followed the Instruction.
    I have deployed the Sample Source as AdapterJCA, change the JNDI name in the SampleRa.xml and upload to CPA Cache. 
    I have by now the Configuration deleted in PCK and rebuild the scenario. The demo Configuration runs now. I think the Configuration in the CPA Cache was wrong.
    Stefan

  • Singleton JCA DB Adapter in OSB

    Hi,
    I am planning to use the JCA DB Adapter for polling insert/update events in a database in OSB 11g. Basically I am creating the jca adapter in JDeveloper, then generate the proxy service from OEP Eclipse and import the project into OSB. The Proxy is working fine by polling the events, but it needs to run in cluster and so I want to know how to make the adapter as a singleton ?
    Any thoughts are really appreciated.
    Thanks!

    aren't the default cluster aware settings enough for this ?
    http://docs.oracle.com/cd/E15523_01/integration.1111/e10231/adptr_db.htm
    Scalability
    you could enable a few in the adapter wizards

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

  • Customizing JCA FTP Adapter properties in OSB

    Hi,
    I have requirement to read a file from one file system and write it on another file system.I have implemented this using jca FTP adapter in OSB.
    The read and write directory will be different across environments in which I need to deploy the project.
    The read and write directory info is present in the jca file as given below.
    <activation-spec className="oracle.tip.adapter.ftp.inbound.FTPActivationSpec">
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="0"/>
    <property name="PhysicalDirectory" value="TEST/INPUT"/>
    <property name="Recursive" value="true"/>
    <property name="PollingFrequency" value="10"/>
    <property name="FileType" value="ascii"/>
    <property name="PhysicalArchiveDirectory" value="/PROJ/ARCHIVE"/>
    <property name="IncludeFiles" value=".*\..*"/>
    <property name="UseHeaders" value="false"/>
    </activation-spec>
    Is it possibel to cahnge this valueof <property name="PhysicalDirectory" value="TEST/INPUT"/> using customization files. From the OSB docs I undersatnd that only OSB predefined environment values can be changed using customization files.
    Thanks,
    Sai.

    Hi Prabu,
    The directory name is not appearing in the configuration of the services.
    I have specific reason for going with jca Adapter. Why writing the files to the destination if some failure happens ftp protocol may cause partially written files but I think JCA adapter will make sure either the file is completely transferred or not transferred at all.
    If this cannot be done in OSB I think I need to go for BPEL implementation where the config plan supports the replacement of JCA properties.
    Thanks,
    Sai.

Maybe you are looking for

  • Development and Test on same machine

    Hi, In my current setup I have a development application, a test application and a production application. The dev. and test is on the same machine, with different APP ID's. Dev is 102, and test is 110 At first there was no problems with this. But no

  • Setting nedded for creation of Planned Order for Dependent Requirement.

    Hi PP Gurus, I have a one material for which I m running MRP which have three Components. I m using strategy 10 for FG and SFG also. When I m running MRP for FG the system is creation planned order for FG, but not for SFG even though no stock availab

  • Pap2 to Linksys WR will not work

    Greetings all: I have a pap2 that I am using to link my house alarm panel to VoIP.  My cable modem is hooked to a Linksys WR with 4 ports.  I have Vonage VoIP box hooked to the router.  The Linksys Pap2 is suppose to be connected to the phone line fr

  • I am looking for a Recomindat​ion

    I drive the full United States in a truck and I want to buy a laptop that I can conect to the internet and surf with great speed and watch movies in the evening while parked at a truck stop. Most truck stops have WI-FI but at times I need to connect

  • EXPORT FILE에서 TABLE 생성 SCRIPT를 만드는 방법

    제품 : ORACLE SERVER 작성날짜 : 2002-04-08 EXPORT FILE에서 TABLE SCRIPT를 만드는 방법 ========================================== PURPOSE 다음은 EXPORT FILE에서 TABLE을 생성하는 SCRIPT를 만드는 내용이다. Explanation $ strings EXPDAT.DMP | grep 'CREATE TABLE' >> tables.sql Reference