You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by we...@apache.org on 2004/02/16 21:23:46 UTC
cvs commit: jakarta-jetspeed-2/cps/src/java/org/apache/jetspeed/cps/components/hsql HSQLServerComponent.java
weaver 2004/02/16 12:23:46
Modified: cps/src/java/org/apache/jetspeed/cps/components/hsql
HSQLServerComponent.java
Log:
added self verifying logic to make sure the DB can be connected to before
moving on
Revision Changes Path
1.2 +50 -0 jakarta-jetspeed-2/cps/src/java/org/apache/jetspeed/cps/components/hsql/HSQLServerComponent.java
Index: HSQLServerComponent.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/cps/src/java/org/apache/jetspeed/cps/components/hsql/HSQLServerComponent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HSQLServerComponent.java 16 Feb 2004 03:55:22 -0000 1.1
+++ HSQLServerComponent.java 16 Feb 2004 20:23:46 -0000 1.2
@@ -57,11 +57,13 @@
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
+import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hsqldb.Server;
+import org.hsqldb.jdbcDriver;
import org.picocontainer.Startable;
/**
@@ -130,6 +132,54 @@
{
HSQLServer serverThread = new HSQLServer(port, fqPath);
serverThread.start();
+ // verify
+
+ try
+ {
+ Class.forName(jdbcDriver.class.getName());
+ }
+ catch (ClassNotFoundException e)
+ {
+ // this SHOULD NOT happen
+ e.printStackTrace();
+ }
+
+ boolean connected = false;
+ int retries = 5;
+ int attempt = 0;
+
+ log.info("Verifying HSQL server is up will try 5 times then give up.");
+ while(!connected && attempt < retries)
+ {
+ try
+ {
+ attempt++;
+ log.info("Attempt "+attempt+".");
+ Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://127.0.0.1",user, password);
+ connected = true;
+ log.info("Attempt "+attempt+" successful!");
+ }
+ catch (SQLException e1)
+ {
+ connected = false;
+ log.info("Attempt "+attempt+" failed!");
+ try
+ {
+ Thread.sleep(2000);
+ }
+ catch (InterruptedException e2)
+ {
+
+ }
+ }
+ }
+
+ if(!connected)
+ {
+ log.warn("Unable to successfuly verify HSQL was successfuly started.");
+ }
+
+
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org