JBoss Enterprise SOA Platform Release Notes

JBoss Enterprise SOA Platform

Abstract

Late breaking and important information related to this release


1. Overview
2. Issues resolved in the CP01 release
3. Important Notes
3.1. Updated Release Notes
3.2. Standalone distribution versus Embedded EAP distribution
3.3. Included Documentation
3.4. Embedded Hypersonic Database
3.5. Securing the server for production environments
4. Product Support and License Website Links
5. Obtaining Source Code
6. Known Issues in this release
6.1. jUDDI / Scout compatibility between JBoss Enterprise SOA Platform and JBoss Enterprise Application Platform
6.2. Settings for JBoss Messaging Datasource
6.3. Using jms-jca-provider with queues on other nodes
6.4. Aggregator and other stateful actions are not supported in a clustered environment
6.5. Issue with MySQL / Linux / JBPM combination
6.6. Multiprocessor machines running jbpm_orchestration2 quickstart using HSQLDB
6.7. Some Gateways do not provide load balancing
6.8. Error running webservice_wsaddressing quickstart
6.9. JBPM operations fail with constraint violation exceptions using Oracle/PostgreSQL
6.10. Development tools not bundled with JBoss Enterprise SOA Platform
6.11. JBPM Decision node expressions should not contain trailing spaces
6.12. JBPM Performance Issues
6.13. Issues with JBoss Developer Studio Graphical Process Designer and included examples

1. Overview

JBoss Enterprise SOA Platform is a certified, tested, and supported platform suitable for developing Enterprise Application Integration and Service Oriented Architecture solutions.

It integrates best-of-breed open source frameworks and solutions including Hibernate, Seam, JBoss Transactions, JBoss Clustering, the JBoss Application Server, and JBoss Enterprise Service Bus (ESB).

These community developed and enterprise certified and supported products have been combined and tested to provide a solid, robust, and scalable platform.

Powered by legendary JBoss innovation and backed by Red Hat engineering and quality assurance, JBoss Enterprise SOA Platform is the platform of choice for a new generation of enterprise applications.

These Release Notes contain important information related to this release of the JBoss Enterprise SOA Platform.

2. Issues resolved in the CP01 release

  • SOA-76 - Full SOA install does not install ESB related examples

  • SOA-223 - SOA-Platform Port 8083, serving all deployed classes

  • SOA-249 - bpm_orchestration1 needs to be updated

  • SOA-375 - Mention that jUDDI/Scout combination in SOA-P may not be entirely compatible with EAP usage

  • SOA-396 - assert-jbossremoting-version in base-build.xml refers to exec-classpath before it is declared

  • SOA-398 - JAR duplicates in CR2

  • SOA-402 - Rule that uses a 'collect' and 'from' clause together causes problem

  • SOA-403 - RuleBase.removeRule() prevents other rules from being applied

  • SOA-404 - Rules behave incorrectly (randomly) in multi-threaded environment

  • SOA-405 - Document how to run clustered services

  • SOA_406 - The StoreURL attribute for ServiceBindingManager in /conf/jboss-service.xml points to the wrong dir

  • SOA-408 - JBPM unit tests many issues with PostgreSQL - jpdl test suite hangs

  • SOA-409 - bpm_orchestration2 generates "java.lang.NumberFormatException" warnings on dual-core systems

  • SOA-413 - Identity component is disabled in jbpm.esb

  • SOA-416 - The CR3 getting started guide refers to the Trailblazer - which we removed

  • SOA-420 - error in helloworld_hibernate_action QS readme file

  • SOA-425 - bin/probe.sh should be removed from standalone server

  • SOA-427 - schema tool broken for oracle

  • SOA-431 - helloworld_hibernate_action - Hibernate Interceptor events onSave, OnLoad return different subset of message - onDelete seems OK

  • SOA-434 - Remove unused console from distributed release: /opt/GA/jboss-soa-p-standalone.4.2.0/jboss-as/tools/console

  • SOA-436 - The GA builds include (2) versions of drools-core and drools-compiler .jars

  • SOA-438 - GroovyActionProcessor implementation is grossly inefficient

  • SOA-439 - Groovy security compromised

  • SOA-444 - soa jbpm-jpdl.jar should not contian server or designer directories

  • SOA-447 - FileGateways are not safe when used with more than one thread

  • SOA-448 - bpm_orchestration deployProcess targets use wrong dependency

  • SOA-456 - Infinite loop missing from notifications quickstart - client that reads from a topic

  • SOA-458 - Quickstart helloworldtopicnotifier/ReceiveJMSMessage.java - wait loop pushes CPU to 100%

  • SOA-459 - notifications quickstart references a message property that is not set

  • SOA-464 - SOA_Getting_Started_Guide.pdf fix

  • SOA-466 - org.jboss.soa.esb.actions.Notifier - NotifyQueues - fails if the queue to be notified has a listener defined

  • SOA-469 - FTPNotify problems with passive mode

  • SOA-471 - Wrong version string at top level SOA-P page

  • SOA-472 - JMSCourier does not look up Topic from JNDI, instead it tries to create it

  • SOA-474 - Document the issue with jBPM designer and white space

  • SOA-478 - JMS/TX integration only works in very restricted circumstances

  • SOA-479 - Document SOA-410 as it is db specific

  • SOA-480 - Document SOA-417 as being db specific

  • SOA-482 - error in schema/build.properties

