JBoss A-MQ for xPaaS Release Notes

Red Hat JBoss A-MQ for xPaaS

What's new in Red Hat JBoss A-MQ for xPaaS

Red Hat

Version 6.1
13 Oct 2017

Abstract

These notes provide an overview of the changes between each release of the Red Hat JBoss A-MQ cartridge for OpenShift Enterprise.

Chapter 1. What's New

Abstract

This section describes the main features in version 6.1.1 of the Red Hat JBoss A-MQ cartridge and the differences between the cartridge and the standalone JBoss A-MQ product.
For detailed information about how to get started, including installation and configuration instructions, see the JBoss Fuse Cloud Deployment Guide or the JBoss A-MQ Cloud Deployment Guide.

Installation components

The JBoss A-MQ cartridge is shipped as an RPM package. You download the package from the JBoss A-MQ product page on the Customer Portal and install the cartridge with yum in the same way you install other OpenShift Enterprise components.

What's different in the JBoss A-MQ cartridge

When you create and run JBoss A-MQ applications in the OpenShift Enterprise domain, note the following differences between the cartridge and the standalone JBoss A-MQ product:
Fabric management
  • Each JBoss A-MQ application that you create is deployed with fabric by default.
  • Some fabric profiles, such as Gateway and Tomcat, are not supported.
  • You cannot create child containers. Each container that you deploy acts as a standalone application in the domain.
  • The first application that you create includes the ZooKeeper instance with the user credentials and environment variables that subsequent applications require to run.
  • Secured shared file systems are not supported.
Ports and networking
  • You can use only 3 private application ports to connect to the JBoss A-MQ applications. The ports are defined in system properties.
  • The PublicPortMapper tool maps the private application ports to public ports before external clients can connect to the JBoss A-MQ applications.
  • UDP connections are not supported.
High availability
  • The first JBoss A-MQ application in the OpenShift Enterprise domain acts as the master node in the cluster.
  • You must install a standalone JBoss A-MQ instance and configure the ZooKeeper ensemble outside of the OpenShift Enterprise domain to manage applications inside the domain.
  • You must configure the cluster to use JDBC Master Slave or Replicated LevelDB Store.
  • Auto-scaling is not supported.

Technical preview features

The following features are provided on a technical preview basis and are not fully supported in version 6.1.1:
  • Fuse Builder cartridge

Chapter 2. Known Issues

This section lists known issues in version 6.1.1 of the JBoss A-MQ cartridge.
For general known issues in version 6.1.0 of JBoss A-MQ, see the Known Issues section of the Red Hat JBoss A-MQ 6.1 Release Notes.
Restoring JBoss A-MQ applications from a snapshot is not supported
If you create a snapshot of multiple JBoss A-MQ applications with the snapshot-save command, you cannot restore the snapshots with the snapshot-restore command.
You must delete containers with the same tool that you used to create the containers
For example, if you create a container from the Fuse Management Console and then delete the container from the OpenShift Enterprise command line utility, the utility might not completely remove the container from the fabric. The deleted container then might re-register to the fabric with incomplete information and generate run-time errors or failures.
You cannot move the primary JBoss A-MQ application between nodes
To move a JBoss A-MQ application from one OpenShift Enterprise node to another node, you can use the oo-admin-move command. However, you cannot move the first application that you created between nodes. You can use the command to move only subsequent applications that you create.
The PortMapper tool does not translate TLS ports
When you define connection URLs in CXF endpoints, you cannot specify SNI ports that use the TLS protocol, such as APP_TLS_PORT_1. Instead, you must specify one of the non-TLS ports, such as APP_PORT_1, when you configure the CXF endpoint.
When the the JBoss A-MQ application reconnects to the fabric server, the Karaf log throws an exception
When the connection between the JBoss A-MQ application and the fabric server is suspended and then resumed, the following error message might appear in the Karaf log:
java.util.concurrent.RejectedExecutionException Task java.util.concurrent.FutureTask@27458911 
rejected from java.util.concurrent.ThreadPoolExecutor@4629cf3b
[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 9]

