[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference orarep::nomahs::dec_data_distributor

Title:The Replication Option for Rdb
Notice:Product renamed to Replication Option for Rdb
Moderator:BROKE::PROTEAU
Created:Wed Mar 02 1994
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:287
Total number of notes:1231

207.0. "Help with replication to Sybase" by NOMAHS::KLEIMAN ([email protected]) Thu Apr 18 1996 19:20

    Hi all,
    
    We currently have a HUGE potential sale of Distributor and the Gateway
    to Sybase. We're up against a Sybase solution (Omni Connect and Rdb
    Triggers).
    
    The customer is a telco and the application is for PayTV where they
    want to set up a drip feed to Sybase database.
    
    We're in the process of setting up our solution and I currently have
    hit a brick wall and was hoping for some help.....
    
    
    I'm getting the tables to replicate to Sybase, but I'm running in to
    problems when the indexes also get replicated. This is due to the
    nature of the data in the Rdb database. This data cannot be changed.
    
    There are apparently NULLs in fields that have indexes on them. Rdb can
    handle it, but Sybase cannot. The data gets replicated. then when
    Sybase tries to replicate the index, it fails as it doesn;t treat NULLS
    as unique like Rdb does.
    
    So, what options do I have ? Can I utilise prologue and epilogue files
    in any way ? If I use the prologue file to drop an index prior to
    transerring the data over, this will affect the existing Rdb database
    and other users.....
    
    We're currently looking at replication every hour....
    
    Any ideas ???
    
    Thanks,
    Eve Kleiman
T.RTitleUserPersonal
Name
DateLines
207.1More InformationNOMAHS::KLEIMAN[email protected]Fri Apr 19 1996 00:5116
    On investigating the solution further, it appears that there are no
    null values in the Rdb database.
    
    The problem is after transferring the data over to the Sybase dataabse,
    we get the following message :
    
    "Create unique index aborted on duplicate key,
    Primary Key is NULL"
    
    
    We believe it's due to the population of DDAL$DBKEY in the target
    tables.
    
    The values are NOT unique as populated by Data Distributor.
    
    Any ideas/help ??
207.2Yes, we have a correction availableBROKE::PROTEAUJean-Claude ProteauFri Apr 19 1996 23:3331
    
    Yes, I believe the problem has been fixed.
    
    Data Distributor declares the DDAL$DBKEY column to be of type CHAR(8),
    although it actually stores binary data (a database key) in that
    column.
    
    Because of the way the DB Integrator Gateway communicates with Sybase,
    it was passing the binary number to Sybase as a quoted text string.
    Sybase was probably using library routines for the C language to copy
    the text string.  They treat a null byte as a string terminator.
    
    The net result was that only part of some database keys were being
    transferred, because Sybase would stop as soon as it saw a null byte
    of data.
    
    Our solution was to change the definition of the DDAL$DBKEY column to
    CHAR(16) for Sybase.  We did so for other databases too, but (for
    historical reasons) did not do so for DEC Rdb (Digital still owned
    Rdb back then) and Oracle's database.  Rather than transferring the
    database key as a binary number, we split each byte in half and
    converted it to its ASCII equivalent print code.
    
    I have just completed building and testing a soon-to-be-released
    update to Data Distributor 6.0, one containing this solution.
    Please contact my manager, Steve Serra, to determine how you can get
    the latest Data Distributor 6.0 kit.  Steve can be reached on the
    Internet at [email protected].  I will also forward this note to
    him.
    
    Claude
207.3?BROKE::PROTEAUJean-Claude ProteauMon Apr 22 1996 16:277
    
    Eve,
    
    By the way, I sent mail to [email protected], who disclaims having
    heard of you.
    
    Claude