3. Important Notes

3.1. Updated Release Notes

For the latest version of these release notes for JBoss Enterprise SOA Platform please refer to the online documentation available at http://www.redhat.com/docs/manuals/jboss/.

3.2. Standalone distribution versus Embedded EAP distribution

There are two versions of the JBoss Enterprise SOA Platform:

  1. the "standalone" version - standalone-soa-4.2.0

  2. the "embedded EAP" version - soa-4.2.0

The standalone version is intended for use in environments where a lightweight solution is required; for example when a Java Application Server is already installed on the network. It does not include the JBoss Enterprise Application Platform with JBoss Application Server, Seam, Hibernate, or clustering. It provides core ESB (Enterprise Service Bus) functionality only.

The embedded EAP version includes, in addition to the Enterprise Service Bus functionality, the JBoss AS server and other components and frameworks to provide a fully-fledged application development environment. This version provides services such as clustering, transactions, and persistence through the JBoss Enterprise Application Platform.

3.3. Included Documentation

In addition to these release notes, there is a docs subdirectory that includes documentation for the JBoss Enterprise SOA Platform. In the embedded EAP version of the platform the documentation is split into two subdirectories. One contains documentation relating to the ESB core of the SOA Platform, and the other contains documentation relating to the EAP component. The standalone version has the ESB document only in the docs directory.

The first document that you will probably be interested in is the document SOA_Getting_Started_Guide.pdf. This document contains instructions to install and configure the platform. You should check for the latest version of this guide at http://www.redhat.com/docs/manuals/jboss/.

There is another document GettingStarted.pdf that comes from the ESB project. The Trailblazer demo app mentioned at the end of that document is not shipped with the JBoss Enterprise SOA Platform. However, there are a number of quickstart samples in the jboss-as/samples/quickstarts directory, with accompanying readme files.

There is also a very useful and interesting book SOA_ESB_JBPM_Integration_Guide.pdf in the docs directory. This book demonstrates the integration of JBoss Business Process Managmenet (JBPM) with the Enterprise Service Bus (ESB) in the SOA Platform.

3.4. Embedded Hypersonic Database

The included Hypersonic SQL database provides default "out of the box" database functionality for evaluation and development use only. It is NOT recommended or supported as a production-use database. Technical support is not available for this component, and while we are happy to accept bugs filed against this component, we do not make any commitment to fix them within a specific timeframe.

3.5. Securing the server for production environments

Warning

The following are important notes relating to the security of your system.

3.5.1. Securing the JBPM Console

Two distinct jbpm-console.war files are shipped with the platform. One is a development version which allows unauthenticated access to deploy processes to the server, for use with a graphical process design tool such as JBoss Developer Studio while developing applications. The other is a production version which secures the console against remote deployment. You should not run your server in a production environment with the unsecured development version of jbpm-console.war deployed. Doing so poses a threat to the security of your server.

Standalone version of JBoss Enterprise SOA Platform

In the standalone version, we ship with the unsecured uploader console by default. Initially, your server is configured for development. The jBPM JPDL will be able to deploy processes. Before putting it into production you should secure the console.

Procedure 1. To secure the console in the standalone version
  • Copy the file /tools/resources/jbpm-console-production.war to /server/default/deploy/jbpm.esb/jbpm-console.war.

Procedure 2. To enable remote deployment of processes in the standalone version
  • Copy /tools/resources/jbpm-console-development.war to /server/default/deploy/jbpm.esb/jbpm-console.war.

In each case the file must be overwritten. You can not have two versions of the war in the deployment directory.

Embedded JBoss Enterprise Application Platform version of JBoss Enterprise SOA Platform

In the embedded JBoss Enterprise Application Platform version, the "all" profile has the development version of the war, and the "production" profile has the production version. By default your server is configured to operate in a secure mode. To enable it for development mode you need to run in the unsecured mode of operation.

Procedure 3. To secure the console in the embedded EAP version
  • Start the server with no command line parameters or with the parameter "-c production"

