Search code examples
javajdbcibm-midrangedb2-400

java.sql.SQLException: Bad connection URL while accessing the database


I am configuring the database details in one of my spring configuration files as below:

<bean id="awd" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.ibm.as400.access.AS400JDBCDriver"/>
        <property name="url" value="jdbc:db2://123.43.133.257/XYZ" />
        <property name="username" value="xyz" />
        <property name="password" value="xyz" />
    </bean>

When I try to connect the above database from Java end, I am getting the following exception:

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Bad connection URL
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:280)
    ... 139 more
Caused by: java.sql.SQLException: Bad connection URL
    at com.ibm.u2.jdbc.UniJDBCMsgFactory.createException(UniJDBCMsgFactory.java:109)
    at com.ibm.u2.jdbc.UniJDBCDriver.connect(UniJDBCDriver.java:116)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
    at org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:162)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    ... 140 more

Can anyone please tell what's wrong here?


Solution

  • You are using AS400JDBCDriver, so your jdbc url should be something like:

    jdbc:as400://123.43.133.257/XYZ
    

    instead of

    jdbc:db2://123.43.133.257/XYZ