What JMS implementations does Active JMS work with?
Active JMS has been tested with OpenJMS,
J2EE SDK 1.3,
JBossMQ, SonicMQ, SwiftMQ,
Sybase EAServer 4.0 but it should
work with any 1.0.2 compliant JMS implementation.
How much does Active JMS slow things down?
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.
What is with the memory error I get when I run the Visual Basic
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.
What is with the long method names?
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.
How do I run the Python samples?
run PythonSampleName.py -h at a command prompt for instructions.
How do I change the provider the Visual Basic samples use?
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
active-jms.properties file in the samples directory from SwiftMQ
to your provider.
My provider requires a username and password. How do I make
Active JMS use them?
In the active-jms.properties file add username and password
properties to your providers sections:
When I run the QueueBrowser sample on FioranoMQ nothing shows up
in the messages dropdown, but the other fields are
populated. What's up?
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.
Why wasn't X JMS provider preconfigured in the active-jms.properties
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.
I'm getting a NullPointerException when I call the getProvider
method. What is up?
One of two things is happening. Most often it is simply that
you don't have the active-jms.properties 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 active-jms.properties file.
When I install Active JMS none of the samples work. Do the
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 active-jms.properties 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.
I see the Sun J2EE SDK 1.3 is configured in the
active-jms.properties file, but I can't make it work on a remote
machine. Is this possible?
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 active-jms.properties
file like so activejms.system.properties.your.property.here=your.property.value.
Behind the scenes, Active JMS looks for these properties in the
properties file, strips off the activejms.system.properties part
and calls System.setProperty for each one.
I don't see getTopicNameOnTopic, getQueueNameOnQueue methods?
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
Does Active JMS work in X language?
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
to them as it is a C++ interface to JMS.
Why aren't there any samples in X language?
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.