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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? databaseservice.java

?? 一個java方面的消息訂閱發(fā)送的源碼
?? JAVA
字號:
/**
 * Redistribution and use of this software and associated documentation
 * ("Software"), with or without modification, are permitted provided
 * that the following conditions are met:
 *
 * 1. Redistributions of source code must retain copyright
 *    statements and notices.  Redistributions must also contain a
 *    copy of this document.
 *
 * 2. Redistributions in binary form must reproduce the
 *    above copyright notice, this list of conditions and the
 *    following disclaimer in the documentation and/or other
 *    materials provided with the distribution.
 *
 * 3. The name "Exolab" must not be used to endorse or promote
 *    products derived from this Software without prior written
 *    permission of Exoffice Technologies.  For written permission,
 *    please contact info@exolab.org.
 *
 * 4. Products derived from this Software may not be called "Exolab"
 *    nor may "Exolab" appear in their names without prior written
 *    permission of Exoffice Technologies. Exolab is a registered
 *    trademark of Exoffice Technologies.
 *
 * 5. Due credit should be given to the Exolab Project
 *    (http://www.exolab.org/).
 *
 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Copyright 2001-2004 (C) Exoffice Technologies Inc. All Rights Reserved.
 *
 * $Id: DatabaseService.java,v 1.1 2004/11/26 01:50:44 tanderson Exp $
 */
package org.exolab.jms.persistence;

import java.sql.Connection;

import javax.transaction.TransactionManager;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.exolab.jms.config.Configuration;
import org.exolab.jms.config.ConfigurationManager;
import org.exolab.jms.config.DatabaseConfiguration;
import org.exolab.jms.config.RdbmsDatabaseConfiguration;
import org.exolab.jms.service.Service;
import org.exolab.jms.service.ServiceException;


/**
 * The DatabaseService is used for managing the persistence aspect
 * of this project.
 *
 * @version     $Revision: 1.1 $ $Date: 2004/11/26 01:50:44 $
 * @author      <a href="mailto:jima@intalio.com">Jim Alateras</a>
 */
public class DatabaseService extends Service {

    /**
     * The name of the service
     */
    private final static String DB_SERVICE_NAME = "DatabaseService";

    /**
     * Maintains a singleton instance of the database service
     */
    private static DatabaseService _instance = null;

    /**
     * Used to synchronize the creation of the database service
     */
    private final static Object _creator = new Object();

    /**
     * Return a reference to the PersistenceAdaptor, that has been created
     * by this service
     */
    private PersistenceAdapter _adapter = null;

    /**
     * The logger
     */
    private static final Log _log = LogFactory.getLog(DatabaseService.class);


    /**
     * Return the singleton instance of the DatabaseService
     *
     * @return DatabaseService
     * @throws PersistenceException
     */
    public static DatabaseService instance()
        throws PersistenceException {
        if (_instance == null) {
            synchronized (_creator) {
                // we need to check again if multiple threads
                // have blocked on the creation of the singleton
                if (_instance == null) {
                    _instance = new DatabaseService();
                }
            }
        }

        return _instance;
    }

    /**
     * Return the {@link PersistenceAdapter} created by this service. This will
     * always be non-null.
     *
     * @return PersistenceAdapter - the created adapter
     */
    public static PersistenceAdapter getAdapter() {
        return _instance._adapter;
    }

    /**
     * Convenience function to return a connection to the PersistenceAdapter
     *
     * @return Connection - the connection
     * @exception PersistenceException - if no connection could be retrieved
     *                                   or another error occured.
     */
    public static Connection getConnection()
        throws PersistenceException {
        return getAdapter().getConnection();
    }

    /**
     * Create an instance of a database service. It uses the configuration
     * manager to extract the service parameters.
     * <p>
     * It will throw a PersistenceException, if it cannot construct the service
     *
     * @throws PersistenceException
     */
    DatabaseService()
        throws PersistenceException {
        super(DB_SERVICE_NAME);

        Configuration config = ConfigurationManager.getConfig();
        DatabaseConfiguration dbconfig = config.getDatabaseConfiguration();

        _adapter = createRdbmsAdapter(
            dbconfig.getRdbmsDatabaseConfiguration());
    }

