2016-03-30 1 views
0

Я знаю, что это очень распространенная проблема, и у нас есть аналогичные сообщения в Stackoverflow для того же самого.Случайное поведение при загрузке jdbc driver class - Не найдено подходящего драйвера

Но я столкнулся с той же проблемой в очень случайном порядке. Я не знаю, как это исправить. Пробовал все решения с этого сайта, но не повезло

Вот мой код

private static Connection conn = null; 
private static String connDriverClass; 
private static String connDbUrl; 
private static String connDbUser; 
private static String connDbPassword; 

private static Connection getConnection() throws SQLException, ClassNotFoundException { 
    connDriverClass = "com.sybase.jdbc3.jdbc.SybDriver"; 
    connDbUrl="jdbc:sybase:Tds:some.com:5000/db"; 
    connDbUser="user"; 
    connDbPassword="pass"; 

    if(conn !=null && !conn .isClosed()) { return conn ; } 

    try { 
     Class.forName(connDriverClass); 
     viTechConn = DriverManager.getConnection(connDbUrl, connDbUser, connDbPassword); 
    } catch (SQLException | ClassNotFoundException e) { 
     LOG.error("Error in getting DB Connection "+e.getMessage()); 
     throw e; 
    } 
    return conn; 
} 

Мы проводим его в параллельных процессах.

Он отлично работает иногда, и иногда это дает ошибку говоря

java.sql.SQLException: No suitable driver found for jdbc:sybase:Tds:some.com:5000/db 

Скажите, пожалуйста, как преодолеть это случайное поведение.

Спасибо.

+2

С одной стороны, вы не нужны, чтобы загрузить драйверы JDBC, так как [Java 6] (http://docs.oracle.com/javase/6/docs/api/java/sql/ DriverManager.html). –

ответ

1

Вместо этого вы можете использовать пул данных. Это одноразовое усилие и сэкономит массу отладочных усилий в будущем.

Обратитесь к следующей реализации файла класса, о том, как создать и получить доступ к объединенному источнику данных.

http://www.programcreek.com/java-api-examples/index.php?source_dir=jasperserver-master/5.5/com/jaspersoft/jasperserver/api/engine/jasperreports/service/impl/JdbcReportDataSourceServiceFactory.java

+0

Спасибо. Это сработало. Я создал собственный «PooledDataSource» в соответствии с предоставленной ссылкой. – SRJ

Смежные вопросы