You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "juergen schmied (JIRA)" <ji...@apache.org> on 2018/11/27 03:53:00 UTC

[jira] [Commented] (ARTEMIS-2185) High allocation pressure due to pre generated ActiveMQExceptionMessage

    [ https://issues.apache.org/jira/browse/ARTEMIS-2185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16699893#comment-16699893 ] 

juergen schmied commented on ARTEMIS-2185:
------------------------------------------

{code}
org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.returnBlocking(java.lang.Throwable) line: 210	
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(org.apache.activemq.artemis.api.core.ActiveMQException, java.lang.String) line: 215	
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl(org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection).fail(org.apache.activemq.artemis.api.core.ActiveMQException) line: 210	
org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl.connectionDestroyed(java.lang.Object) line: 533	
org.apache.activemq.artemis.core.remoting.impl.invm.InVMAcceptor$Listener.connectionDestroyed(java.lang.Object) line: 292	
org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection.close() line: 140	
org.apache.activemq.artemis.core.remoting.impl.invm.InVMAcceptor.disconnect(java.lang.String) line: 242	
org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(java.lang.Object) line: 256	
org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection.close() line: 140	
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.internalClose() line: 394	
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.destroy() line: 229	
org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.checkCloseConnection() line: 863	
org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.closeCleanSessions(boolean) line: 449	
org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.interruptConnectAndCloseAllSessions(boolean) line: 424	
org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.close() line: 457	
org.apache.activemq.artemis.jms.client.ActiveMQConnection.close() line: 337	
org.springframework.jms.connection.ConnectionFactoryUtils.releaseConnection(javax.jms.Connection, javax.jms.ConnectionFactory, boolean) line: 80
{code}

> High allocation pressure due to pre generated ActiveMQExceptionMessage
> ----------------------------------------------------------------------
>
>                 Key: ARTEMIS-2185
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2185
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>          Components: Broker
>    Affects Versions: 2.6.3
>            Reporter: juergen schmied
>            Priority: Minor
>
> In org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl there is
> {code:java}
>    public void returnBlocking(Throwable cause) {
>       lock.lock();
>       try {
>          response = new ActiveMQExceptionMessage(ActiveMQClientMessageBundle.BUNDLE.unblockingACall(cause));
>          sendCondition.signal();
>       } finally {
>          lock.unlock();
>       }
>    }
> {code}
> The response is created but normally not used.
> For every get/close connection there is the a ActiveMQExceptionMessage incl. stacktrace created and abandoned.
> This shows a high allocation pressure in jmc (8 MB garbage/200 calls).
> please don't precreate the unused exception (maybe use a producer producing exception when really needed)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)