Das Senden der JMS -Nachricht an IBM MQ mit Apache Camel ist ungewöhnlich langsamJava

Java-Forum
Anonymous
 Das Senden der JMS -Nachricht an IBM MQ mit Apache Camel ist ungewöhnlich langsam

Post by Anonymous »

Ich versuche, viele JMS -Nachrichten an einen IBM MQ Broker mit der fantastischen Apache -Kamelbibliothek zu senden. Die Sendungsrate von Nachrichten ist mit Apache Camel sehr langsam (1 MSG/Sekunde). Wenn ich den gleichen Versand ohne Kamel -Sendungsrate 50 msg/Sekunde beträgt. Ich verstehe nicht, warum, weil die beiden Beispiele einen MQConnectionFactory mit denselben Parametern verwenden. >

Code: Select all

MQConnectionFactory factory = new MQConnectionFactory();

factory.setHostName("tcp://myhost");
factory.setPort(1414);
factory.setChannel("mychannel");
factory.setQueueManager("myqueuemanager");
factory.setAppName("myAppName");
factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
factory.setStringProperty(WMQConstants.USERID, "myuser");
factory.setStringProperty(WMQConstants.PASSWORD, "mypassword");

// Set SSL properties for MTLS
factory.setSSLCipherSuite(this.localConf.getString("ssl.ciphers"));
System.setProperty("javax.net.ssl.keyStore",  "somekeystore.js");
System.setProperty("javax.net.ssl.keyStorePassword",  "mykeystorepassword");
System.setProperty("javax.net.ssl.trustStore", "somekeystore.js");
System.setProperty("javax.net.ssl.trustStorePassword",  "mykeystorepassword.js");

var component = JmsComponent.jmsComponentClientAcknowledge(factory);

//Creating a new camel context
context = new DefaultCamelContext();
context.addComponent( "ibmmq", component);

context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
from("timer:myTimer?period=1&delay=0").setBody(constant("message content inferior to 100 bytes"))
//Envois vers IBM
.to("ibmmq:queue:myQueueName");
}
});

context.start();
< /code>
Ich bin in der Auflösung dieses Problems verloren: < /p>

 Es kann keine Brokerbeschränkung sein, weil mein Standard -Test ohne Kamel ist 50x schneller < /li>
 Es kann nicht die Fabrik sein, da es in zwei Tests gleich ist < /li>
< /ul>
 Gibt es in meinem Kamelcode eine Missverständnis? schneller: < /p>
// Variables
JMSContext context = null;
Destination destination = null;
JMSProducer producer = null;
JMSConsumer consumer = null;

try {
// Create a connection factory
JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();

// Set the properties
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, host);
cf.setIntProperty(WMQConstants.WMQ_PORT, port);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, channel);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, qManagerName);
cf.setStringProperty(WMQConstants.WMQ_APPLICATIONNAME, "JmsPutGet (JMS)");
cf.setBooleanProperty(WMQConstants.USER_AUTHENTICATION_MQCSP, true);
cf.setStringProperty(WMQConstants.USERID, user);
cf.setStringProperty(WMQConstants.PASSWORD, password);

context = cf.createContext();
destination = context.createQueue("queue:///" + qname);

for(int i=0;i

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post