geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Aufdencamp" <m...@aufdencamp.com>
Subject RE: Upgrading 1.1 EAR to 2.1 - OpenEJB 3 CMP/CMR Issues
Date Fri, 05 Dec 2008 17:35:14 GMT
Thanks for the response David,

I intend to re-configure my Database Pool to point at W32 MySQL 5,
rather than the Ubuntu MySQL 5 with the same JDBC client driver.  They
do have some differences between platforms in there default SQL syntax. 
The 'sql_mode' is "Undefined" on the Ubuntu default install and the
default W32 defines "STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION".  G 1.1.1 worked fine against this W32 server,
so I'll make sure it's not a "server platform" issue before moving on to
the client driver.  I'd expect the same syntax issues to arise with EJB
3 JPA when moving between platforms.  Does anyone have cross platform
(MySQL W32 to Linux) experiences with OpenJPA that can be shared?

Can you confirm that OpenJPA wants/requires a persistence.xml and/or
utilizes persistence.xml when supporting CMP/CMR? 

Thanks for confirming that CMP/CMR should work and was incorporated in
the TCK for EJB3.  Hopefully this is as simple as some SQL dialect
issues!

Mark





> -------- Original Message --------
> Subject: Re: Upgrading 1.1 EAR to 2.1 - OpenEJB 3 CMP/CMR Issues
> From: David Jencks <david_jencks@yahoo.com>
> Date: Fri, December 05, 2008 2:47 am
> To: user@geronimo.apache.org
> 
> 
> Hi Mark,
> 
> Unfortunately I don't actually know what I'm talking about here in any  
> detail.... Dain would know more.  However I have a few suggestions:
> 
> 1. We set the following properties in persistence.xml by default: if  
> you want something different you should override them:
> 
>              openjpa.Log=commons
>               
> openjpa.jdbc.DBDictionary=org.apache.openjpa.jdbc.sql.DerbyDictionary
>               
> openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
>              openjpa.jdbc.UpdateManager=operation-order
>              openjpa.Sequence=table(Table=OPENJPASEQ, Increment=100)
> 
> 
> in particular the DBDictionary may be causing problems.  I'm not sure  
> whether the other properties might have more appropriate values.  You  
> can override these in your persistence.xml (in the appropriate format  
> -- these are not actually from a "default persistence.xml" but from a  
> gbean config)
> 
> 2. By all means try a more recent mysql driver.
> 
> 3. MySql used to have rather bizarre ideas about sql.  Trying another  
> database as an experiment might be useful.
> 
> 4. Just in case you aren't currently, letting openjpa create the  
> tables for you at least as an experiment might be informative.
> 
> The tck has a bunch of ejb 2.1 cmp/cmr tests and they all work fine so  
> at least a lot of it is verified to work propertly.
> 
> Please let us know your progress.
> 
> thanks
> david jencks
> 
> 
> On Dec 4, 2008, at 10:49 PM, Mark Aufdencamp wrote:
> 
> > Hi All,
> >
> > I'm upgrading an EAR from G 1.1.1-Win32-Tomcat to G 2.1.3-Linux- 
> > Tomcat.
> > I've successfully installed G 2.1 and managed to deploy my Database
> > Pools and Security Realms. I've edited my geonimo-application.xml and
> > openejb-jar.xml to reflect the new deployment plan name space.  I've
> > managed to successfully deploy the EAR on the server. I even managed  
> > to
> > migrate my databases to the new server after learning some MySQL
> > intricacies of Win32 vs Linux table and column name case sensitivity.
> >
> > I can access my application and login via the defined JDBC Security
> > Realm.  Now the good stuff.  It has an EJB 2.1 CMP/CMR component that
> > gets wrapped by OpenJPA in OpenEJB 3.  No problem, it should work,
> > right?
> >
> > I receive an OpenJPA PersistenceException when first accessing the
> > EntityBean from a Session Bean (I will double check the authenticity  
> > of
> > this location, I believe it's an initial EJB Query).  OpenJPA spits  
> > out
> > a generated SQL Statement that it doesn't like.  It appears to be an
> > OpenJPA Syntax check of a "SHOW CREATE TABLE TableName;"  It
> > incorporates a MySQL specific table command ( TYPE = "InnoDB" ).  This
> > might pass validation if it were the newer MySQL syntax - ENGINE =
> > "InnoDB".  The newest MySQL 5 Driver rather than the installed 3.1.12
> > from the Geronimo Driver Repository might fix this.  Poking around and
> > setting the MySQL sql_mode to ANSI seems to resolve this problem and
> > will probably be more compatible with the default Derby SQL statement
> > builder and syntax checker.  So, I should hopefully be SQL dialect
> > neutral at this point.
> >
> > Now I can retrieve a query of the Entities to display, but the CMR
> > component seems to be broken.  I have a Null Pointer Exception  
> > generated
> > in the OpenEJB BaseEjbProxyHandler class with the CMR method  
> > identified.
> > Further up the stack, SetValuedCmr in openejb.core.cmp.cmp2 is
> > identified as the culprit.  It appears that the CMR methods are broken
> > and not capable of constructing the necessary queries.
> >
> > Am I missing something in the deployment descriptors to do CMP/CMR in
> > OpenEJB 3?
> >
> > Do I need to setup some persistence information in open-ejb.xml for  
> > CMP
> > to run in OpenEJB 3?
> >
> > Does a MySQL specific QL driver exist for G 2.1/OpenEJB 3?
> >
> > I haven't found any specific discussion of running CMP/CMR from G  
> > 1.1 in
> > G 2.1.  Does it exist or do I get to be the guy:)
> >
> > TIA for the help and guidance,
> >
> > Mark Aufdencamp
> > Mark@Aufdencamp.com
> >


Mime
View raw message