Eventuate CDC isn't working with my own Postgres Database
BenNeighbour opened this issue · 0 comments
Hi all,
I just want to start off by saying how much I like your framework, even though I haven't got my sagas working yet, Eventuate Sagas makes developing the sagas much easier rather than having to implement all of this stuff ourselves!
Just a quick question about the Eventuate CDC (from your Docker image) - do I need to link this and all of my spring cloud services to a Postgres database that runs on your image specifically? I thought the only difference between the DB created in the saga-customers-and-orders-example
https://github.com/eventuate-tram/eventuate-tram-sagas-examples-customers-and-orders was that some tables were already created - and that the CDC would just create them anyway? Or does it not work like that?
Here is my stacktrace coming from the CDC:
java.lang.RuntimeException: Cannot get table io.eventuate.local.common.SchemaAndTable@50514dec[schema=eventuate,tableName=message]: result set is empty
at io.eventuate.local.polling.PollingDao.queryPrimaryKey(PollingDao.java:235) [eventuate-local-java-cdc-connector-polling-0.10.0-SNAPSHOT.jar!/:na]
at io.eventuate.local.polling.PollingDao.lambda$getPrimaryKey$4(PollingDao.java:208) [eventuate-local-java-cdc-connector-polling-0.10.0-SNAPSHOT.jar!/:na]
at io.eventuate.local.common.DaoUtils.handleConnectionLost(DaoUtils.java:22) ~[eventuate-local-java-cdc-connector-common-0.10.0-SNAPSHOT.jar!/:na]
at io.eventuate.local.polling.PollingDao.getPrimaryKey(PollingDao.java:206) [eventuate-local-java-cdc-connector-polling-0.10.0-SNAPSHOT.jar!/:na]
at io.eventuate.local.polling.PollingDao.processEvents(PollingDao.java:113) [eventuate-local-java-cdc-connector-polling-0.10.0-SNAPSHOT.jar!/:na]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_252]
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:1.8.0_252]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[na:1.8.0_252]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[na:1.8.0_252]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_252]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_252]
at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:541) ~[na:1.8.0_252]
at io.eventuate.local.polling.PollingDao.start(PollingDao.java:93) [eventuate-local-java-cdc-connector-polling-0.10.0-SNAPSHOT.jar!/:na]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_252]
2021-01-20 06:05:26.708 ERROR 6 --- [ Thread-6] io.eventuate.local.common.DaoUtils : Could not access database Cannot get table io.eventuate.local.common.SchemaAndTable@50514dec[schema=eventuate,tableName=message
]: result set is empty - retrying in 500 milliseconds
In my Kubernetes Deployment for this, I have pointed at the image to the same tag, like this eventuateio/eventuate-cdc-service:0.6.1.RELEASE
- do I need to specify a specific version number as well?
Also, do all of my services still need to be linked to the same database or is that happening just for less complication for example?
Thanks,
Ben