Q: What JMS implementations does Active JMS work with?
A: Active JMS has been tested with OpenJMS, FioranoMQ, J2EE SDK 1.3, JBossMQ, SonicMQ, SwiftMQ, and Sybase EAServer 4.0 but it should work with any 1.0.2 compliant JMS implementation.

Q: How much does Active JMS slow things down?
A: Obviously, the performance of Active JMS is dependent on the performance of the underlying JMS implementation.  However, as you might expect, Active JMS does add some overhead.

Q: What is with the memory error I get when I run the Visual Basic samples?
A: This error is associated with several versions of the JDK/JRE and is logged on Sun's Bug Parade website.  JDK/JRE 1.3.0 is recommended as a workaround.

Q: What is with the long method names?
A: Active JMS provides a single interface to JMS and several JMS objects have similar method names.  To avoid the conflict and confusion, each method identifies to which object it belongs.  From Java you might call the close method on a TopicSession, in Active JMS you would call closeOnSession.  The naming scheme works as follows: [methodName]On[DeclaringClassOrInterfaceName].  So, since the close method is declared on the javax.jms.Session interface, the Active JMS method name becomes closeOnSession.  This also helps you to identify which pointer the method expects as its first argument--a session.

Q: How do I run the Python samples?
A: run -h at a command prompt for instructions.

Q: How do I change the provider the Visual Basic samples use?
A: Because Visual Basic doesn't do a great job of handling command line arguments the Visual Basic samples always use the default provider.  To change the default provider edit the file in the samples directory from SwiftMQ to your provider.

Q: My provider requires a username and password.  How do I make Active JMS use them?
A: In the file add username and password properties to your providers sections:

Q: When I run the QueueBrowser sample on FioranoMQ nothing shows up in the messages dropdown, but the other fields are populated.  What's up?
A: Actually, I don't know what's up.  My only thought is that FioranoMQ disables the JMSMessageID by default.  If so, I think that is a non-compliant behavior.

Q: Why wasn't X JMS provider preconfigured in the file?
A: If it isn't preconfigured that doesn't mean it won't work, just that I didn't take the time to download the provider and try it out.  It has been my experience that every JMS implementation I've tested has worked.  Use the other providers as examples and give it a shot.

Q: I'm getting a NullPointerException when I call the getProvider method.  What is up?
A: One of two things is happening.  Most often it is simply that you don't have the file in your working directory.  Try printing out your working directory to make sure you are indeed where you think you are (you can do this by calling getSystemProperty("user.dir")).  The other option is that you are passing in the name of a provider that either isn't spelled correctly or isn't in the correct case--provider names are case sensative.  Your best bet is to copy and paste the provider name from your file.

Q: When I install Active JMS none of the samples work.  Do the samples work?
A: Yes, the samples doe indeed work, but there are a few things you have to do prior to running the samples.  First you must start up your JMS provider.  Secondly, you must make any needed modifications to the file found in the samples directory. By default it is configured for a default SwiftMQ configuration running on the local machine.  The other issue could be that Active JMS didn't get installed correctly.  Active JMS requires a Sun JRE version 1.2 or above to run correctly (and each version seems to work a bit differently but that is another story).  The install will detect your default, but it also gives you the option of selecting the root directory for yourself.  When you take that step, the install doesn't verify that you actually selected a valid JRE so you're on your on there.  Just make sure, when you install, you select the right directory.  Typically, The JRE gets installed in C:\Program Files\JavaSoft\JRE\1.3.1.

Q: I see the Sun J2EE SDK 1.3 is configured in the file, but I can't make it work on a remote machine.  Is this possible?
A: Yes it is indeed possible, but you'll need to set some CORBA system properties by either calling the setSystemProperty method or by including the system properties in the file like so  Behind the scenes, Active JMS looks for these properties in the properties file, strips off the part and calls System.setProperty for each one.

Q: I don't see getTopicNameOnTopic, getQueueNameOnQueue methods?
A: They don't exist.  Try getNameOnDestination instead.  This is one of the few changes I made to the JMS interfaces.  I thought it was dumb to have those methods declared on the subclasses.  I think there should have been ONE method named getName declared on javax.jms.Destination.  So, I made it that way!

Q: Does Active JMS work in X language?
A: So far the promise of ActiveX and the the ActiveX packager tools have served their intended purpose.  I've had a lot of success using Active JMS with Python, Visual Basic, and C#.  Some users have reported problems dealing with events in C++, and as such I typically recommend JMS Courier to them as it is a C++ interface to JMS.

Q: Why aren't there any samples in X language?
A: I'd love to provide samples in every Active X language, however, I don't know every language.  The Visual Basic and Python examples should provide you with a good starting place.  I am planning on releasing some .NET samples separately.


Last Updated: January 10, 2002 by