You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Ashish Khaware (Jira)" <ji...@apache.org> on 2022/01/13 17:12:00 UTC

[jira] [Created] (KARAF-7356) Hibernate Core 5.4.32.Final issue resulting in no database connection

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)