Search code examples
javasql-serverspringjtds

Spring datasource connection to MS SQL Server named instance


I am getting an error when trying to create a datasource connection to MS SQL server named instance using JTDS driver within my Spring Config.

My spring datasource configuration is :

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${db.driver}" />
    <property name="url" value="${db.jdbcurl}" />
    <property name="username" value="${db.username}" />
    <property name="password" value="${db.password}" />
</bean>

and db.properties is :

db.driver=net.sourceforge.jtds.jdbc.Driver
db.jdbcurl=jdbc:jtds:sqlserver://SQL_SERVER_HOSTNAME/TEST2012:1433/TESTDB;
db.username=DB_UserName
db.password=DB_Password

In above properties file TEST2012 is an instance of SQL server and TESTDB is database on named instance.

It's throwing below exception :

ERROR: HHH000319: Could not get database metadata
java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://SQL_SERVER_HOSTNAME/TEST2012:1433/TESTDB
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:155)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:120)

Any suggestions would be appreciated.


Solution

  • jTDS requires to specify the named instance via a property:

    jdbc:jtds:sqlserver://SQL_SERVER_HOSTNAME:1433/TESTDB?instance=TEST2012