Hide Forgot
The JMS client has options -Dsync_persistence=true|false (which has been deprecated, and its replacement -Dsync_publish=persistent|all. Using a store with prints out its operations: 1E: = store enqueue 1F = store flush operation 1Wcb = store write callback (completion of async disk write) the first (obsolete) operation works as expected: ... 1E: 1F 1Wcb 1E: 1F 1Wcb 1E: 1F 1Wcb ... while the latter option is ignored: ... 1E: 1E: 1E: 1E: 1E: 1E: 1E: ...
Fixed in upstream at http://svn.apache.org/viewvc?view=rev&rev=1069998 The fixes are now included in rpms from version qpid-java-0.9.1080013-2
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: The JVM option -Dsync_publish has no effect. Consequence: A user is unable to configure the client to send messages synchronously. However for durable messaging a user could still use the deprecated option -Dsync_persistence=true to work around this. Still it has no way of specifying synchronous publish for transient messages. Fix: The JMS client is now able to send messages synchronously. The sync_publish option takes one of {transient,persistent,all,''}. Where '' represents none. The default is set to '', where all messages are sent asynchronously. Result: Depending on the value of sync_publish one of the following will happen, 1. Default Behaviour - all messages are sent asynchronously. 2. persistent - Only persistent messages are sent synchronously. 3. transient - Only transient messages are sent synchronously. 4. all - all messages are sent synchronously.