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