Hi Andy,
Thanks for the pointers. Based on your suggestions I have been able to send and receive
1000 messages on my Windows XP box without any problems! I tried to push this number
upwards but it breaks at about 3000 messages - same "Connection failure has been
detected" message. Anyway, I am not worried about that right now since I am not
expecting those kinds of loads on my system. Moreover, it may just be that I am running
out of steam on my development laptop.
Bottom line is that my MDB configuration has always been correct. As you indicated, since
I am running in my local server, I can just use the default INVM settings and there is no
need for netty. So I have reverted to the simple MDB configuration I previously had:
| @MessageDriven(activationConfig={
| @ActivationConfigProperty(propertyName="destinationType",
propertyValue="javax.jms.Queue"),
| @ActivationConfigProperty(propertyName="destination",
propertyValue="queue/jmstest")
| })
| public class TestMessageListener implements MessageListener {
| ...
| }
|
The problem really was on the sender side. As Tim pointed out, because I was using
"/ConnectionFactory", I was really not going through the JCA adapter. As soon as
I changed that to "java:/JmsXA", messages started flowing smoothly. So I am a
happy camper now :-).
Couple of quick followup questions:
1) When I monitor my queue from JBoss jmx-console I see very low message counts, typically
less that 50. I know that all my 1000 messages have been pumped into the queue because the
call to send them has returned. I also know that only a handful have been received by
watching the logs. So why does the console not show a big number in the queue?
2) In the stand-alone server use case, where is the connection factory located - on the
JBM server or on client (i.e. a standalone application or servlet/EJB running on an
application server)? I am assuming that it is on the client and you might even provide an
implementation that manages a pool of connections just like the JCA adapter on the
application server. Is this assumption correct?
Finally, I have couple of suggestions that would make the documentation a lot clearer - at
least for me :-). I like the two diagrams in sections 3.3 and 3.4 - they give a nice high
level overview of the two use cases - standalone and embedded. I suggest showing an
external client in the standalone case to make it crystal clear from where the services
are accessed.
Next, I would use these diagrams as a base for explaining deeper concepts. Overlay them
with connection factories to show where they are located and how many of them are there.
Especially useful would be to show what we get "out-of-the-box". For example, I
had no idea that we get the JmsXA factory out-of-the-box and it is a JCA factory that I
can start using right away. The documentation leads me to believe that I got to do a
#~it-load of configuration before I can get JCA working - which is absolutely not true.
Finally, it would be very helpful to use the diagrams to show which configuration file
controls which piece. There are so many configuration files flying out there that it is
confusing for a beginner. You guys have set up very good defaults so that a new user could
get started in just 10 minutes, but it has taken so much energy for so many people to get
a simple use case going. I guess if you create a 10 minute getting started guide for two
use cases (embedded and stand-alone), that would go a long way! (The existing Quick Start
Guide is very mechanical, it gets the examples running but leaves the reader without any
context around what they did. Also, I was having problems getting the jca-config example
to run because of couple of issues - I could provide details separately.)
I hope this is feedback constructive.
Thanks again for all your help.
Naresh
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4242971#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...