亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jobstoresupport.java

?? Java中非常實用流控制工具
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* 
 * Copyright 2004-2005 OpenSymphony 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
 * use this file except in compliance with the License. You may obtain a copy 
 * of the License at 
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0 
 *   
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
 * License for the specific language governing permissions and limitations 
 * under the License.
 * 
 */

/*
 * Previously Copyright (c) 2001-2004 James House
 */
package org.quartz.impl.jdbcjobstore;

import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Proxy;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.Calendar;
import org.quartz.CronTrigger;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobPersistenceException;
import org.quartz.ObjectAlreadyExistsException;
import org.quartz.Scheduler;
import org.quartz.SchedulerConfigException;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.core.SchedulingContext;
import org.quartz.spi.ClassLoadHelper;
import org.quartz.spi.JobStore;
import org.quartz.spi.SchedulerSignaler;
import org.quartz.spi.TriggerFiredBundle;
import org.quartz.utils.DBConnectionManager;
import org.quartz.utils.Key;
import org.quartz.utils.TriggerStatus;


/**
 * <p>
 * Contains base functionality for JDBC-based JobStore implementations.
 * </p>
 * 
 * @author <a href="mailto:jeff@binaryfeed.org">Jeffrey Wescott</a>
 * @author James House
 */
public abstract class JobStoreSupport implements JobStore, Constants {

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Constants.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    protected static final String LOCK_TRIGGER_ACCESS = "TRIGGER_ACCESS";

    protected static final String LOCK_JOB_ACCESS = "JOB_ACCESS";

    protected static final String LOCK_CALENDAR_ACCESS = "CALENDAR_ACCESS";

    protected static final String LOCK_STATE_ACCESS = "STATE_ACCESS";

    protected static final String LOCK_MISFIRE_ACCESS = "MISFIRE_ACCESS";

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Data members.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    protected String dsName;

    protected String tablePrefix = DEFAULT_TABLE_PREFIX;

    protected boolean useProperties = false;

    protected String instanceId;

    protected String instanceName;
    
    protected String delegateClassName;
    protected Class delegateClass = StdJDBCDelegate.class;

    protected HashMap calendarCache = new HashMap();

    private DriverDelegate delegate;

    private long misfireThreshold = 60000L; // one minute

    private boolean dontSetAutoCommitFalse = false;

    private boolean isClustered = false;

    private boolean useDBLocks = false;
    
    private boolean lockOnInsert = true;

    private Semaphore lockHandler = null; // set in initialize() method...

    private String selectWithLockSQL = null;

    private long clusterCheckinInterval = 7500L;

    private ClusterManager clusterManagementThread = null;

    private MisfireHandler misfireHandler = null;

    private ClassLoadHelper classLoadHelper;

    private SchedulerSignaler signaler;

    protected int maxToRecoverAtATime = 20;
    
    private boolean setTxIsolationLevelSequential = false;
    
    private boolean acquireTriggersWithinLock = false;
    
    private long dbRetryInterval = 10000;
    
    private boolean makeThreadsDaemons = false;

    private boolean threadsInheritInitializersClassLoadContext = false;
    private ClassLoader initializersLoader = null;
    
    private boolean doubleCheckLockMisfireHandler = true;
    
    private final Log log = LogFactory.getLog(getClass());
    
    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Interface.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    /**
     * <p>
     * Set the name of the <code>DataSource</code> that should be used for
     * performing database functions.
     * </p>
     */
    public void setDataSource(String dsName) {
        this.dsName = dsName;
    }

    /**
     * <p>
     * Get the name of the <code>DataSource</code> that should be used for
     * performing database functions.
     * </p>
     */
    public String getDataSource() {
        return dsName;
    }

    /**
     * <p>
     * Set the prefix that should be pre-pended to all table names.
     * </p>
     */
    public void setTablePrefix(String prefix) {
        if (prefix == null) {
            prefix = "";
        }

        this.tablePrefix = prefix;
    }

    /**
     * <p>
     * Get the prefix that should be pre-pended to all table names.
     * </p>
     */
    public String getTablePrefix() {
        return tablePrefix;
    }

    /**
     * <p>
     * Set whether String-only properties will be handled in JobDataMaps.
     * </p>
     */
    public void setUseProperties(String useProp) {
        if (useProp == null) {
            useProp = "false";
        }

        this.useProperties = Boolean.valueOf(useProp).booleanValue();
    }

    /**
     * <p>
     * Get whether String-only properties will be handled in JobDataMaps.
     * </p>
     */
    public boolean canUseProperties() {
        return useProperties;
    }

    /**
     * <p>
     * Set the instance Id of the Scheduler (must be unique within a cluster).
     * </p>
     */
    public void setInstanceId(String instanceId) {
        this.instanceId = instanceId;
    }

