The main features of OGSA-DAI 3.2 are as follows.
OGSA-DAI is released under the Apache 2.0 licence.
OGSA-DAI 3.2 includes Distributed Query Processing (DQP):
A number of additional new OGSA-DAI components and capabilities are now supported. This includes:
The following new activities have been added.
A number of bugs have been fixed, components made more efficient or robust.
Errors in the user doc have been fixed and new content added to reflect changes made.
Unlike previous versions of OGSA-DAI, OGSA-DAI 3.2 only compiles under Java 1.5 and not Java 1.4.
Apart from this, OGSA-DAI 3.2 is designed to be backwards compatible with OGSA-DAI 3.1 without the need for recompilation - data resource, activity and presentation layer APIs and service WSDLs remain the same.
We no longer release OGSA-DAI Axis 1.2.1 or GT 4.0.5 distributions, though cannot forsee any problems in upgrading OGSA-DAI 3.1 deployments of these versions with OGSA-DAI 3.2 JARs.
We no longer support the OMII container.
OGSA-DAI 3.2 has been tested as follows. All tests are run on Linux Red Hat 9 and using Apache ANT 1.7.0
Release | Java version | Unit tests | Database specific tests | Release build tests | Client-server tests |
---|---|---|---|---|---|
OGSA-DAI 3.2 GT 4.0.8 | 1.5.0_07 | Yes | Yes | Yes | Yes - this includes security-related tests |
OGSA-DAI 3.2 GT 4.2.0 | 1.5.0_07 | Yes | Yes | Yes | Yes - this includes security-related tests |
OGSA-DAI 3.2 GT 4.2.1 | 1.5.0_07 | Yes | Yes | Yes | Yes - this includes security-related tests |
Table 2.1. Tested platforms and databases
Database-specific tests have been run upon all the databases listed in Chapter 28, Data resource products with the exception of Oracle. Client-server tests were run using MySQL, eXist and file system resources.
Though OGSA-DAI 3.2 GT 4.0.8 has not been tested with earlier versions of the Globus Toolkit 4.0 we envisage no problems arising in upgrading an OGSA-DAI 3.1 GT 4.0.x deployment to use OGSA-DAI 3.1. GT 4.0.8 JARs.
OGSA-DAI 3.2's DQP components are not backwards compatible with earlier releases of DQP.
Apart from a move to Java 1.5, OGSA-DAI 3.2 is designed to be backwards compatible with OGSA-DAI 3.1 and 3.0. What do we mean by this? We mean:
ogsadai-3.0
or
ogsadai-3.1
prefixes) in their
OGSA-DAI deployments with OGSA-DAI 3.2 JARs and not experience any
errors about missing or undefined methods. A user should not need to
change the configuration of their server at all. Furthermore, any
OGSA-DAI 3.0 or 3.1 components they have written should continue to compile
using 3.2 JARs without the need to rewrite any code.
If you are an OGSA-DAI 3.0 or 3.1 user and experience any problems in using OGSA-DAI 3.2 then please contact us (see Chapter 4, Information, help and support).
Chapter 5, How to upgrade to 3.2 for OGSA-DAI 3.0 and 3.1 users contains information on how to upgrade from OGSA-DAI 3.0 or 3.1 to 3.2.
The OGSA-DAI 3.0 and 3.1 functionality to collect usage statistics has been removed. Globus Toolkit JARs related to this functionality are no longer bundled.
OGSA-DAI GT 4.0 services are compliant with the version of WSRF currently bundled with Globus Toolkit 4.0 releases. From the Globus Toolkit user doc core facts ( http://www.globus.org/toolkit/docs/4.0/common/javawscore/JavaWSCoreFacts.html) these are
"...the 2004/06 OASIS WSRF and WSN working draft specifications (with minor fixes to the 1.2-draft-01 published schemas and with the March 2004 version of the WS-Addressing specification)"
OGSA-DAI GT 4.2 services are compliant with the version of WSRF currently bundled with Globus Toolkit 4.2 releases which is the OASIS WSRF 1.2 standard.
DeliverToDataSink
url
and
resourceID
inputs are now
optional. If omitted then the following input is expected.
dataSinkResource
is
supported which is assumed to be a client toolkit
uk.org.ogsadai.client.toolkit.DataSinkResource
proxy.
uk.org.ogsadai.activity.delivery.DeliverToDataSinkActivity
uk.org.ogsadai.client.toolkit.activities.delivery.DeliverToDataSink
ExtractTableSchema
uk.org.ogsadai.activity.sql.ExtractTableSchemaActivity
uk.org.ogsadai.activity.sql.MetaDataHandler
API.
GetAvailableTables
uk.org.ogsadai.activity.sql.GetAvailableTablesActivity
ObtainFromDataSource
url
and
resourceID
inputs are now
optional. If omitted then the following input is expected.
dataSourceResource
is
supported which is assumed to be a client toolkit
uk.org.ogsadai.client.toolkit.DataSourceResource
proxy.
uk.org.ogsadai.activity.delivery.ObtainFromDataSourceActivity
uk.org.ogsadai.client.toolkit.activities.delivery.ObtainFromDataSource
TableMetadataToXMLCharArrays
uk.org.ogsadai.client.toolkit.activities.transform.TableMetadataToXMLCharArrays
uk.org.ogsadai.client.toolkit.activities.transform.TableMetadataToXMLCharArrays uk.org.ogsadai.client.toolkit.activities.transform.XMLCharArraysToTableMetaDataRetriever uk.org.ogsadai.activity.transform.TableMetadataToXMLCharArraysActivity uk.org.ogsadai.converters.databaseschema.fromxml.XMLToSchemaConverter uk.org.ogsadai.converters.databaseschema.fromxml.XMLToSchemaConverterImpl uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverter uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverterImpl
uk.org.ogsadai.activity.transform.TableMetadataToXMLCharArraysListActivity uk.org.ogsadai.client.toolkit.activities.transform.TableMetadataToXMLCharArraysList uk.org.ogsadai.converters.databaseschema.fromxml.XMLSchemaConvertor uk.org.ogsadai.converters.databaseschema.fromxml.XMLParsingTableMetaDataImpl uk.org.ogsadai.converters.databaseschema.DatabaseSchemaMetaData uk.org.ogsadai.converters.databaseschema.toxml.SchemaToSingleXMLConverter uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverterBase
TupleSimpleMerge
uk.org.ogsadai.activity.transform.TupleSimpleMergeActivity
WebRowSetCharacterDataToTuple
uk.org.ogsadai.activity.transform.WebRowSetCharacterDataToTupleActivity
Activities changed to use new
uk.org.ogsadai.resource.dataresource.jdbc.JDBCColumnTypeMapper
API
uk.org.ogsadai.activity.remote.RemoteAsynchSQLQueryActivity
uk.org.ogsadai.activity.sql.ExtractTableSchemaActivity
uk.org.ogsadai.activity.sql.NestedQueryExecution
uk.org.ogsadai.activity.sql.SQLNestedInClauseJoinActivity
uk.org.ogsadai.activity.sql.SQLNestedInClauseQueryActivity
uk.org.ogsadai.activity.sql.SQLParameterisedQueryActivity
uk.org.ogsadai.activity.sql.SQLQueryActivity
uk.org.ogsadai.activity.sql.SQLUtilities
Activities changed to expect resources implementing
uk.org.ogsadai.resource.dataresource.jdbc.EnhancedJDBCConnectionProvider
.
uk.org.ogsadai.activity.sql.ExtractTableSchemaActivity
uk.org.ogsadai.activity.sql.SQLNestedInClauseJoinActivity
uk.org.ogsadai.activity.sql.SQLNestedInClauseQueryActivity
uk.org.ogsadai.activity.sql.SQLParameterisedQueryActivity
uk.org.ogsadai.activity.sql.SQLQueryActivity
uk.org.ogsadai.activity.sql.RelationalOrderedJoin
uk.org.ogsadai.activity.sql.SQLUtilities
uk.org.ogsadai.activity.sql.SQLUtilities
java.math.BigInteger
as produced by
MySQL unsigned BIGINT
type.
java.util.ArrayList
to prevent resizing and so causing problems with changing columns.
uk.org.ogsadai.activity.sql.SQLBulkLoadTupleActivity
java.sql.PreparedStatement
objects at the end
of each iteration. Previously it was leaving these objects open until they are
closed automatically.
Default buffer size is now 20. This was updated in server configuration files:
$OGSADAI_HOME/deploy/jndi-config.xml
uk.org.ogsadai.activity.request.OGSADAIRequestConfiguration
.
Fixed problematic synchronisation in:
uk.org.ogsadai.activity.event.EventfulPipe
uk.org.ogsadai.activity.io.LinkedQueuePipe
uk.org.ogsadai.activity.io.LinkedQueuePipeFactory
uk.org.ogsadai.activity.io.BufferedPipe
java.util.ArrayList
instead of a
java.util.LinkedList
uk.org.ogsadai.activity.io.BufferedPipeFactory
uk.org.ogsadai.activity.io.GrowableInMemoryPipe
java.util.ArrayList
instead of a
java.util.LinkedList
uk.org.ogsadai.activity.io.PipeClosedException
if the pipe is closed by the consumer.
uk.org.ogsadai.activity.event.LoggingActivityListener
Added toString()
overrides to aid debugging.
uk.org.ogsadai.activity.pipeline.ActivityInputLiteral
uk.org.ogsadai.activity.pipeline.ListLiteral
uk.org.ogsadai.activity.pipeline.SimpleActivityPipeline
uk.org.ogsadai.activity.pipeline.SimpleLiteral
uk.org.ogsadai.activity.pipeline.StreamLiteral
uk.org.ogsadai.activity.event.LoggingConsoleActivityListener
uk.org.ogsadai.activity.io.TypedOptionalActivityInput
setBlockReader
now accepts
null
arguments and executes as if the
method has never been called. This is useful as the caller can just
do
setBlockReader(getInput(INPUT_NAME))
and all will work well if the input does not exist. Without this the
called needs to get the input, check it is not null and then call
setBlockReader
only when it is not
null
.
New methods to register and remove engine listeners added to:
uk.org.ogsadai.resource.drer.DRER
uk.org.ogsadai.engine.RequestQueueingEngine
uk.org.ogsadai.resource.drer.SimpleDRER
A new request event activity extension interface has been added so an activity can be informed when a request it belongs to completes.
uk.org.ogsadai.activity.extension.RequestEventActivity
uk.org.ogsadai.activity.extension.RequestEventActivityInitialiser
uk.org.ogsadai.activity.extension.DefaultActivityInitialisers
uk.org.ogsadai.engine.event.ActivityRequestListener
A new extensibility point for data sink pipe factories is supported. A deployer can specify a data sink pipe factory which allows clients to write data to a data sink and not block, the data being cached server-side.
uk.org.ogsadai.resource.datasink.SimpleDataSinkResource
now uses a pipe factory and a deployer can configure the pipes a data
sink uses.
uk.org.ogsadai.activity.io.PrimitiveFilePipe
provides a pipe implementation based on files.
uk.org.ogsadai.activity.io.PrimitiveFilePipeFactory
provides a factory for the above.
uk.org.ogsadai.context.OGSADAIConstants
and
uk.org.ogsadai.context.OGSADAIContext
now provide a constant for the data sink pipe factory and a getter
method for the one currently in the OGSA-DAI server context.
ogsadai/misc/uk.org.ogsadai.DATA_SINK_PIPE_FACTORY
JNDI entry:
$OGSADAI_HOME/deploy/jndi-config.xml
A new monitoring framework has been implemented which tracks the activity status and the number of blocks produced/consumed by an activity.
uk.org.ogsadai.monitoring.activity.ActivityProgressMonitoringFramework
uk.org.ogsadai.monitoring.activity.ActivityStatusPropertyCallback
uk.org.ogsadai.monitoring.activity.ActivityStatusTracker
uk.org.ogsadai.monitoring.activity.BlockReaderProgressListener
uk.org.ogsadai.monitoring.activity.OutputDetails
uk.org.ogsadai.monitoring.activity.PipeProgressListener
uk.org.ogsadai.client.toolkit.property.convertor.ActivityProgress
uk.org.ogsadai.client.toolkit.property.convertor.ActivityProgressXMLConvertor
Methods to manipulate workflow proxies:
uk.org.ogsadai.client.toolkit.ParallelWorkflow
- now has methods to get and remove child workflows.
uk.org.ogsadai.client.toolkit.PipelineWorkflow
- now has methods to remove activities.
uk.org.ogsadai.client.toolkit.SequenceWorkflow
- now has methods to get and remove child workflows.
uk.org.ogsadai.client.toolkit.DataValueInputStream
uk.org.ogsadai.client.toolkit.ServerFactory
uk.org.ogsadai.client.toolkit.activity.SimpleLiteralInputDescriptor
and
uk.org.ogsadai.client.toolkit.activity.SimplePipeInputDescriptor
equals
and hashCode
methods.
uk.org.ogsadai.client.toolkit.exception.ActivityInputsOverspecifiedException
and
uk.org.ogsadai.client.toolkit.exception.ActivityInputsUnderspecifiedException.
uk.org.ogsadai.client.toolkit.property.convertor.RequestStatusXMLConvertor
getAttribute
method to
uk.org.ogsadai.util.xml.XML
.
uk.org.ogsadai.client.toolkit.property.convertor.XMLDataValueFactory
uk.org.ogsadai.client.toolkit.example.DocumentClient
sync|async
command line flag and also to wait around for the request to finish if
an asynchronous request is sent.
uk.org.ogsadai.client.toolkit.example.SQLClient
getServer()
method for sub-classes to return presentation
layer-specific server proxies if required.
uk.org.ogsadai.client.toolkit.gt.example.GTSecureSQLClient
- now implements the above method
to return
uk.org.ogsadai.client.toolkit.presentation.gt.GTServer;
uk.org.ogsadai.client.toolkit.example.ServerClient
uk.org.ogsadai.client.toolkit.scenarios.ExtractTableSchemaScenario
XML utilities
uk.org.ogsadai.util.xml.XML
getAttribute
method changed to
handle namespaces or non-namespaced attributes.
Relational table schema now includes information on OGSA-DAI tuple
types
(uk.org.ogsadai.tuple.TupleTypes
) for
each column. Associated updates made to:
uk.org.ogsadai.converters.databaseschema.ColumnMetaData
uk.org.ogsadai.converters.databaseschema.ColumnMetaDataImpl
uk.org.ogsadai.converters.databaseschema.DatabaseSchemaConstants
uk.org.ogsadai.converters.databaseschema.TableMetaDataImpl
uk.org.ogsadai.converters.databaseschema.fromxml.XMLParsingTableMetaDataImpl
uk.org.ogsadai.converters.databaseschema.fromxml.XMLSchemaConverter
uk.org.ogsadai.converters.databaseschema.toxml.SchemaToCharArraysConverterImpl
uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverterBase
uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverterImpl
Relational table schema functions now close metadata result sets which previously could cause issues
on Oracle Databases due to cursor count exceeding maximum allowed.
uk.org.ogsadai.converters.databaseschema.TableMetaDataImpl
has now been updated to close the metadata result sets.
uk.org.ogsadai.converters.resultset.webrowset.TextColumnStrategy
uk.org.ogsadai.util.xml.XML.replaceSpecialCharacters()
method instead of its own copy of this method, which has now been
deleted.
uk.org.ogsadai.converters.webrowset.metadata.ColumnMetaData
ResultSet.getColumnClassName(int)
which returns the name of the class that a caller can expect to
receive from ResultSet.getObject(int)
method calls.
uk.org.ogsadai.converters.webrowset.resultset.types.SQLTypesToJava
which maps from SQL types (in the
java.sql.Types
) class into Java class names.
Sample data clients
uk.org.ogsadai.dbcreate.CreateTestMySQLTables
now creates database and user correctly.
uk.org.ogsadai.dbcreate.CreateTestDB
Ensures
createDatabase()
abstract methods in sub-classes is now called.
uk.org.ogsadai.physicalschema.impl.MySQLPhysicalSchemaProvider
java.lang.Long
so for now it won't
return the value if too big.
uk.org.ogsadai.util.BigDecimalUtil
uk.org.ogsadai.util.UniqueName
java.util.UUID
class.
uk.org.ogsadai.util.xml.XML
replaceSpecialCharacters()
strips out problematic control characters as part of a conversion to XML.
uk.org.ogsadai.util.xml.XML
replaceSpecialCharacters()
strips out problematic control characters as part of a conversion to XML.
uk.org.ogsadai.activity.request.status.AsynchronousRequestStatus
, uk.org.ogsadai.activity.request.status.SimpleRequestStatus
, uk.org.ogsadai.resource.request.RequestExecutionStatusListener
, uk.org.ogsadai.resource.request.RequestStatus
uk.org.ogsadai.common.ID
java.lang.Comparable
.
uk.org.ogsadai.converters.webrowset.tuple.ColumnStrategyFactory
uk.org.ogsadai.resource.property.ActivitiesMetaDataPropertyConvertor
uk.org.ogsadai.tuple.Null
toString()
and a static public
variable called VALUE
.
uk.org.ogsadai.tuple.SimpleTuple
java.sql.Date
handling more robust.
uk.org.ogsadai.tuple.SimpleTupleMetadata
.uk.org.ogsadai.tuple.TupleTypes
uk.org.ogsadai.tuple.TupleUtilities
$OGSADAI_HOME/setenv.sh
.
$OGSADAI_HOME/thirdparty/globus/common
.
$OGSADAI_HOME/build.xml
.
permit
and
deny
commands changed to allow
spaces in resource IDs.
uk.org.ogsadai.servlets.DataSourceRetrievalServlet.
.
contentType
.
Now it is used.
Server configuration editor classes
uk.org.ogsadai.tools
.
$OGSADAI_HOME/examples/build-server-editor.xml
.
$OGSADAI_HOME/build-server.xml
commands deployActivity
and exposeResourceActivity
now use these classes from ANT rather than deploying activities
using an ANT regular expression replace. This avoids problems
with duplicated activity declarations in configuration files.
uk.org.ogsadai.resource.ResourceFactory
and
uk.org.ogsadai.resource.SimpleResourceFactory
uk.org.ogsadai.resource.request.RequestStatusXML
Support for relational database product-specific handling
uk.org.ogsadai.resource.dataresource.jdbc.JDBCSettings
is available for classes that provide access to
advanced JDBC settings e.g. fetch size, schema names, OGSA-DAI
meta-data handlers and OGSA-DAI JDBC column type mappers.
uk.org.ogsadai.resource.dataresource.jdbc.JDBCDataResource
now implements this interface.
uk.org.ogsadai.resource.dataresource.jdbc.JDBCSettingsProvider
uk.org.ogsadai.resource.dataresource.jdbc.JDBCConnectionProvider
andJDBCSettingsProvider
and is called
uk.org.ogsadai.resource.dataresource.jdbc.EnhancedJDBCConnectionProvider
uk.org.ogsadai.resource.dataresource.jdbc.SimpleJDBCConnectionProvider
now implements
EnhancedJDBCConnectionProvider
uk.org.ogsadai.resource.dataresource.jdbc.JDBCDataResourceState
and
uk.org.ogsadai.resource.dataresource.jdbc.SimpleJDBCDataResourceState
now provide corresponding methods to return the information
required by
JDBCSettings
Product-specific meta-data extraction.
uk.org.ogsadai.resource.dataresource.jdbc.MetaDataHandler
is available for classes to provide product-specific meta-data
extaction. This includes providing product-specific
uk.org.ogsadai.converters.databaseschema.TableMetaData
and
uk.org.ogsadai.tuple.TupleMetadata
uk.org.ogsadai.resource.dataresource.jdbc.DefaultMetaDataHandler
is provided.
uk.org.ogsadai.resource.dataresource.jdbc.OracleMetaDataHandler
- PostgreSQL
uk.org.ogsadai.resource.dataresource.jdbc.PostGreSQLMetaDataHandler
- and MySQL -
uk.org.ogsadai.resource.dataresource.jdbc.StreamingMySQLMetaDataHandler
Product-specific mappings from SQL types from JDBC to OGSA-DAI types.
uk.org.ogsadai.resource.dataresource.jdbc.JDBCColumnTypeMapper
is available for classes to provide product-specific mappings
of column types.
uk.org.ogsadai.resource.dataresource.jdbc.DefaultJDBCColumnTypeMapper
is provided.
uk.org.ogsadai.resource.dataresource.jdbc.MySQLColumnTypeMapper
uk.org.ogsadai.resource.dataresource.jdbc.JDBCColumnTypeMapperProvider
that can be implemented by classes returning
JDBCColumnTypeMapper
s.
Relational resources and driver connection properties
uk.org.ogsadai.resource.dataresource.jdbc.JDBCDataResourceState
.
dai.connect.
prefix is passed straight to the driver (with the prefix stripped off).
java.sql.Timestamp
instead of
Oracle-specific org.oracle.TIMESTAMP
via setting the following property in the
CONFIG...END
block of a relational
resource configuration file:
dai.connect.oracle.jdbc.J2EE13Compliant=true
null
via setting the following property in the
CONFIG...END
block of a relational
resource configuration file:
dai.connect.zeroDateTimeBehavior=convertToNull
Relational resources and driver SQL statements
uk.org.ogsadai.resource.dataresource.jdbc.JDBCDataResourceState
.
dai.statement.
prefix is executed as an SQL statement by the driver.
In 3.1 the user doc for secure client examples mistakenly cited our
non-secure SQLClient
These have been
corrected to cite the secure client
GTSecureSQLClient
.
New secure ExtractTableSchema client
uk.org.ogsadai.client.toolkit.gt.example.GTSecureExtractSchemaClient
uk.org.ogsadai.service.gt.security.GTSecurityContext
uk.org.ogsadai.service.gt.security.MessageContextProvider
Request XML Schema -
$OGSADAI_HOME/schema/ogsadai/types/Request.xsd
xsd:ID
and the input pipe name is a
xsd:IDREF
. It was the other way round
but this led to problems when using automatic Tee.
Activities
uk.org.ogsadai.activity.sql.SQLBagActivity uk.org.ogsadai.activity.sql.SQLResilientActivity uk.org.ogsadai.activity.pipeline.AutomaticTeeuse hard-coded activity names to identify the activity or activities in sub-workflows they splice into workflows. This means that you should take care when renaming activities exposed by resources, especially block activities. This problem will be most likely manifested as an unsupported activity error.
IMAGE
column type is not
currently supported.
ObtainFromGridFTP
and
DeliverToGridFTP
do not allow the
setting of certain GridFTP parameters.
org.xmldb.api.base.ResourceSet
object.
Deployment
Interacting with databases
table-name
tag in WebRowSet XML
is empty in results produced by Oracle or SQLServer. This is a problem
of the JDBC drivers that do not provide table names in the metadata of
a java.sql.ResultSet
.
littleblackbook
while DB2
returns LITTLEBLACKBOOK
.
java.sql.SQLException
s from database
drivers to identify problems caused by a client (e.g. a
syntactically-incorrect SQL query) and those due to server-side
failures (e.g. loss of connection to a database).
org.gjt.mm.mysql.Driver
from the
mysql-connector-java-5.0.5
driver JAR in conjunction with MySQL version mysql-4.1.20-1.RHEL4.1 running on
Red Hat.
Even though they had provided the database name as part of the
database connection URL, e.g.
jdbc:mysql://localhost:3306/dbnameThey had to specify the database name in their queries also, e.g.
SELECT * FROM dbname.table
Miscellaneous
uk.org.ogsadai.common.msgs.DAILogger
methods can sometimes log the wrong line numbers. Searching the logs
will usually reveal where the problem actually arose.
deliverFromGridFTP
and
deliverToGridFTP
in a request
the transfer will fail.
destroy
operation. It is a no-op.
The default OGSA-DAI resource and activity managers
uk.org.ogsadai.activity.SimpleActivityManager uk.org.ogsadai.resource.SimpleResourceManager
cache activity specifications and resources in in-memory hash tables. They do not check for changes in any persisted configuration associated with the activity specifications or resources once the associated objects are in the cache.
uk.org.ogsadai.persistence.file.resource.SimpleFileResourceStateDAO
only handles the persistence and restoration of resource properties or
session state that are String
s.
uk.org.ogsadai.service.gt.resource.GTResourceProperty
methods
add(X) clear() get(int) remove(Object) set(int, Object)are currently not supported. These would need to convert from XML fragments into objects.
uk.org.ogsadai.common.BinaryLob
class
contains unimplemented methods which throw
java.lang.UnsupportedOperationException
.
java.sql.ResultSet
to XML
WebRowSet returns empty key-column
and
map
properties in the
properties
element.
Platforms
java.sql
APIs (in which
both additional methods and classes have been added) from earlier
versions of Java. The OGSA-DAI team may release a Java 1.6 patch in
the near future.
setenv
scripts do not set
CLASSPATH
s correctly under Cygwin.
Security
The following APIs may be assumed to be held stable in further OGSA-DAI 3 releases. The only exceptions to this are:
The list of APIs are as follows:
The following components may be subject to change in light of requirements to increase functionality or bug fixes. We may release bug fixed components or new versions of existing components. These will not incur API changes though. Note also that these are components that implement OGSA-DAI extensibility points so are designed to be pluggable and replaceable in this way.
The following APIs and components may be viewed as "alpha" versions which will be subject to change:
The main features of OGSA-DAI 3.1 are as follows.
OGSA-DAI is now released under the Apache 2.0 licence.
OGSA-DAI 3.0 extension packs have been ingested. This includes:
A number of new components and capabilities are now supported. This includes:
The following new activities have been added.
uk.org.ogsadai.util
were relocated to
uk.org.ogsadai.activity.util
.
ErrorID
s defined in
uk.org.ogsadai.RelationalJoins1.Messages.java
were relocated to
uk.org.ogsadai.exception.ErrorID
.
uk.org.ogsadai.RelationalJoins1.Messages.java
was not ingested.
OGSA-DAI 3.1 is designed to be backwards compatible with OGSA-DAI 3.0 without the need for recompilation - data resource, activity and presentation layer APIs and service WSDLs remain the same.
A number of bugs have been fixed, components made more efficient or robust.
The user doc has been extensively refactored and extended.
OGSA-DAI 3.1 has been tested as follows. All tests are run on Linux Red Hat 9 and using Apache ANT 1.7.0
Release | Java version | Unit tests | Database specific tests | Release build tests | Client-server tests |
---|---|---|---|---|---|
OGSA-DAI 3.0 GT 4.0.5 | 1.4.2_12 | Yes | Yes | Yes | Yes - this includes security-related tests |
OGSA-DAI 3.0 GT 4.0.8 | 1.4.2_12 | Yes | Yes | Yes | Yes - this includes security-related tests |
Table 2.2. Tested platforms and databases
Database-specific tests have been run upon all the databases listed in Chapter 28, Data resource products with the exception of Oracle. Client-server tests were run using MySQL, eXist and file system resources.
OGSA-DAI 3.1 is designed to be backwards compatible with OGSA-DAI 3.0. What do we mean by this? We mean:
ogsadai-3.0
) prefixes in their
OGSA-DAI deployments with OGSA-DAI 3.1 JARs and not experience any
errors about missing or undefined methods. A user should not need to
change the configuration of their server at all. Furthermore, any
OGSA-DAI 3.0 components they have written should continue to compile
using 3.1 JARs without the need to rewrite any code.
If you are an OGSA-DAI 3.0 user and experience any problems in using OGSA-DAI 3.1 then please contact us (see Chapter 4, Information, help and support).
Chapter 5, How to upgrade to 3.2 for OGSA-DAI 3.0 and 3.1 users contains information on how to upgrade from OGSA-DAI 3.0 to 3.1.
OGSA-DAI contains functionality that collects statistics on the use of OGSA-DAI and forwards this to the OGSA-DAI team. This is enabled by default in the release.
OGSA-DAI services are compliant with the version of WSRF currently bundled with Globus Toolkit 4.0 releases. From the Globus Toolkit user doc core facts ( http://www.globus.org/toolkit/docs/4.0/common/javawscore/JavaWSCoreFacts.html) these are
"...the 2004/06 OASIS WSRF and WSN working draft specifications (with minor fixes to the 1.2-draft-01 published schemas and with the March 2004 version of the WS-Addressing specification)"
uk.org.ogsadai.client.toolkit.activities.block.CharArraysResize
.
addArraySizeInput(int)
has been deprecated by
addSizeInChars(int)
connectArraySizeInput(SingleActivityOutput)
has been deprecated by
connectSizeInCharsInput(SingleActivityOutput)
getOutput()
has been deprecated by
getResultOutput()
uk.org.ogsadai.activity.block.ListControlledRepeatActivity
.
uk.org.ogsadai.activity.block.ListConcatenateActivity
uk.org.ogsadai.activity.block.ListRemoveActivity
uk.org.ogsadai.client.toolkit.activities.block.ListRemove
also changed.
uk.org.ogsadai.activity.delivery.DeliverToHTTPActivity
.
uk.org.ogsadai.activity.delivery.DeliverToSMTP
.
uk.org.ogsadai.client.toolkit.activities.delivery.DeliverToSMTP
method addToAsArray(String[])
deprecated by addTo(String[])
.
uk.org.ogsadai.activity.management.CreateResourceGroupActivity
OUTPUT
is
now deprecated. At the next release it will be
renamed from output
to
result
. Change will also apply to
uk.org.ogsadai.client.toolkit.activities.management.CreateResourceGroup
.
addResourceIdsAsArray(String[])
has
been deprecated by
addResourceIds(String[])
getOutput()
has been deprecated by
getResultOutput()
uk.org.ogsadai.activity.sql.ExtractTableSchemaActivity
.
getPrimaryKeys
, getImportedKeys
or getExportedKeys
operations are unsupported by the driver currently in use, the
activity continues rather than throw an exception.
uk.org.ogsadai.activity.sql.GetAvailableTablesActivity
.
getSchemas
operation is unsupported by the driver currently in use, the activity
continues, using a wild-card, rather than throw an exception.
uk.org.ogsadai.activity.sql.SQLBagActivity
and
uk.org.ogsadai.activity.sql.SQLResilientActivity
.
timeout
input and the
TIMEOUT
and
DEFAULT_TIMEOUT
constants.
QUERY_FAILED_AT_ALL_RESOURCES
error can be raised.
uk.org.ogsadai.client.toolkit.activities.sql.SQLBag
and
uk.org.ogsadai.client.toolkit.activities.sql.SQLResilient
.
addTimeout
and connectTimeoutInput
methods are
now deprecated.
uk.org.ogsadai.activity.sql.SQLQueryActivity
and
uk.org.ogsadai.activity.sql.SQLParameterisedQueryActivity
.
uk.org.ogsadai.activity.block.TeeActivity
CLONE
was replaced by
INPUT_CLONE
.
uk.org.ogsadai.activity.transform.CVSToTupleActivity
ActivityUserException
if a parser error occurs.
uk.org.ogsadai.activity.transform.CVSToTupleActivity
ActivityProcessingException
.
uk.org.ogsadai.activity.transform.TableMetadataToXMLCharArraysActivity
uk.org.ogsadai.activity.transform.TupleSplitActivity
uk.org.ogsadai.client.toolkit.activities.transform.TupleSplit
uk.org.ogsadai.client.toolkit.activities.transform.TableMetadataToXMLCharArrays
uk.org.ogsadai.client.toolkit.activities.transform.TableMetadataToXMLCharArrays uk.org.ogsadai.client.toolkit.activities.transform.XMLCharArraysToTableMetaDataRetriever uk.org.ogsadai.activity.transform.TableMetadataToXMLCharArraysActivity uk.org.ogsadai.converters.databaseschema.fromxml.XMLToSchemaConverter uk.org.ogsadai.converters.databaseschema.fromxml.XMLToSchemaConverterImpl uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverter uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverterImpl
uk.org.ogsadai.activity.transform.TableMetadataToXMLCharArraysListActivity uk.org.ogsadai.client.toolkit.activities.transform.TableMetadataToXMLCharArraysList uk.org.ogsadai.converters.databaseschema.fromxml.XMLSchemaConvertor uk.org.ogsadai.converters.databaseschema.fromxml.XMLParsingTableMetaDataImpl uk.org.ogsadai.converters.databaseschema.DatabaseSchemaMetaData uk.org.ogsadai.converters.databaseschema.toxml.SchemaToSingleXMLConverter uk.org.ogsadai.converters.databaseschema.toxml.SchemaToXMLConverterBase
uk.org.ogsadai.activity.transform.TupleProjectionActivity
ColumnNotFoundException
and rethrow as an ActivityUserException
with an ErrorID
of
COLUMN_NOT_FOUND_ERROR
.
uk.org.ogsadai.activity.transform.TupleProducingCSVHandler
NullPointerException
if the first row
input is null
i.e. if there is no
CSV input data.
Service URL extension interface.
uk.org.ogsadai.activity.extension.ServiceAddressesActivity
and be given an object containing the URLs of the OGSA-DAI server
services.
A number of activity framework changes were made to allow for custom workflow transformation, factoring in a security context if required. This includes:
uk.org.ogsadai.activity.request.WorkflowTransformation
uk.org.ogsadai.activity.request.AutomaticTeeWorkflowTransformation
is provided which inserts Tee activities where an activity output is
connected to two activity inputs.
uk.org.ogsadai.context.OGSADAIContext
now has a method,
getWorkflowTransformation()
, to
to get any such component if present in the OGSA-DAI context.
AutomaticTeeWorkflowTransformation
is
used.
uk.org.ogsadai.activity.request.WorkflowRequest
uk.org.ogsadai.service.gt.execution.workflow.GTRequestFactory
uk.org.ogsadai.authorization.NullSecurityContext
.
uk.org.ogsadai.activity.request.WorkflowRequest
now gets a
WorkflowTransformation
from the OGSA-DAI context and applies it - if
none can be found then the default is used.
A number of activity framework changes were made to allow for pipes to be configurable. This includes:
uk.org.ogsadai.activity.io.GrowablePipe
to
uk.org.ogsadai.activity.io.GrowableInMemoryPipe
.
uk.org.ogsadai.context.OGSADAIContext
now has a method,
getPipeFactory()
, to
to get any such component if present in the OGSA-DAI context.
uk.org.ogsadai.activity.io.BufferedPipeFactory
is
used.
uk.org.ogsadai.activity.io.ControlBlock
java.lang.Serializable
. It now
supports a private readResolve
method used in
Java object serialization and which returns the one of the three
control block values.
uk.org.ogsadai.activity.block.InvalidInputsGranularityException
src/core/activities/uk/org/ogsadai/activity/block/
. These are
uk.org.ogsadai.activity.block.InvalidInputGranularityException
.
uk.org.ogsadai.activity.block.MismatchedInputsGranularityException
.
Error ID
uk.org.ogsadai.MISMATHCED_INPUTS_GRANULARITY
uk.org.ogsadai.activity.block.ListRemoveActivity
and
uk.org.ogsadai.activity.block.ListControlledRepeatActivity
uk.org.ogsadai.data.DataValue
isFinalBlock()
.
It should not have been supported.
New DRER request descriptor
uk.org.ogsadai.resource.request.RequestDescriptor
and all
implementation classes of this
(uk.org.ogsadai.resource.drer.EmbeddedWorkflowRequestDescriptor
and
uk.org.ogsadai.service.gt.execution.GTRequestDescriptor
)
are now deprecated.
uk.org.ogsadai.resource.request.CandidateRequestDescriptor
and
class SimpleCandidateRequestDescriptor
. This is much the same
as RequestDescriptor
but instead of a
getRequest()
method it provides a
getWorkflow()
method which returns a
uk.org.ogsadai.activity.workflow.Workflow
. This allows
presentation layers to construct workflows built using core activity
framework objects and is related to the deprecation of resource factories.
uk.org.ogsadai.resource.drer.DRER
interface and
SimpleDRER
class have a new execute(CandidateRequestDescriptor)
method.execute(RequestDescriptor)
is now marked as deprecated.
CandidateRequestDescriptor
also provides a
allowPrivateResources()
method which returns a flag indicating whether private resources are
allowed to be cited in the workflow.
uk.org.ogsadai.activity.request.RequestDescriptor
allowPrivateResources()
returns a flag indicating whether private
resources are allowed to be cited in the workflow.
getWorkflow()
returns a
uk.org.ogsadai.activity.workflow.Workflow
. This
allows presentation layers to construct workflows built using core
activity framework objects and is related to the deprecation of
resource factories.
getRequest()
is supported for backwards compatibility but is now marked
as deprecated.
SimpleRequestDescriptor
can hold either a
Workflow
or (for backwards
compatibility) a request Object
. A new deprecated
setRequest()
method provides access to the latter.
SimpleRequestDescriptor
.
uk.org.ogsadai.activity.SimpleWorkflowRequestDescriptor
, which was
only used by our SQLBag and SQLResilient tests has been deleted.
uk.org.ogsadai.client.toolkit.presentation.gt.GTResource
.
uk.org.ogsadai.client.toolkit.exception.PropertyNameInvalidException
instead of an incorrect
ResourceCommsException
uk.org.ogsadai.client.toolkit.presentation.axis.AxisExceptionUtil.buildClientException()
uk.org.ogsadai.client.toolkit.presentation.gt.GTExceptionUtil.buildClientException()
.
NullPointerException
if an exception
it is processing has no causes. This means, for example, that rejected
requests from the server now yield a client toolkit
ClientException
.
uk.org.ogsadai.client.toolkit.example.SQLClient
NullPointerException
if it tries to
print a field with a NULL value. Now it displays
null
.
The document-based client toolkit classes from extension pack one have been ingested. These allow client applications to read OGSA-DAI workflows from XML files and send them to OGSA-DAI servers. It is an alternative to building the workflows programatically and can be a good way to test OGSA-DAI installations and demonstrate OGSA-DAI's functionality.
The simple data source client from extension pack one has been ingested. This client allows a data held in a data source to be streamed back and printed.
uk.org.ogsadai.client.toolkit.example.ServerClient
listResources
now prints the resource
type as well as the resource IDs.
destroy
so
that resources can be destroyed.
uk.org.ogsadai.client.toolkit.example.ClientBase
printActivityStatus(Activity)
method for printing the status of individual activities and any error
messages.
uk.org.ogsadai.client.toolkit.example
- SQLClient
,
XMLDBClient
and FileClient
now call
ClientBase.printActivityStatus(Activity)
on each activity in the workflow if any exception is thrown by the
server.
uk.org.ogsadai.client.toolkit.example.SQLDataSourceClient
has been added. This client creates an OGSA-DAI data source, runs an
SQL query and exposes the results as CSV via the data source. This can
be useful when used with the OGSA-DAI data source servlet.
Example clients in
src/client/uk/org/ogsadai/client/toolkit/example
and scenarios in
src/client/uk/org/ogsadai/client/toolkit/scenarios
are bundled in binary distributions in an
examples/
directory.
uk.org.ogsadai.converters.csv.CSVParser
uk.org.ogsadai.converters.tuple.webrowset.TextColumnStrategy
.
NullPointerException
if the first
tuple contains empty strings.
uk.org.ogsadai.metadata.MetadataWrapper
java.lang.Serializable
.
uk.org.ogsadai.tuple.ColumnMetadata
columnNoNulls
has been deprecated by COLUMN_NO_NULLS
.
columnNullable
has been deprecated by COLUMN_NULLABLE
.
columnNullableUnknown
has been deprecated by COLUMN_NULLABLE_UNKNOWN
.
uk.org.ogsadai.tuple.Tuple, TupleMetadata,
ColumnMetadata, SimpleBlob, SimpleClob, Null
java.lang.Serializable
.
uk.org.ogsadai.tuple.TupleMetadata
getColumnMetadataPosition
no longer throws a
ColumnNotFoundException
.
SimpleTupleMetadata
since it always returned -1 in such cases.
uk.org.ogsadai.tuple.Null
readResolve
method used in Java object serialization and which returns the
singleton instance held by the object.
build.xml
.
permit
and
deny
now can handle cases where
path to OGSA-DAI container (and so to the logins file) has spaces.
localhost
.
localhost
as the
dai.host
argument. This is because
proper host names are required to construct WS-EPRs and ensure that
inter-op with other OGSA-DAI, web and grid components (e.g. DQP) can work.
config.txt
deploy/config-blanks/JDBCResource
uk.org.ogsadai.SQLBulkLoadTuple
activity name was mapped to
a non-existent uk.org.ogsadai.SQLBulkLoadTuples
activity ID. This has been corrected to be
uk.org.ogsadai.SQLBulkLoadTuple
.
dai-manager.jsp
dai-index-gt.jsp
.
JSP pages have been rewritten and new ones added. This should still be viewed as prototypes only.
dai.protocol
(default http
) property. This allows provision of
https
for secure deployments, for example.
uk.org.ogsadai.persistence.file.TextFileUtils
getLines
methods now view lines in configuration files
that start with #
as comments and ignores these.
DataRequestExecutionResource
dai.concurrency.queue.length
and
dai.concurrency.request.pool.size
have been increased from 20 and 10 to 150 and 50 respectively, in
response to performance evaluations on 3.0.
config-blanks/JDBCResource
and
config-blanks/XMLDBResource
http:// prefix
e.g.:
http://uk.org.ogsadai.resource.dataresource.product=MySQL http://uk.org.ogsadai.resource.dataresource.vendor=MySQL http://uk.org.ogsadai.resource.dataresource.version=5.0
This is to avoid problems with using OGSA-DAI with security. No code relied upon these names so impact should be minimal.
Tuples, meta data and WebRowSet
catalog
section.
uk.org.ogsadai.config.KeyValueProperties
:
containsKey(Key)
and
put(KeyValueProperties)
.
SimpleKeyValueProperties
and
uk.org.ogsadai.resource.session.SimpleSessionResource
.
JDBC, column labels and column names
ResultSetMetaData.getColumnName()
have been replaced by calls to
ResultSetMetaData.getColumnLabel()
at appropriate places as this allows for column aliases to be
handled correctly. Currently the name field in tuple meta-data
records the column label.
WebRowSet
rowset-type
in our
implementation is now
ResultSet.TYPE_FORWARD_ONLY
rather
than the integer value of this constant
(1033
). This is for inter-operability
with Sun's
WebRowSet.
An example workflow monitoring plug-in has been provided. The previous release shipped with one that did nothing. The new addition records events to an event list in the OGSA-DAI context.
uk.org.ogsadai.resource.SimpleResourcePropertySet
.
ResourceEvent.UPDATE
event if an
existing resource property is overwritten and a
ResourceEvent.ADD
event if a new one
is added (rather than the other way round!).
uk.org.ogsadai.resource.SimpleResourcePropertyValue
setValue()
.
a cached DOM value is now cleared when this method is
called - prevents value and DOM representation getting out of synch.
uk.org.ogsadai.resource.ResourceManager
listResources(ResourceType)
method.
uk.org.ogsadai.resource.SimpleResourceManager
uk.org.ogsadai.resource.ResourceAccessorProvider
uk.org.ogsadai.resource.DataResource
implementations can
implement. If a data resource plug-in implements this interface then
it will be provided with the current session and request IDs, in
addition to the current security context. These can be used to create
a ResourceAccessor
for the data resource that factors in
the session and/or request, in addition to the security context.
Any data resource implementing this interface will have the
ResourceAccessorProvider.createResourceAccessor/3
method called instead of the
ResourceAccessor.createResourceAccessor/1
method.
uk.org.ogsadai.activity.extension.ResourceActivityInitialiser
was changed to call the appropriate method above.
uk.org.ogsadai.activity.extension.DefaultActivityInitialisers
was changed to pass the session and request IDs to
ResourceActivityInitialiser
.
The OGSA-DAI 3.0 remote resources extension pack has been
ingested. This consists of a new OGSA-DAI data resource plug-in which
can communicate with a remote OGSA-DAI server. An activity -
uk.org.ogsadai.activity.remote.RemoteAsynchSQLQueryActivity
- which
runs a CreateDataSource=>DeliverToRequestStatus and then a
SQLQuery=>TupleToWebRowSetCharArrays=>WriteToDataSource workflow on
the remote server has also been supplied.
Support for private resources
uk.org.ogsadai.resource.ResourceState
, and its sub-class
class, SimpleResourceState
, have been extended with
isPrivateResource()
and
setPrivateResource()
methods.
uk.org.ogsadai.resource.ResourceManager
, and its
implementation class, SimpleResourceManager
, have been extended with
getPublicResource(ResourceID), getPublicResource(ResourceID,
ResourceType), listPublicResources()
and
listPublicResources(ResourceType)
methods.
uk.org.ogsadai.activity.management.CreateResourceGroupActivity
has been changed to that it will only
succeed if all the resources to be members of the group are both known
to the server and are marked as public resources.
uk.org.ogsadai.activity.request.RequestConfiguration
has
a new allowPrivateResources()
method which returns a boolean and its
sub-class uk.org.ogsadai.activity.request.OGSADAIRequestConfiguration
inherits the default value from the given
uk.org.ogsadai.activity.RequestDescriptor
.
uk.org.ogsadai.activity.request.OGSADAIChildRequestConfiguration
,
used in sub-workflows, sets the default value of this flag to true but
provides a setAllowPrivateResources(boolean)
method to allow this
to be overridden (e.g. an activity could override it to prevent
sub-workflows accessing private resources).
uk.org.ogsadai.activity.SimpleActivityFactory
and
uk.org.ogsadai.activity.extension.ResourceActivityInitialiser
provide
constructors which take a boolean about whether private resources can
be used or not and respect this when assigning target resources to
activities. If a private resource is targeted and private resources
are not to be used then a
uk.org.ogsadai.resource.ResourceUnknownException
is thrown.
uk.org.ogsadai.activity.extension.DefaultActivityInitialisers
now
calls the new ResourceActivityInitialiser
constructor with
the allowPrivateResources
value from the RequestConfiguration
.
Interface uk.org.ogsadai.activity.request.RequestFactory
is now
deprecated.
uk.org.ogsadai.resource.initialize.FactoryResourceStateVisitor
no
longer looks for a RequestFactory
with key
uk.org.ogsadai.REQUEST_FACTORY
in the
OGSA-DAI context.In
consequence, SimpleDRER
and
OGSADAIActivityFramework
no longer take a
RequestFactory
as arguments to their constructors.
uk.org.ogsadai.activity.OGSADAIActivityFramework
will look for a
RequestFactory
in the OGSA-DAI context. If it receives an
activity.RequestDescriptor
that has no Workflow
object then it will get a request Object
from this and pass it to the factory.
SimpleDRER.execute(RequestDescriptor)
constructs a
SimpleRequestDescriptor
holding a request Object
.
SimpleDRER.execute(CandidateRequestDescriptor)
constructs a
SimpleRequestDescriptor
holding a Workflow
object.
uk.org.ogsadai.resource.drer.SimpleRequestFactory
has been deprecated.
uk.org.ogsadai.service.gt.execution.workflow.GTRequestFactory
is
now a standalone class for converting beans into a Workflow
. It no
longer implements the deprecated RequestFactory
interface.
uk.org.ogsadai.service.gt.execution.GTDataRequestExecutionProvider
now uses GTRequestFactory
to convert a request bean into a Workflow
and also it builds a SimpleCandidateRequestDescriptor
for passing to
the DRER.
uk.org.ogsadai.service.gt.context.GTOGSADAIContextInitializer
no
longer adds the GTRequestFactory
to the OGSA-DAI context.
uk.org.ogsadai.service.gt.execution.GTRequestDescriptor
has now
been removed as it's unused.
uk.org.ogsadai.context.OGSADAIConstants.REQUEST_FACTORY
has been deprecated.
uk.org.ogsadai.service.gt.context.GTOGSADAIContextInitializer
now initializes OGSA-DAI managers before reading JNDI entries in the
misc or logins contexts. This allows optional or application-specific
components to use the managers when these components are first
created.
The servlet extension pack - which provides a servlet which allows access to data exposed via OGSA-DAI data sources - has been ingested. This is deployed by default in deployments of OGSA-DAI onto Tomcat. The following should be noted.
OGSA-DAI is now tested using GT 4.0.5 and GT 4.0.8.
OGSA-DAI GT now bundles the
concurrent.jar
and concurrent.LICENSE
from the Globus Toolkit. This is required to allow clients to run
under GT 4.0.8.
An OGSA-DAI GT PDP which authorizes on the basis of DN's matching a regular expression is available,
Support for MDS registration.
uk.org.ogsadai.service.gt.intrinsics.GTIntrinsicsProvider
listResources
now just ignores the ID instead of throwing an exception.
Activities
uk.org.ogsadai.activity.sql.SQLBagActivity uk.org.ogsadai.activity.sql.SQLResilientActivity uk.org.ogsadai.activity.pipeline.AutomaticTeeuse hard-coded activity names to identify the activity or activities in sub-workflows they splice into workflows. This means that you should take care when renaming activities exposed by resources, especially block activities. This problem will be most likely manifested as an unsupported activity error.
IMAGE
column type is not
currently supported.
ObtainFromGridFTP
and
DeliverToGridFTP
do not allow the
setting of certain GridFTP parameters.
org.xmldb.api.base.ResourceSet
object.
Deployment
Interacting with databases
table-name
tag in WebRowSet XML
is empty in results produced by Oracle or SQLServer. This is a problem
of the JDBC drivers that do not provide table names in the metadata of
a java.sql.ResultSet
.
littleblackbook
while DB2
returns LITTLEBLACKBOOK
.
java.sql.SQLException
s from database
drivers to identify problems caused by a client (e.g. a
syntactically-incorrect SQL query) and those due to server-side
failures (e.g. loss of connection to a database).
org.gjt.mm.mysql.Driver
from the
mysql-connector-java-5.0.5
driver JAR in conjunction with MySQL version mysql-4.1.20-1.RHEL4.1 running on
Red Hat.
Even though they had provided the database name as part of the
database connection URL, e.g.
jdbc:mysql://localhost:3306/dbnameThey had to specify the database name in their queries also, e.g.
SELECT * FROM dbname.table
Miscellaneous
uk.org.ogsadai.common.msgs.DAILogger
methods can sometimes log the wrong line numbers. Searching the logs
will usually reveal where the problem actually arose.
deliverFromGridFTP
and
deliverToGridFTP
in a request
the transfer will fail.
destroy
operation. It is a no-op.
The default OGSA-DAI resource and activity managers
uk.org.ogsadai.activity.SimpleActivityManager uk.org.ogsadai.resource.SimpleResourceManager
cache activity specifications and resources in in-memory hash tables. They do not check for changes in any persisted configuration associated with the activity specifications or resources once the associated objects are in the cache.
uk.org.ogsadai.persistence.file.resource.SimpleFileResourceStateDAO
only handles the persistence and restoration of resource properties or
session state that are String
s.
uk.org.ogsadai.service.gt.resource.GTResourceProperty
methods
add(X) clear() get(int) remove(Object) set(int, Object)are currently not supported. These would need to convert from XML fragments into objects.
uk.org.ogsadai.common.BinaryLob
class
contains unimplemented methods which throw
java.lang.UnsupportedOperationException
.
java.sql.ResultSet
to XML
WebRowSet returns empty key-column
and
map
properties in the
properties
element.
Platforms
java.sql
APIs (in which
both additional methods and classes have been added) from earlier
versions of Java. The OGSA-DAI team may release a Java 1.6 patch in
the near future.
setenv
scripts do not set
CLASSPATH
s correctly under Cygwin.
Security
The following APIs may be assumed to be held stable in further OGSA-DAI 3 releases. The only exceptions to this are:
The list of APIs are as follows:
The following components may be subject to change in light of requirements to increase functionality or bug fixes. We may release bug fixed components or new versions of existing components. These will not incur API changes though. Note also that these are components that implement OGSA-DAI extensibility points so are designed to be pluggable and replaceable in this way.
The following APIs and components may be viewed as "alpha" versions which will be subject to change:
OGSA-DAI contains functionality that collects statistics on the use of OGSA-DAI and forwards this to the OGSA-DAI team. This is enabled by default in the release.
OGSA-DAI 3.0 is a complete rewrite of OGSA-DAI 2.2. A list of the changes made, why and advice on upgrading applications is given in Appendix AC, Appendix - Upgrading from OGSA-DAI 2.2.
The following APIs may be assumed to be held stable for the forseeable future (12 months). Changes will only be made if a fundamental problem is encountered for a majority of users.
The following components may be subject to change in light of requirements to increase functionality or bug fixes. We may release bug fixed components or new versions of existing components. These will not incur API changes though. Note also that these are components that implement OGSA-DAI extensibility points so are designed to be pluggable and replaceable in this way.
The following APIs and components may be viewed as "alpha" versions which will be subject to change:
OGSA-DAI 3.0 has been tested as follows. All tests are run on Linux Red Hat 9 under Java 1.4.2_12 and using Apache ANT 1.6.5.
Release | Unit tests | Database specific tests | Release build tests | Client-server tests |
---|---|---|---|---|
OGSA-DAI 3.0 GT 4.0.5 | Yes | Yes | Yes | Yes - this includes security-related tests |
Table 2.3. Tested platforms and databases
Database-specific tests have been run upon all the databases listed in Chapter 28, Data resource products. Client-server tests were run using MySQL, eXist and file system resources.
OGSA-DAI services are compliant with the version of WSRF currently bundled with Globus Toolkit 4.0.5. From the Globus Toolkit user doc core facts ( http://www.globus.org/toolkit/docs/4.0/common/javawscore/JavaWSCoreFacts.html) these are
"...the 2004/06 OASIS WSRF and WSN working draft specifications (with minor fixes to the 1.2-draft-01 published schemas and with the March 2004 version of the WS-Addressing specification)"