Database Adapter Polling problem

Hi All,
The polling option is processing all the rows in a table at a time instead of using polling frequency. I have used an option of update a field (logical delete) where I have initialized unread value='N' and read value='Y'. Now ,the problem is i have to poll a single row from the table for every 60 seconds ( second row should be processed only after 60 seconds), but all the rows are processing at a same time. Can somebody let me know what could be the problem?
The options that I set in db adapter are:
Polling Frequency: 60 seconds
Database &rows per XML Document: 1
Database Rows per transaction: 1
JDBC options , Query & Timeout: 60
Thanks,

Hi Vlad,
please find the jca file
<endpoint-activation portType="PollEvent_ptt" operation="receive">
<activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
<property name="DescriptorName" value="PollEvent.HolxSrEventData"/>
<property name="QueryName" value="PollEventSelect"/>
<property name="MappingsMetaDataURL" value="PollEvent-or-mappings.xml"/>
<property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
<property name="MarkReadColumn" value="PROCESSED_FLAG"/>
<property name="MarkReadValue" value="Y"/>
<property name="MarkUnreadValue" value="Yes"/>
<property name="PollingInterval" value="60"/>
<property name="MaxRaiseSize" value="1"/>
<property name="MaxTransactionSize" value="1"/>
<property name="NumberOfThreads" value="1"/>
<property name="ReturnSingleResultSet" value="false"/>
<property name="SequencingColumn" value="INCIDENT_ID"/>
<property name="DelayCommit" value="true"/>
</activation-spec>
</endpoint-activation>