...
This message reports a problem with an obsolete CuratofFramework listener.
Workaround: Ignore the message.
The Fuse Builder cartridge does not support HTTPS connections
To connect to the Maven repository of the Fuse Builder cartridge, you must use an HTTP connection.
You cannot use the publicip resolver when you create a JBoss A-MQ application
The publicip resolver connects the application to the Git repository of the OpenShift Enterprise node. However, the resolver might not translate the public IP address of the node correctly and redirect the connection to an HTML page.
Some OpenShift Enterprise processes might stop before the JBoss A-MQ application is created
In some environments, you cannot create the JBoss A-MQ application because some OpenShift Enterprise components, such as mcollective and rhc, reach the maximum timeout limit and stop before the application is created.
For general information about the default timeout values of OpenShift Enterprise components, see the Component Timeout Value Location section of the OpenShift Enterprise Administrator Guide.
Workaround: Increase the timeout values of the OpenShift components. For a detailed description of this workaround, see the following knowledge base article: https://access.redhat.com/solutions/1238583
The JBoss A-MQ cartridge creates a JBoss Fuse application by default
When you install the JBoss A-MQ and create an application, the default type is JBoss Fuse. If you do not have the JBoss Fuse cartridge installed, the creation process fails.
Workaround: In the fabric server, open the openshift.profile/io.fabric8.openshift.properties file and change the value of the default.cartridge.url property in the following format:
default.cartridge.url=id:amq-<version_number>
For example, to set the default cartridge to JBoss A-MQ version 6.1.1, specify the following value:
default.cartridge.url=id:amq-6.1.1

Chapter 3. Resolved Issues

3.1. Messaging

Table 3.1, “Messaging Issues Resolved in 6.1.1” lists the issues resolved in version 6.1.1.

Table 3.1. Messaging Issues Resolved in 6.1.1

Issue NumberDescription
AMQ-2876Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error
AMQ-3454Contention on a mutex during a stress when using SimpleAuthenticationPlugin
AMQ-4182Memory Leak for ActiveMQBytesMessage with Compression as true
AMQ-4349ActiveMQ 5.8.0 thows nullpointer exception while shutting down (NIO + LevelDB + pending Non Peristent Messages)
AMQ-4485Skipped message dispatch with concurrent transacted sends at cursor memory limit
AMQ-4555Locking in SimpleCachedLDAPAuthorizationMap can lead to delays in Message dispatch.
AMQ-4719Enable "Link Stealing" as an option on a Connector
AMQ-4930java.lang.OutOfMemoryError: Java heap space Exception when sending big amount(1000+) of 1M non persistent messages to broker
AMQ-4952When duplicate message occur from network producer, messages blocked by cursor audit are blocked till restart
AMQ-5068Support hardening/persisting the JMSRedeliveryFlag across restarts
AMQ-5080RAR - missing messages on master slave failover
AMQ-5119broker redeliveryPlugin: after message redelivery, all subsequent "producer.send()" using same message are "scheduled" for delivery to queue rather than delivered to queue as normal
AMQ-5121Browse command is no more working with Karaf
AMQ-5140ArithmeticException: / by zero in HealthView.healthList() when using JMX-Health-Operations
AMQ-5146RedeliveryPolicy exceeded for crashing consumer
AMQ-5156Multiple tests using durable subs are failing
AMQ-5189Rollback on XASession when closing back to pool
AMQ-5212Deadlock with duplicate detection and dlq processing in kahadb
AMQ-5241Spurious WARN FailoverTransport - Transport .. failed, reason: , attempting to automatically reconnect java.io.EOFException
AMQ-5256AMQP WARN Transport Connection failed: java.io.IOException
AMQ-5266Stuck Messages in Single Broker when using JDBC Persistent Store
AMQ-5274Stuck messages and CPU churn when aborted transacted message expires
AMQ-5279failover redelivery to alternative consumers with pending transaction causes rollback *and* dlq processing
AMQ-5288Return proper error codes to MQTT client on failed connect.
AMQ-5307MQTT Transport codec does not properly deal with partial read of frame header
AMQ-5311XAException message should encode the xaErrorCode
AMQ-5379AMQP - allow setting prefetch size
ENTMQ-678HTML in message header can prevent ActiveMQ Web Console from displaying correctly
ENTMQ-684Stomp Tests hang on Solaris
ENTMQ-685[ ActiveMQ 5.9.0.redhat-610379] - NullPointerException at org.fusesource.hawtdispatch.package$RichExecutor.execute() during shutdown
ENTMQ-703Stuck Messages in Single Broker when using JDBC Persistent Store
ENTMQ-792When an AMQP client receives some messages from a queue, all JMSRedelivered headers of the remained messages are changed to true.
ENTMQ-815mqtt: incorrect wild card replacement in mqtt topics

