This section contains a list of the known issues with Message Queue 4.0. The following product areas are covered:
For a list of current bugs, their status, and workarounds, Java Developer Connection™ members should see the Bug Parade page on the Java Developer Connection web site. Please check that page before you report a new bug. Although all Message Queue bugs are not listed, the page is a good starting place if you want to know whether a problem has been reported.
http://bugs.sun.com/bugdatabase/index.jsp
Java Developer Connection membership is free but requires registration. Details on how to become a Java Developer Connection member are provided on Sun’s “For Developers” web page.
To report a new bug or submit a feature request, send mail to imq-feedback@sun.com.
In previous versions of Message Queue, you could use the —p or —password option to specify a password interactively for the following commands: imqcmd, imqbrokerd, and imdbmgr. Beginning with version 4.0, these options have been deprecated. You must furnish passwords as follows.
Set the appropriate property to the desired password value in a file used to store only passwords.
Use the following syntax to specify passwords in the password file.
PasswordPropertyName=MyPassword
Pass the name of the password file using the —passfile option.
A password file can contain one or more of the passwords listed below.
A keystore password used to open the SSL keystore. Use the imq.keystore.password property to specify this password.
An LDAP repository password used to connect securely with an LDAP directory if the connection is not anonymous. Use the imq.user_repository.ldap.password property to specify this password.
A JDBC database password used to connect to a JDBC-compliant database. Use the imq.persist.jdbc.password property to specify this password.
A password to the imqcmd command (to perform broker administration tasks). Use the imq.imqcmd.password property to specify this password.
In the following example, the password to the JDBC database is set to abracadabra.
imq.persist.jdbc.password=abracadabra
You can configure the broker to use the password file you create in one of the following ways.
Set the following properties in the broker's config.properties file.
imq.passfile.enabled=true |
imq.passfile.dirpath=MyFileDirectory |
imq.passfile.name=MyPassfileName |
Use the —passfile option of the imqbrokerd command.
imqbrokerd —passfile MyPassfileName
This section covers general issues in Message Queue 4.0. Some of these were introduced with previous Message Queue versions.
The following issues affect both editions of the Message Queue 4.0 product.
SOAP clients. Previously the SAAJ 1.2 implementation jar used to refer to mail.jar and mail.jar did not need to be in CLASSPATH. In SAAJ 1.3 this reference was removed; thus, Message Queue clients must put mail.jar explicitly in CLASSPATH.
In Message Queue 4.0, the example broker configuration for using an LDAP server as a user repository is provided in the comment area in the config.properties file, and the LDAP user repository example in the default.properties file has been commented out.
If you previously relied on any property value in the example LDAP user repository properties specified in the default.properties file, your JMS application client will receive a security exception when attempting to create a JMS connection. This will happen after you upgrade to Message Queue 4.0.
When your JMS client tries to make a connection to the Message Queue 4.0 broker, you will get a error in the broker log and your JMS client will receive the following exception:
SecurityException. 20/Aug/2004:11:16:41 PDT] ERROR [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic:com.sun.messaging.jmq.auth.LoginException: [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic
Workaround Set the broker property imq.user_repository.ldap.uidattr following the instructions in Chapter 8 in Sun Java System Message Queue 3 2005Q4 Administration Guide.
The following issues pertain to the use of the JMX API.
On the Windows platform, the getTransactionInfo method of the Transaction Manager Monitor MBean returns transaction information that has incorrect transaction creation time (Bug ID 6393359).
Workaround Use the getTransactionInfoByID method of the Transaction Manager Monitor MBean instead.
The getActiveConsumerIDs method of the Destination Monitor MBean throws an exception when used with topic destinations (Bug ID 6397184).
Workaround Use the getConsumerIDs method of the Destination Monitor MBean instead.
The following issues pertain to administration and configuration of Message Queue
The imqadmin and imqobjmgr utilities throw an error when the CLASSPATH contains double quotes on Windows machines (Bug ID 5060769).
Workaround You can ignore this error message; the broker correctly handles notifying consumers of any error. This error does not affect the reliability of the system.
The -javahome option in all Solaris and Windows scripts does not work if the value provided contains a space (Bug ID 4683029).
The javahome option is used by Message Queue commands and utilities to specify an alternate Java 2 compatible runtime to use. However, the path name to the alternate Java runtime must not contain spaces. The following are examples of paths that include spaces.
Windows: C:/jdk 1.4
Solaris: /work/java 1.4
Workaround Install the Java runtime at a location or path that does not contain spaces.
The imqQueueBrowserMaxMessagesPerRetrieve attribute specifies the maximum number of messages that the client runtime retrieves at one time when browsing the contents of a queue destination. Note that the client application will always get all the messages on the queue. Thus, the imqQueueBrowserMaxMessagesPerRetrieve attribute affects how the queued messages are chunked, to be delivered to the client runtime (fewer large chunks, or more smaller chunks), but it does not affect the total messages browsed. Changing the value of this attribute might impact performance, but it will not result in the client application getting more or less data (Bug ID 6387631).
The following issues affect the Message Queue broker.
When using Ctrl-C to shut down broker, transactions may be cleaned up after store is closed (Bug ID 4934446).
The broker may show errors with the following reason “Store method accessed after the store is closed.” if the broker is shut down while messages or transactions are processed.
Workaround You can ignore this error message; the broker correctly handles notifying consumers of any error. This error does not affect the reliability of the system.
Broker becomes inaccessible when persistent store opens too many destinations. (Bug ID 4953354).
Workaround This condition is caused by the broker reaching the system open-file descriptor limit. On Solaris and Linux use the ulimit command to increase the file descriptor limit.
Consumers are orphaned when a destination is destroyed (Bug ID 5060787).
Active consumers are orphaned when a destination is destroyed. Once the consumers have been orphaned, they will no longer receive messages (even if the destination is recreated).
Workaround There is no workaround for this problem.
Message selection using JMSMessageID doesn’t work (Bug ID 6196233).
Workaround Change the selector from the following expression:
JMSMessageID = "ID:message-id-string"
to the following expression:
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue A queue browser shows uncommitted messages (Bug ID 6264003).
When browsing the contents of a queue, messages that were produced in a transaction but are not yet committed may appear in the queue browser enumeration.
Workaround There is no workaround for this problem.
Connection is dropped for a broker in a cluster (Bug ID 6377527).
One reason this can happen is that the broker address (whose connection is dropped) is resolved to be the loopback IP address (127.0.0.1).
Workaround Make sure that the broker address does not resolve to the loopback IP address.