GT 4.0.2 Incremental Release Notes: OGSA-DAI

1. Introduction

These release notes are for the incremental release 4.0.2. It includes a summary of changes since 4.0.1, bug fixes since 4.0.1 and any known problems that still exist at the time of the 4.0.2 release. This page is in addition to the top-level 4.0.2 release notes at http://www.globus.org/toolkit/releasenotes/4.0.2.

For release notes about 4.0 (including feature summary, technology dependencies, etc) go to the OGSA-DAI 4.0 Release Notes.

2. Changes Summary

This section includes information for versions 2.0 and 2.1 of OGSA-DAI WSRF which is distributed with GT 4.0.2 (the GT4.0.1 release contained version 1.0 of the OGSA-DAI WSRF distribution).

  • The documentation bundled with the OGSA-DAI distribution explicitly mentions GT4.0.1. Everything will work fine with GT4.0.2 too.
  • The canonical documentation for the OGSA-DAI 2.1 release is contained in the release documentation so please use this for installation and usage.

2.1. Release 2.1

OGSA-DAI WSRF 2.1 is a WSRF-compliant version of OGSA-DAI and runs upon Globus Toolkit 4.0.2. It is not compatible with Globus Toolkit 3. The source release should still be compatible with Globus Toolkit 4.0. The main changes between this and the previous release are as follows:

OGSA-DAI WSRF 2.1 is almost identical to OGSA-DAI WSRF 2.0 which was released just one week earlier. This release was motivated by:

  • A need to allow data resource accessors to be notified whenever a session is terminated, so that session-related resource properties can be removed.
  • A bug fix to ensure that a single block of data can flow through a pipeline containing an inputStream activity and an outputStream activity.

If you have OGSA-DAI WSRF 2.0 and were not dependent on or concerned by these then there is no requirement for you to upgrade.

The additions / changes were as follows:

  • In core/src/java/:

    • Changed uk.org.ogsadai.activity.ActivityRequest
    • Changed uk.org.ogsadai.activity.CallThroughExternalPipe
    • Changed uk.org.ogsadai.activity.CallThroughPipe
    • Changed uk.org.ogsadai.service.resource.DataServiceResource
    • Changed uk.org.ogsadai.sessions.SessionManagerFactory
    • Changed uk.org.ogsadai.sessions.SessionConfigurationLoader
    • Changed uk.org.ogsadai.sessions.impl.SessionConfiguration
    • Changed uk.org.ogsadai.sessions.impl.TransientSessionManager
    • Changed uk.org.ogsadai.sessions.impl.TransientSessionManagerFactory
    • Added uk.org.ogsadai.dataresource.DataResourceListener
    • Added uk.org.ogsadai.dataresource.DataResourceEvent
    • Added uk.org.ogsadai.dataresource.DataResourceEventDispatcher
    • Added uk.org.ogsadai.dataresource.TestDataResource
    • Added uk.org.ogsadai.sessions.impl.TransientSessionConfiguration
  • In doc:

    • Changed tutorials/dataresource/howTo.html
    • Changed clients/clienttoolkit/ObtainingMetaData.html
    • Changed misc/HowToUpgrade.html
    • Changed misc/KnownProblems.html
    • Changed clients/clienttoolkit/index.html
    • Changed clients/clienttoolkit/SecureServices.html

2.2. Release 2.0

OGSA-DAI WSRF 2.0 is a WSRF-compliant version of OGSA-DAI and runs upon Globus Toolkit 4.0.1. It is not compatible with Globus Toolkit 3. The source release should still be compatible with Globus Toolkit 4.0.

