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 |
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.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
207.1 | More Information | NOMAHS::KLEIMAN | [email protected] | Fri Apr 19 1996 00:51 | 16 |
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.2 | Yes, we have a correction available | BROKE::PROTEAU | Jean-Claude Proteau | Fri Apr 19 1996 23:33 | 31 |
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::PROTEAU | Jean-Claude Proteau | Mon Apr 22 1996 16:27 | 7 |
Eve, By the way, I sent mail to [email protected], who disclaims having heard of you. Claude |