DB Adapter Polls each record only once.

Hi All
I am using DB adapter Logical delete Polling strategy in BPEL my process. Whenever new record created or updated in DB table, BPEL instance gets kicked off.
With Logical delete strategy DB Adapter always updates table with read value(given in wizard) after consuming newly created record. Now once newly created record has been processed/consumed by DB Adapter , It will not picked up again If I update the same record. Reason: DB adapter has already marked it as 'Read'. And my Application can not reset the column marked by DB Adapeter .
Anybody has some other idea to achieve this ?
thanks
/Mishit

Why can't your application update the field again to the un-read value? It is filled initially with a not-read value isn't it? A simple update trigger on the table could do the trick. If not you should create a staging area table, if you want in an other schema, that gets records whenever an insert or update takes place on your application table. Anyway without table triggers on the original table it is not posible. Did you know you can also create a trigger from a staging area schema on a table in an other schema?
Kind Regards,
Andre

Similar Messages

  • Need to display records only once for that particular group

    Hi,
    I have a requirement like displaying repeated records only once for that particular group.
    For eg, in the emp table, I need to display repeated deptno only once for the particular group of job.
    And for the above requirement I have used the below query,
    SELECT empno, DECODE (LAG (job, 1) OVER (ORDER BY job), job, NULL, job),
    DECODE (LAG (deptno, 1) OVER (ORDER BY deptno), deptno, NULL, deptno)
    FROM emp;
    Output:
    EMPNO     JOB     DEPTNO
    7782          10
    7934     CLERK     
    7839     PRESIDENT     
    7876          20
    7788          
    7902     ANALYST     
    7566     MANAGER     
    7844          30
    7900          
    7654     SALESMAN     
    7698          
    But in the above output you can find that, say deptno 10 is getting displayed only once, whereas I want that deptno 10 to be checked whether it is getting repeated within the group of JOB and than hide the deptno 10 only if it is repeated within that job group. If not, deptno 10 should be displayed again.
    Please help me in this.
    Regards,
    Shiva

    Hi,
    Hope the below helps.
    SELECT emp_id, job, deptno,
           CASE WHEN LAG(deptno, 1) OVER (partition by job order by deptno) = deptno THEN null else deptno end
      FROM empRegards
    Ameya

  • Return each value only once using cfloop query

    Hi,
    I have some code that dynamically populates a cfselect list and then populates a second list based on those values. Everything seems to be working fine, except that all values are being pulled from the database, and there are duplicates in most cases. For example, value 1S1W diplays in the drop-down menu 10 times, where I would only like it there once.
    Is there a way to have one of each value in my list?
    <cfif isDefined('form.select_Main_Group')>
        <cfset page.select_Main_Group = form.select_Main_Group>
    </cfif>
    <cfoutput>
      <form name="DropDown" method="post">
      <!--- query DB for the first drop down list --->
    <CFQUERY name="get_Main_Group" datasource="ds" dbtype="odbc">
    SELECT *
              FROM  slco_sire.dbo.area_reference_plats_doc INNER JOIN slco_sire.dbo.area_reference_plats_page
              ON    slco_sire.dbo.area_reference_plats_doc.doc_id = slco_sire.dbo.area_reference_plats_page.doc_id
              ORDER BY page_description
    </CFQUERY>
      <!--- first drop down list --->
      <!--- NOTICE the onChange javascript event in the select tag, this is what submits the form after the first selection --->
      <select name="select_Main_Group" required="yes" onchange="this.form.submit()">
         <option>Select Township/Range</option>
         <!--- dynamically populate the first drop down list based on the get_Main_Group query --->
         <!--- NOTICE the CFIF within the option tag, this says, if the first selection has been made, display the chosen option when the page reloads --->
         <cfloop query="get_Main_Group">
             <option value="#SECTION#" <cfif isDefined('form.select_Main_Group')><cfif form.select_Main_Group eq "#SECTION#">selected</cfif></cfif>>#TOWNSHIP_RANGE#</option>
               </cfloop>
    </select>
    <p>
    <!--- if the first selection has been made, display the second drop down list with the appropriate results --->
    <cfif isDefined('page.select_Main_Group')>
       <!--- query DB for second drop down list, based on the selected item from the first list --->
       <cfquery name="get_Sub_Group" datasource="ds" dbtype="odbc">
            SELECT TOWNSHIP_RANGE, SECTION
            FROM  slco_sire.dbo.area_reference_plats_doc INNER JOIN slco_sire.dbo.area_reference_plats_page
                        ON    slco_sire.dbo.area_reference_plats_doc.doc_id = slco_sire.dbo.area_reference_plats_page.doc_id
            WHERE SECTION = '#page.select_Main_Group#'
       </cfquery>
       <!--- second drop down list --->
       <select name="select_Sub_Group" required="yes">
          <option>Select Section</option>
          <!--- dynamically populate the second drop down list based on the get_Sub_Group query --->
          <cfloop query="get_Sub_Group">
             <option value="#SECTION#">#SECTION#</option>
          </cfloop>
       </select>
    </cfif>
    </form>
    </cfoutput>

    Emily,
    OK.  Yes it is possible.  Change your first query to:
    SELECT  DISTINCT TOWNSHIP_RANGE
              FROM  slco_sire.dbo.area_reference_plats_doc INNER JOIN slco_sire.dbo.area_reference_plats_page
              ON    slco_sire.dbo.area_reference_plats_doc.doc_id = slco_sire.dbo.area_reference_plats_page.doc_id
              ORDER BY TOWNSHIP_RANGE
    </CFQUERY>
    Notice I removed any mention of SECTION, because it's irrelevant to generating a unique list of TOWNSHIP_RANGE.  Also, GROUP BY is not needed, but an ORDER BY will sort the records in alphanumeric order.
    Then you need to modify your code where you generate the option list for the first pulldown:
    <option value="#get_Main_Group.TOWNSHIP_RANGE#" <cfif StrucKeyExists(form,'select_Main_Group') AND form.select_Main_Group eq "#get_Main_Group.TOWNSHIP_RANGE#">selected</cfif>>#get_Main_Group.TOWNSHIP_RANGE#</option>
    Here I did a couple of things beside changing SECTION references to TOWNSHIP_RANGE .  It's a good idea to add the query name prefix to column names when you output them so that you avoid collisions with variables that have the same name.  I also reduced your <CFIF> statements to one compound statement for simplicity, and replaced the IsDefined with a StructKeyExists function.  This is considered to be better practice and won't throw an error when used in a compound statement (if you kept the IsDefined statement and tried that in a compound selection, it can sometimes throw errors if the variable in the IsDefined doesn't exist).
    Now, your second query should be something like:
    <cfquery name="get_Sub_Group" datasource="ds" dbtype="odbc">
            SELECT DISTINCT SECTION
            FROM  slco_sire.dbo.area_reference_plats_doc INNER JOIN slco_sire.dbo.area_reference_plats_page
                        ON    slco_sire.dbo.area_reference_plats_doc.doc_id = slco_sire.dbo.area_reference_plats_page.doc_id
            WHERE TOWNSHIP_RANGE = '#page.select_Main_Group#'
            ORDER BY SECTION
       </cfquery>
    Here I changed the WHERE clause to filter based on the TOWNSHIP_RANGE you selected in the first pull-down.  This should now return a list of SECTIONs that match the TOWNSHIP_RANGE selected in the first pull-down.
    Lastly, some minor changes to the option list for the second pulldown:
      <option value="#get_Sub_Group.SECTION#">#get_Sub_Group.SECTION#</option>
    One other thing I noticed.  If you are on ColdFusion 8 or 9, the dbytpe="odbc" is no longer needed.  I'm assuming you are using an ODBC database connection to something like MS Access.  If so, you can omit the dbytype entirely.  It's only needed now if you do query-of-query queries, where it would be dbtype="query".
    HTH,
    -Carl V.

  • PHP MySql routine....list each state only once

    I have a db with two fields, city and state. I want to list
    the states on a
    page, but of course only want each state to list once. I have
    the recordset
    ready to go. I know this must be dirt simple....if I only
    knew how.
    Help?
    Thanks,
    Mad Dog

    I have the Simulated Nested Region and thought I might be
    able to fool it by
    not having the second column. But no.....
    Your second option (DISTINCT) is probably perfect. I'll try
    it in a while. I
    was going to email you directly but didn't want to be a PITA.
    THANKS!
    MD
    Joe Makowiec wrote:
    > On 09 Oct 2008 in macromedia.dreamweaver, Mad Dog wrote:
    >
    >> I have a db with two fields, city and state. I want
    to list the
    >> states on a page, but of course only want each state
    to list once. I
    >> have the recordset ready to go. I know this must be
    dirt
    >> simple....if I only knew how.
    >
    > You mean that you want something like:
    >
    > STATE
    > City
    > City
    > STATE
    > City
    > ...
    >
    > See if this extension from Tom Muck does it for you:
    >
    >
    http://www.tom-muck.com/extensions/help/simulatednestedregion/
    >
    > OR - do you just want a list of states? If so, then you
    need:
    >
    > SELECT DISTINCT myState
    > FROM myTable
    > ORDER BY myState ASC
    >
    > And, while we're at it, list of states with count:
    >
    > SELECT myState, COUNT(myState) AS stateCount
    > FROM myTable
    > GROUP BY myState
    > ORDER BY myState ASC
    >
    > If not, post back and we'll take care of it.

  • JDBC sender adapter polling data more than once within one polling interval

    Hi,
    Our sender communciation channel is polling data twice in one polling interval, hence triggering the corresponding BPM twice.
    The polling interval for the channel is set to 30 mins.
    We dont have an update query and use <test> instead. Currently there is no provision to use an update query in the source system.
    Intermitently the polling happens within an interval of few milliseconds, because of which we are in doubt whether the use of Update query will solve our problem
    Additionaly in the BPM, we have one channel which deletes the data from source system after the processing is complete by the BPM, but the second BPM is getting triggered before the deletion step is being executed in the first BPM.
    Please Advise how we can stop the channel from polling data twice.
    Thanks,
    Merrilly.

    Hi Merrilly,
    Please ty to set an advanced mode option in the table(for sender
    channel configurations) as follows:
    Key name is "clusterSyncMode" and its values are either "scheduler" or
    "none".(both are without quotes and case-sensitive)
    Default value is "scheduler", this means it prevents 2
    messages being generated regardless of 2 server nodes. This is true,
    even if you do not add anything in advanced options table.
    Also are more information about this parameter of file adapter, what
    is the same for jdbc:
    #801926 - XI 3.0 File Adapter: Additional Parameters
    Regards
    SK

  • Commit each record while insert using DB adapter

    Hi,
    I am working on an ESB process, wherein i use the DB adapter to insert multiple records into a table.
    The ave count of records could easily be more that 50.
    Appears, the default behaviour of the adapter is to commit only once after all records have been inserted. However, need is to commit each row as i insert it. Will help even if i can commit in batches of say, 10.
    Please advice how this may be done.
    Regards,
    Sambhav.

    The DBAdapter does this in single commit, so that a rollback can take place in case of failure.
    You will need to use compensate activity if at all you want to commit mid way.
    Is there any particular reason that you are looking to commit them in shorter batches?
    Every Little Helps
    Kalidass Mookkaiah
    MyBlog

  • How to search files on a Time Machine backup disk only once perfile

    Greetings,
    Goal: I want to find all user files in a set of Time Machine backups residing on a single disk that contain the string "escalator". Now, there are multiple hard links to each file, so a simple search would search each file multiple times. That would take a very long time. Is there a way that I can search (grep) all text files and mail files only once and list those that contain the string? Note that I only want to search user directories; that is,
    /Volumes/Time Machine Backups/Backups.backupdb/username’s iMac/Latest/Macintosh HD/Users
    where "Latest" can also be any of the dates of all the backups.
    Thanks!

    Well, to clarify:
    I want to find all user text files and mail messages on a Time Machine backup disk that contain the word "escalator".
    By user files I mean those in
    /Volumes/Time Machine Backups/Backups.backupdb/<username>iMac/*/Macintosh HD/Users
    and subdirectories thereof.
    I was trying to use the find command, but it was taking a very long time, so I aborted it. I then realized that most of the files have many hard links, and therefore will be searched many times. That, of course, is a great waste.
    Is there some way to search each file only once?
    Thanks.

  • DB adapter polls all the records regardless of the MaxTransactionSize

    Hi All,
    I have a requirement that I need to poll only 10 records per minutes from DB2 database, regardless of how many ever records in the database at the time of the polling. I used the DB polling with custom sql, to fetch only first 10 records, as well as MaxTransactionSize set to 10 and PollingInterval to 60 (sec), PollingStrategy as LogicalDeletePollingStrategy. But when I test it out, if I have 100 records in the database, it updated all 100 records with the MarkReadValue and gave me all 100 records. I tried with disabling the SkipLocking as well, but doesn't seem to work. I also tried using the throttling in DB adapter in the composite.xml, but though the composites are showing up one by one based on the throttling time interval, in the database, it updated all the records right away, which is unacceptable as per business logic. Can someone please guide me how I can implement this? Thanks in advance.
    Note: I am using SOA 11.1.1.5. In 10.1.3.4, we have implemented this and it is working well, but can't make it to work in 11.1.1.5.
    Hruthayah

    Thanks for responding, Narsing.
    Please Note that MaxRaiseSize property doesn't behave the same in Database Adapter as it does in File Adapter Polling...
    MaxTransactionSize = Database Rows Per Transaction
    MaxRaiseSize = Database Rows Per XML Document
    In Database Adapter, MaxRaiseSize means the maximum number of records it can get in an XML Document...Yes, I do understand that, and that is why since I want one record per each instance, I have MaxRaiseSize set to 1.
    in the steps of configuring DB Adapter, you can select the 'Do Synchronous Post to BPEL' option in the 'Operation Type' screen in the adapter configuration wizard. This will generate an empty response message type for output variable. In the BPEL process add the reply activity at the end of the process by selecting output variable and also add the reply activities in the end of catch and catch all blocks in the exception handling.I had done what you have suggested. But I have seen two issue.
    1. Although only one instance is being showing up for the first time in EM, in database, all the records are being marked as "Reserved". (which is unacceptable as per the business requirement)
    2. Next instances are showing up right after first one is done. (meaning, all the instances are showing up one by one without waiting for the polling interval)
    Is this because of the DB2 database? I even tried updating the "PoolingService-or-mappings.xml" file to include the custom sql so that it will exactly fetch first 10 records.
    <query name="EOneEvents" xsi:type="read-all-query">
    <timeout>0</timeout>
    +<call xsi:type="sql-call">+
    +<sql>SELECT E1GS2A, E1VALU, E1UKID, E1ACTN, E1AA20, E1GPSP, E1LL, E1GS1A, E1GS1B, E1HBST1, E1HBST2, E1HBST3, E1HBST4, E1HBST5, E1CRTU, E1CRTJ, E1CRTT, E1WRKSTNID, E1HBOPID, E1UPMB, E1UPMJ, E1UPMT, E1JOBN, E1PID FROM F57MTE01 WHERE ((E1GS2A = 'LOT') AND (E1GPSP = '0')) ORDER BY E1CRTJ, E1CRTT ASC fetch first 3 rows only</sql>+
    +</call>+
    <reference-class>PollingService.F57mte01</reference-class>
    <cache-usage>primary-key</cache-usage>
    <lock-mode>none</lock-mode>
    <container xsi:type="list-container-policy">
    <collection-type>java.util.Vector</collection-type>
    </container>
    </query>
    </queries>
    I would appreciate if you can guide me if I am doing something wrong here.
    Hruthayah

  • Table cntrol field to be display/Change only For each record

    Hi all,
    How to set a particular Field in table control either as display only or
    change only for <b>each row</b> based on certain condition.I need to set this property for each record in table control not for the entire coloumn?.I know the procedure for setting up an entire coloumn in table control either as diplay or change only using <b>Loop at screen</b> statement.
    Conditions:
    If Material is batch managed:
    itab-batch field has to be <b>Display only</b> mode.
    if material is not batch managed:
    itab-batch field has to be <b>change mode</b>.
    <b>O/p of Table Control :</b>
    Material     Batch
    1000         Display only
    2000        Change only
    8000        Change only
    3500        Display only
    3600        Display only

    Hi Ravi,
              Thanks for your reply.I have put the code as u said. It is modifying the whole coloumn insted of  modifying Current row of the coloumn.
    I have tried to modify the screen property using  Table control attributes (TC-COLS).The following commented code is that logic.Even that also doing the same thing.Can yoy please tell me how to do it.
    MODULE tc_get_lines OUTPUT.
    LOOP AT SCREEN.
        IF screen-name = 'X_ZPINV-CHARG'.
          IF fg_batch = ' '.
            screen-input = 0.
          ELSE.
            screen-input = 1.
          ENDIF.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    LOOP AT tc-cols INTO tc_wa
      WHERE screen-name = 'X_ZPINV-CHARG'.
       IF x_zpinv-matnr IS NOT INITIAL.
         CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
           EXPORTING
             input  = x_zpinv-matnr
           IMPORTING
             output = v_matnr.
         SELECT SINGLE * FROM marc WHERE matnr = v_matnr
         AND werks = w_plant.
         IF marc-xchar IS INITIAL.
           tc_wa-screen-input = 0.
         ELSE.
           tc_wa-screen-input = 1.
         ENDIF.
         MODIFY tc-cols FROM tc_wa INDEX sy-tabix."    transporting screen-input
       ENDIF.
    ENDLOOP.
    ENDMODULE.                    "TC_GET_LINES OUTPUT

  • Allow user to select each item in list item only once.

    Hi,
    What is the best way to go to stop the user selecting the same item in a list item more than one.
    I have a multi record block, the user can select values 1-10 for each record, but they should not be allowed to select duplicates.
    Thanks for any help!

    Hi,
    Suppose you have 4 list items A,B,C,D in block "test" and same 4 values in each list item. Now you want that, no two values selected by user in list item should be same.
    On when-validate-item of list item B write code like :
    If :test.A is null then
    Message('First A must be enter");
    Raise form_trigger_failure;
    end if;
    If :test.B = :test.A then
    Message('value already in list item A');
    Raise form_trigger_failure;
    end if;
    Now, for C same code with a addition of condition for B with OR operator like:
    If :test.C = :test.A or then :test.C = :test.B
    Like that.... you can achive your functionality.
    But one restriction is that user has to enter values in list item in a pre-defined order only....
    Hope that it would work for you.....

  • I'm trying to record only part of my screen using my Quicktime 10.0, but once I press record in the "Screen recording" feature it automatically starts recording and doesn't give me the option to choose what part of the screen to capture. What gives?

    I'm trying to record only part of my screen using my Quicktime 10.0, but once I press record in the "Screen recording" feature it automatically starts recording and doesn't give me the option to choose what part of the screen to capture. What gives?

    QuickTime version 10 can only record the entire screen.
    10.1, 10.2 and 10.3 offer part of the screen recording.

  • To show the 2nd part highlighted there only once on each page

    Hi,
    Could you pls see this for the problem?
    http://www.4shared.com/document/VExaTDlv/t31.html
    Regards,
    edward

    Hi,
    The 1st highlighted part below should be Group 1 in the report.
    The 3rd highlighted part should be Group 2.
    Without using a subreport for showing the 3rd part below, is there still a way to show the 2nd part highlighted below only once in each page?
    what is the 2nd part the column headings?
    what do you mean highlighted?

  • OSB DB Adapter Polling Issue

    Hello Everybody,
    Requirement
    I am doing DB Adapter polling in OSB.I have a db adapter which polls order table whenever there is a record with status='N'.The OSB component is on single node of Weblogic Server.
    1.The db adapter picks the order data with status='N' in the proxy service
    2.It transforms to webservice xsd
    3.Invokes a webservice.
    4.The webservice returns acknowledgement number.
    5.The order table should be updated with status 'Z' and attribute1=acknowledgement number
    OSB Service Design
    1.Proxy service calls business service to poll the order table
    2.Converts the payload to the xsd format required by target
    3.Invokes the webservice on target
    4.Receives acknowledgement number
    5.calls a plsql procedure which updates all the records within this batch with the acknowledgement number and status='Z'
    My configurations in db adapter
    Logical delete option in db adapter.
    Unread Value :'N'
    Read Value : 'A'
    Polling frequency : 300 seconds
    no of databse rows per XML document : 10
    Database rows per transaction : 10
    Issue
    1.My process after getting the acknowledgement number it updates the status with Z and attribute1=acknowledgement number.At the of this transaction I am seeing that the status is being updated by
    the adapter to 'A' based on read value.I want the read value only to be updated initially but as soon as my OSB process picks it for further processing it should not update again.How can i prevent
    the status from getting updated to 'A'.
    2.I have 40 records in order table.Per the database rows per transaction it should process 10 records at a time and for each batch of 10 i should get one acknowledgement number.Instead i see that
    all the 40 records are updated with the same acknowledgement number.Kindly help as to how I can resolve this situation.
    Thanks & Regards,
    Radha

    Hi Arik,
    I tried setting the property(idempotent) in jca file of the polling adapter and it gave me below error.Kindly help
    <adapter-config name="EBS_FETCHDATA" adapter="Database Adapter" wsdlLocation="EBS_FETCHDATA.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/DB/newebs" UIConnectionName="EBS" adapterRef=""/>
    <endpoint-activation portType="EBS_FETCHDATA_ptt" operation="receive">
    <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
    <property name="DescriptorName" value="EBS_FETCHDATA.XxcmfOtmOrderHdrIfaceTmp"/>
    <property name="QueryName" value="EBS_FETCHDATASelect"/>
    <property name="MappingsMetaDataURL" value="EBS_FETCHDATA-or-mappings.xml"/>
    <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
    <property name="MarkReadColumn" value="OTM_INTERFACE_STATUS"/>
    <property name="MarkReadValue" value="A"/>
    <property name="MarkUnreadValue" value="N"/>
    <property name="PollingInterval" value="60"/>
    <property name="MaxRaiseSize" value="10"/>
    <property name="MaxTransactionSize" value="300"/>
    <property name="NumberOfThreads" value="1"/>
    <property name="ReturnSingleResultSet" value="false"/>
    <property name="idempotent" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    ---------------------ERROR---------------
    Invalid JCA transport endpoint configuration, exception: javax.resource.ResourceException: BINDING.JCA-12532 Cannot set JCA WSDL Property. Error while setting JCA WSDL Property. Property setIdempotent is not defined for oracle.tip.adapter.db.DBActivationSpec Please verify the spelling of the property.
    Thanks,
    Radha

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

  • How to make for loop pass only once in a next() method

    Good Day!
    Can anyone help me or suggest any idea to resolve my problem with the below code, wherein it will only pass the for loop only once. I already tried inserting the for loop in side the if (sqlset4.isFirst()) condition but the problem is it only retrieved the first row of the resultset.
    Cheers!
                   Statement sOutput = consrc.createStatement();
                            ResultSet sqlset4 = sOutput.executeQuery(xquery);
                            ResultSetMetaData rsMetaData = sqlset4.getMetaData();
                            int numberOfColumns = rsMetaData.getColumnCount();
                            String writefld = "";
                            while (sqlset4.next()) {
                                 writefld = "";
                                 for (int i = 1; i <= numberOfColumns; i++) {
                                     if (xxformatid.equals("1") || xxformatid.equals("3")) {
                                         writefld = writefld + "sqlset4.getString(" + i + ").trim()" + "|";
                                writefld = writefld.substring(0, writefld.length() - 1) + ")";
                                output.write("\r\n");
                                output.write(writefld);
                            output.close();I am using Netbean IDE 6.8
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi

    Hi everyone!
    What I actually trying to do is that I have a multiple tables and from these tables I'm going to write each of it into a flatfile that is a pipe delimeted that is why I have to make a loop to know how many fields I am going to write. The code that was attached are actually working, my only concern is that it will take a longer time of processing cause every record of a table it will pass to the for loop(checking how many column) wherein number of column/ were already known on the first loop.
    Hi kajbj,
    I think what your trying to explain is almost the same with below code which i had already tried. The problem with this is that the every loop of the outer loop data retrieve is only the data of the first record.
                   Statement sOutput = consrc.createStatement();
                            ResultSet sqlset4 = sOutput.executeQuery(xquery);
                            ResultSetMetaData rsMetaData = sqlset4.getMetaData();
                            int numberOfColumns = rsMetaData.getColumnCount();
                            String writefld = "";
                            while (sqlset4.next()) {
                                 writefld = "";
                                 if (sqlset4.isFirst()) {
                                    for (int i = 1; i <= numberOfColumns; i++) {
                                        if (xxformatid.equals("1") || xxformatid.equals("3")) {
                                            writefld = writefld + "sqlset4.getString(" + i + ").trim()" + "|";
                                writefld = writefld.substring(0, writefld.length() - 1) ;
                                output.write("\r\n");
                                output.write(writefld);
                            output.close();

Maybe you are looking for

  • Error while trying to access table using DB Link

    Hi All, I had to access a table in another instance using a DB link. As there was no DB link, I was asked to create one and then access the table. The below query was used to create DB link on my current instance FDEV: CREATE PUBLIC DATABASE LINK to_

  • Parallels To Run Mac OS

    I am running Snow Leopard on a 2009 8core Mac Pro. As some of my graphics software requires Rosetta I have no intention of upgrading to more recent OS X versions. Besides, I enjoy the way Snow Leopard works and do not particularly enjoy many aspects

  • Can I enable and disable the system speaker under program control

    Can I enable and disable the system speaker under program control? I'm using LabVIEW 2010. The PC is running Windows XP Pro. Thank you

  • Firefox crashes when trying to download files - suggested solutions have failed to help

    Every time I try to download a file, the moment I select 'save file' and click 'ok', Firefox crashes. Once I restart, I receive a message that the file has completed downloading, and it's always in the designated download folder. However, the crashes

  • PSE7 and Nikon D5000 - NEF

    I need some help, please. I can only save the converted NEF files as .DNG. But how can I convert these into e.g. .JPEG for further editing? Thanks very much for your help.