3

I am getting the following error when I am using a combination of Spring, Hibernate and SQL Server.

19:17:09,137 ERROR [org.hibernate.tool.hbm2ddl.SchemaValidator] (MSC service thread 1-8) HHH000319: Could not get database metadata: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host falmumapp20/testdb, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".

It could not be just a TCP IP problem, because if I work without Spring, I am able to connect to SQL Server using hibernate.

Below is my applicationContext.xml

<!-- Resource Definition -->
<!-- Data Source Connection Pool -->
<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
    <property name="url" value="jdbc:microsoft:sqlserver://falmumapp20:1433" />
    <property name="username" value="tima"/>
    <property name="password" value="chalk@"/>
</bean>

<!-- Hibernate SessionFactory -->
<bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="myDataSource" />

    <property name="mappingDirectoryLocations">
        <list>
            <value>classpath:/com/trun/hbm</value>
        </list>
    </property>
    <property name="configLocation">
       <value>classpath:hibernate.cfg.xml</value>
   </property>
    <property name="hibernateProperties">
        <props>
        <prop key="hibernate.hbm2ddl.auto">validate</prop>
        <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
        <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>

</bean>


<!--Definition of Transaction Manager-->
<bean id="myTransactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="mySessionFactory" />
</bean>

<bean id="IDataService" class="com.trun.service.DataServiceImpl">
</bean>


<bean id="EventServlet" class="com.trun.servelet.LoginServelet">
    <property name="IDataDAO" ref="IDataDAO" />
</bean>

And here is my Hibernate Configuration file -

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
      <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
      <property name="hibernate.connection.url">jdbc:sqlserver://falmumapp20:1433;databaseName=testdb; user=tima;password=chalk@;</property>
      <property name="hibernate.connection.username">tima</property>
      <property name="hibernate.connection.password">chalk@</property>
      <property name="hibernate.connection.pool_size">10</property>
      <property name="show_sql">true</property>
      <property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
      <property name="hibernate.current_session_context_class">thread</property>
      <property name="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
      <property name="hibernate.hbm2ddl.auto">validate</property>
      <!-- Mapping files -->

</session-factory>

1 Answer 1

7

You are not passing database name to the connection url

<property name="url" value="jdbc:sqlserver://falmumapp20:1433;databaseName=testdb" />

or

<property name="url" value="jdbc:sqlserver://falmumapp20:1433/testdb" />
Sign up to request clarification or add additional context in comments.

3 Comments

Right. And all hibernate.connection.* properties in the Hibernate Configuration file are not needed because this is managed by the datasource.
thanks Arun. I have made the modification, and now it is giving other errors, I am trying on my own and would get back to the forum - a +1 on your answer from me :)
Thanks for the comments and feed back :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.