Hi I'm having problems with timestamps when sending messages from a C++ client and receiving them in a Java client. The C++ messaging client v0.7 does not allow to set the message timestamp. It allows to set TTL, but I'm not doing that. According to the specs, the message timestamp is assigned by the broker -- this does not seem to happen. When receiving the message in the Java client, the message headers are as follows:
JMS Correlation ID: JMS timestamp: 0 JMS expiration: 0 JMS priority: 4 JMS delivery mode: 2 JMS reply to: null JMS Redelivered: false JMS Destination: direct://foo//?routingkey='' JMS Type: null JMS MessageID: null JMS Content-Type: application/octet-stream If I do set TTL in the C++ client, the Java client receives JMS expiration of 1316002516. This seems to be seconds-since-epoch, but the JMS specs says the timestamps should be in millis-since-epoch. This seems to be related to https://issues.apache.org/jira/browse/QPID-1551. My questions are: - Why does the broker not set the message timestamp? (I thought the spec says it should) - Why does the Java client set the timestamp fields to zero instead of null, if they are not set in the AMQP message? - Why does not the Java client translate from seconds-since-epoch to millis-since-epoch? - Is any of these fixed in the latest version of the broker or Java client? Cheers Jiri