    /**
     * <p>
     * Get the instance Id of the Scheduler (must be unique within a cluster).
     * </p>
     */
    public String getInstanceId() {

        return instanceId;
    }

    /**
     * Set the instance name of the Scheduler (must be unique within this server instance).
     */
    public void setInstanceName(String instanceName) {
        this.instanceName = instanceName;
    }

    /**
     * Get the instance name of the Scheduler (must be unique within this server instance).
     */
    public String getInstanceName() {

        return instanceName;
    }

    /**
     * <p>
     * Set whether this instance is part of a cluster.
     * </p>
     */
    public void setIsClustered(boolean isClustered) {
        this.isClustered = isClustered;
    }

    /**
     * <p>
     * Get whether this instance is part of a cluster.
     * </p>
     */
    public boolean isClustered() {
        return isClustered;
    }

    /**
     * <p>
     * Get the frequency (in milliseconds) at which this instance "checks-in"
     * with the other instances of the cluster. -- Affects the rate of
     * detecting failed instances.
     * </p>
     */
    public long getClusterCheckinInterval() {
        return clusterCheckinInterval;
    }

    /**
     * <p>
     * Set the frequency (in milliseconds) at which this instance "checks-in"
     * with the other instances of the cluster. -- Affects the rate of
     * detecting failed instances.
     * </p>
     */
    public void setClusterCheckinInterval(long l) {
        clusterCheckinInterval = l;
    }

    /**
     * <p>
     * Get the maximum number of misfired triggers that the misfire handling
     * thread will try to recover at one time (within one transaction).  The
     * default is 20.
     * </p>
     */
    public int getMaxMisfiresToHandleAtATime() {
        return maxToRecoverAtATime;
    }

    /**
     * <p>
     * Set the maximum number of misfired triggers that the misfire handling
     * thread will try to recover at one time (within one transaction).  The
     * default is 20.
     * </p>
     */
    public void setMaxMisfiresToHandleAtATime(int maxToRecoverAtATime) {
        this.maxToRecoverAtATime = maxToRecoverAtATime;
    }

    /**
     * @return Returns the dbRetryInterval.
     */
    public long getDbRetryInterval() {
        return dbRetryInterval;
    }
    /**
     * @param dbRetryInterval The dbRetryInterval to set.
     */
    public void setDbRetryInterval(long dbRetryInterval) {
        this.dbRetryInterval = dbRetryInterval;
    }
    
    /**
     * <p>
     * Set whether this instance should use database-based thread
     * synchronization.
     * </p>
     */
    public void setUseDBLocks(boolean useDBLocks) {
        this.useDBLocks = useDBLocks;
    }

