[jboss-user] [JBoss Messaging] - Re: Reliable delivery

vc123 do-not-reply at jboss.com
Mon Feb 11 16:09:54 EST 2008


"timfox" wrote : "vc123" wrote : 
  |   | 
  |   | anonymous wrote : 
  |   |   | On my tests,  persistent auto-ack send was too fast ( about 3000 1K messages/s) which means that there is no auto commit.  if so,  it would mean that persistent message delivery is not really reliable which is a violation of the JMS spec.
  |   |   | 
  |   | 
  |   | No, that's not a violation of the spec for previously mentioned reasons. I suspect you are using a non durable subscriber, in which case messages won't get persisted anyway.
  |   | 
  |   | Please can you explain whether you are using a queue or topic, whether it is temporary, and if a topic, whether is durable or non durable?
  | 
  | It turns out that the speed was so high because I used Hypersonic as the "persistent" store.  When I switched to Oracle,  the 1KB message production rate fell down to the expected value of about 100 messages/sec. 
  | 
  | I traced Oracle SQL statements resulting from message send/receive calls,  and I saw that with persistent delivery a commit is issued once per each message in the AUTO_ACK mode and once per batch in the transactional mode as expected.  So JBoss Messaging works according to the spec.
  | 
  | However, I was rather disappointed with non_persistent delivery which was about 1700-2000 messages/s with Oracle.  Apparently,  even with non_persistent delivery,  JM still issues quite a few SQL calls.
  | 
  | Switching back to HSQL, in hopes to improve performance, was no joy either because on my stress test (sending-receiving 1K messages in a loop) HSQL failed repeated with the following stack:
  | 
  |   | 15:48:04,936 WARN  [JDBCSupport] SQLException caught, SQLState 23000
  |   | code:-104- assuming deadlock detected, try:1
  |   | java.sql.SQLException: Violation of unique constraint SYS_PK_51:
  |   | duplicate value(s) for column(s) $$ in statement [INSERT INTO JBM_MSG
  |   | (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS,
  |   | PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS
  |   | (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)]
  |   |         at org.hsqldb.jdbc.Util.throwError(Unknown Source)
  |   |         at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown
  |   | Source)
  |   | 
  | The failure occured under JBoss 5 Beta 4 as well as Jboss 4.2.2 with SP3 Messaging.
  | 
  | Thanks.
  | 
  | VJ
  | 
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128499#4128499

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128499



More information about the jboss-user mailing list