Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/Incubator/Extensions/SymfowarePlatform"

(listed known limitations)
Line 84: Line 84:
  
 
* Also, include the JDBC driver native libraries in your PATH (Windows) or LD_LIBRARY_PATH (Unix).
 
* Also, include the JDBC driver native libraries in your PATH (Windows) or LD_LIBRARY_PATH (Unix).
 +
 +
== Open Issues ==
 +
 +
=== Bulk Update/Delete ===
 +
 +
* EclipseLink allows two ways of doing Bulk Update/Delete. 
 +
** The default version involves a subquery, that may include a reference to a table in the outer query.  This is not supported by Symfoware
 +
** The alternate version involes temporary table (either Global or Local)
 +
*** Symfoware supports global temporary tables, but they may not be dropped until the connection that was using them is closed
 +
*** EclipseLink tries to drop these tables when done with them causing locking issues
 +
 +
=== Drop Table Restrictions ===
 +
 +
* The EclipseLink testing framework makes extensive use of DDL to clean up the database after tests run
 +
* Symfoware does not support dropping tables until the connections using those tables have been closed
 +
* Need clarification about whether using a transaction to wrap table creation and use makes any difference
 +
 +
=== Inner Join Issue ===
 +
 +
* When using ANSI outer join, EclipseLink generates SQL that includes "JOIN" syntax as well
 +
** e.g. SELECT t1.ID, t1.NAME, t1.SALARY FROM EMPLOYEE t1 LEFT OUTER JOIN (EMPLOYEE_PROJECT t2 JOIN PROJECT t0 ON (t0.ID = t2.projects_ID))ON (t2.employees_ID = t1.ID)
 +
** the JOIN keyword above is not supported by Symfoware

Revision as of 15:32, 9 October 2009

Note: This page describes an extension of EclipseLink that is part of the EclipseLink incubator. Incubator projects are published so the community can use them either to progress towards having them included in the main product, or to use in their own implementations. They have been tested to varying levels and as such, we recommend doing your own testing before including any of this code in a production-level product. Please report any issues via the bug listed below:

Bug

bug 288715

Description

This is a subclass of DatabasePlatform that can be used by customers using the Symfoware database.

Documentation

This section should be written as the platform is exercised and should include things like "configuration", "how to use", "limitations"

Limitations

SymfowarePlatform inherits the limitations of Symfoware Server and its JDBC driver. For example, note the following restrictions. Refer to the database manual for details.

  • Reserved SQL keywords cannot be used as table, column or sequence names. Use a different name, or enclose the name in double quotes. For example:
@Column(name="\"LANGUAGE\"")
  • The MOD function cannot be used.
  • The third argument to the LOCATE function cannot be an input parameter.
  • No more than one input parameter can be used as argument to the LOCATE function.
  • Input parameters cannot be used as arguments to the TRIM and LENGTH functions.
  • The first argument to the SUBSTRING function cannot be an input parameter.
  • No more than one input parameter can be used as argument to the CONCAT function.
  • The LockNoWait option of Pessimitic Locking cannot be used.
  • Pessimistic Locking cannot be used with queries that select from multiple tables.
  • Pessimistic Locking cannot be used with queries that use DISTINCT.

Location

svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/incubator/extensions/trunk/org.eclipse.persistence.platform.database.symfoware

Level of Testing

  • Sept 3, 2009 - Initial check-in - Template file. Awaiting initial implementation from contributer.

Location of tests and examples

No specific tests or examples have been written. Until a database conformance suite (see EclipseLink/Development/Testing/DatabaseCertification) is available, the following tests are run on this platform:


Test suite Location Setup
JPA Test Suite EclipseLink/Development/Testing/JPA See below
Foundation Test Suite LRG (long regression) EclipseLink/Development/Testing/foundation See below
Java EE 5 CTS (ejb30 category) Not publicly available Refer to the CTS guide


  • Install Symfoware Server Client on the machine that EclipseLink is installed on.
  • For the JPA and Foundation Test Suites, update the respective test.properties files with your JDBC connection settings.

For example:

jdbc.driver.jar=c:/SFWCLNT/JDBC/fjjdbc/lib/fjsymjdbc4.jar;c:/eclipselink_incubator_extensions/org.eclipse.persistence.platform.database.symfoware/classes
db.driver=com.fujitsu.symfoware.jdbc.SYMDriver
db.url=jdbc:symford://symfodb:56005/TESTDB
db.user=symfouser
db.pwd=symfopwd
db.platform=org.eclipse.persistence.extensions.platform.database.SymfowarePlatform

Note the following:

jdbc.driver.jar
Should include the path to the JDBC driver libraries. Refer to the Symfoware Server Client manual for details, and use the correct driver for your JDK version.
Should include the path to the Symfoware Platform class.
db.platform
The platform name is org.eclipse.persistence.extensions.platform.database.SymfowarePlatform. The "extensions" part will be dropped when the platform is moved to the main project.
  • Also, include the JDBC driver native libraries in your PATH (Windows) or LD_LIBRARY_PATH (Unix).

Open Issues

Bulk Update/Delete

  • EclipseLink allows two ways of doing Bulk Update/Delete.
    • The default version involves a subquery, that may include a reference to a table in the outer query. This is not supported by Symfoware
    • The alternate version involes temporary table (either Global or Local)
      • Symfoware supports global temporary tables, but they may not be dropped until the connection that was using them is closed
      • EclipseLink tries to drop these tables when done with them causing locking issues

Drop Table Restrictions

  • The EclipseLink testing framework makes extensive use of DDL to clean up the database after tests run
  • Symfoware does not support dropping tables until the connections using those tables have been closed
  • Need clarification about whether using a transaction to wrap table creation and use makes any difference

Inner Join Issue

  • When using ANSI outer join, EclipseLink generates SQL that includes "JOIN" syntax as well
    • e.g. SELECT t1.ID, t1.NAME, t1.SALARY FROM EMPLOYEE t1 LEFT OUTER JOIN (EMPLOYEE_PROJECT t2 JOIN PROJECT t0 ON (t0.ID = t2.projects_ID))ON (t2.employees_ID = t1.ID)
    • the JOIN keyword above is not supported by Symfoware

Back to the top