Thursday, January 3, 2008

Asynchronous Distributed HotLog - CDC Part II

In my first installment, I talked about my task to configure CDC.

I've set up both the source and target databases as detailed in the documents.

I create a simple table:

CREATE TABLE t ( x NUMBER, y DATE );

From the target database I issue the following:

BEGIN
dbms_cdc_publish.create_hotlog_change_source
( change_source_name => 'T_CHANGE',
description => 'Test',
source_database => 'CDC_APP' );
END;
/

and shortly thereafter receive the following error:

BEGIN
*
ERROR at line 1:
ORA-01426: numeric overflow
ORA-06512: at "SYS.DBMS_CDC_IPUBLISH", line 133
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_CDC_PUBLISH", line 226
ORA-06512: at line 2


Elapsed: 00:00:57.23

So I set up tracing and I find the following in the trace file:

PARSING IN CURSOR #13 len=52 dep=0 uid=12 oct=47 lid=12 tim=342736069442 hv=1029988163 ad='3414b300'
BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;
END OF STMT
PARSE #13:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=342736069435
BINDS #13:
kkscoacd
Bind#0
oacdty=123 mxl=4000(4000) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=1000000 frm=00 csi=00 siz=4000 off=0
kxsbbbfp=08460bd8 bln=4000 avl=00 flg=15
Bind#1
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=01 fl2=1000000 frm=00 csi=00 siz=24 off=0
kxsbbbfp=0844cf58 bln=22 avl=22 flg=05
value=###
An invalid number has been seen.Memory contents are :

The way I read that is "###" is being passed to dbms_output.get_lines where it should be expecting a number.

Again, the source database is 9.2.0.7 and the target is 10.2.0.1. I uninstalled the JVM because I thought that the wrong version of java was used to load it (not that I can find any reference to it being used). Changed my path, set up an ORACLE_HOME environment variable (yes, windows XP).

I'm hoping I just mangled the configuration of my local database. Tomorrow one of the DBAs is going to walk me through this in either our DEV or TEST environments (as it should be).

Fun...

No comments: