2

I'm actually in the process of updating all the components of our app to the latest version. Therefore, among others, I'm upgrading from eclipselink-2.5.0 to eclipselink-2.7.3 and from Tomcat 7 to TomEE.

My persistence unit is giving me trouble. It just ignores javax.persistence.jdbc.driver and javax.persistence.jdbc.url and somehow detects an HSQLPlatform database instead of my MySQL database.

Here is my persistence.xml :

<persistence
  version='2.0'
  xmlns='http://java.sun.com/xml/ns/persistence'
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:schemaLocation='http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd'>

  <persistence-unit name="DEV" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name='javax.persistence.jdbc.driver' value='com.mysql.jdbc.Driver' />      
      <property name='javax.persistence.jdbc.url' value='jdbc:mysql://xxxx.xxx.xxxx.xx.xx/xxxxx' />
      <property name='javax.persistence.jdbc.user' value='xxxxxx' />
      <property name='javax.persistence.jdbc.password' value='xxxxxx' />

      <!--  Optimization #14 - avoid auto flush cost on query execution -->
      <property name="eclipselink.persistence-context.flush-mode" value="commit" />
      <property name="eclipselink.cache.shared.default" value="false"/>

      <property name="eclipselink.logging.level" value="FINEST"/>

      <property name="eclipselink.connection-pool.default.initial" value="1" />
      <property name="eclipselink.connection-pool.node2.min" value="16"/>
      <property name="eclipselink.connection-pool.node2.max" value="16"/>
      <property name="eclipselink.connection-pool.node2.wait" value="300"/>
    </properties>
  </persistence-unit>

  ...

And here is the relevant log output :

[EL Finest]: 2018-12-21 11:49:35.543--ServerSession(774689836)--Thread(Thread[main,5,main])--Begin deploying Persistence Unit DEV; session /file:/C:/Java Workspace Photon/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/PES/WEB-INF/classes/_DEV; state Predeployed; factoryCount 2
[EL Finest]: 2018-12-21 11:49:35.588--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.target-server; value=org.apache.openejb.jpa.integration.eclipselink.OpenEJBServerPlatform
[EL Finest]: 2018-12-21 11:49:35.588--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.logging.level; value=FINEST; translated value=FINEST
[EL Finest]: 2018-12-21 11:49:35.588--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.logging.level; value=FINEST; translated value=FINEST
[EL Finest]: 2018-12-21 11:49:35.591--ServerSession(774689836)--Thread(Thread[main,5,main])--property=javax.persistence.jdbc.user; value=xxxxxx
[EL Finest]: 2018-12-21 11:49:35.591--ServerSession(774689836)--Thread(Thread[main,5,main])--property=javax.persistence.jdbc.password; value=xxxxxx
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.default.initial; value=1
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.node2.wait; value=300
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.node2.min; value=16
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.node2.max; value=16
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.cache.shared.default; value=false; translated value=false
[EL Info]: 2018-12-21 11:49:35.64--ServerSession(774689836)--Thread(Thread[main,5,main])--EclipseLink, version: Eclipse Persistence Services - 2.7.3.v20180807-4be1041
[EL Finest]: 2018-12-21 11:49:35.656--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle12Platform, regular expression: (?is)oracle.*12.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle11Platform, regular expression: (?is)oracle.*11.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle10Platform, regular expression: (?is)oracle.*10.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle9Platform, regular expression: (?is)oracle.*9.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle12Platform, regular expression: (?is)core.oracle.*12.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle11Platform, regular expression: (?is)core.oracle.*11.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle10Platform, regular expression: (?is)core.oracle.*10.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle9Platform, regular expression: (?is)core.oracle.*9.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.OraclePlatform, regular expression: (?is)oracle.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.SQLAnywherePlatform, regular expression: SQL\ Anywhere.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.SybasePlatform, regular expression: (?i)(sybase.*)|(adaptive\ server\ enterprise.*)|(SQL\ Server.*)
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.SQLServerPlatform, regular expression: (?i)microsoft.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.JavaDBPlatform, regular expression: (?i).*derby.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.DB2ZPlatform, regular expression: (?i).*db2.*dsn.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.DB2MainframePlatform, regular expression: (?i).*(db2|AS).*(AS/400|qsq).*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.DB2Platform, regular expression: (?i).*db2.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.PointBasePlatform, regular expression: (?is)pointbase.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.MySQLPlatform, regular expression: (?i)mysql.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Informix11Platform, regular expression: (?i)(informix.*)|(ids.*)
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.PostgreSQLPlatform, regular expression: (?is)postgresql.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.H2Platform, regular expression: (?is)h2.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.HSQLPlatform, regular expression: (?is)hsql.*
[EL Fine]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Detected database platform: org.eclipse.persistence.platform.database.HSQLPlatform
[EL Config]: 2018-12-21 11:49:35.674--ServerSession(774689836)--Connection(1116906950)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
    platform=>DatabasePlatform
    user name=> "xxxxxx"
    connector=>JNDIConnector datasource name=>null
))
[EL Config]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(1823071136)--Thread(Thread[main,5,main])--Connected: jdbc:hsqldb:file:C:\Java Workspace Photon\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\data\hsqldb\hsqldb
    User: SA
    Database: HSQL Database Engine  Version: 2.3.2
    Driver: HSQL Database Engine Driver  Version: 2.3.2
[EL Finest]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(1785609933)--Thread(Thread[main,5,main])--Connection acquired from connection pool [read].
[EL Finest]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(1785609933)--Thread(Thread[main,5,main])--Connection released to connection pool [read].
[EL Config]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(8105698)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
    platform=>HSQLPlatform
    user name=> "xxxxxx"
    connector=>JNDIConnector datasource name=>null
))

The user name / password shown in the log is correct but I don't know where it attempts to connect.

What is going on?

ForguesR
  • 3,558
  • 1
  • 17
  • 39

1 Answers1

1

TomEE's default datasource is HSQL DB which is in-memory DB and available in TomEE. Your configuration is not correct for TomEE. so TomEE uses the default HSQL DB datasource instead of your DB.You have to define datasource property to connect your DB in TomEE. You can refer below links.

JPA persistence.xml I want it to connect to MariaDB but it always connects to hsqldb

http://tomee.apache.org/datasource-config.html

http://tomee.apache.org/configuring-datasources-in-tests.html

I hope above details will resolve your problem.

Gnana
  • 2,130
  • 5
  • 26
  • 57
  • Thanks for you help. Unfortunately It still doesn't work after a few days of reading and messing up with config files. I gave up and finally decided to use Tomcat 9 and Weld. – ForguesR Jan 14 '19 at 13:17