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]