Ashish Khaware created KARAF-7356:
-------------------------------------
Summary: Hibernate Core 5.4.32.Final issue resulting in no
database connection
Key: KARAF-7356
URL: https://issues.apache.org/jira/browse/KARAF-7356
Project: Karaf
Issue Type: Bug
Components: karaf
Affects Versions: 4.2.14
Reporter: Ashish Khaware
Apache Karaf 4.2.14 is bundled with hibernate-core 5.4.32.Final version. But
there seems some issue in fetching the database connection.
{noformat}
org.hibernate.orm.core - 5.4.32.Final | HHH000342: Could not obtain connection
to query metadata
org.hibernate.HibernateException: Unable to determine Dialect to use [name=,
majorVersion=0]; user must register resolver or explicitly set
'hibernate.dialect'{noformat}
h4. {{and further logs has entry }}
{code:java}
ERROR | CM Configuration Updater (ManagedService Update:
pid=[org.apache.aries.jpa.abcd]) | configadmin | 11 -
org.apache.felix.configadmin - 1.9.22 | [org.osgi.service.cm.ManagedService,
id=426, bundle=....project bundle name...: Unexpected problem updating
configuration org.apache.aries.jpa.abcd
java.lang.IllegalArgumentException: The persistence unit abcd has incomplete
configuration and cannot be created. The configuration
is{hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect,
hibernate.id.optimizer.pooled.prefer_lo=true,
javax.persistence.spi.PersistenceUnitTransactionType=RESOURCE_LOCAL,
service.pid=org.apache.aries.jpa.abcd}
at
org.apache.aries.jpa.container.impl.AriesEntityManagerFactoryBuilder.createAndPublishEMF(AriesEntityManagerFactoryBuilder.java:365)
~[?:?]{code}
persistence.xml appears like this:
{code:java}
<persistence
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
<persistence-unit name="abcd" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=xyz)</jta-data-source>
<non-jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=xyz)</non-jta-data-source>
<class>.......class names here.......</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.id.optimizer.pooled.prefer_lo"
value="true"/>
</properties>
</persistence-unit>
</persistence>
{code}
I believe dataSource is not available and hence this error is coming. All
required parameters are passed through configuration (like username, password,
schema etc..)
*IMPORTANT:*
As I am upgrading from Apache Karaf 4.2.9 to 4.2.14 (and to 4.2.15 tomorrow), I
have observed that in 4.2.9 JdbcEnvironmentInitiator > initiateService() was
getting called twice, where connection was getting established in 2nd iteration.
In 4.2.14, there is just one invocation and database connection is not
established.
Can someone please investigate?
--
This message was sent by Atlassian Jira
(v8.20.1#820001)