All, Attached is a minor patch to the JMS transport. It includes a first cut at a vendor-specific exception handling mechanism. This extension allows the JMS connector to fail-fast when it encounters vendor specific exceptions that cannot be recovered from. The old behavior was to retry for a configurable period of time before throwing the exception back to the user. In these unrecoverable situations the old behavior merely chewed up processor cycles and network bandwidth.
These changes do bring up a question however. I have included code in the SonicMQVendorAdapter that relies on the presence of SonicMQ client classes. Other vendor adapters that could be implemented will probably have the same requirements. I have modified build.xml to compile these classes only if the the required classes are present. However, I would like the classes to ship with the binary distribution. Is there a mechanism to add classes to the build classpath so that the SonicMQ and other vendor adapters can be compiled and packaged with the distribution? This is obviously not something that needs to go into the 1.0 branch, but I would appreciate if someone familiar with the JMS code such as Dave or James would commit the patch. Also, I would really like to see other vendor adapter implementations to validate the pluggable vendor model. James and other IBMers have expressed some interest in this. If anyone is interested in doing this for their particular JMS offering, I would be happy to help. Thanks, Jaime Meritt Sonic Software Corporation
jms-patch.zip
Description: Zip compressed data