I am using the qpid client Java library (version 0.32) to integrate AMQP 1.0.
I have to transfer a byte array (less than 5mb), but this message is never delivered to the subscribers. I recorded the frames via wireshark and the transfer frames are flagged with [TCP Window Full]. The library is probably not dividing the payload. Is the code correct? What do I have to configure?
Broker: Apache Apollo 1.7.1 (default configuration)
pom.xml
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client-jms</artifactId>
<version>0.32</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client</artifactId>
<version>0.32</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-common</artifactId>
<version>0.32</version>
</dependency>
Java code
ConnectionFactoryImpl amqpFactory = new ConnectionFactoryImpl(...);
ConnectionImpl connection = amqpFactory.createConnection();
connection.start();
SessionImpl session = connection.createSession(...);
MessageProducerImpl producer = session.createProducer(new TopicImpl("topic://test"));
BytesMessageImpl bytesMessage = session.createBytesMessage();
//generate sample data
StringBuilder s = new StringBuilder();
for (int i = 0; i < 10000; i++) {
s.append(UUID.randomUUID().toString());
}
bytesMessage.writeBytes(s.toString().getBytes());
producer.send(bytesMessage);