[JBoss JIRA] (JBMESSAGING-1790) A single lagging JBM topic subscriber can cause all publishes to lag
by Yong Hao Gao (JIRA)
[ https://issues.jboss.org/browse/JBMESSAGING-1790?page=com.atlassian.jira.... ]
Yong Hao Gao updated JBMESSAGING-1790:
--------------------------------------
Fix Version/s: 1.4.8.SP12
(was: 1.4.8.SP11)
> A single lagging JBM topic subscriber can cause all publishes to lag
> --------------------------------------------------------------------
>
> Key: JBMESSAGING-1790
> URL: https://issues.jboss.org/browse/JBMESSAGING-1790
> Project: JBoss Messaging
> Issue Type: Bug
> Components: Messaging Core
> Affects Versions: 1.4.3.GA
> Environment: JBoss 5.1.0_GA, JDK 1.6.0_14 and JDK 1.6.0_18, multiple versions of Windows (2008, 2003, Vista)
> Reporter: Jason Burton
> Assignee: Yong Hao Gao
> Fix For: 1.4.8.SP12
>
> Attachments: stack_traces.zip
>
>
> We have an application that makes heavy use of JMS topics. The attached stack traces lead me to believe that we have one client that has some sort of network problem and that JBM is trying to write messages to it. Evidently this client's socket isn't working anymore. That's no problem (and maybe could be expected), but this causes every other client publish to hang.
> The attached stack traces are from JBoss and taken 10 seconds apart during an occurence of this. During this time, we observed that one or more calls to JBossMessageProducer.publish() took 50 seconds to complete (normally takes 2-5 milliseconds). Best I can tell, the "WorkManager(2)-3" thread is the culprit. Over the 50 seconds, it seemed to be stuck in a socketWrite() and has object <0x143a2250> locked. There are a few other publishing threads waiting on that lock.
> I'm pretty sure this relates to a closed bug:
> https://jira.jboss.org/jira/browse/JBMESSAGING-1220
> This bug report states to run a client out of memory to reproduce the problem, but at the point of the attached server stack traces. there aren't any clients that are out of memory. We have been able to reproduce this by running a client out of memory, though. That bug report stated to reduce the prefetchSize to a number of messages whose size would be under the TCP window size. Best I can tell by searching, the TCP window size defaults to 16K on Windows. It is definitely possible that the messages we send are larger than 16K, so even setting the prefetchSize to 1 would be larger that the TCP window size.
> Let me know if you need any more information.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 4 months
[JBoss JIRA] (JBMESSAGING-1789) setFetchSize used in JDBCPersistenceManager with too large value for oracle (200000)
by Yong Hao Gao (JIRA)
[ https://issues.jboss.org/browse/JBMESSAGING-1789?page=com.atlassian.jira.... ]
Yong Hao Gao updated JBMESSAGING-1789:
--------------------------------------
Fix Version/s: 1.4.8.SP12
(was: 1.4.8.SP11)
> setFetchSize used in JDBCPersistenceManager with too large value for oracle (200000)
> ------------------------------------------------------------------------------------
>
> Key: JBMESSAGING-1789
> URL: https://issues.jboss.org/browse/JBMESSAGING-1789
> Project: JBoss Messaging
> Issue Type: Bug
> Components: Messaging Core Persistence
> Affects Versions: 1.4.5.GA, 1.4.6.GA, 1.4.8.GA
> Environment: oracle
> Reporter: Simo Nikula
> Assignee: Yong Hao Gao
> Fix For: 1.4.0.SP3.CP15, 1.4.8.SP12
>
>
> in method loadFromStart (line 984 in 1.4.6) fetchSize is set based on parameter number which is as default 200000.
> setting max rows using setMaxRows with same value would be correct way to limit result set.
> java.sql.SQLException: Bigger type length than Maximum
> at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
> at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
> at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
> at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
> at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
> at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
> at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2253)
> at oracle.jdbc.driver.T4CMAREngine.unmarshalUB2(T4CMAREngine.java:1101)
> at oracle.jdbc.driver.T4C8TTIrxh.unmarshalV10(T4C8TTIrxh.java:115)
> at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:654)
> at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
> at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
> at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
> at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
> at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431)
> at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
> at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)
> at org.jboss.messaging.core.impl.JDBCPersistenceManager.loadFromStart(JDBCPersistenceManager.java:988)
> at org.jboss.messaging.core.impl.PagingChannelSupport.load(PagingChannelSupport.java:211)
> at org.jboss.jms.server.destination.TopicService.startService(TopicService.java:92)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:376)
> at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:269)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 4 months
[JBoss JIRA] (JBMESSAGING-1833) Intermittent test failure -- MultipleFailoverTest.testAllKindsOfServerFailures()
by Yong Hao Gao (JIRA)
[ https://issues.jboss.org/browse/JBMESSAGING-1833?page=com.atlassian.jira.... ]
Yong Hao Gao updated JBMESSAGING-1833:
--------------------------------------
Fix Version/s: 1.4.8.SP12
(was: 1.4.8.SP11)
> Intermittent test failure -- MultipleFailoverTest.testAllKindsOfServerFailures()
> --------------------------------------------------------------------------------
>
> Key: JBMESSAGING-1833
> URL: https://issues.jboss.org/browse/JBMESSAGING-1833
> Project: JBoss Messaging
> Issue Type: Bug
> Components: Tests and Performance
> Affects Versions: 1.4.0.SP3.CP11, 1.4.7.GA
> Reporter: Yong Hao Gao
> Assignee: Yong Hao Gao
> Fix For: 1.4.0.SP3.CP15, 1.4.8.SP12
>
>
> I'm seeing failure in the test, the stack trace:
> 1) testAllKindsOfServerFailures(org.jboss.test.messaging.jms.clustering.MultipleFailoverTest)javax.jms.JMSException: Cannot find a cached connection factory delegate for node -1
> at org.jboss.jms.client.container.ClusteringAspect.handleCreateConnectionDelegate(ClusteringAspect.java:217)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
> at org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.invokeNext(ClientClusteredConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.java)
> at org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate.createConnectionDelegate(ClientClusteredConnectionFactoryDelegate.java)
> at org.jboss.jms.client.FailoverCommandCenter.failureDetected(FailoverCommandCenter.java:129)
> at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:124)
> at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
> at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
> at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
> at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
> at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:276)
> at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect40.invoke(ProducerAspect40.java)
> at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
> at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
> at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
> at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
> at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:165)
> at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:208)
> at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:146)
> at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:137)
> at org.jboss.test.messaging.jms.clustering.MultipleFailoverTest.testAllKindsOfServerFailures(MultipleFailoverTest.java:174)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.jboss.test.messaging.tools.junit.SelectiveTestRunner.main(SelectiveTestRunner.java:58)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 4 months
[JBoss JIRA] (JBMESSAGING-1870) ClientSocketWrapper constructors have a redundant call to createStreams()
by Yong Hao Gao (JIRA)
[ https://issues.jboss.org/browse/JBMESSAGING-1870?page=com.atlassian.jira.... ]
Yong Hao Gao updated JBMESSAGING-1870:
--------------------------------------
Fix Version/s: 1.4.8.SP12
(was: 1.4.8.SP11)
> ClientSocketWrapper constructors have a redundant call to createStreams()
> -------------------------------------------------------------------------
>
> Key: JBMESSAGING-1870
> URL: https://issues.jboss.org/browse/JBMESSAGING-1870
> Project: JBoss Messaging
> Issue Type: Bug
> Affects Versions: 1.4.0.SP3.CP12, 1.4.8.GA
> Reporter: Ron Sigal
> Assignee: Yong Hao Gao
> Priority: Minor
> Fix For: 1.4.0.SP3.CP15, 1.4.8.SP12
>
>
> org.jboss.jms.client.remoting.ClientSocketWrapper is derived from org.jboss.remoting.transport.socket.ClientSocketWrapper. The constructors of the former look like
> public ClientSocketWrapper(Socket socket) throws IOException
> {
> super(socket);
> createStreams(socket, null);
> }
> public ClientSocketWrapper(Socket socket, Map metadata, Integer timeout) throws Exception
> {
> super(socket, metadata, timeout);
> createStreams(socket, metadata);
> }
> and the constructors of the latter look like
> public ClientSocketWrapper(Socket socket) throws IOException
> {
> super(socket);
> createStreams(socket, null);
> }
> public ClientSocketWrapper(Socket socket, Map metadata, Integer timeout) throws Exception
> {
> super(socket, timeout);
> createStreams(socket, metadata);
> }
> The calls to createStreams() in the JBossMessaging versions of ClientSocketWrapper is redundant.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 4 months
[JBoss JIRA] (JBMESSAGING-1852) Make the connection failover retry paramters configurable
by Yong Hao Gao (JIRA)
[ https://issues.jboss.org/browse/JBMESSAGING-1852?page=com.atlassian.jira.... ]
Yong Hao Gao updated JBMESSAGING-1852:
--------------------------------------
Fix Version/s: 1.4.8.SP12
(was: 1.4.8.SP11)
> Make the connection failover retry paramters configurable
> ---------------------------------------------------------
>
> Key: JBMESSAGING-1852
> URL: https://issues.jboss.org/browse/JBMESSAGING-1852
> Project: JBoss Messaging
> Issue Type: Enhancement
> Components: JMS Client Manager
> Affects Versions: 1.4.0.SP3.CP11, 1.4.7.GA
> Reporter: Yong Hao Gao
> Assignee: Yong Hao Gao
> Fix For: 1.4.0.SP3.CP15, 1.4.8.SP12
>
>
> Currently if a connection is broken and the client tries to fail over to a new connection, the retry times and intervals are hardcoded. (10 and 2sec resp.)
> Make it configurable can suit some use cases where the server is shutdown and come back later. (with hardcoded retry, the failover may have given up before the server is back).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 4 months