Package org.huihoo.workflow.impl.monitor

Source Code of org.huihoo.workflow.impl.monitor.LitterCleaner

//----------------------------BEGIN LICENSE----------------------------
/*
* Willow : the Open Source WorkFlow Project
* Distributable under GNU LGPL license by gun.org
*
* Copyright (C) 2004-2010 huihoo.org
* Copyright (C) 2004-2010  ZosaTapo <dertyang@hotmail.com>
*
* ====================================================================
* Project Homepage : http://www.huihoo.org/willow
* Source Forge     : http://sourceforge.net/projects/huihoo
* Mailing list     : willow@lists.sourceforge.net
*/
//----------------------------END  LICENSE-----------------------------
package org.huihoo.workflow.impl.monitor;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.huihoo.workflow.store.CaseDatabase;
import org.huihoo.workflow.store.SchemaContext;
import org.huihoo.workflow.runtime.Constants;
import org.huihoo.workflow.runtime.WorkflowService;

import com.zosatapo.commons.store.ConnUtils;

/**
* @author reic
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class LitterCleaner
{
  private static Log log =LogFactory.getLog(LitterCleaner.class);
 
  public static void clear(WorkflowService workflowService)
  {
    CaseDatabase caseDatabase = workflowService.getCaseDatabase();
    Connection conn = null;
    String strSQL = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
   
    PreparedStatement pstmt1 = null;
    PreparedStatement pstmt2 = null;
   
    if(caseDatabase!=null && caseDatabase.getStore()==null)
    {
      return;
    }   
   
    try
    {
      conn = ConnUtils.getConnection(caseDatabase.getStore());

      strSQL =
        "SELECT vc_packageid,vc_processid,vc_uuid FROM "
          + caseDatabase.getSchemaContext().getTableName(SchemaContext.SCHEMA_CASE)
          + " "
          + "WHERE int_status=? OR int_status=?";
      pstmt=conn.prepareStatement(strSQL);
      pstmt.setInt(1,Constants.CASE_STATUS_CLOSED);
      pstmt.setInt(2,Constants.CASE_STATUS_CANCELED);
      rs=pstmt.executeQuery();
     
     
      String strSQL1 =
        "DELETE FROM "
          + caseDatabase.getSchemaContext().getTableName(SchemaContext.SCHEMA_CASE_DATAFIELD)
          + " "
          + "WHERE    vc_packageId=? "
          + "AND      vc_processid=? "
          + "AND      vc_caseid=?";

      String strSQL2 =
        "DELETE FROM "
          + caseDatabase.getSchemaContext().getTableName(SchemaContext.SCHEMA_ACTIVITY_DISPATCH)
          + " "
          + "WHERE    vc_packageId=? "
          + "AND      vc_processid=? "
          + "AND      vc_caseid=?";
      pstmt1 = conn.prepareStatement(strSQL1);
      pstmt2 = conn.prepareStatement(strSQL2)
     
      while(rs.next())
      {
        pstmt1.setString(1, rs.getString("vc_packageId"));
        pstmt1.setString(2, rs.getString("vc_processid"));
        pstmt1.setString(3, rs.getString("vc_uuid"));
        pstmt1.executeUpdate();
       
        pstmt2.setString(1, rs.getString("vc_packageId"));
        pstmt2.setString(2, rs.getString("vc_processid"));
        pstmt2.setString(3, rs.getString("vc_uuid"));
        pstmt2.executeUpdate();
      }
    }
    catch (Throwable t)
    {
      log.error("Exception invoking periodic operation: ", t);
    }
    finally
    {
      ConnUtils.cleanupNoThrow(pstmt1);
      ConnUtils.cleanupNoThrow(pstmt2);
      ConnUtils.cleanupNoThrow(conn,pstmt);
    }
  }
}
TOP

Related Classes of org.huihoo.workflow.impl.monitor.LitterCleaner

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.