Procedure 4. To enable remote deployment of processes in the embedded EAP version
  • Start the server using the parameter "-c all"

We do not recommend running the server on an unsecured network with the jbpm-console-development.war deployed or using the all profile without appropriate modification.

3.5.2. Preventing download of non-RMI classes on Port 8083 in the standalone version of the server

If you use RMI (Remote Method Invocation) you will want to make Port 8083 of your server accessible to clients. The EAP version of the server is configured out of the box to restrict the classes that it serves on this port. The standalone server, however, is configured out of the box to serve all deployable classes via this port. This has been done to allow the quickstarts to function correctly by default.

To change this behaviour you need to modify the following line in default/conf/jboss-service.xml:

<!-- Should non-EJB .class files be downloadable -->
<attribute name="DownloadServerClasses">false</attribute>

The value for this attribute is set as true out of the box, and it should be set to false in actual production deployment to prevent the server from serving all deployable classes on Port 8083.

4. Product Support and License Website Links

Support Processes

http://www.redhat.com/support/process/

Production Support Scope of Coverage

http://www.redhat.com/support/policy/soc/production

Production Support Service Level Agreement

http://www.redhat.com/support/policy/sla/production/

Developer Support Scope of Coverage

http://www.redhat.com/support/policy/soc/developer/

Developer Support Service Level Agreement

http://www.redhat.com/support/policy/sla/developer/

Product Update and Support Policy by Product

http://www.redhat.com/security/updates/jboss_notes/

JBoss End User License Agreement

http://www.redhat.com/licenses/jboss_eula.html

5. Obtaining Source Code

The source code for the JBoss Enterprise SOA Platform is available via anonymous ftp from ftp://ftp.redhat.com/pub/redhat/soa-p/4.2.0/en/source/soa-4.2.0.zip.

6. Known Issues in this release

Please check for an updated version of this release note at http://www.redhat.com/docs/manuals/jboss/.

6.1. jUDDI / Scout compatibility between JBoss Enterprise SOA Platform and JBoss Enterprise Application Platform

The behaviour of JBoss Enterprise SOA Platform differs from that of JBoss Enterprise Application Platform in some JAXR Scout tests in our testsuite. This indicates differences between the jUDDI / Scout implementations that may have an effect on applications. At this stage there are no known instances of these differences affecting applications. However, if you find an instance of this difference affecting an application, please inform us.

Further Information: http://jira.jboss.com/jira/browse/SOA-354.

6.2. Settings for JBoss Messaging Datasource

As a workaround for an issue in JBoss Messaging, which will be resolved in a future update, specific settings are required when configuring a datasource for use with JBoss Messaging.

If you reconfigure the datasource used by JBoss Messenging, you should ensure that this datasource is used exclusively by JBoss Messaging, and that the ds file contains the following elements:

<prepared-statement-cache-size>50</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>

Further Information: This is a workaround for the issue described in http://jira.jboss.com/jira/browse/SOA-288

6.3. Using jms-jca-provider with queues on other nodes

To enable a jms-jca-provider to talk to queues on other nodes you will need to use a provider adapter.

You will need to define an MBean representing the provider adapter, for example:

<mbean code="org.jboss.jms.jndi.JMSProviderLoader"
        name="jboss.esb:service=JMSProviderLoader,name=RemoteJMSProvider,server=remote">
    <attribute name="ProviderName">remoteProvider</attribute>
    <attribute name="ProviderAdapterClass">
        org.jboss.jms.jndi.JNDIProviderAdapter
    </attribute>
    <!-- The queue connection factory -->
    <attribute name="QueueFactoryRef">XAConnectionFactory</attribute>
    <!-- The topic factory -->
    <attribute name="TopicFactoryRef">XAConnectionFactory</attribute>
    <!-- Connect to JNDI on the host "remote" port 1099 -->
    <attribute name="Properties">
      java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
      java.naming.factory.url.pkgs=org.jnp.interfaces
      java.naming.provider.url=remote:1099
    </attribute>
</mbean>

This MBean should be defined in ha-jndi.xml on the node where the queue is really deployed

Then, in the definition of the jms-jca-provider you need to add a providerAdapterJNDI attribute, e.g:

providerAdapterJNDI="java:/remoteProvider"

The JCA adapter will use the provider adapter from JNDI to create the JNDI context.

Further Information: http://jira.jboss.com/jira/browse/JBESB-1460

6.4.  Aggregator and other stateful actions are not supported in a clustered environment

As mentioned throughout the Programmers Guide, high-availability services within JBossESB are currently only supported if they are stateless. The Aggregator action is a stateful instance, which necessarily means that if it is used within the Action Pipeline/Chain of a service, that service is no longer stateless and therefore cannot be used in a high-availability manner.

