我知道这是一个非常常见的问题,我们在Stackoverflow中也有相似的帖子。
但我以非常随机的顺序面对同样的问题。我不知道如何解决它。 试过这个网站的所有解决方案,但没有运气
这是我的代码
Where
我们在并行流程中运行它。
它有时很好用,有时会出错
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;
}
请告诉我如何克服这种随机行为。
感谢。
答案 0 :(得分:1)
您可以考虑使用池化数据源。这是一次性的努力,将来会节省大量的调试工作。
请参阅以下类文件实现,了解如何创建和访问池化数据源。