Hi,
I assume that you are using InnoDB.
I have not used RabbitMQ. Is the publish method async? Does it really return and the transaction can be committed succesfully? Could you confirm the log is saved and the transaction is committed by using a third party tool(i.e mysql workbench)?
Interesting. Have you tried MyISAM? If it works we could say that the cause of the problem is uncommitted transactions.
AFAIK alter table engine=MyISAM query is enough for this.
Hard to say. What type does message.getLog() return? Is it correctly casted to Long?
But the main problem seems to be concurrency. What if you wait for 10seconds before findById? Thread.sleep(10000)?