| 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] | Thu Apr 18 1996 23: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 22: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 15:27 | 7 |
Eve,
By the way, I sent mail to [email protected], who disclaims having
heard of you.
Claude
| |||||