[JBoss Messaging] - Re: Clustered server preference
by chip_schoch
>From 4.4.10.1 JMS 1.1 Spec
anonymous wrote : JMS defines that messages sent by a session to a destination must be received
| in the order in which they were sent (see Section 4.4.10.2 âÂÂOrder of Message
| Sends,â for a few qualifications). This defines a partial ordering constraint on a
| sessionâÂÂs input message stream.
>From 4.4.10.2 of JMS 1.1. Spec:
anonymous wrote : The only ordering that is visible to receiving clients is the order of messages a session sends to a particular destination.
|
Bar priority messages etc. this tells me that my consumers should be consuming my messages in the order they were produced.
>From the sun jms faq:
anonymous wrote : Note that in order to prevent duplicate delivery of a message from a durable subscription or queue, a message that can still be acknowledged by a session cannot be redelivered to another message consumer. The message can only be redelivered to another message consumer when it can no longer be acknowledged by the session that initially received the message.
Nothing to preclude sending the next message in the queue to a different consumer before receiving the ack form the first one.
>From 5.8 in the JMS 1.1 Spec
anonymous wrote : Only QueueReceivers without a
| message selector will read messages in message producer order
|
My test program has one producer that produces messages that are consumed by 2 consumers. I use no priority fetch and no message selectors. Everything I read convinces me that the order that the messages are consumed should be the order that they were produced. Now it may be that you cannot guarantee order of delivery because if message 1 failed then that would preclude you from being able to deliver message 2 until message 1 was finally delivered and acknowledged. But one would think that bar any failures, the order of delivery would be the order the messages were received by the queue, not some absolutely random order.
The point is academic, however, because the JBM implementation dos not do this.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144956#4144956
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144956
18 years, 3 months
[Persistence, JBoss/CMP, Hibernate, Database] - Re: Jboss JPA Config
by mattias@hexabit.se
Hi, Sorry for the late response. Here is the stacktrace:
| 17:55:33,125 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=ImageServices.jar,name=ImageDetailManagementBean,service=EJB3 with dependencies:
| 17:55:33,125 INFO [JmxKernelAbstraction] persistence.units:unitName=tinyphotoalbum
| 17:55:33,125 INFO [EJB3Deployer] Deployed: file:/C:/Program/jboss-4.2.2.GA/server/default/deploy/ImageServices.jar
| 17:55:33,234 INFO [DefaultEndpointRegistry] register: jboss.ws:context=ImageServices,endpoint=ImageDetailManagementBean
| 17:55:35,125 INFO [WSDLFilePublisher] WSDL published to: file:/C:/Program/jboss-4.2.2.GA/server/default/data/wsdl/ImageServices.jar/ImageDetailManagementBeanService30693.wsdl
| 17:55:35,234 INFO [TomcatDeployer] deploy, ctxPath=/ImageServices, warUrl=.../tmp/deploy/ImageServices.jar30692.war/
| 17:55:35,328 ERROR [MainDeployer] Could not start deployment: file:/C:/Program/jboss-4.2.2.GA/server/default/deploy/ImageServices.jar
| javax.xml.ws.WebServiceException: Cannot find service endpoint target: jboss.j2ee:name=ImageDetailManagementBean,service=EJB3,jar=ImageServices.jar
| at org.jboss.wsf.container.jboss42.InvocationHandlerEJB3.init(InvocationHandlerEJB3.java:83)
| at org.jboss.wsf.framework.deployment.DefaultLifecycleHandler.create(DefaultLifecycleHandler.java:51)
| at org.jboss.wsf.framework.deployment.EndpointLifecycleDeploymentAspect.create(EndpointLifecycleDeploymentAspect.java:42)
| at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:115)
| at org.jboss.wsf.container.jboss42.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:97)
| at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:90)
| at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
| at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy34.start(Unknown Source)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
| at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy9.deploy(Unknown Source)
| at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
| at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
| at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
| at $Proxy0.start(Unknown Source)
| at org.jboss.system.ServiceController.start(ServiceController.java:417)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy4.start(Unknown Source)
| at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy5.deploy(Unknown Source)
| at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
| at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
| at org.jboss.Main.boot(Main.java:200)
| at org.jboss.Main$1.run(Main.java:508)
| at java.lang.Thread.run(Thread.java:595)
|
BR,
Mattias
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144941#4144941
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144941
18 years, 3 months
[JBoss Messaging] - Re: Clustered server preference
by ataylor
anonymous wrote : The idea of a queue having only one process that can pull messages off is absurd
For every message a consumer receives from a queue it needs to send an ack back to the server.
If a queue has a single consumer then the server can deliver many messages to it which the consumer can ack in its own time, this is how we do it in JBoss Messaging with a client side buffer..
If a queue has multiple consumers the server can not to this. It has to wait until the first message is acked from the first consumer before it sends a message to the second so ordering could be guaranteed, meaning throughput would be slow and it wouldn't matter how many workers you had.
If it doesn't wait until the first message is acked then you cant guarantee ordering on the client side.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144935#4144935
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144935
18 years, 3 months