Package railo.runtime.type.scope.storage.clean

Source Code of railo.runtime.type.scope.storage.clean.DatasourceStorageScopeCleaner

package railo.runtime.type.scope.storage.clean;

import java.sql.SQLException;

import railo.commons.io.log.Log;
import railo.runtime.config.ConfigImpl;
import railo.runtime.config.ConfigWeb;
import railo.runtime.config.ConfigWebImpl;
import railo.runtime.db.DataSource;
import railo.runtime.db.DatasourceConnection;
import railo.runtime.db.DatasourceConnectionPool;
import railo.runtime.exp.PageException;
import railo.runtime.type.scope.storage.StorageScopeEngine;
import railo.runtime.type.scope.storage.StorageScopeListener;
import railo.runtime.type.scope.storage.db.SQLExecutionFactory;
import railo.runtime.type.scope.storage.db.SQLExecutor;

public class DatasourceStorageScopeCleaner extends StorageScopeCleanerSupport {
 
  //private String strType;
 
  public DatasourceStorageScopeCleaner(int type,StorageScopeListener listener) {
    super(type,listener,INTERVALL_HOUR);
    //this.strType=VariableInterpreter.scopeInt2String(type);
  }
 
  public void init(StorageScopeEngine engine) {
    super.init(engine);
  }

  protected void _clean() {
    ConfigWeb config = engine.getFactory().getConfig();
    DataSource[] datasources = config.getDataSources();
    for(int i=0;i<datasources.length;i++){
     
      if((datasources[i]).isStorage()) {
        try {
          clean(config,datasources[i]);
        } catch (Throwable t) {
          error(t);
        }
      }
    }
  }

  private void clean(ConfigWeb config, DataSource dataSource) throws PageException, SQLException  {
    ConfigWebImpl cwi=(ConfigWebImpl) config;
    DatasourceConnection dc=null;
   
    DatasourceConnectionPool pool = cwi.getDatasourceConnectionPool();
    try {
      dc=pool.getDatasourceConnection(null,dataSource,null,null);
      Log log=((ConfigImpl)config).getScopeLogger();
      SQLExecutor executor=SQLExecutionFactory.getInstance(dc);
      executor.clean(config, dc, type, engine,this, listener, log);
    }
      finally {
        if(dc!=null) pool.releaseDatasourceConnection(dc);
      }
  }
}
TOP

Related Classes of railo.runtime.type.scope.storage.clean.DatasourceStorageScopeCleaner

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.