2016-03-30 5 views
0

Ich weiß, das ist ein sehr häufiges Problem, und wir haben ähnliche Beiträge in Stackoverflow für die gleiche.Zufälliges Verhalten beim Laden von JDBC-Treiberklasse - Kein passender Treiber gefunden

Aber ich habe dasselbe Problem in sehr zufälliger Reihenfolge. Ich weiß nicht, wie ich es beheben soll. versucht, alle Lösungen von dieser Seite aber kein Glück

Hier ist mein Code

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; 
} 

Wir es in parallelen Prozessen ablaufen.

Es funktioniert manchmal gut und manchmal gibt es Fehler

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

Bitte sagen Sie mir zu sagen, wie dieser Zufall Verhalten zu überwinden.

Danke.

+2

Für eine Sache, haben Sie nicht benötigt, um Ihre JDBC-Treiber, da [Java 6] laden (http://docs.oracle.com/javase/6/docs/api/java/sql/ DriverManager.html). –

Antwort

1

Sie können stattdessen eine gepoolte Datenquelle verwenden. Es ist eine einmalige Anstrengung und wird viele Debugging-Bemühungen in der Zukunft speichern.

Weitere Informationen zum Erstellen und Zugreifen auf eine gepoolte Datenquelle finden Sie in der folgenden Klassendateiimplementierung.

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

Danke. Es funktionierte. Ich habe eine benutzerdefinierte "PooledDataSource" gemäß dem angegebenen Link erstellt. – SRJ