This discussion is archived
3 Replies Latest reply: Dec 7, 2012 1:13 PM by RG 007 RSS

How CDC Works  : need autorefresh on target

RG 007 Newbie
Currently Being Moderated
Hi Gurus,

My requirement is : whenever there is a change in source data my interface should run automatically and update the target data.
if in 24 hours my source data is changed only 3 times then my interface should run only 3 times.

I thought CDC will work on this, but it's working partly, seems like I am missing something.

What I have done
On my source table I created CDC, selected JKM, started Journal. I think it's working fine because I see green clock symbol.
whenever I make any changes in source table, I also see new row in j$source_table, but I don't see any row in jv$source_table.

then I created interface, in my interface I clicked on source table and selected checkbox for "Journalized data only".

Testing then for testing I made a change in source table, I thought my interface will run automatically and make changes in target, but it didn't happen.
Then I run interface manually, even though It didn't update target, I noticed it's happening because jv$source_table is empty.

Please advice, what I am missing..
Do I need to create a package and need to add some step to run interface automatically whenever there is any change in source data.

Thanks
  • 1. Re: How CDC Works  : need autorefresh on target
    SutirthaRoy Guru
    Currently Being Moderated
    RG 007 wrote:
    Hi Gurus,

    My requirement is : whenever there is a change in source data my interface should run automatically and update the target data.
    if in 24 hours my source data is changed only 3 times then my interface should run only 3 times.

    I thought CDC will work on this, but it's working partly, seems like I am missing something.

    What I have done
    On my source table I created CDC, selected JKM, started Journal. I think it's working fine because I see green clock symbol.
    whenever I make any changes in source table, I also see new row in j$source_table, but I don't see any row in jv$source_table.

    then I created interface, in my interface I clicked on source table and selected checkbox for "Journalized data only".

    Testing then for testing I made a change in source table, I thought my interface will run automatically and make changes in target, but it didn't happen.
    Then I run interface manually, even though It didn't update target, I noticed it's happening because jv$source_table is empty.

    Please advice, what I am missing..
    Do I need to create a package and need to add some step to run interface automatically whenever there is any change in source data.
    Yes .. you need to create a package .
    Use OdiWaitForLogData to see changes made to the journalized tables based on subscriber . After that connect to your Interface . You can specify the number of rows to be modified before your interface runs .

    Thanks,
    Sutirtha
  • 2. Re: How CDC Works  : need autorefresh on target
    PeakIndicators_Alastair Guru
    Currently Being Moderated
    RG 007 wrote:
    Hi Gurus,
    Testing then for testing I made a change in source table, I thought my interface will run automatically and make changes in target, but it didn't happen.
    Then I run interface manually, even though It didn't update target, I noticed it's happening because jv$source_table is empty.

    Please advice, what I am missing..
    Have you read the documentation on how it should work? Its quite clear on what you need to do.

    See this blog for a good introduction : http://www.google.ie/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC0QFjAA&url=http%3A%2F%2Fsoainfrastructure.blogspot.com%2F2009%2F02%2Fsetting-up-oracle-data-integrator-odi.html&ei=FqvBUP2zGcazhAeokoGoDw&usg=AFQjCNGZ5dSGjCoPXNA7LG-GkEmNpuPwqg&cad=rja

    Basically you need to add a subscriber, lock the journal, extend the window, run your interfaces, unlock subscriber, purge jounal, repeat from lock the journal.
  • 3. Re: How CDC Works  : need autorefresh on target
    RG 007 Newbie
    Currently Being Moderated
    Hi all, Thanks for your reply.

    My CDC is working, but one question.
    Now, In my package ODI object "ODIWaitForLogData" will keep polling on Journalize table every few seconds(whatever we have mentioned).
    But I don't want polling.
    I want, whenever there is a change in source data, immediately my interface should run.

    For example : if my source table is updated only 3 times a day, so as soon as Trigger creates record in J$V table, it should also run the package also.
    is it possible?

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points