3.2. Container

Table 3.2, “Container Issues Resolved in 6.1.1” lists the issues resolved in version 6.1.1.

Table 3.2. Container Issues Resolved in 6.1.1

Issue NumberDescription
ARIES-1014inconsistencies in org.apache.aries.proxy versions
ARIES-885In container managed mode, a single non thread safe entity manager is used to service all requests when no transaction is active
ENTESB-1681Conccurent access issue for Aries JPA + Hibernate
FELIX-3360Bundle location is statically set for dynamically bound bundles
FELIX-3712FileInstall throws Interrupted exception when refreshed
FELIX-3714Error when when fragment bundle is updated
FELIX-4071ConcurrentModificationException in DirectoryWatcher.bundleChanged
ENTESB-1726Use EventAdmin to provide an audit trail of events, but it's lacking the authenticated Subject who performed the action

3.3. Fuse Fabric

Table 3.3, “Fuse Fabric Issues Resolved in 6.1.1” lists the issues resolved in version 6.1.1.

Table 3.3. Fuse Fabric Issues Resolved in 6.1.1

Issue NumberDescription
FABRIC-593Provisioning a profile stalls at "Installing" state forever
FABRIC-1121Unable to deploy FAB to fabric containers
FABRIC-1090Ports out of sync when removing a container from fabric which has been "joined" and added back to fabirc
FABRIC-1052Unable to recreate fabric on Windows
FABRIC-1051Profile updates get slower and slower
FABRIC-1068Cannot change Fabric registry default port
FABRIC-1041Camel-insight not able to store camel exchanges into ES
FABRIC-1043Using wrap protocol with OSGi header options in a feature file does not work
FABRIC-1770JBoss Fuse cartridge exposes credentials over httpJBoss Fuse cartridge exposes credentials over http
FABRIC-1443CVE-2014-0114 Apache Struts 1: Class Loader manipulation via request parameters [fuse-6]

3.4. Console

Table 3.4, “Console Issues Resolved in 6.1.1” lists the issues resolved in version 6.1.1.

Table 3.4. Console Issues Resolved in 6.1.1

Issue NumberDescription
ENTESB-1326notices generation doesn't work for Maven 3.1.1
ENTESB-1573NullPointerException when adding a features url
ENTESB-1609Can not install fuse as system service on AIX7.1
ENTESB-1627Command console not working on HP-UX
ENTESB-1735Fuse is closed when "u" char is pressed
KARAF-2910Properties login module seems to leak a PropertiesInstaller reference results in OOM
KARAF-2982Command history is off by one
KARAF-3021Keyboard still read after log:tail cancelled
KARAF-3044Can't shutdown karaf via wrapper on AIX
KARAF-3056Upgrade to JLine 2.12

Chapter 4. Enhancements

4.1. Messaging

Table 4.1, “Messaging Enhancements in 6.1.1” lists the enhancements in version 6.1.1.

Table 4.1. Messaging Enhancements in 6.1.1

