Hello,
I'm using ODBCS with a JavaFx application.
The application works fine when i start it ... but when i leave it open for a while and then try to save something it raises this error:
java.sql.SQLRecoverableException: Closed Connection
at oracle.jdbc.driver.PhysicalConnection.getAutoCommit(PhysicalConnection.java:4337)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:4507)
at model.Database.rollback(Database.java:95)
at viewcontroller.main.MainPageController$2.call(MainPageController.java:569)
at viewcontroller.main.MainPageController$2.call(MainPageController.java:481)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:748)
This issue only happens when connecting to the ODBCS ... when i test the application with my the XE database on my laptop it works fine.
So why am i getting this error? and please how can i fix it?
This is my Database connection class:
private static final String username = ******
private static final String password = *******
private static final String connString = "jdbc:oracle:thin:@localhost:1521:xe";
private static Connection conn;
private static Database instanse = new Database();
private Database(){
System.out.println("Databse loading ..");
try {
if(conn==null){
setconnection();
}
} catch (SQLException | ClassNotFoundException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static Database getInstance(){
if(instanse == null){
instanse = new Database();
}
return instanse;
}
public void setconnection() throws SQLException, ClassNotFoundException {
OracleDataSource ds = new OracleDataSource();
ds.setURL(connString);
ds.setUser(username);
ds.setPassword(password);
conn = ds.getConnection();
conn.setAutoCommit(false);
}
public Connection getDbConn(){
getInstance();
return conn;
}
Thank you
Gado