Similar Messages

  • Database Adapter Polling, Instances in Running State

    Hello All,
    I have a composite in which the database adapter is a service (polling a table in SQL Server). Sometimes, when instances gets created, like 2 instances are being in a running state and not being completed at all. we terminated the instances last 2 times, and this scenario is being repeated again. If i click the instance which is running, i can only see the service which says it is completed, no BPEL component is being seen, can anyone faced this issue before ? why this is happening ?
    Please help....
    Naresh

    Could you provide more insight on how you wired the adapter and BPEL process inside the composite? What does the BPEL look like? You could add a BPEL component that persists some stuff just for test purposes. That could give you more feedback from the console.
    hth,
    Peter Paul

  • Database Adapter Polling

    I am using Jdeveloper 10.1.3.1.0 to do the database polling. The adapter polls two tables joined by the foreign key.Then it will update the status code as logic deletion. However, when I tried to set the database rows per xml document to 1 on step 10 of 11 of the polling options. However, when I tried to set database row per transaction to 50, it won't allow me. My understanding is that this 50 will set the database commit every 50 records. The wizard basically stopped there. Only after I changed it to unlimited, it proceeded.Can anybody help me?

    Hi,
    The triggering instances will not depend on the Database rows/transaction but will only depend on the Database rows/xml document.
    Database rows/transaction is internal to the DB and the DB adapter.
    If u keep Database rows/transaction as 200 and no. of rows/ xml document as 100 and 1000 rows are to be processed, then it will create 10 instances.
    However if you have 1000 rows for processing DB adapter will run a cursor in a loop to pick up 200 rows from the 1000
    rows 5 times (this is a batch setting between DB and the DB adapter and will distribute the load of picking 1000 rows at a time into 5 transactions) and then these 200 rows will be distributed into 2 BPEL instances of 100 rows (this is a batch setting between DB adapter and BPEL).
    Hope this clarifies.
    With Regards,
    Harshwardhan

  • Oracle database Adapter polling in OSB Cluster

    Hi,
    I have OSB 11g with two nodes. I have a database adapter that polls a table after every 30 seconds and perform logical delete on the rows read. I came across interesting situation. When one node is up and PollingInterval=30, it works okay and polling is done right after 30 seconds but when both nodes are up the PollingInterval property doesnt work as expected.
    First node will poll after 24 seconds and then second node will again poll after 6 seconds (node1+node2=30 seconds in total).
    and After i restart the servers the first node is polling at 18 sec and second node is polling at 12 sec (node1 +node2=30 sec), so different polling intervals.
    How does it determines the first server should poll at 24 or 18 sec and second node should poll at 6 or 12 sec?
    I would like to know is there any property or configuration required to poll the table for each node for every 15 seconds (node1(15sec)+node2(15sec)=30 sec)?
    Please help me, It is very urgent?
    Thanks
    Rajesh.

    Hi,
          If any one has the same issue, please let me know.
    Also if you know the solution, can you please update here, it's very helpful for me.
    Thanks,
    Rejesh.

  • Jdev Database Adapter - polling updated rows

    Hello, I have a question reguarding the polling strategy available in the database adapter.
    I set it up and it works great with new inserted rows in the table.
    However, it doesn´t capture the updated rows!
    For instance, i have the following table:
    ID - NAME - AGE
    1 -John- 21
    2 -Mary- 25
    When I insert a new row, it is captured by comparing the last captured ID in the sequencing file.
    ID - NAME - AGE
    1 -John- 21
    2 -Mary- 25
    3 -Cindy- 20 <--------- New row
    But when i UPDATE an already existing row, it doesnt load the changed row!
    ID - NAME - AGE
    1 -John- 26 <----------- Age changed, but polling doesnt recognize it!
    2 -Mary- 25
    3 -Cindy- 20
    Is there a way to get this to work? Should I set an special option? Thank you very much.
    Im using jdeveloper 11g.

    Hi John, it depends on which type of polling strategy you are using to poll the new/updated records. You must have the necessary previleges to add the special field and creat triggers or your db team must have.
    i.Physical delete polling strategy: Cannot capture the UPDATE operations on the table.This because when the adapter listens to the table, when ever a record is polled, that record is deleted after the polling process. After polling the records, if it is not deleted, then the adapter knows that it’s a updated one but here when a record is polled, it is deleted. So when an adapter encounters a record, it’s a new record to the adapter though the record is updated before the polling cycle). So physical delete cannot capture UPDATED records.
    ii. Logical delete polling strategy: The logical delete polling strategy updates a special field of the table after processing each row (updates the where clause at runtime to filter out processed rows).The status column must be marked as processed after polling and the read value must be provided while configuring the adapter. Modified where clause and post-read values are handled automatically by the db adapter.
    Usage:
    <operation name="receive">
    <jca:operation
    ActivationSpec="oracle.tip.adapter.db.DBActivationSpec"
    PollingStrategyName="LogicalDeletePollingStrategy"
    MarkReadField="STATUS"
    MarkReadValue="PROCESSED"
    This polling strategy captures the updated records only if triggers are added.This is because when the record is polled, its status is updated to 'PROCESSED'. To capture this record if its updated, its status has to be 'UNPROCESSED'. So a trigger has to be added to update the status field to 'UNPROCESSED' whenever the record is updated. Below is the example.
    Ex:
    CREATE OR REPLACE TRIGGER nameOftrigger_modified
    BEFORE UPDATE ON table_name
    REFERENCING NEW AS modifiedRow
    FOR EACH ROW
    BEGIN
    *:modifiedRow.STATUS :='UNPROCESSED';*
    END;
    In this example, STATUS is the special field(of the polling table). When the record is updated, the trigger gets fired and updates the STATUS field to 'UNPROCESSED'. So when the table is polled, as this record's status is Unprocessed, this record ll be captured during polling.
    Other polling strategeis like "Sequencing Table Last Updated","Sequencing Table Last-Read Id" Polling strategy,etc also can be used to capture the updated records. In these strategies also, you need to add the triggers like the above. These need an extra helping table also to poll.
    Logical delete polling strategy is good enough to poll the updated records.
    Hope this helps.
    Thank you.

  • Database Adapter Poll doubt

    My requirement is, when ever a new recored inserted to CREDITCARDINFOPARENT table need to insert the same record to CREDITCARDINFORESULT;
    desc CREDITCARDINFOPARENT;
    Name Null? Type
    SNO NUMBER
    SSN NOT NULL VARCHAR2(15)
    FIRST_NAME VARCHAR2(30)
    LAST_NAME VARCHAR2(30)
    CCNUMBER NOT NULL VARCHAR2(20)
    CREDITRATING NUMBER
    STATUS NOT NULL VARCHAR2(20)
    CCNumber is my primary key
    desc CREDITCARDINFORESULT;
    Name Null? Type
    NO NUMBER
    SN NOT NULL VARCHAR2(15)
    FIRSTNAME VARCHAR2(30)
    LASTNAME VARCHAR2(30)
    CCNUMBER VARCHAR2(20)
    CRATING NUMBER
    CCSTATUS NOT NULL VARCHAR2(20)
    CCNUMBER is Foreign Key.
    I tried Poll DB adapter example in the following way
    Created a project with "Composite with Mediator"
    under exposed services I dragged DB Adapter
    Service Name-> Example Service
    Step 4 of 13 -> selected Poll or Changed Records in a table
    step 5 of 13 -> imported 2 tables (CREDITCARDINFOPARENT, CREDITCARDINFORESULT)
    step 6 of 13 -> displayed the Relationships
    step 8 of 13 -> After Read -> selected Update a Sequencing Table
    step 9 of 13 -> Sequencing Table: CREDITCARDINFORESULT
         Sequence Name Field: CCNUMBER
         Sequence Value Field: STATUS
         Sequence ID Field: CCNUMBER
    step 10 of 13 -> Polling Options: SQL
              Pre Polling SQL:
    SELECT STATUS FROM CREDITCARDINFORESULT WHERE (CCNUMBER = 'CREDITCARDINFOPARENT')
    Polling SQL:
    SELECT SNO, SSN, FIRST_NAME, LAST_NAME, CCNUMBER, CREDITRATING, STATUS FROM CREDITCARDINFOPARENT WHERE ((STATUS = 'VALID') AND (CCNUMBER > #STATUS)) ORDER BY CCNUMBER ASC
    After Read SQL:
    UPDATE CREDITCARDINFORESULT SET STATUS = #STATUS WHERE (CCNUMBER = 'CREDITCARDINFOPARENT')
    step 11 of 13 ->Define Selection Criteria:
              Parameters:ccno
              SQL: SELECT SNO, SSN, FIRST_NAME, LAST_NAME, CCNUMBER, CREDITRATING, STATUS FROM CREDITCARDINFOPARENT WHERE ((STATUS = 'VALID') AND (CCNUMBER > #STATUS)) ORDER BY CCNUMBER ASC
    Under External Services : I dragged DB Adapter and i selected Perform an Operation on a table as Insert Only. and I imported CREDITCARDINFORESULT
    I deployed the the Project. Project depolyed successfully;
    under EnterpriseManager command prompt I got
    <Jun 29, 2010 2:25:46 PM IST> <Warning> <oracle.soa.adapter> <BEA-000000> <JCABinding=> ExampleProject JNDI lookup of 'eis/DB/soademodatabase' f
    ailed due to: Unable to resolve 'eis.DB.soademodatabase'. Resolved 'eis.DB'>
    <Jun 29, 2010 2:25:46 PM IST> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=> ExampleProject Error while performing endpoint Activation:
    BINDING.JCA-12561
    JCA Resource Adapter location error (WebLogic).
    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/soademodata
    base'.
    The reason for this is most likely that either
    1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic J2EE Application server or
    2) the JNDI <jndi-name> setting in the WebLogic JCA deployment descriptor has not been set to eis/DB/soademodatabase. In the last case you might
    have to add a new 'connector-factory' entry (connection) to the deployment descriptor.
    Please correct this and then restart the WebLogic Application Server
    >
    I confugired the Connection factory properly; I checked at DB Adapter -> Configuration -> Outbound Connection Pools -> xADataSourceName -     jdbc/soadeoDatabase
    when I checked at JNDI tree I dont have any value under it.
    in Firefox EM, when I clicked on Example Project Test button is disabled. and I inserted one record to CREDITCARDINFOPARENT; but CREDITCARDINFORESULT table is not updated.
    can any body help me in this?
    Please let me know whether I follwed correct procedure or not?
    If I am wrong, please provide me the correct steps.
    Thanks in Advance.

    This error is usually raised if there is no outbound pool connections with the "eis/db/soademodata" name in the database adapter.
    First create a data source to the database in the JDBC Resources.
    Next in Weblogic server console --> Deployments --> DBAdapter --> Configurations --> Outbound Pool Connections --> create a new outbound pool connection with the name "eis/db/soademodata".
    Now update the "xADataSourceName" property of this connection pool with the JNDI name of the datasource created in the first step.
    Regards,
    KSN Pavan
    Edited by: KSN Pavan on Jun 30, 2010 2:51 AM

  • Database Adapter - Polling updated rows

    Hello, I have a question reguarding the polling strategy available in the database adapter.
    I set it up and it works great with new inserted rows in the table.
    However, it doesn´t capture the updated rows!
    For instance, i have the following table:
    ID - NAME - AGE
    1 -John- 21
    2 -Mary- 25
    When I insert a new row, it is captured by comparing the last captured ID in the sequencing file.
    ID - NAME - AGE
    1 -John- 21
    2 -Mary- 25
    3 -Cindy- 20 <--------- New row
    But when i UPDATE an already existing row, it doesnt load the changed row!
    ID - NAME - AGE
    1 -John- 26 <----------- Age changed, but polling doesnt recognize it!
    2 -Mary- 25
    3 -Cindy- 20
    Is there a way to get this to work? Should I set an special option? Thank you very much.
    Im using jdeveloper 11g.

    Hi John,
    I guess you're talking about BPEL? If so, try the BPEL forum for a better response.
    Best,
    John

  • BPEL process initiated by a database adapter causing problems in HA environ

    We are having a High Availability architecture configuration(active - active) for the BPEL System in our production environment.
    The BPEL servers are clustered in the middle tier of the architecture and RAC is used in the database tier of the architecture.
    We have a BPEL process which is initiated by a database adapter.
    This BPEL process polls a source database, reads the data, writes it into a JMS Topic and marks flag as read back to the table.
    A Message Driven Bean(MDB) listens to the JMS Topic, and writes the data in the destination database.
    We have the polling process and the MDB deployed to both the nodes of the BPEL server.
    We have noticed that some records are getting processed by both the nodes.
    This is resulting in duplicate records at the destination tables.
    Kindly advise how we can resolve this issue.

    The BPEL servers are configured with active - active topology and RAC is used in the database tier of the architecture.
    BPEL Servers is not clustered. Load Balancer is used in front of the two nodes of the BPEL servers.

  • Database adapter correlation problem

    Hi,
    I have to create process with this scenario:
    Started by db adapter polled table 1 for update.
    Invoke asynchronous webservice
    Waiting for message from db adapter polled table 2 for update.
    How to correlate this.
    I create process started by db adapter and I have problem to correlate it with soap wsdl operation.
    When I replace db adapter operation with soap operation based on adapter xsd correlation works fine.
    Thank you in advance

    I tried to add another adapter which works fine and there was no correlation problem.
    After hours of testing I decide to remove malfunctioned adapter and create it again.
    Fortunately works without problem.

  • OVD: Database Adapter Query Problem

    Hey Everyone,
    I am using a database adapter in OVD 10g and am not able to get the proper results from a query. We have created a view in the database and have pointed OVD at the view. We then set up 7 objectclasses using the DB Attribute Mapping Wizard. When doing a query on the base of the DB adapters we are not getting back all of the proper results one would expect. For instance if I query for objectclass=* I only get back 2 of the 7 objectclasses. Another example would be a query for mail=[email protected] will only return the attributes from the mailRecipient objectclass when normally in LDAP the entire record would be returned.
    Does anyone have an idea as to what could be going on? Does anyone have additional resources (beyond the OVD manual) for creating a database adapter?
    Thanks,
    Stephen

    Sorted this out:
    Used custom URL and made sure that the OVD Manager IDE was not appending any additional information following the closing bracket of the URL.
    The full successful URL was as follows with no values in any of the other fields:
    jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1540))(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1540))(CONNECT_DATA=(SERVICE_NAME=SNAME)))

  • FTP (Sender) Adapter - Polling Problem

    Hello everyone!
    I'm trying to pick up an XML file using the FTP Adapter (Sender).
    Weird thing is that I have set the "polling interval" for 60secs, but the FTP adapter doesn't seem to want to repeat polling at the said time interval.
    It only picks up the file once, and after that no more polling occurs.
    Could anyone know what the problem might be?
    Warm regards,
    Glenn
    PS. We are on PI 7.0, SP11.

    Hi Glenn,
    Check the connection mode in FTP adapter.
    Connect permanently or connect everytime.  Try changing the option and see if it works.
    If it still doesnt work then contact the guys who are maintaining the FTP server.
    Regards,
    Sumit

  • Database Adapter Polling 100 large size messages at one time.

    We have a BPEL process which polls a header & detail table on a Oracle DB.
    Typically we are having a scenario that we have around 1000 detail line items for each header.In the night when we start the process we have around 100 such headers each having 1000 detail lines.
    We have configured the adapter in following way.Hence according to us having MaxRaiseSize="1" will create individual instace for each row that adapter fetches.is that correct?
    We do get one instace per header in console.
    Currently when we run the interface with 3 headers + each having 3000 details BPEL works fine.
    But when i increase the load to have 50 headers + each having 3000 details , i dont see messages coming to BPEL console & also BPEL goes down & comes up on its own.
    While i was monitoring it i saw that invoke_message table in dehydration store was fetching the records from messages from DB & gradually creating rows in the table & after like 30 mins it stopped we were getting internal server error on BPEL console and then it comes up on its own after some time & again rows are added in the invoke_message.
    Althoug out of 100 instances that i think i should get, i see just 2 created in spam of almost 2 hrs.
    My question is how can make this processing faster ? can configure something in DB adapter liek increase numberofthreads or something wich willmake the processing faster?
    Any idea how BPEL works in this scenario?
    Appreciate if someone can help me in this regard.
    Thanks
    **&lt;binding name="DBRMSTransferPoll_binding" type="tns:DBRMSTransferPoll_ptt"&gt;*
    *&lt;pc:inbound_binding/&gt;*
    *&lt;operation name="receive"&gt;*
    *&lt;jca:operation*
    ActivationSpec="oracle.tip.adapter.db.DBActivationSpec"
    DescriptorName="DBRMSTransferPoll.XxlcbTsfHdrV"
    QueryName="DBRMSTransferPoll"
    PollingStrategyName="SequencingPollingStrategy"
    SequencingFieldName="LAST_UPDATE_DATETIME"
    SequencingFieldType="java.sql.Timestamp"
    SequencingTableNameFieldValue="TSF_HDR_V"
    SequencingTableName="SEQUENCING_HELPER"
    SequencingTableNameFieldName="TABLE_NAME"
    SequencingTableValueFieldName="LAST_READ_DATE"
    MaxRaiseSize="1"
    MaxTransactionSize="unlimited"
    PollingInterval="5400"
    NumberOfThreads="1"
    DelayCommit="false"
    PollForChildUpdates="true"
    ReturnSingleResultSet="false"
    MappingsMetaDataURL="DBRMSTransferPoll_toplink_mappings.xml" /&gt;
    *&lt;input/&gt;*
    *&lt;/operation&gt;*
    *&lt;/binding&gt;**

    The issue you are facing is memory. SOA Suite is not really designed to handle large payloads because of this issue.
    What I would do in the first instance is shorten the frequency so you are only selecting a small number of rows at a time. This may not have an impact because the data maybe produced via a batch program so you will always get these large volumes.
    What you could do is just select the header still using the MaxRaiseSize="1" so you get just one instance per header but then you select the lines via a db adapter in the BPEL process.
    The other option is to have some other mechanism that invokes the process with the full payload, e.g. setup a DB schedule that runs PL/SQL selects the data and places it on a AQ.
    cheers
    James

  • Database Adapter Polling - Setting arguments in runtime

    Hi!
    I have a bpel-process with a DB-adapter that polls a table for new records every 10 second. I have a Where clause for the Select query, that reacts on all new records where the first argument (a field in the table) is equal to the second argument that is a literal value that will be hardcoded in the adapter.
    But in the future it might be possible that the second argument might change and I want to be able to edit that without redeploying the process. Is there anyway I could set the second argument as a parameter and change it in run-time, as a property in the BPEL console for example?

    DB Adapter does not have possibility to change toplink mappings in runtime :-(
    But maybe you can move this adapter to separate process (or even to ESB flow)which will be responsible just for receiving the data from DB and this process will call your main process. In future you will change just this small process and not the main one. Could be a workaround.

  • Rollback in database adapter with delete polling strategy

    Hi All,
    We have designed a database adapter with "Delete the Rows That Were Read" after read strategy with auto-retry attempts as 5. In BPEL process, where we are receiving the DB records, we are throwing a rollback fault in case of any fault.
    Database adapter polling is being re-tried 5 times in case of faults but the data is being deleted from the tables after 5 retries. Is this is the expected behavior of DB adapter? Doesn't the rollback fault rollback the complete transaction and leave the failed data back in the tables?
    Can any one provide more information on this polling strategy after the number of auto-retries are completed?.
    Thanks.
    -Pavan

    You need to include your bpel process in the same DB adapter transaction
    Use the following properties in the bpel component to do this
    <property name="bpel.config.transaction" type="xs:string" many="false">requiresNew</property>
        <property name="bpel.config.oneWayDeliveryPolicy" type="xs:string"
                  many="false">sync</property>
    Make sure the connection factory that you are using in the DB adapter is XA transaction enabled

  • Database Adapter Advanced Polling Technique

    I would like to create a polling database adapter on an SOA application. The data is statistical and changes frequently. I have developed the SQL in sqldeveloper to get the data (hard part done, or so I thought). I would like the adapter to poll the database with this query and fetch the results. I plan to use a sequential table to keep track of the fields at a separate database. Now, I understand I could turn the SQL script into a view and have the database adapter poll the view. However, my requirements are that the process be as unobtrusive to the database as possible. In other words: they do not want me to put that view on the database. So, my question is: has anyone created a database adapter polling mechanism that can execute a pure SQL select statement such as the one i have created. Of course, the SQL script is rather complex and it cannot be implemented using the TopLink commands on the database adapter wizard in jDeveloper. Does anyone know of a way i can do this? and if so, how? Thanks in advance.

    Could you provide more insight on how you wired the adapter and BPEL process inside the composite? What does the BPEL look like? You could add a BPEL component that persists some stuff just for test purposes. That could give you more feedback from the console.
    hth,
    Peter Paul

Maybe you are looking for

  • My Message Box Code Is Not Doing What I want It to Do Visual Basic

    Hi Good People I have Written Code To Show A message box "Saying The Address Already Exists" If the Addresses are already in my Database But if the Address is not in My Database then It gets Saved To my Database. (All works Ok so Far) The Problem I h

  • Dbconsole service does not start after renaming Hostname

    Hi, I installed 10g Rel 2 successfully on a Windows XP machine, and then renamed the Computer name (Host name) of the server machine, and now the dbconsole service (for Enterprise manager) does not start up and hence I cannot access the EM through th

  • Multi-Mapping and Dynamic Configuration

    Hello, Is it possible to use dynamic configuration in mulltip-mapping? (message split?) in a  proxy-mail scenario I am using a multi-mapping. The message gets splited by a specif field. (Field of source message-SplitByValue(Value Change)-CollapseCOnt

  • HT200197 Home Sharing on Apple TV keeps disconnecting

    My apple tv just recently stopped recognizing that my home sharing is turned on.  I can watch a full movie from my iTunes, but when it finishes, it goes to the home menu and when i go to the Computer app, it says to turn on Home Sharing.  Home Sharin

  • Rewrite module not working in iis 8

    Hi All, I have a SharePoint site hosted in ports 1122 and I have configured alternate access mapping to "http://batman". Now, I want if some body types "http://batman" then it should get redirected to some other site. For this I am using URL Rewrite