Further information: http://jira.jboss.com/jira/browse/SOA-421

6.5. Issue with MySQL / Linux / JBPM combination

When JBPM is deployed on Linux using MySQL version 5.0.45 as the database concurrent signalling from multiple threads has been detected. As such, this combination is currently not recommended for production use. This issue is not present with MySQL version 5.0.27.

Further Information: http://jira.jboss.com/jira/browse/SOA-196.

6.6. Multiprocessor machines running jbpm_orchestration2 quickstart using HSQLDB

Various errors and warnings are logged when running the jbpm_orchestration2 quickstart on a machine with multiple CPUs using HSQLDB or H2 as the database. The HSQLDB database is provided with the platform as an out-of-the-box db provider for testing purposes, but it is not a supported production database. These errors are not logged when using a Tier 1 supported database.

Further Information: http://jira.jboss.com/jira/browse/SOA-409 | http://jira.jboss.com/jira/browse/SOA-417 | http://jira.jboss.com/jira/browse/SOA-415 | http://jira.jboss.com/jira/browse/SOA-410

6.7. Some Gateways do not provide load balancing

In this release the following gateways do not use the ServiceInvoker, and therefore do not provide load balancing:

  • JmsGatewayListener.java

  • HibernateInterceptor.java

  • SqlTableGatewayListener.java

Load balancing is performed when a raw message is transformed into an ESBMessage, or when an ESBMessage is sent to an ESB listener. Be aware that a raw (non-ESB) message sent through one of the above three gateways will not be load balanced.

When one of these gateways is deployed on multiple ESBs that listen to the same clustered queue they will share the load through JBM clustering, but there is no failover to another type of EPR.

These gateways will have load balancing enabled in a future release.

6.8. Error running webservice_wsaddressing quickstart

Running the webservice_wsaddressing quickstart currently results in an error. In the standalone version of the platform a message is produced on the console: "Cannot provide WebServiceContext, since the current MessageContext does not provide a ServletRequest". This is caused by a 181 dependency on an HttpServlet. Presently, JBoss WS does not inject the WebServiceContext into the webservice.

This is due to a current limitation in JBoss WS, and will be addressed in a future update.

Further Information: http://jira.jboss.com/jira/browse/SOA-348

6.9. JBPM operations fail with constraint violation exceptions using Oracle/PostgreSQL

When the server is under load JBPM operations have been observed to fail with a constraint violation exception when using Oracle or PostgreSQL. This has not been observed with MySQL. We've made calls to JBPM from the SOA server asynchronous and JBPM should retry these failures. It is a consequence of JBPM's optimistic locking policy.

Further Information: http://jira.jboss.com/jira/browse/JBESB-1511.

6.10. Development tools not bundled with JBoss Enterprise SOA Platform

This version of JBoss Enterprise SOA Platform does not bundle development tools such as the Graphical Process Designer (GPD) for JBPM-PDL or a Rules Editor plug-in for Eclipse. These development tools and others are available in JBoss Developer Studio.

6.11. JBPM Decision node expressions should not contain trailing spaces

Adding a trailing space to a decision node expression will cause an exception to be thrown. To avoid this exception decision node expressions should not have a trailing space.

Further Information: http://jira.jboss.com/jira/browse/SOA-450

6.12. JBPM Performance Issues

Some issues have been observed with message throughput in JBPM. In this release JBPM logging is disabled by default to address this.

Further Information: http://jira.jboss.com/jira/browse/SOA-429.

6.13. Issues with JBoss Developer Studio Graphical Process Designer and included examples

6.13.1. Problem generating a form for a task via (jBPM) GPD if the task properties dialog is maximized

In JBoss Developer Studio, jbpm-jpdl-designer-3.1.2, or jbpm-jpdl-designer-3.1.0.SP1, generating a form for a task while the properties dialog is maximized results in a dialogue that will not respond when the OK button is clicked. Examining the log reveals a java.lang.NullPointerException. At this time the workaround is to generate the form without the properties dialog maximized. Additionally, you should avoid using whitespaces in task names, as this can also cause problems with form generation.

Further Information: http://jira.jboss.com/jira/browse/SOA-250.

6.13.2. Right-click while editing does not produce context menu

While editing the processdefinition.xml file of the websale example program shipped with jbpm-jpdl-suite-3.2.2 it is not possible to edit task properties using a right-click and the context menu.

The workaround for this issue is to navigate to the properties view using the menus and left-click, and do the editing from there.

Further Information: http://jira.jboss.com/jira/browse/SOA-190.