[Messaging, JMS & JBossMQ] - Re: Sequential processing of messages with the same Key
by adrianï¼ jboss.org
"mzeijen" wrote :
| - Why do I need a topic? Isn't a queue enough because a message only needs to be processed by one receiver?
|
Because then you need multiple receivers and selectors to get concurrency.
Contested queues with selectors are an anti-pattern for any reasonable
volume of messages (again see other posts).
anonymous wrote :
| - Do I need to configure a invoke-proxy-binding for every customer? I do have 700.000 customers, and those can be added dynamically...
|
You don't create 700,000 subscriptions that would be a management nightmare. ;-)
It would also require every send of a message checking 700,000 selectors to see
which subscription matches the message.
You use a "like", e.g. all customers beginning with A, B, C, etc.
to divide them into groups according to how much concurreny you need.
Or better yet, you use a "hash" of the customer id if you want a better spread.
anonymous wrote :
| I thought that the solution would be like a cluster wide locking mechanism. This is what I mean:
| - A message comes in to the message queue with a certain customer id property
| - For this id a lock is acquired via the cluster wide singleton locking mechanism by the MB
| - The next message for this id is received while the other is still being processed
| - The process for the second message tries to acquire a lock, but needs to wait for the other process to finish for this id.
| - The moment the lock is released the next process in line receives the lock and can start processing. In this case the second process.
|
| Is this a stupid idea? Am I missing something about the whole JMS technology?
|
Sounds stupid to me. :-) If I only because I doubt it would scale.
JMS is about asynchronicity, so you need to consider an asynchronous design
(if JMS is even relevant for what you are trying to achieve).
Think of JMS as more like a set of pipes and valves that let you control
where messages flow from and to. You want to direct all messages of a particular
type to a particular destination so they flow "sequentially" down that pipe.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067897#4067897
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4067897
18Â years, 9Â months
[JBoss Messaging] - Re: Messaging bridge question
by chip_schoch
Yes, I read through the JIRA link but that is referring to retrying the remote connection at startup. That is not the issue. My server is running. I can connect to the remote queue if that queue is the target destination, not the source destination. I stepped through bridge.java and verified that everything looks ok, ie the IC has the remote properties and the Destination is correct. Everything looked good to me but when it executes CreateConsumer is throws the exception. I can create a stand alone program that is able to connect to the remote server and create a consumer. I am also able to specify the same remote queue as the source destination in the bridge service and it connects fine.
I noticed in the stack trace the line:
org.jboss.remoting.transport.local.LocalClientInvoker.invoke
I am not that familiar with this code but does this mean that at this point remoting thinks the client is local? If this is so then that is a mistake. I get kind of lost in the aop code. Is it possible there is a bug that is causing it to try to connect to the local machine instead of the remote machine? Just a guess.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067889#4067889
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4067889
18Â years, 9Â months
[EJB 3.0] - Remote invocation with 4.0.5.GA + RC9
by supi
Hi,
I am trying to get remote invocation working in AS 4.0.5. I've started with RC9 and patched the IsLocalInterceptor that used to call the local bean instead of the remote one.
But now I am getting this exception:
| Caused by: java.lang.Exception: Can not make remoting client invocation due to not being connected to server.
| at org.jboss.remoting.Client.invoke(Client.java:1555)
| at org.jboss.remoting.Client.invoke(Client.java:530)
| at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:72)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
|
Is this a configuration problem or another bug? Can I do something to make the client connect?
Thanks in advance,
Basil
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067888#4067888
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4067888
18Â years, 9Â months