Hi
I have a oracle database which number type-usage is bit all over the place. I however know that number stored to db fit to long, int, double or float. My consumer has a bit hard time dealing with precise number mode, so I tried to make a plugin that looks at number-type and produces either int, long, float or double.
I took kafka and zookeeper docker-compose from psql example and they work great. For oracle I tried using:
And after the database is up, I ran:
docker exec -u 0 -it 9588655469ed /bin/bash
# in bash
su oracle
sqlplus / as sysdba
# in sqlplus
archive log list;
shutdown immediate;
startup mount
alter database archivelog;
alter database open;
archive log list;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
// And create a rather wide table, with various NUMBER-fields using external DB-tool.
This seems to work. But when i post debezium config to connector I can only see debug-log from configure()-method. There is log also at the beginning of converterFor(), but it is never called.
My debezium config is:
{
"name": "converter-test",
"config": {
"connector.class": "io.debezium.connector.oracle.OracleConnector",
"topic.prefix": "test.prefix",
"database.user": "system",
"database.password": "foo",
"database.dbname": "XE",
"database.port": "1521",
"database.hostname": "oracle_db",
"schema.history.internal.kafka.bootstrap.servers": "kafka:9092",
"schema.history.internal.kafka.topic": "schema-changes.system",
"table.include.list": "SYSTEM.NUMBERTEST",
"converters": "number",
"number.type": "com.test.debezium.DebeziumNumberConverter"
}
}
I can see debezium starting hitting my plugins configure-method and performing snapshot, but in logs there are lines like:
2023-12-11 11:11:37,015 INFO Oracle|test.prefix|snapshot Snapshot step 3 - Locking captured tables [] [io.debezium.relational.RelationalSnapshotChangeEventSource]
So the list of captured tables is empty.
Am I just being defeated by XE here? I know that xe is not supported, but I was hopeful that I could test converter schema generation even if actual capturing would not work.