[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Pre-calculate flow control credits for large messages (Repost)
by clebert.suconic@jboss.com
"timfox" wrote : When delivering large messages there is code that pre-calculates flow control credits - can you remind me why this is necessary?
That is something you requested.
As we send packets to the client, the client may be sending credits back to the server. You were concerned about the ServerConsumer overusing the channel and hence you requested to take credits in advance.
anonymous wrote :
| Also, can you remind me how pendingLargeMessagesCounter can ever be > 1
I think it could be replaced by an AtomicBoolean. But I would need to make a few tests.
anonymous wrote : Can you also explain this comment:
|
| // We are supposed to finish largeMessageDeliverer, or use all the possible credits before we return this
| // method.
| // If we play the commands on a different order than how they were generated on the live node, we will
| // eventually still be running this largeMessage before the next message come, what would reject messages
| // from the cluster
I have simplified the comment as:
// We need to deliver the largeMessage on backup also, exactly as done on the live node.
// In case of failure the same packets will be available for resume sending.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4238888#4238888
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4238888
16 years, 9 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Pre-calculate flow control credits for large messages
by clebert.suconic@jboss.com
"timfox" wrote : When delivering large messages there is code that pre-calculates flow control credits - can you remind me why this is necessary?
That is something you requested.
As we send packets to the client, the client may be sending credits back to the server. You were concerned about the ServerConsumer overusing the channel and hence you requested to take credits in advance.
anonymous wrote :
| Also, can you remind me how pendingLargeMessagesCounter can ever be > 1
I think it could be replaced by an AtomicBoolean. But I would need to make a few tests.
anonymous wrote : Can you also explain this comment:
|
| // We are supposed to finish largeMessageDeliverer, or use all the possible credits before we return this
| // method.
| // If we play the commands on a different order than how they were generated on the live node, we will
| // eventually still be running this largeMessage before the next message come, what would reject messages
| // from the cluster
I have simplified the command as:
// We need to deliver the largeMessage on backup also, exactly as done on the live node.
// In case of failure the same packets will be available for resume sending.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4238888#4238888
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4238888
16 years, 9 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Symmetric Cluster Example fails on a multi-core machine
by clebert.suconic@jboss.com
Same with Beta1, Beta2 or current trunk.
All you need is to run symmetric-cluster on a multi-core machine.
And you will get this:
[java] JBMServer err:13:33:32,607 INFO [org.jboss.messaging.core.server.impl.MessagingServerImpl] A connection has been made to the backup server so it will be activated! This will result in the live server being considered failed.
| [java] JBMServer err:13:33:32,608 INFO [org.jboss.messaging.core.server.impl.MessagingServerImpl] A connection has been made to the backup server so it will be activated! This will result in the live server being considered failed.
| [java] JBMServer err:13:33:32,926 SEVERE [org.jboss.messaging.core.server.impl.MessagingServerPacketHandler] Failed to reattach session
| [java] JBMServer err:java.lang.IllegalStateException: More than one replicating connection!
| [java] JBMServer err: at org.jboss.messaging.core.server.impl.MessagingServerImpl.freezeBackupConnection(MessagingServerImpl.java:843)
| [java] JBMServer err: at org.jboss.messaging.core.server.impl.MessagingServerImpl.checkActivate(MessagingServerImpl.java:788)
| [java] JBMServer err: at org.jboss.messaging.core.server.impl.MessagingServerImpl.reattachSession(MessagingServerImpl.java:480)
| [java] JBMServer err: at org.jboss.messaging.core.server.impl.MessagingServerPacketHandler.handleReattachSession(MessagingServerPacketHandler.java:298)
| [java] JBMServer err: at org.jboss.messaging.core.server.impl.MessagingServerPacketHandler.handlePacket(MessagingServerPacketHandler.java:128)
| [java] JBMServer err: at org.jboss.messaging.core.remoting.impl.ChannelImpl.handlePacket(ChannelImpl.java:621)
| [java] JBMServer err: at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:399)
| [java] JBMServer err: at org.jboss.messaging.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:483)
| [java] JBMServer err: at org.jboss.messaging.integration.transports.netty.MessagingChannelHandler.messageReceived(MessagingChannelHandler.java:75)
| [java] JBMServer err: at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:105)
| [java] JBMServer err: at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
| [java] JBMServer err: at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:803)
| [java] JBMServer err: at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:387)
| [java] JBMServer err: at org.jboss.netty.handler.codec.frame.FrameDecoder.fireMessageReceived(FrameDecoder.java:284)
| [java] JBMServer err: at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:261)
| [java] JBMServer err: at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:184)
| [java] JBMServer err: at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:87)
| [java] JBMServer err: at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
| [java] JBMServer err: at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:562)
| [java] JBMServer err: at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:344)
| [java] JBMServer err: at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:331)
| [java] JBMServer err: at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:303)
| [java] JBMServer err: at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:255)
| [java] JBMServer err: at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:176)
| [java] JBMServer err: at org.jboss.netty.util.internal.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:72)
| [java] JBMServer err: at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:49)
| [java] JBMServer err: at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| [java] JBMServer err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| [java] JBMServer err: at java.lang.Thread.run(Thread.java:595)
| [java] JBMServer err:13:34:01,655 INFO [org.jboss.messaging.core.server.impl.QueueImpl] Timed out waiting for all consumers to reconnect to queue notif.71a4c009-5dc0-11de-8234-5fbc7dbe9df0.sf.my-cluster.73e90adb-5dc0-11de-9fa7-036aa563aa8f so queue will be activated now
| [java] JBMServer err:13:34:02,610 INFO [org.jboss.messaging.core.server.impl.QueueImpl] Timed out waiting for all consumers to reconnect to queue notif.73e90adb-5dc0-11de-9fa7-036aa563aa8f.sf.my-cluster.6f6816ba-5dc0-11de-8874-fb857b8a6177 so queue will be activated now
| [java] JBMServer err:13:34:02,610 INFO [org.jboss.messaging.core.server.impl.QueueImpl] Timed out waiting for all consumers to reconnect to queue notif.71a4c009-5dc0-11de-8234-5fbc7dbe9df0.sf.my-cluster.6f6816ba-5dc0-11de-8874-fb857b8a6177 so queue will be activated now
| [java] JBMServer err:13:34:02,611 INFO [org.jboss.messaging.core.server.impl.QueueImpl] Timed out waiting for all consumers to reconnect to queue 985d352b-3810-49c0-854a-168b05f2f5b8 so queue will be activated now
| [java] Jun 20, 2009 1:34:02 PM org.jboss.messaging.core.logging.Logger error
| [java] SEVERE: Failed to handle failover
| [java] MessagingException[errorCode=3 message=Timed out waiting for response when sending packet 32]
| [java] at org.jboss.messaging.core.remoting.impl.ChannelImpl.sendBlocking(ChannelImpl.java:328)
| [java] at org.jboss.messaging.core.client.impl.ClientSessionImpl.handleFailover(ClientSessionImpl.java:734)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.reattachSessions(ConnectionManagerImpl.java:761)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failoverOrReconnect(ConnectionManagerImpl.java:637)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.handleConnectionFailure(ConnectionManagerImpl.java:506)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.access$600(ConnectionManagerImpl.java:80)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl$DelegatingFailureListener.connectionFailed(ConnectionManagerImpl.java:1194)
| [java] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.callFailureListeners(RemotingConnectionImpl.java:437)
| [java] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:279)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:1094)
| [java] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:242)
| [java] at org.jboss.messaging.integration.transports.netty.NettyConnector$Listener$1.run(NettyConnector.java:585)
| [java] Jun 20, 2009 1:34:02 PM org.jboss.messaging.core.logging.Logger warn
| [java] WARNING: Connection failure has been detected Channel disconnected:2
| [java] javax.jms.JMSException: Timed out waiting for response when sending packet 74
| [java] at org.jboss.messaging.core.remoting.impl.ChannelImpl.sendBlocking(ChannelImpl.java:328)
| [java] at org.jboss.messaging.core.client.impl.ClientConsumerImpl.doCleanUp(ClientConsumerImpl.java:748)
| [java] at org.jboss.messaging.core.client.impl.ClientConsumerImpl.close(ClientConsumerImpl.java:313)
| [java] at org.jboss.messaging.jms.client.JBossMessageConsumer.close(JBossMessageConsumer.java:153)
| [java] at org.jboss.messaging.jms.client.JBossSession.close(JBossSession.java:275)
| [java] at org.jboss.messaging.jms.client.JBossConnection.close(JBossConnection.java:259)
| [java] at org.jboss.jms.example.SymmetricClusterExample.runExample(SymmetricClusterExample.java:264)
| [java] at org.jboss.common.example.JBMExample.run(JBMExample.java:81)
| [java] at org.jboss.jms.example.SymmetricClusterExample.main(SymmetricClusterExample.java:65)
| [java] Caused by: MessagingException[errorCode=3 message=Timed out waiting for response when sending packet 74]
| [java] ... 9 more
| [java]
| [java] #####################
| [java] ### FAILURE! ###
| [java] #####################
| [java] Java Result: 1
|
| BUILD FAILED
|
|
It aways pass on my laptop. but it fails 90% of the time on my desktop or messaging-01.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4238882#4238882
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4238882
16 years, 9 months