I'm bitching because it took nearly two pages of posts and explaining JMS
semantics before I found out you are abusing the api.
If you want to try to implement the JMSXGroup in JBossMQ, I can explain the
changes required.
This would still have latency (it has to wait for all messages in the
So you don't want it to send any messages to a client until all messages
in a transaction are ready to be sent to the client.
This would introduce latency and concurrency overhead.
This is the natural overhead of any transaction isolation.
In fact, it is the worst kind (in terms of performance)
END OF TOPIC FOR ME.
This is not a JBossMQ bug, though it might be considered an example of a feature
that JBossMQ does not support.
It is a misunderstanding of the JMS semantics.
View the original post :
http://www.jboss.org/index.html?module=bbop=viewtopicp=3866519#3866519
Reply to the
Ok End of topic, but can you stop bitching at people all the time.
I know that the problem I have does effect performance badly, so what I have to
solve that business problem! I know that it is an anti-pattern, but that does
not make the requirement go away!
We are not all dummies you know.
The JMS spec just says that all messages in a single tx are sent or not sent.
It says nothing about the timing of when they appear on the destination.
But it would make sense if all messages in the same transaction appear on the
destination at the same time. In Fact I think it is what
I understand the Spec and do not try to bypass it. But the problem I have is
not solved by any standard mechanism.
I have messages on a queue that should be processed by MDB's. But messages with
the same key (message property) must not be parallelized, but processed in the
order they came onto
Adrian, one last thing. I have now a test running, that will run until tomorrow
moring me time (12 hours straight). Until now every second testcase failed.
View the original post :
http://www.jboss.org/index.html?module=bbop=viewtopicp=3866210#3866210
Reply to the post :
There is no such concept of transaction isolation in JMS
(it could be done as a value added feature, but it isn't supported by JBossMQ).
The JMS spec just says that all messages in a single tx are sent or not sent.
It says nothing about the timing of when they appear on the destination.
Even if
Misunderstandings:
1) Your fundamental misunderstanding appears to be that messages are globally
ordered.
JMS guarantees that messages sent from a single sender are ordered. It says
nothing about competing senders (your mdbs?). Though most jms providers
use a form of timestamp so it generally
Adrian,
1) I know that, that is the reason for how we do 'keystreaming'
2) Maybe it shouldn't but for this purpose I need to. And I use a cluster
locking mechanism
3) That is not what I want
4) exactly I want a snapshot!!
5) In effect the Queue the MDB listens on has 2 sets of messages,
Adrian,
I have several problems and I do not know how to sovle them.
1. Message Order:
I don't how it happens but I proved now that the messages are sometimes not
delivered in the same order as sent to the queue.
First transaction sender:
09:18:27,343 INFO [JMS SessionPool
Maybe I should describe what the MDB does.
My messages have keys (messageKey). The Sender will put a 'notification
message' on the queue for each new key in one transaction. These messages only
have a property messageKey.
The MDB is listening on these messages (message selector). Upon onMessage
This is an FAQ. In fact multiple FAQs.
1) Read the spec about no guarantee of ordering of an MDB
2) Read the spec about EJBs should not do internal locking (it certainly
doesn't work in a cluster)
3) Read the JBossMQ FAQ about MDB singleton (which is probably what you are
looking for?)
4) Read
I don't believe your assertions. Use READ THIS FIRST to show me what is really
happening.
The code is too trivial to be at fault:
from org.jboss.mq.MessageProducer#send(...)
| long ts = System.currentTimeMillis();
| sendMessage.setJMSTimestamp(ts);
|
View the original post :
Transacted sessions will ensure that all or none (in case of failure) of your messages
will be stored in the queue, but this does NOT mean, that there is a logical grouping
between these messages which can be used for group based message processing on the
client side !
Read the JMS
Robisz, thanks for your inputs. Shall I use a transacted session to solve the problem?
Will JMS ensures that a messages sent from a transacted session to a Queue will always
arrive in the Queue in a group
View the original post :
Hi!
I guess it's not possible.
You can try to add a sender id to your messages and your
receiver can sort out them by the id... but it's not exactly what you want.
I recommend you use different queues for senders and your
receiver can listen all of them.
robisz
View the original post :
We do not answer design questions here. Only technical questions.
If you want help with design, hire a consultant.
View the original post :
http://www.jboss.org/index.html?module=bbop=viewtopicp=3847050#3847050
Reply to the post :
I trust you'll forgive my imposition. I have seen many questions in this forum about
the use of the singleton configuration, and I consider this a variant on the theme.
Perhaps you can answer my jboss specific question:
Is it possible to intercept a message when it is being pulled off a queue
Just create your own message driven bean container-configuration
that includes the interceptor and reference it from your mdb in META-INF/jboss.xml
Or even simpler, modify the standard container in conf/standardjboss.xml
More portably, change your mdb into a something that implements the
chain
20 matches
Mail list logo