EnhancementDescription
AMQ-5114AbortSlow*ConsumerStrategy with abortConnection=false; ensure consumers are always removed from the broker
AMQ-5163Enable durable topic subscriptions using individual ack mode.
AMQ-5214Security errors for sync commands are only logged at debug levels
AMQ-5264Allow optional manual transaction management on a rar managedConnection
AMQ-5292Add support for publishing to MQTT '$' Topics (that start with the prefix '$')
AMQ-3519Allow getJMSRedelivered flag to survive a restart
KARAF-3068Update to Spring 3.2.9.RELEASE_1
AMQ-5077Improve performance of virtual topic fanout and persistent asyncSend

4.2. Container

Table 4.2, “Container Enhancements in 6.1.1” lists the enhancements in version 6.1.1.

Table 4.2. Container Enhancements in 6.1.1

EnhancementDescription
ARIES-1038be able to easily use Blueprint inside a WAR in any servlet container using blueprint-noosgi and a ServletContextListener to boot up all the blueprint XML files
ARIES-1069Publish a single interface for better integration of the TransactionManager with other low-level components
ARIES-1082Add a way to use property placeholders to define filters on service references
ARIES-998Support a subset of blueprint outside OSGi
FELIX-4316Packages imported dynamically should also be imported statically with an optional flag
FELIX-4317SCR implementation should avoid using bundleContext.getBundle()
FELIX-4339Make the use of escape characters deterministic
FELIX-4343[DS] rationalize log levels
FELIX-3997Provide an abstract bundle extender
FELIX-2702File Install should be smarter about starting failed bundles

4.3. Console

Table 4.3, “Console Enhancements in 6.1.1” lists the enhancements in version 6.1.1.

Table 4.3. Console Enhancements in 6.1.1

EnhancementDescription
KARAF-2789Upgrade to sshd 0.11.0
KARAF-2623Karaf client script only returns a non zero status if there is exception
KARAF-3045Simplify console branding
KARAF-3068Update to Spring 3.2.9.RELEASE_1

Chapter 5. Supported Configurations

For information about supported configurations, standards, and components in version 6.1, see the following Customer Portal articles:

Chapter 6. Apache Dependencies

The following Apache projects are used in version 6.1:
Apache ActiveMQ
Red Hat JBoss A-MQ includes Apache ActiveMQ 5.9
Apache Karaf
Red Hat JBoss A-MQ includes Apache Karaf 2.3

Legal Notice

Trademark Disclaimer

The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Apache, ServiceMix, Camel, CXF, and ActiveMQ are trademarks of Apache Software Foundation. Any other names contained herein may be trademarks of their respective owners.

Legal Notice

Third Party Acknowledgements

One or more products in the Red Hat JBoss A-MQ release includes third party components covered by licenses that require that the following documentation notices be provided:
  • JLine (http://jline.sourceforge.net) jline:jline:jar:1.0
    License: BSD (LICENSE.txt) - Copyright (c) 2002-2006, Marc Prud'hommeaux
    All rights reserved.
    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    • Neither the name of JLine nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Stax2 API (http://woodstox.codehaus.org/StAX2) org.codehaus.woodstox:stax2-api:jar:3.1.1
    Copyright (c) <YEAR>, <OWNER> All rights reserved.
    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • jibx-run - JiBX runtime (http://www.jibx.org/main-reactor/jibx-run) org.jibx:jibx-run:bundle:1.2.3
    License: BSD (http://jibx.sourceforge.net/jibx-license.html) Copyright (c) 2003-2010, Dennis M. Sosnoski.
    All rights reserved.
    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    • Neither the name of JiBX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • JavaAssist (http://www.jboss.org/javassist) org.jboss.javassist:com.springsource.javassist:jar:3.9.0.GA:compile
  • HAPI-OSGI-Base Module (http://hl7api.sourceforge.net/hapi-osgi-base/) ca.uhn.hapi:hapi-osgi-base:bundle:1.2
    License: Mozilla Public License 1.1 (http://www.mozilla.org/MPL/MPL-1.1.txt)