Skip to content
Snippets Groups Projects
Commit 6044fa7b authored by Yann Huriez's avatar Yann Huriez
Browse files

release_2_3_10

parent 64350400
No related branches found
No related merge requests found
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
<classpath> <classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/> <classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" including="**/*.java" kind="src" output="target/classes" path="src/main/resources"/> <classpathentry excluding="**" including="**/*.java" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>
...@@ -20,8 +20,14 @@ ...@@ -20,8 +20,14 @@
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec> </buildSpec>
<natures> <natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature> <nature>org.maven.ide.eclipse.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.devzuz.q.maven.jdt.core.mavenNature</nature> <nature>org.devzuz.q.maven.jdt.core.mavenNature</nature>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</parent> </parent>
<groupId>fr.soleil.deviceservers</groupId> <groupId>fr.soleil.deviceservers</groupId>
<artifactId>hdbtdbArchivingServers</artifactId> <artifactId>hdbtdbArchivingServers</artifactId>
<version>2.3.10-SNAPSHOT</version> <version>2.3.10</version>
<name>hdbtdbArchivingServers</name> <name>hdbtdbArchivingServers</name>
<developers> <developers>
<developer> <developer>
......
...@@ -303,6 +303,12 @@ public final class DbProxy { ...@@ -303,6 +303,12 @@ public final class DbProxy {
periods.put(completeName, period); periods.put(completeName, period);
} }
public void closeConnection() {
if (manager != null) {
manager.closeConnection();
}
}
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
......
...@@ -425,6 +425,8 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -425,6 +425,8 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
protected int state; protected int state;
private DbProxy dbProxy; private DbProxy dbProxy;
private boolean databaseConnectionFault = false;
private InitDeviceTask initDeviceTast;
// --------- Start of attributes data members ---------- // --------- Start of attributes data members ----------
...@@ -454,6 +456,7 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -454,6 +456,7 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
* <b>Default value : </b> Class Value * <b>Default value : </b> Class Value
*/ */
private String dbUser; private String dbUser;
/** /**
* Password used to connect the database HDB. <br> * Password used to connect the database HDB. <br>
* <b>Default value : </b> Class Value * <b>Default value : </b> Class Value
...@@ -608,6 +611,11 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -608,6 +611,11 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
get_logger().info("HdbArchiver() create " + device_name); get_logger().info("HdbArchiver() create " + device_name);
if (databaseConnectionFault) {
get_logger().error(
"The connection with the database hasn't been made previously, "
+ "so you'll need to restart the device to make the connection work correctly.");
} else {
// Initialise variables to default values // Initialise variables to default values
// ------------------------------------------- // -------------------------------------------
get_device_property(); get_device_property();
...@@ -624,6 +632,7 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -624,6 +632,7 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
attr_scalar_charge_read = 0; attr_scalar_charge_read = 0;
koAttributes.clear(); koAttributes.clear();
okAttributes.clear(); okAttributes.clear();
logger.info("DbHost = " + dbHost); logger.info("DbHost = " + dbHost);
logger.info("DbName = " + dbName); logger.info("DbName = " + dbName);
logger.info("dbUser = " + dbUser); logger.info("dbUser = " + dbUser);
...@@ -636,16 +645,27 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -636,16 +645,27 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
logger.info("hasDiary = " + hasDiary); logger.info("hasDiary = " + hasDiary);
logger.info("diaryLogLevel = " + diaryLogLevel); logger.info("diaryLogLevel = " + diaryLogLevel);
connect_database();
}
logger.debug("init done");
}
private void connect_database() {
try { try {
dbProxy = new DbProxy(dbHost, dbName, dbSchema, dbUser, dbPassword, RacConnection, logger); dbProxy = new DbProxy(dbHost, dbName, dbSchema, dbUser, dbPassword, RacConnection, logger);
// setControlMode(safetyPeriod); // setControlMode(safetyPeriod);
// start archiving in a thread // start archiving in a thread
Executors.newSingleThreadExecutor().submit(new InitDeviceTask()); if (initDeviceTast == null) {
initDeviceTast = new InitDeviceTask();
}
Executors.newSingleThreadExecutor().submit(initDeviceTast);
} catch (final ArchivingException e) { } catch (final ArchivingException e) {
TangoStateUtils.setFault(this, "Historical database connection failed: " + e); TangoStateUtils.setFault(this, "Historical database connection failed: " + e);
logger.error("ERROR : Database unconnected !!", e); logger.error("ERROR : Database unconnected !!", e);
databaseConnectionFault = true;
} }
logger.debug("init done");
} }
/** /**
...@@ -676,6 +696,7 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -676,6 +696,7 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
try { try {
myCurrentTasks = dbProxy.getArchiverCurrentTasks(device_name); myCurrentTasks = dbProxy.getArchiverCurrentTasks(device_name);
} catch (final ArchivingException e) { } catch (final ArchivingException e) {
e.printStackTrace();
logger.debug("cannot getArchiverCurrentTasks " + e); logger.debug("cannot getArchiverCurrentTasks " + e);
TangoStateUtils.setFault(HdbArchiver.this, e.getMessage()); TangoStateUtils.setFault(HdbArchiver.this, e.getMessage());
} }
...@@ -974,7 +995,23 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -974,7 +995,23 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
// ========================================================= // =========================================================
@Override @Override
public void always_executed_hook() throws DevFailed { public void always_executed_hook() throws DevFailed {
// Uncomment to allow the device to trying reconnection when a commend
// is triggered. May not work with Oracle jdbc drivers.
// System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> always executed hook");
// System.out.println("======================================== isDbProxy null : "
// + (dbProxy == null));
// if (dbProxy != null) {
// System.out.println("======================================== isDbConnected : "
// + dbProxy.isDbConnected());
// }
//
// if (dbProxy == null || (dbProxy != null && !dbProxy.isDbConnected()))
// {
// logger.info("Trying to reconnect database...");
// delete_device();
// init_device();
// }
} }
// =================================================================== // ===================================================================
...@@ -1796,7 +1833,11 @@ public class HdbArchiver extends DeviceImpl implements TangoConst { ...@@ -1796,7 +1833,11 @@ public class HdbArchiver extends DeviceImpl implements TangoConst {
@Override @Override
public void delete_device() throws DevFailed { public void delete_device() throws DevFailed {
Except.throw_exception("not supported", "please, restart device", "delete_device"); // if (dbProxy != null && dbProxy.isDbConnected()) {
// dbProxy.closeConnection();
// // Except.throw_exception("not supported", "please, restart device",
// // "delete_device");
// }
} }
} }
......
...@@ -576,6 +576,8 @@ public class TdbArchiver extends DeviceImpl implements TangoConst { ...@@ -576,6 +576,8 @@ public class TdbArchiver extends DeviceImpl implements TangoConst {
private String dbSchema; private String dbSchema;
private Logger logger; private Logger logger;
private boolean databaseConnectionFault = false;
// -------------------------------------- // --------------------------------------
// ========================================================= // =========================================================
...@@ -623,6 +625,13 @@ public class TdbArchiver extends DeviceImpl implements TangoConst { ...@@ -623,6 +625,13 @@ public class TdbArchiver extends DeviceImpl implements TangoConst {
// ========================================================= // =========================================================
@Override @Override
public void init_device() throws DevFailed { public void init_device() throws DevFailed {
System.out.println("-------------------------------------- init_device in");
if (databaseConnectionFault) {
get_logger().error(
"The connection with the database hasn't been made previously, "
+ "so you'll need to restart the device to make the connection work correctly.");
} else {
get_logger().info("TdbArchiver() create " + device_name); get_logger().info("TdbArchiver() create " + device_name);
get_device_property(); get_device_property();
...@@ -661,7 +670,11 @@ public class TdbArchiver extends DeviceImpl implements TangoConst { ...@@ -661,7 +670,11 @@ public class TdbArchiver extends DeviceImpl implements TangoConst {
} catch (final ArchivingException e) { } catch (final ArchivingException e) {
TangoStateUtils.setFault(this, "Historical database connection failed: " + e); TangoStateUtils.setFault(this, "Historical database connection failed: " + e);
logger.error("ERROR : Database unconnected !!"); logger.error("ERROR : Database unconnected !!");
databaseConnectionFault = true;
} }
}
System.out.println("------------------------------------- init_device out");
} }
...@@ -1481,7 +1494,8 @@ public class TdbArchiver extends DeviceImpl implements TangoConst { ...@@ -1481,7 +1494,8 @@ public class TdbArchiver extends DeviceImpl implements TangoConst {
@Override @Override
public void delete_device() throws DevFailed { public void delete_device() throws DevFailed {
Except.throw_exception("not supported", "please, restart device", "delete_device"); // Except.throw_exception("not supported", "please, restart device",
// "delete_device");
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment