Can a publishing client ensure message delivery by making a message durable?
No. Message durability ("durableness?") is established between a subscribing client (topic subscribers only, not queue receivers) and the JMS server on a topic-by-topic basic, that is, per subscription. The producer has no control over this contract between the subscriber and the JMS server. The relevant method is TopicSession.createDurableSubscriber().