B created AMQ-5144:
----------------------
Summary: stomp+nio+ssl very slow message sending
Key: AMQ-5144
URL: https://issues.apache.org/jira/browse/AMQ-5144
Project: ActiveMQ
Issue Type: Bug
Components: stomp
Affects Versions: 5.9.0
Environment: Linux 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9
18:17:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linuxjava version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode
Reporter: B
Hi there
I have following broker config:
<transportConnector name="stomp"
uri="stomp+nio+ssl://0.0.0.0:61612?maximumConnections=10000&wireFormat.maxFrameSize=104857600"/>
ACTIVEMQ_OPTS_MEMORY="-Xms1G -Xmx2G
-Dorg.apache.activemq.UseDedicatedTaskRunner=false"
And followind code snippet:
{code}
@Test
public void plainStompTest() throws Exception {
StompConnection sender = new StompConnection();
StompConnection receiver = new StompConnection();
System.setProperty("javax.net.ssl.keyStore",
"/home/user/.keystore/client.ks");
System.setProperty("javax.net.ssl.trustStore",
"/home/user/.keystore/client.ts");
System.setProperty("javax.net.ssl.keyStorePassword", "changeme");
System.setProperty("javax.net.ssl.trustStorePassword", "changeme");
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket1 = (SSLSocket) factory.createSocket("localhost", 61612);
SSLSocket sslsocket2 = (SSLSocket) factory.createSocket("localhost", 61612);
sender.open(sslsocket1);
receiver.open(sslsocket2);
sender.connect("admin", "admin");
receiver.connect("admin", "admin");
receiver.subscribe("/queue/receiver");
Thread.sleep(1000); // wait until subscribed
char[] data = new char[toSendBytesMsgSize];
Arrays.fill(data, 'a');
long startTime = System.currentTimeMillis();
logger.info("Sending message - size " + toSendBytesMsgSize / 1024 + " kb");
sender.send("/queue/receiver", new String(data));
StompFrame frame = receiver.receive(0);
byte[] body = frame.getBody().getBytes();
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
logger.info("Reply received");
logger.info("Execution time = " + elapsedTime / 1000 + " seconds" + "[" +
elapsedTime + " ms]");
assertEquals(toSendBytesMsgSize, body.length);
}
{code}
Results for stomp+ssl :
{code}
Sending message - size 1000 kb
Reply received
Execution time = 0 seconds[221 ms]
{code}
Results for stomp+nio : (i modified test client to not use ssl socket)
{code}
Sending message - size 1000 kb
Reply received
Execution time = 0 seconds[399 ms]
{code}
Results for stomp+nio+ssl :
{code}
Sending message - size 1000 kb
Reply received
Execution time = 54 seconds[54162 ms]
{code}
So from above we see that for stomp+nio+ssl it takes very long time to send a
message.
Anyone knows whats wrong ?
--
This message was sent by Atlassian JIRA
(v6.2#6252)