2.1. MRG Messaging Known Issues

2.1. MRG Messaging Known Issues

Bugzilla Number Description Workaround
444742 When a Java Messaging Service client attempts to send messages via a federation link to a queue on a remote broker with reply-to set to a temporary queue on the local broker. A client of the remote broker should be able to send a reply back via a federation link. Temporary queues can be created directly through the AMQQueue class, allowing a specific name to be assigned to them. The appropriate routes between brokers can then be configured using the qpid-route tool
449827(a) The client::Sesssion class in the C++ client API has been modified. The new client::Session class provides synchronous functions corresponding to AMQP commands. The functions block until the command is completed by the broker and return a C++ result object (or void if no result is expected.) The names and parameter lists of the functions on client::Session are identical, only the return types differ. The functions async() and sync() can be used to convert a Session to an AsyncSession and vice versa.
449827(b) A new client::AsyncSession class has been added to the C++ client API. The client::AsyncSession class provides asynchronous functions for the AMQP commands. These functions send the command and return immediately. They return a Future object that can be used to wait for the command to complete and retrieve the result. The names and parameter lists of the functions on client::AsyncSession are identical, only the return types differ. The functions async() and sync() can be used to convert a Session to an AsyncSession and vice versa.
450707 When the broker is started with the store module loaded, the store module will open the BDB database in the data directory. It has been observed that if BDB is upgraded, or the store directory from one version of BDB is used by another version, then the broker will fail to start. One of the most commonly observed error messages is:
Database handles still open at environment close
Error opening environment (BdbMessageStore.cpp:144): DbEnv::open: Invalid argument
If recovery is not important (that is, if there are no messages or queues that need to be restored on startup), then simply delete the database and journal (if it exists) in the store directory. The broker will create a new one when it starts. This is most easily done with a command such as
rm -rf /var/lib/qpidd/rhm
where /var/lib/qpidd is the data directory. If recovery is important, then it will be necessary to run the db_recover utility against the database. This requires the db4-utils package. Run
# yum install db4-utils
as root to install the package.
450751 Using TCP_NODELAY can significantly improve the performance of Java clients that do synchronous publishing or that use many small transactions. TCP_NODELAY can be enabled by setting the amqj.tcpNoDelay system property to true:
java -Damqj.tcpNoDelay=true
450840 For performance reasons the Java client library does not throttle producer rate by default. When an application is using a slow network or sending very large messages, messages might be produced faster than they are written. In this situation the client application may eventually run out of memory. This can be prevented (with a small performance penalty) by using the property
-Dprotectio=true
451018 If the same relative path is specified for data-dir and pid-dir the daemon starts but fails when shutdown (using the --quit option) as the pid file is in an unexpected location. Always use absolute paths when running the broker as a daemon.
451106 When MRG Messaging is started as a daemon it sends log messages to syslog by default. The --syslog-name and --syslog-facility options allow you to modify the name and facility that is used in syslog messages. When MRG Messaging is started without the --daemon option it sends log messages to stderr by default. You can change the log destination in either case by setting the --log-output option.
451121 Under a specific failure condition, normal recovery could fail to guarantee full atomicity. This will be addressed in an erratum. In the meantime, the journal contains a sufficient record to avoid data loss following manual correction by the Red Hat team.
451269 When using the journal, the available file handles for the process needs to be correctly configured for the expected number of queues and the number of files per journal. Currently, two file handles are opened for each active journal file.
451716 Recent changes have degraded the transactional performance. This will be optimised in an erratum.
Table 2.1. MRG Messaging Known Issues