The following issues affect clustered brokers.
Only fully-connected broker clusters are supported in this release. This means that every broker in a cluster must communicate directly with every other broker in the cluster. If you are connecting brokers using the imqbrokerd -cluster command line argument, be careful to ensure that all brokers in the cluster are included.
A broker using HADB cannot handle messages larger than 10 MB. (Bug 6531734)
If a client is connected to a high availability broker, the client runtime will attempt to reconnect until it succeeds (no matter what the imqAddressListIterations value is set to be.)
A client connected to a broker that is part of a cluster cannot currently use QueueBrowser to browse queues that are located on remote brokers in that cluster. The client can only browse the contents of queues that are located on the broker to which it is directly connected. The client may still send messages to any queue or consume messages from any queue on any broker in the cluster; the limitation only affects browsing.
In a conventional cluster, if you want to cluster a 4.1 broker with a 3.x broker, you must set the property imq.autocreate.queue.maxNumActiveConsumers=1 for the 4.1 broker. Otherwise, the brokers will not be able to establish a cluster connection.
When converting to a high-availability cluster, you can use the Message Queue Manager utility (imqdbmgr) to convert an existing standalone HADB persistent data store to a shared HADB store. The command is as follows.
imqdbmgr upgrade hastore
You can use this utility in the following cases.
Moving from a 4.0 standalone HADB store to a 4.1 shared HADB store. In this case, the broker will automatically upgrade the store. You can then run the imqdbmgr command to convert the upgraded data store for shared use.
Moving from a standalone 4.1 HADB store to a shared HADB store. In this case, you just need to run the imqdbmgr command shown above to convert the data store for shared use.
Because this command only supports conversion of HADB stores, it is not possible to use it to convert file-based stores or other JDBC-stores to a shared HADB store. If you were previously running a 3.x version of Message Queue, you must create an HADB store and then manually migrate your data to that store in order to use the high availability feature.
The conversion to an HADB store using the command imqdbmgr upgrade hastore can fail with the message “too many locks are set” if the store holds more than 10,000 message. (Bug ID 6588856)).
(Workaround) Use the following command to increase the number of locks.
hadbm set NumberOfLocks=<desiredNumber>
For additional information see “HADB Problems” in Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
If more than 500 remote messages are committed in one transaction, the broker might return the error “HADB-E-12815: Table memory space exhausted.” (Bug ID 6550483)
For additional information, see “HADB Problems” in Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
In a broker cluster, a broker will queue messages to a remote connection that has not been started (Bug ID 4951010).
Workaround The messages will be received by the consumer once the connection is started. The messages will be redelivered to another consumer if the consumer’s connection is closed.
When consuming more than one message from a remote broker in one transaction, it is possible that the following error message will be logged to the broker. The message is benign and can be ignored:
[26/Jul/2007:13:18:27 PDT] WARNING [B2117]: Message acknowledgement failed from mq://18.104.22.168:7677/?instName=a&brokerSessionUID=3209681167602264320: ackStatus = NOT_FOUND(404)\ Reason = Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed. AckType = MSG_CONSUMED MessageBrokerSession = 3209681167602264320 TransactionID = 3534784765719091968 SysMessageID = 8-22.214.171.124(95:fd:93:91:ec:a0)-33220-1185481094690 ConsumerUID = 3534784765719133952\par [26/Jul/2007:13:18:27 PDT] WARNING Notify commit transaction [8-126.96.36.199(95:fd:93:91:ec:a0)-33220-1185481094690, [consumer:3534784765719133952, type=NONE]] TUID=3534784765719091968 got response: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.r
This message gets logged when notifying the commit to the message home broker for later messages in the transaction when the imq.txn.reapLimit property is low compared to the number of remote messages in one transaction. (Bug 6585449)
Workaround To avoid this message increase the value of the imq.txn.reapLimit property.