The major features of this release are as follows:

  • OGSA-DAI WSRF 2.0 is compatible with Globus Toolkit 4.0.2 and the should still work with Globus Toolkit 4.0 (if you have the OGSA-DAI WSRF 2.0 binary distribution you'll need to get the source distribution and compile against Globus Toolkit 4.0).
  • Data service resources support concurrent request execution and queueing of requests.
  • All data service resources exposed by a specific service share the same settings for the number of concurrent requests that can be executed and the number that can be queued. These are specified at service deployment time.
  • Sessions are now supported. Multiple perform documents can be submitted which operate within the context of the same session. State can be stored in session attributes. Data transport operations now operate within the scope of a session.
  • Data service accessors have been provided. These manage access to a data resource on behalf of a data service resource. They each have their own specific configuration files.
  • Configurable data services provide an undeploy operation so that a service can be instructed to no longer expose a specific data service resource. This is reflected in the client toolkit.
  • There have been numerous performance improvements most notably in the refactoring of our java.sql.ResultSet to WebRowSet converters.
  • Client and server-side now support transport-level security between clients and services.
  • Client and server-side now support message-level security between clients and services.
  • Services can be configured to register themselves with a Globus MDS Index service running in the same container.
  • The OGSA-DAI data browser is now compatible with both OGSA-DAI WSRF 2.0 and OGSA-DAI WSI 2.0 services.

The main changes between this and the previous release are as follows:

  • The date in all OGSA-DAI XML Schema namespaces have been updated i.e.: http://ogsadai.org.uk/namespaces/2005/03/... has been updated to: http://ogsadai.org.uk/namespaces/2005/10/...
  • Data service resources now have a:

    • data resource class configuration file which specifies the data resource accessor to use.
    • session configuration file which specifies the maximum and default timeouts for sessions.
  • Files data service resources no longer have associated role map documents.
  • Data resource configuration files dataResource element no longer has the implementation attribute.
  • Data resource configuration files for file data resources now have a new XML Schema. This is in schema/ogsadai/xsd/data_resource_config_files.xsd. The main changes are:

    • The driver element has been replaced by a rootDirectory element.
    • The rolemap is no longer needed.
    • The productInfo is no longer needed.
  • Service interfaces have been completely refactored.

    • A terminate operation has been added. This is a placeholder and currently does nothing. It will be used to support request termination in future releases.
    • The updateRoleMaps operation for configurable data services no longer exists.
    • All OGSA-DAI-specific service operations throw one of five new fault types. The client toolkit has been completely refactored to reflect these fault types as Java exceptions.
  • SQL activities no longer implicitly convert java.sql.ResultSets to WebRowSet. A new activity - sqlResultsToXML - has been provided to make this explicit. Whereas in previous releases you would use a sqlQueryStatement activity, for example, you now use a sqlQueryStatement activity connected to a sqlResultsToXML activity.
  • Encrypted role map files are no longer supported and ogsadai-startup-tomcat.jar is no longer provided.
  • OGSA-DAI tutorial examples are compiled as part of a source distribution build and are distributed within ogsadai-examples.jar.
  • The Client Toolkit APIs have been modified to support sessions and concurrency. Some methods such as the poll method are now parameterised with a SessionID object. A user may attach session requirements to an ActivityRequest before performing it.
  • The request status resource property available in previous versions is no longer available. Instead a session request status resource property is created dynamically whenever a new session is created. This indicates the processing status of the request that is currently joined to the session.

3. Bug Fixes

No OGSA-DAI WSRF-specific bug fixes have been made for this release.

4. Known Problems

The following problems are known to exist for OGSA-DAI at the time of the 4.0.2 release and will be addressed in the future. If you have any others that you feel should be added to this list then please let us know.

You may also want to consult the platform-specific FAQ and general FAQ. Additional information may be posted in the advisories page which report any problems since the release, or the OGSA-DAI bugzilla which may also have information on any problems with the current release.

  • Performance:

    • Accessing the databaseSchema property for DB2/Cloudscape can sometimes retrieve unrelated meta-data and also cause OGSA-DAI to crash.
    • Accessing the databaseSchema property for Oracle causes a server-side java.lang.OutOfMemoryError.
    • Attempting to return a very large data set in a Response document can cause a server-side java.lang.OutOfMemoryError. This can be avoided by submitting an asynchronous request (one that uses an outputStream) and retrieving the results using a data service's data transport operations.
    • Queries of tables for millions of small rows can eventually cause a server-side java.lang.OutOfMemoryError even if using stream activities and data transport operations.
    • The fileWritingActivity attempts to read the whole file in a oner and so could cause a server-side java.lang.OutOfMemoryError for very large files.
    • Some databases, such as dBASE IV database on Microsoft Windows 2000, allow unusual characters, such as 0xC to be contained in certain field types. When field values containing this character, OGSA-DAI encodes them into invalid XML that subsequently causes Xerces-dependent components to raise an org.xml.sax.SAXParseException. Activities that have two outputs can sometimes cause java.lang.OutOfMemoryErrors to occur server-side if manipulating large amounts of data. This can arise when using the GZIP activities for example.

      • Such activities are driven by one of the two connected activities and the other activity can accumulate data without processing it. So, for example for the GZIP activities OGSA-DAI focuses on the GZIP meta-data output steam and data only flows from this stream when a file has been completely unzipped. Therefore for large files the whole contents of the file flows into the activity and is buffered without being sent on.
      • OGSA-DAI's GZIP activities will warn if memory usage is close to maximum and throw an OGSA-DAI exception server-side so that the web services container does not crash.
  • Error and exception handling:

    • The failure of a single activity in a request can cause the status of all activities to be set to ERROR, even those that are not connected and succeeded.
    • The data transport activities can gulp exceptions. For example if an sqlQueryStatement with a incorrectly formed SQL query statment is connected to an outputStream activity then attempting to pull data from the outputStream using the data transport operations results in no data - no indication of an error is given to the client.
    • The uk.org.ogsadai.exception.DAILogger methods can sometimes log the wrong line numbers. Searching the logs will usually reveal where the problem actually arose.
  • Security:

    • Encrypted role map files are currently unsupported.
    • If a client does not provide a certificate then deliverFromGridFTP and deliverToGridFTP in a request will fail.
  • File activities:

    • The fileAccessActivity encodes text line-by-line if Base 64 encoding is being used. This may give different results from encoding a whole file in a oner.
    • In fileWritingActivity, EOF means "end of file" when perLine has value false but "end of line" when perLine has value true.
    • In fileWritingActivity only strings from its input stream are handled. Other block types e.g. bytes are ignored.
  • General:

    • Note that when deploying new data service resources dynamically via configurable data service this only works if the JARs required by the data service resource (e.g. database driver JARs) are already within the web service container's library directories. If this is not the case then the container has to be restarted.
    • The data service terminate operation currently does nothing. It is intended as a placeholder for future development.
    • Meta-data from a database, returned in the databaseSchema property, can be case-sensitive depending upon the database. For example MySQL might return a table called littleblackbook while DB2 returns LITTLEBLACKBOOK.
    • The uk.org.ogsadai.common.BinaryLob class contains unimplemented methods which throw java.lang UnsupportedMethodException.
    • Conversion of java.sql.ResultSet to XML WebRowSet returns empty key-column and map properties in the properties element.
    • deliverFromGridFTP and deliverToGridFTP do not allow the setting of certain GridFTP parameters.
  • There is no support in the client toolkit for certain activities. These include:

    • directoryAccessActivity
    • fileAccessActivity
    • fileManipulationActivity
    • deliverFromFTP
    • deliverToFTP
    • gzipDecompression
  • The deliverToStream activity only works if services are deployed in Tomcat.

5. For More Information

Click here for more information about this component.