Release Notes for GlassFish ESB v2.1 / Sun GlassFish Enterprise Service Bus v2.1
GlassFish ESB delivers a lightweight and agile ESB platform that packages the innovation happening with Project OpenESB into a commercially supported, enterprise-class platform. GlassFish ESB builds on over 18 years of Sun expertise within SOA, ESB, integration, and server-side Java platforms. In essence, GlassFish ESB is a binary distribution that combines technology from Project OpenESB, the GlassFish application server, and the NetBeans IDE communities into a supported, commercial distribution. GlassFish ESB is compatible with a number of JBI-compliant plug-ins that provide a range of different technical capabilities.
This topic provides information about changes made to GlassFish ESB between versions 2 and 2.1. If you have any questions, go to the GlassFish ESB web site at http://open-esb.dev.java.net.
To access all the GlassFish ESB documentation in HTML format, go to the GlassFish ESB documentation page at http://wiki.open-esb.java.net/Wiki.jsp?page=GlassFishESBDocs.
What's New in GlassFish ESB 2.1
GlassFish ESB includes the following new features and components in version 2.1:
- Support for GlassFish clustering in all components
- Intelligent Event Processor (IEP) Service Engine – Enables complex event processing (CEP) and event stream processing (ESP) using the Continuous Query Language (CQL).
- Scheduler Binding Component – Provides scheduling capabilities for initiating JBI services and allows you to schedule triggers to launch other JBI components.
- New Systems Support:
- NetBeans IDE 6.5
- GlassFish Enterprise Server 2.1
- OpenSolaris 2008.11
- Red Hat Linux AS 5 (32 and 64 bit)
- IBM AIX 5L 5.3 (OS: 64 bit; JVM: 32 bit) (runtime support only)
- BPEL Service Engine
- Support for validate activities
- File Binding Component
- Configurable options for on-demand reads that allow you to remove a file resource after it has been read.
- The ability to specify polling file names using Java regular expression-based file name patterns. This is supported through a new file:message attribute named fileNameIsRegex. Note that regex is not supported for output files.
- The ability to specify a directory location for lock files rather than the location being relative to the fileDirectory property. This is supported through a new file:address attribute named persistenceBaseLoc.
- FTP Binding Component
- The ability to specify a directory location for recovery logs, malformed messages, and so on using a new ftp:address attribute named baseLocation.
- HTTP Binding Component
- Support for Basic Authentication with Federated Access Manager 8.0 , which allows the HTTP BC to communicate with OpenSSO Enterprise 8 on a remote or local machine.
- LDAP Binding Component
- Support for using connection pools.
- JMS Binding Component
- Support for multiple queues with WebSphere Message Queue.
GlassFish ESB Components
GlassFish ESB includes the components listed below.
- Service Engines
- Data Mashup
- Java EE
- Binding Components:
- JMS (includes JMSJCA)
- Editors and Project Types:
- CASA Editor
- WSDL Editor
- Composite Application
GlassFish ESB Supported Operating Systems and External Systems
GlassFish ESB is divided into design-time components, which run on the NetBeans IDE, and runtime components, which run on the GlassFish application server. Design-time and runtime components each support a specific set of operating systems. In addition, several GlassFish components support external systems, such as database platforms, LDAP servers, JMS servers, and so on.
For a complete list of supported operating systems and external systems, see GlassFish ESB Supported Operating Systems and External Systems.
Upgrading to GlassFish ESB v2.1
Sun provides the tools you need to upgrade GlassFish ESB to the current version. For information and instructions, see Upgrading Sun GlassFish ESB
The following issues were resolved:
This section lists known issues for this release along with work-arounds when available. Issues are listed for the following components:
BPEL Service Engine
For BPEL SE stop/restart issues, see JBI Management
The following are known issues for the BPEL Service Engine:
- NetBeans Issue 148288
If a BPEL project is deleted using the Delete Source option and a new project is then created that reuses the same name, the newly created project's Properties window cannot be opened.
To work around this issue, stop and then restart the NetBeans IDE.
- Issue 5555
The BPEL Service Engine only creates connection pools and data sources for the Derby database. This functionality is available to assist developers and is not available for other databases or in a cluster. The BPEL Service Engine does create the persistence tables automatically for all supported databases, but only in standalone mode; this feature is not available in cluster mode. If you create connection pools, data sources, and tables before you install the BPEL Service Engine, it is possible to install the component with persistence enabled. Otherwise, installing to the cluster will fail.
To work around the issue of tables not being automatically created, you can create the tables in standalone mode and then add the BPEL SE to the cluster. For more information, see Setting Up the BPEL Database.
- Issue 1802
When an optional node is missing in the input message, an invalidVariable exception is thrown. This should not occur since the node is not required. This is due to an issue with BPEL case and message variables of the schema type.
Data Mashup Service Engine
The following are known issues for the Data Mashup Service Engine:
- Open-DM-DS Issue 161
When querying an Axion database using the current_timestamp function in the WHERE clause, a parsing exception occurs.
To work around this issue, use the now function instead. For example:
WHERE DEPARTMENT.DEPTID=EMPLOYEES.DEPTID and EMPLOYEES.DEPTDATE <= NOW()
- Open-DM-DS Issue 165
In the Collaboration Properties window for a Data Mashup project, the Response Type field is no longer a drop-down field. It accepts the following values:
Database Binding Component
The following are known issues for the Database Binding Component:
- Issue 431
The ojdbc5.jar driver for Oracle does not support prepared statements. The following error message is given: java.sql.SQLException: Unsupported feature. No resultset is populated, and java.lang.string is selected for every parameter, regardless of the datatype.
To work around this issue, use DataDirect drivers instead of ojdbc5.jar.
- Issue 453
No error message displayed if too many parameters are supplied in an insert prepared statement. For example, insert into table values(?,?,?,?,?) into a 3-column table causes a runtime exception, and no parameters are added.
- Issue 499
When a prepared statement is used to update or delete parameters, the result displays the default java.lang.String datatype irrespective of the actual datatype. This is because the DataDirect connect of JDBC driver for Oracle does not support returning parameter metadata information for an update statement with mixed literal and parameterized arguments.
To work around this issue, manually change the datatype of the parameter in the generated XSD.
- Issue 517
Built-in functions require an alias to avoid misinterpreting names of elements with special characters. For example, the prepared statement select avg(float) from table where number in(...); yields the following error:
ERROR: s4s-att-invalid-value: Invalid attribute value for 'name' in element 'element'. Recorded reason: cvc-datatype-valid.1.2.1: 'AVG(NUMBER)' is not a valid value for 'NCName'.
To work around this issue, use an alias for the function. For example: select avg(float) avg from table where number in(...);
- Issue 533
DataDirect driver does not return correct metadata, resulting in an incorrect resultset for output parameters of stored procedures. This is a driver error, and work ticket W809210001 has been filed with DataDirect about the metadata call getProcedureColumns() returning incorrect parameters.
- Issue 1087
Stored procedures do not support the BLOB (binary large object) datatype. Although the procedure runs without generating an error, a select statement fails to yield any BLOB data.
- Issue 1747
When using a Derby database for polling in a clustered environment with the Number of Records option set to a low value, the following exception is thrown and the connection pool becomes unusable:
java.sql.SQLException: Connection closed.
To work around this issue, configure the number of records per poll to a high number; for example, 100 per 1000 records. A second workaround is to create all cluster-related tables in the same database
- Issue 1803
When the Database BC is implemented in a clustered environment across multiple servers, failover does not always work because the message status in the polling table prevents the in-process messages from being picked up by another instance (or by the same instance when it resumes).
To work around this issue, manually delete records in the polling table that are have a status of In progress or SENT. This allows running instances to pick up the messages and reprocess them.
- When you create a Database BC WSDL document using the wizard, an XSD file named Table_Name.xsd is also created. If there is already an existing XSD file by that name, it is overwritten.
To work around this issue, make sure the table name is different from any existing XSD file names.
File Binding Component
The following are known issues for the File Binding Component:
- The File BC supports encodings in UTF-8 format only; if the encoding is in non-UTF-8 format, the File BC fails to read the input data. However, data of any encoding style (either UTF or non-UTF-8) and binary data can both be forwarded as attachments.
You can work around the UTF-8 limitation by doing the following:
- To read non-UTF-8 data, employ a custom encoder upstream of the File BC and convert it to UTF-8 format, which in turn can be provided as input to File BC.
- To write non-UTF-8 data, route the output from the File BC to a custom encoder and convert it from UTF-8 to the preferred encoding format. For more information, refer to Designing Custom Encoders.
- Issue 1206
On the Windows operating system, when the File BC transforms XML text to bytes, an additional carriage return is added for each newline character. For example, \r\n is converted to \r\r\n.
- Issue 2025
When using the File BC in on-demand mode and setting a normalized message property value for an assign activity, if you set the property value in the ReadOut node it is not used by the application. You need to set the values in the ReadIn node.
FTP Binding Component
The following are known issues for the FTP Binding Component:
- Issue 796
When the messageCorrelate attribute is set to true in the ftp:transfer element of the FTP WSDL, the FTP BC expects the input file to match a fixed pattern (req.UUID) so the UUID can be used as the ID to correlate a request with a response.
- Issue 828
A project with invalid FTP BC property values can be built using command-line builds (ant tasks) but fails validation in NetBeans and is not built. This happens because certain validations that are performed automatically by NetBeans when building a project are not performed by command-line builds (ant tasks). For example, a project with a non-positive or non-integer FTP BC poll value (pollIntervalMillis) fails validation in NetBeans but can be built using ant commands.
- Issue 832
On all operating systems, the delimiter for path components specified for preReceiveLocation (in sendTo, receiveFrom, and so forth) is the forward slash (/). Using the backslash instead results in errors such as the following:
Exception when preparing ftp connection parameters in inbound processor.
No directory name found in PreReceiveLocation [...] when PreReceiveCommand is RENAME or COPY.
- Issue 1926
When the append attribute is set to true in the file:transfer element of the WSDL file, the FTP BC overwrites the existing output file instead of appending the information to the end of the file.
IEP Service Engine
The following are known issues for the IEP Service Engine:
- Issue 449
When using Oracle as the IEP database platform, you must use Oracle JDBC driver version 10.2.0.4.0 or above. The default driver included with Oracle 9.2 (ojdbc14.jar) is version 188.8.131.52.0, and will not work with IEP. To determine the driver version you are using, view the manifest.mf file in the driver JAR file.
- OJC Issue 608
When a cluster instance is stopped using the asadmin stop-instance command, IEP processes that are currently running do not fail over to a live instance. This is due to the order in which methods are called during the stop process.
To work around this issue, stop and restart the Service Assembly.
- Issue 1311
The relation aggregator does not work as expected for various operations, and the output is an incorrect number of events. For example, invalid aggregations are not removed for Oracle. In certain cases with Derby, aggregations are updated even if the aggregation has not changed, leading to extra events.
- Issue 1519
When running the IEP SE on Solaris SPARC using an Oracle database, connection errors might occur.
To work around this issue, restart the GlassFish server.
- Issue 1882
When IEP SE is running on Solaris SPARC and using a Derby database, not all events are processed. This is due to an issue with a JDK method used by the IEP SE to get the current timestamp.
To verify whether you are having this issue, send events to an IEP application and verify the timestamp.
- Issue 1986
When IEP SE is configured for Oracle and a RelationStream operator is used to retrieve events from an input relation, duplicate events may be produced.
To work around this issue, use InsertStream instead of RelationStream. Another option is to use a Distinct operator after the RelationStream operator to filter duplicates. Note that neither of these options may be able to completely replace RelationStream.
- The IEP Service Engine creates connection pools and JDBC resources during installation. This automatic creation takes place only when the IEP Service Engine is installed in a GlassFish Domain Administration Server (DAS) instance. If the IEP Service Engine is installed in a GlassFish standalone instance, then the IEP Service Engine does not create the connection pools and JDBC resources.
To work around this issue, manually create the connection pools and JDBC resources and then install the IEP Service Engine.
- An IEP Module project can have multiple event processors, and one database connection is created and kept open for each event processor. Therefore, each event processor has a dedicated database connection. When the event processors stop running (for example, when the Composite Application is stopped), this connection is released. Because the IEP SE uses database connections for other tasks, the maximum pool size of the connection pools should be larger than the number of event processors that are running in the IEP SE by a count of 10.
- By default, the IEP SE generates a WSDL document for each IEP process document, and regenerates the WSDL document every time the IEP process is edited. By default, bindings and services are generated in this WSDL, and these elements usually need to be edited to work properly when deployed. However, if these WSDL documents are edited, the edits are replaced by the default values every time the WSDL document is regenerated.
Bindings and services created in the CASA Editor are not affected when the IEP WSDL documents are regenerated. However, you should not clone the IEP WSDL file to customize its generated bindings and services in the CASA Editor because updates to the generated WSDL files are not updated after cloning. Over time, the cloned and edited WSDL deployed for the bindings becomes inconsistent with the WSDL document deployed for the IEP Service Engine. Consider using the following procedure for setting up your Composite Application and IEP project for iterative development:
- Define the IEP Module project.
- Turn off the generation of concrete configuration elements (bindings and services) in the IEP generated WSDL files by setting the always.generate.abstract.wsdl flag in the project.properties file to true.
- Build the IEP Module project.
- Add the IEP Module project to a new Composite Application project and build the project.
- Define the binding components and connections using the CASA Editor. To use the composite application test feature, define SOAP input and file output bindings as appropriate for your test environment.
- Build and deploy the composite application.
- Run tests.
- Change the IEP Module project, adjust binding component and service configurations if necessary in the CASA Editor, and rebuild and redeploy the composite application. Run tests and repeat.
Java Application Project for JAXB
The following is a known issue for the Java Application projects with JAXB:
- NetBeans Issue 163169
In Java Application projects for JAXB, JAXB class files are deleted at runtime and the application fails to run.
To work around this issue, deselect Compile on Save in the Project Properties window. Compile on Save is located in the Build > Compiling properties node.
LDAP Binding Component
The following are known issues for the LDAP Binding Component:
- Issue 804
When the authentication type is not agreed upon between the LDAP server and client, an AuthenticationNotSupportedExceptionoccurs. For example, the error occurs when a client specifies strong SSL authentication with a DSEE 6 server that handles none or simple authentication, but not strong authentication.
- Issue 924
No design-time validation is performed when an invalid root DN is supplied (such as dc=suninstead of dc=sun,dc=com), and the user is (incorrectly) allowed to create LDAP WSDL files with the incorrect values. Such a project correctly fails at runtime with a No such object error message.
XSLT Service Engine
The following are known issues for the XSLT Service Engine:
- Issue 1631
A SEVERE error appears in the server log when running an XSLT project with an HTTP/SOAP binding. The error is:
Unable to create envelope from given source because the root element is not named Envelope
This is an erroneous log message and does not interfere with the running of the XSLT project.
To prevent the message from being logged, set the SAAJ Logger for the XSLT SE to OFF.
- NetBeans Issue 161321
If you change text in the XML editor, clicking Validate does not save the changes before compiling and validating the code. You need to click Save All before validating the XML.
- Issue 1760 and NetBeans Issue 162869
The XSLT SE does not support catalog.xml, which is required for the correct Referenced Resources support. For example, when referencing a WSDL document from another project using Project Reference, the XSLT project fails to deploy.
The following is a known issue for configuring GlassFish ESB cluster instances:
- Issue 1909
When you configure cluster instances using the GlassFish Admin Console, the configuration does not propagate to any new cluster instances. This is because instances are configured individually. In some cases, this can cause deployment to fail.
To work around this, configure each cluster instance individually or use the following asadmin command to configure all instances in the cluster:
asadmin update-jbi-application-variable --component=sun-jms-binding name=value
Usage: asadmin update-jbi-application-variable [--terse=false] [--echo=false] [--interactive=true] [--host localhost] [--port 4848|4849] [--secure | -s] [--user admin_user] [--passwordfile file_name] [--target target(Default server)] --component Component Name (name=value)[,name=value]*|property file
The following are know issues for Composite Application (CA) projects:
- NetBeans Issue 148024
A test case cannot be created using the SOAP12 binding, even though GlassFish otherwise supports SOAP 1.2.
To work around this issue, use a SOAP binding instead of SOAP12.
- NetBeans Issue 152455
When the design canvas of the CASA Editor is at certain sizes, the display of its scrollbars oscillates and CPU usage goes to 100%.
To work around this issue, increase the size of the window or of the CASA Editor design canvas so scrollbars do not display.
- NetBeans Issue 152449
When a new project type is freshly installed, the Composite Application project is initially unable to determine the service engine type and is thus unable to deploy the service unit. The following error message appears:
Cannot add JBI module ''project_type''.
Its target component type ''engine_name'' is unknown.
To work around this issue, stop and then restart the NetBeans IDE.
- NetBeans Issue 153537
You cannot rebuild a Composite Application project after a Service Unit (SU) has been deleted from it.
To work around this issue, manually edit the build-impl.xml file and delete all sections that operate on the deleted SU.
Installation and Upgrading
The following are known issues for installation and upgrades:
- Issue 1712
When you run the GlassFish ESB uninstaller, the several folders under the GlassFishESB_Home\netbeans directory are not removed.
To work around this issue, manually remove the folders after the GlassFish ESB uninstallation is complete.
- Issue 1981
When you perform a side-by-side upgrade of GlassFish ESB, the upgrade tool (asupgrade) does not migrate application variables and application configurations.
To work around this issue, perform the upgrade and then recreate the application variables and application configurations in the new domain for GlassFish ESB 2.1.
- When using GlassFish ESB with JDK 1.6.0_13 or 1.6.0_14, several of the wizards used to develop applications will not work correctly and may have problems importing XSDs from files.
To work around this issue, install a different version of JDK 1.6 (JDK 1.6.0_10 is recommended).
The following are known issues in managing JBI components:
- Issue 884, Issue 885, and Issue 559
When a component is shut down while there are configuration errors, it cannot be restarted and its configuration settings cannot be edited within the NetBeans IDE or the web console.
When this occurs, the state of the component changes to “Stopped”, and you can reconfigure the properties correctly. After you correct the property values, shutdown and then restart the component in order for the changes to take effect.
For the BPEL Service Engine, when there is an error in the JDBC resource name, the engine will create the resource with the given name and assume that the default connection pools are used. If the Derby database is not started, the default connection pools are not created.
- NetBeans Issue 163169
Selecting the Compile on Save option in a Java Application Project Properties window causes a JAXB class file to be deleted at runtime. The project fails at runtime with the following exception:
Exception in thread "main" java.lang.NoClassDefFoundError
To work around this issue, deselect the Compile on Save option. This option is located on the Java Application Properties window under Build > Compiling.
The following is a known localization issue:
- Issue 1138
When you perform the following steps in a non-English locale, you cannot expand the GlassFish server tree to select the value.
- Launch the New File Wizard to create a new JCA message-driven bean.
- Complete steps 1 through 3 on the wizard.
- For the Connection URL in step 4, click the ellipses button and start the GlassFish server to obtain the JNDI value.
To work around this issue, use the GlassFish Admin Console to retrieve the JNDI value to enter for the Connection URL. The value is located under Resources > Connectors > Admin Object Resources.
The following is a known database issue:
- MySQL does not support microseconds in date or timestamp columns, so if an incoming message contains any time or timestamp fields that drill down to the microsecond, the fractal part of the seconds is ignored in the database. For example, if the value of a timestamp is '2010-12-10 14:12:09.091473', the last six digits (091473) are ignored.
Return to GlassFish ESB Documentation Home