    // override Service.start
    public void start() throws ServiceException {
        super.start();

        // remove the expired messages
        Connection connection = null;
        try {
            connection = getConnection();

            getAdapter().removeExpiredMessages(connection);
            _log.info("Removed expired messages.");
            connection.commit();

        } catch (PersistenceException exception) {
            SQLHelper.rollback(connection);
            throw exception;
        } catch (Exception exception) {
            // rethrow as an appropriate exception
            throw new ServiceException("Failed to start the DatabaseService",
                                       exception);
        } finally {
            SQLHelper.close(connection);
        }
    }

    // override Service.stop
    public void stop()
        throws ServiceException {

        if (_adapter != null) {
            _adapter.close();
        }

        synchronized (_creator) {
            _instance = null;
        }

        super.stop();
    }

    /**
     * Create an instance of an RDBMS persistence adapter using the specified
     * database configuration. If it cannot create the adapter then throw
     * {@lnik PersistenceException} exception
     *
     * @param config database configuration
     * @return the created adapter
     * @throws PersistenceException
     */
    private PersistenceAdapter createRdbmsAdapter(
        RdbmsDatabaseConfiguration config) throws PersistenceException {

        PersistenceAdapter adapter = null;

        if (config.hasBatch() && config.getBatch()) {
            _log.info("Creating EXPERIMENTAL BatchingRdbmsAdapter for "
                + config.getDriver());
            adapter = new BatchingRdbmsAdapter(
                config.getDriver(),
                config.getUrl(),
                config.getUser(),
                config.getPassword(),
                config.getBatchSize());
        } else {
            _log.info("Creating RdbmsAdapter for " + config.getDriver());
            adapter = new RDBMSAdapter(
                config.getDriver(),
                config.getUrl(),
                config.getUser(),
                config.getPassword());
        }

        return adapter;
    }

}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影天堂一区二区在线| 日本中文一区二区三区| 97aⅴ精品视频一二三区| 中文字幕精品一区二区三区精品| 国产精品一区二区在线观看不卡| 久久久蜜桃精品| 不卡视频一二三| 亚洲综合另类小说| 91麻豆精品久久久久蜜臀| 久久国内精品自在自线400部| 久久一区二区视频| 97久久精品人人爽人人爽蜜臀| 亚洲激情图片小说视频| 欧美高清视频在线高清观看mv色露露十八 | 在线成人小视频| 奇米影视一区二区三区小说| 久久久三级国产网站| 色综合网色综合| 秋霞午夜av一区二区三区| 久久婷婷一区二区三区| www.99精品| 日韩精品福利网| 久久午夜羞羞影院免费观看| 色国产精品一区在线观看| 奇米影视7777精品一区二区| 国产精品毛片a∨一区二区三区| 91黄色免费看| 黄色小说综合网站| 亚洲精品第1页| 26uuu另类欧美| 一本久久a久久精品亚洲| 日韩成人一区二区| 中文字幕亚洲一区二区va在线| 欧美日韩视频第一区| 粗大黑人巨茎大战欧美成人| 五月激情综合色| 中文字幕第一区综合| 欧美揉bbbbb揉bbbbb| 成人性生交大片| 日韩综合在线视频| 专区另类欧美日韩| 亚洲精品一区二区在线观看| 在线视频你懂得一区| 国产精品夜夜嗨| 日本aⅴ免费视频一区二区三区 | 日本在线不卡视频| 国产精品久久看| 日韩精品一区二区三区老鸭窝| 色婷婷亚洲婷婷| 成人av资源在线| 韩国成人福利片在线播放| 天堂一区二区在线免费观看| 亚洲精品综合在线| 中文字幕第一区| 精品久久国产97色综合| 色欧美日韩亚洲| 粉嫩嫩av羞羞动漫久久久 | 国产毛片精品视频| 日韩国产精品久久久| 亚洲制服欧美中文字幕中文字幕| 国产欧美一区二区精品婷婷| 亚洲精品在线三区| 欧美一区二区三区精品| 欧美美女bb生活片| 欧美在线短视频| 一道本成人在线| 99这里都是精品| 国产99久久久久| 国产99久久久精品| 成人av电影免费在线播放| 福利一区二区在线| 国产不卡在线一区| 成人午夜伦理影院| 国产成人精品亚洲午夜麻豆| 国产一区二区女| 国产制服丝袜一区| 国产一区二区免费在线| 国产高清成人在线| 国产精品亚洲综合一区在线观看| 国产伦理精品不卡| 国产成人鲁色资源国产91色综| 国产suv一区二区三区88区| 国产乱色国产精品免费视频| 国产不卡视频在线观看| 国产成人av电影| jvid福利写真一区二区三区| 91麻豆国产精品久久| 欧美影院精品一区| 欧美一区二区网站| 欧美精品一区二区在线观看| 久久精品免费在线观看| 国产精品无圣光一区二区| 综合久久给合久久狠狠狠97色 | 午夜欧美一区二区三区在线播放| 亚洲电影激情视频网站| 久久精品99久久久| 高清国产一区二区三区| 91九色02白丝porn| 91精品福利在线一区二区三区| 精品国产一区二区三区久久久蜜月 | 久久国产精品第一页| 国产成人精品一区二区三区网站观看| 成人免费高清视频在线观看| 91国内精品野花午夜精品| 91精品在线观看入口| 久久久久久久久伊人| 亚洲天堂2014| 日韩高清一区二区| 国产精品亚洲一区二区三区妖精| 99久久久精品| 欧美老肥妇做.爰bbww视频| 精品成人佐山爱一区二区| 一区免费观看视频| 视频一区视频二区中文| 国产又黄又大久久| 日本道色综合久久| 精品国产一区二区在线观看| 亚洲婷婷在线视频| 狠狠色2019综合网| 欧美在线free| 国产区在线观看成人精品| 性久久久久久久久| 成人av在线影院| 精品乱码亚洲一区二区不卡| 亚洲美女淫视频| 国产精品亚洲视频| 7777精品伊人久久久大香线蕉 | 色呦呦国产精品| 欧美精品一区二区三区一线天视频| 亚洲欧美乱综合| 丁香六月综合激情| 欧美一级精品在线| 亚洲午夜影视影院在线观看| 成人免费av资源| 欧美成人女星排行榜| 亚洲成人先锋电影| 91视频国产资源| 国产亚洲精品久| 日韩高清在线一区| 欧洲生活片亚洲生活在线观看| 国产亚洲一区二区在线观看| 视频一区视频二区中文字幕| 色94色欧美sute亚洲线路二| 国产日韩欧美精品在线| 蜜桃在线一区二区三区| 欧美性一区二区| 亚洲欧美激情小说另类| 成人午夜大片免费观看| 2020国产成人综合网| 欧美bbbbb| 91精品免费在线观看| 天堂成人免费av电影一区| 欧美日韩在线亚洲一区蜜芽| 一区二区三区中文在线| 一本一道久久a久久精品综合蜜臀| 久久精品网站免费观看| 国产另类ts人妖一区二区| 精品日韩在线一区| 久久99精品视频| 日韩久久免费av| 久久电影网站中文字幕| 日韩写真欧美这视频| 日韩精彩视频在线观看| 欧美日韩色综合| 天堂一区二区在线免费观看| 欧美日韩成人在线| 日韩国产欧美三级| 91精品国产综合久久福利 | 久久亚洲欧美国产精品乐播| 久久99久久99小草精品免视看| 欧美日韩精品福利| 日韩电影在线观看电影| 6080yy午夜一二三区久久| 日韩中文字幕麻豆| 日韩一区二区电影在线| 国产酒店精品激情| 国产精品欧美一区喷水| 97久久精品人人做人人爽| 亚洲影院在线观看| 在线不卡中文字幕| 麻豆精品新av中文字幕| 久久久久久一二三区| 成人久久视频在线观看| 亚洲欧美日韩电影| 51精品国自产在线| 国产精品538一区二区在线| 国产精品久久久久久一区二区三区| 91视频在线看| 三级一区在线视频先锋| 26uuu国产日韩综合| 91在线看国产| 日韩av中文在线观看| 久久亚洲捆绑美女| 99在线精品视频| 日韩精品一二三四| 国产色综合久久| 欧美午夜片在线看| 国产一区二区91| 亚洲免费av高清| 日韩精品中文字幕一区二区三区|