If you must have guaranteed message delivery you need to use persistent messages and transacted sessions.
Then, worst case scenario is that a transaction will be forced to rollback in the event of 1) non redelivery of messages or 2) outstanding commit replies.
If you can deal with missing reply messages, then just enabling transacted sends will suffice, but you need to enable persistence such that a message sent to one broker will be visible on the other in the event of failover.
thanks for your reply.
Since performance has a higher value than message loss, I will stick to the non-persistent setup.
Due to a firewall problem, the clients tried to reconnect to another broker after a short time wich caused a lot of lost messages but since this is solved now, reconnects are really seldom and therefor the chance for message loss is quite low.