On 18/05/16 15:00, Michal Zerola wrote:
Hi Gordon,

I have tested qpid client 0.32 and also 6.0.2 (neither is working against
C++ server).

Those are both 0-10.

If I use the same code (send three 1MB messages) against Java
Qpid broker, everything works. I am attaching logs, where you can see that
after sending the first message the client waits for completion of the
command from the server. It receives multiple SessionCompleted(commands=[1,
1] ... ) in a row, however, against the Java Broker it receives only single
SessionCompleted(commands=[0, 2]) response.

This is because the c++ broker uses async io for the store, meaning it does not block the thread that read the message from the wire until it has completed.

The client sends a flush request rather than a sync, which asks the broker to indicate what is complete now (as opposed to requesting a response when all outstanding commands are complete as a sync would).

But after some iterations the
message is sent (right after receive of the SessionCompleted(commands=[1,
2]). The problem appears after trying to send the third message (last time I
tested it, it was already after the second ...). Right after send command
client receives SessionCompleted(commands=null) and timeouts after 1 minute.

The null commands is expected as the client sent a known-completed control for 1-2.

It sounds a bit like https://issues.apache.org/jira/browse/QPID-4524. As suggested in the last comment there, you could try setting -Dqpid.sync_op_timeout on the client, or see if you can make the store faster e.g. reducing --journal-flush-timeout on the broker.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to