    /**
     * <p>
     * Get whether this instance should use database-based thread
     * synchronization.
     * </p>
     */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品白丝av| 欧美嫩在线观看| 精品一区二区国语对白| 欧美精品在线一区二区三区| 亚洲大片在线观看| 日韩一区二区电影| 国产综合成人久久大片91| 久久久久久久久99精品| 成人动漫在线一区| 一区二区三区四区蜜桃| 91精品久久久久久久99蜜桃| 久久成人羞羞网站| 国产精品第四页| 精品久久久久久久久久久院品网| 国内精品第一页| **欧美大码日韩| 欧美久久免费观看| 国产成人免费视| 亚洲午夜精品网| 欧美精品一区二区三区一线天视频 | 色婷婷香蕉在线一区二区| 亚洲视频香蕉人妖| 欧美精品自拍偷拍动漫精品| 国内精品视频一区二区三区八戒 | 中文字幕av一区 二区| 日本黄色一区二区| 久久99精品国产麻豆婷婷 | 亚洲精品视频在线观看网站| 欧美一级免费大片| 成人黄色在线看| 午夜精品在线看| 国产亚洲一区二区在线观看| 在线观看国产91| 国产夫妻精品视频| 亚洲国产欧美日韩另类综合 | 久久人人超碰精品| 久久成人久久爱| 中文字幕一区二区日韩精品绯色| 欧美日韩高清影院| a级高清视频欧美日韩| 日韩黄色在线观看| 最新国产精品久久精品| 欧美xxxx在线观看| 欧美在线综合视频| av高清不卡在线| 国产伦精品一区二区三区免费迷| 亚洲图片有声小说| 亚洲私人影院在线观看| 久久亚洲一区二区三区四区| 欧美精品在线视频| 一本一本久久a久久精品综合麻豆| 国产又黄又大久久| 蜜桃一区二区三区在线| 一区二区三区国产精品| 久久久久久久久久久久电影| 91.麻豆视频| 日本道免费精品一区二区三区| 国产高清精品在线| 日韩福利视频导航| 伊人开心综合网| 日韩av电影一区| 夜夜亚洲天天久久| 秋霞成人午夜伦在线观看| 亚洲色图清纯唯美| 国产日韩欧美电影| 久久先锋影音av| 2021国产精品久久精品| 7777精品伊人久久久大香线蕉经典版下载 | 日韩精品一区二区三区中文不卡| 欧美性色综合网| 欧美视频在线播放| 欧美美女黄视频| 欧美妇女性影城| 4438亚洲最大| 欧美一二三四区在线| 91精品国产色综合久久不卡蜜臀| 欧美日韩国产一二三| 欧美电影影音先锋| 日韩欧美国产综合| 久久噜噜亚洲综合| 国产区在线观看成人精品| 国产欧美久久久精品影院| 久久精品欧美一区二区三区麻豆| 久久人人97超碰com| 国产日韩精品久久久| 国产日韩高清在线| 亚洲日本青草视频在线怡红院| 亚洲日本在线观看| 亚洲国产精品欧美一二99| 午夜精品免费在线| 日产国产欧美视频一区精品| 精品无人区卡一卡二卡三乱码免费卡| 久久国产尿小便嘘嘘尿| 亚洲va欧美va国产va天堂影院| 国产日产欧美一区| 日韩一区二区精品| 久久亚洲精品小早川怜子| 日本一区二区综合亚洲| 亚洲少妇中出一区| 天天操天天干天天综合网| 麻豆一区二区在线| 看片的网站亚洲| 日韩一二在线观看| 精品不卡在线视频| 成人免费观看视频| 国产福利电影一区二区三区| 91在线国产福利| 欧美日韩不卡一区| 久久婷婷综合激情| 亚洲精品国产成人久久av盗摄| 日韩成人午夜电影| 成人一二三区视频| 欧美肥妇bbw| 国产精品久久久久婷婷二区次| 亚洲成人1区2区| 成人一级黄色片| 91精品国产麻豆国产自产在线| 久久嫩草精品久久久精品| 亚洲免费三区一区二区| 老司机午夜精品| 色婷婷狠狠综合| 国产午夜精品一区二区| 天天综合网天天综合色| 成人中文字幕在线| 在线综合视频播放| 亚洲色图色小说| 国产在线国偷精品产拍免费yy| 欧美日韩视频不卡| 国产精品毛片大码女人| 久久9热精品视频| 欧美怡红院视频| 中文字幕在线视频一区| 激情欧美一区二区三区在线观看| 91久久免费观看| 中文字幕不卡在线播放| 极品少妇xxxx精品少妇| 欧美高清视频在线高清观看mv色露露十八| 国产午夜精品久久久久久免费视| 亚洲成人激情av| 色婷婷av一区二区三区大白胸| 久久久久国产免费免费| 日本亚洲欧美天堂免费| 欧美无人高清视频在线观看| 国产精品久久久久久户外露出 | 欧美亚洲图片小说| 国产精品美女久久久久av爽李琼 | 国产不卡视频一区| 欧美一区二区三区免费大片| 尤物av一区二区| 99re成人在线| 国产精品久久三| 岛国精品在线播放| 国产欧美精品一区二区色综合朱莉| 丝袜国产日韩另类美女| 欧美午夜一区二区三区免费大片| 亚洲视频香蕉人妖| 一本色道a无线码一区v| 中文字幕视频一区| a级精品国产片在线观看| 国产精品久久久久久久蜜臀| 国产麻豆午夜三级精品| 久久久亚洲精品一区二区三区| 看片的网站亚洲| 久久婷婷久久一区二区三区| 国产一区三区三区| 2020国产成人综合网| 国模大尺度一区二区三区| 色狠狠色噜噜噜综合网| 国产精品家庭影院| 99免费精品在线观看| 亚洲欧洲性图库| 色系网站成人免费| 一区二区三区中文字幕| 欧美性videosxxxxx| 日韩在线一区二区三区| 欧美tickling挠脚心丨vk| 韩国女主播一区| 久久精品视频在线看| 盗摄精品av一区二区三区| 一色屋精品亚洲香蕉网站| 日本乱码高清不卡字幕| 午夜伦理一区二区| 精品理论电影在线观看| 国产91高潮流白浆在线麻豆| 日韩久久一区二区| 欧美久久免费观看| 国产在线一区观看| 成人免费看片app下载| 亚洲九九爱视频| 欧美性猛片xxxx免费看久爱| 久久精品99国产精品| 久久夜色精品国产欧美乱极品| 国产自产v一区二区三区c| 国产精品久久久久7777按摩| 91行情网站电视在线观看高清版| 亚洲成a人v欧美综合天堂下载| 欧美一区二区三区视频免费| 懂色一区二区三区免费观看| 亚洲一区中文日韩| 26uuu精品一区二区|