2011年7月21日 星期四

[JMS] MessageListener.onMessage

A client can register an object that implements the JMS MessageListener interface with a MessageConsumer. As messages arrive for the consumer, the provider delivers them by calling the listener’s onMessage method.

It is possible for a listener to throw a RuntimeException; however, this is considered a client programming error. Well-behaved listeners should catch such exceptions and attempt to divert messages causing them to some form of application-specific ‘unprocessable message’ destination.

The result of a listener throwing a RuntimeException depends on the session’s acknowledgment mode.

AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE - the message will be immediately redelivered. The number of times a JMS provider will redeliver the same message before giving up is provider-dependent. The JMSRedelivered message header field will be set for a message redelivered under these circumstances.
CLIENT_ACKNOWLEDGE - the next message for the listener is delivered. If a client wishes to have the previous unacknowledged message redelivered, it must manually recover the session.
Transacted Session - the next message for the listener is delivered. The client can either commit or roll back the session (in other words, a RuntimeException does not automatically rollback the session).

JMS providers should flag clients with message listeners that are throwing RuntimeExceptions as possibly malfunctioning.

2011年7月5日 星期二

[MySQL] 手動安裝

1. 註冊為系統Service:
    mysqld --install MySQL3 --defaults-file="%CURRENT_DIR%\my-huge.ini"
2. 從系統Service中移除:
    mysqld --remove MySQL3
3. 啟動Service:
    net start MySQL3
4. 關閉Service:
    net stop MySQL3