⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db2datasource.java

📁 日常的办公系统 应用工作流框架等增加员工的基本信息、培训信息、奖罚信息、薪资信息
💻 JAVA
字号:
/* * Copyright (c) 2005, John Mettraux, OpenWFE.org * All rights reserved. *  * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions are met: *  * . Redistributions of source code must retain the above copyright notice, this *   list of conditions and the following disclaimer.   *  * . 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. *  * . Neither the name of the "OpenWFE" nor the names of its contributors may be *   used to endorse or promote products derived from this software without *   specific prior written permission. *  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  * AND ANY EXPRESS 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 THE COPYRIGHT OWNER OR 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. * * $Id: DB2DataSource.java,v 1.10 2005/07/13 12:53:48 jmettraux Exp $ *///// DB2DataSource.java//// jay.lawrence@openwfe.org//// based on MysqlDataSource.java - jmettraux@openwfe.org//package openwfe.org.sql.ds;import openwfe.org.MapUtils;import openwfe.org.ServiceException;import openwfe.org.ApplicationContext;import com.ibm.db2.jcc.DB2SimpleDataSource;import com.ibm.db2.jcc.DB2Diagnosable;import com.ibm.db2.jcc.DB2Sqlca;import java.sql.SQLException;/** * An OpenWFE data source for DB2 * * <p><font size=2>CVS Info : * <br>$Author: jmettraux $ * <br>$Date: 2005/07/13 12:53:48 $ * <br>$Id: DB2DataSource.java,v 1.10 2005/07/13 12:53:48 jmettraux Exp $ </font> * * @author jay.lawrence@openwfe.org * @author john.mettraux@openwfe.org */public class DB2DataSource    extends OwfeDataSource{    /*    private final static org.apache.log4j.Logger log = org.apache.log4j.Logger        .getLogger(DB2DataSource.class.getName());    */    //    // CONSTANTS (definitions)    //public final static String P_URL = "url";    public final static String P_HOST = "db2Host";    public final static String P_PORT = "db2Port";    public final static int    P_PORT_DEFAULT = 50000;    public final static String P_USER = "db2User";    public final static String P_PASS = "db2Pass";    public final static String P_DBNAME = "db2Database";    public final static String P_SCHEMA = "db2Schema";    public final static String P_TYPE = "db2Type";    public final static int    P_TYPE_DEFAULT = 4;    private final static String CON_VALIDITY_SQL_CODE        = "select 1 from syscat.servers";    //    // FIELDS    //    // CONSTRUCTORS    public void init         (final String serviceName,          final ApplicationContext context,          final java.util.Map serviceParams)    throws         ServiceException    {        super.init(serviceName, context, serviceParams);        // final String url = MapUtils.getMandatoryString(this.serviceParams, P_URL);        final DB2SimpleDataSource ds = new DB2SimpleDataSource();        ds.setDatabaseName( MapUtils.getMandatoryString(serviceParams, P_DBNAME) );        ds.setCurrentSchema( MapUtils.getMandatoryString(serviceParams, P_SCHEMA) );        ds.setServerName( MapUtils.getMandatoryString(serviceParams, P_HOST) );        ds.setPortNumber( MapUtils.getAsInt(serviceParams, P_PORT, P_PORT_DEFAULT ) );        ds.setUser( MapUtils.getMandatoryString(serviceParams, P_USER) );        ds.setPassword( MapUtils.getMandatoryString(serviceParams, P_PASS) );        ds.setDriverType( MapUtils.getAsInt(serviceParams, P_TYPE, P_TYPE_DEFAULT ) );        this.setDataSource(ds);    }    //    // METHODS from Service    //    // METHODS    /*     * The new version of the driver (3.0.11) doesn't allow for concurrent     * connections, this releaseConnection() implementation kills the     * connection.     *    public void releaseConnection ()    {        try        {            stop();        }        catch (Exception e)        {        }    }     *     */    public void logSQLException( String funcName, org.apache.log4j.Logger logger, SQLException e ) {        while ( e != null ) {                logger.error( funcName + "() SQLException : " + e.toString() );                if ( e instanceof DB2Diagnosable ) {                        DB2Sqlca sqlca = ((DB2Diagnosable)e).getSqlca();                        if ( sqlca != null ) {                                int sqlCode = sqlca.getSqlCode(); // Get the SQL error code                                 String sqlErrmc = sqlca.getSqlErrmc();                                                     // Get the entire SQLERRMC                                String[] sqlErrmcTokens = sqlca.getSqlErrmcTokens();                                // You can also retrieve the                                // individual SQLERRMC tokens                                String sqlErrp = sqlca.getSqlErrp();                                                      // Get the SQLERRP                                int[] sqlErrd = sqlca.getSqlErrd();                                              // Get SQLERRD fields                                char[] sqlWarn = sqlca.getSqlWarn();                                            // Get SQLWARN fields                                String sqlState = sqlca.getSqlState();                                         // Get SQLSTATE                                String errMessage = "";                                // ignore any errors in trying to get this "errMessage"                                try { errMessage = sqlca.getMessage();      } catch ( Exception ignore ) { }                                // Get error message                                logger.error("Server error message: " + errMessage);                                logger.error("--------------- SQLCA ---------------");                                logger.error("Error code: " + sqlCode);                                logger.error("SQLERRMC: " + sqlErrmc);                                for (int i=0; i< sqlErrmcTokens.length; i++) {                                        logger.error("  token " + i + ": " + sqlErrmcTokens[i]);                                }                                logger.error( "SQLERRP: " + sqlErrp );                                logger.error(                                                "SQLERRD(1): " + sqlErrd[0] + "\n" +                                                "SQLERRD(2): " + sqlErrd[1] + "\n" +                                                "SQLERRD(3): " + sqlErrd[2] + "\n" +                                                "SQLERRD(4): " + sqlErrd[3] + "\n" +                                                "SQLERRD(5): " + sqlErrd[4] + "\n" +                                                "SQLERRD(6): " + sqlErrd[5] );                                logger.error(                                                "SQLWARN1: " + sqlWarn[0] + "\n" +                                                "SQLWARN2: " + sqlWarn[1] + "\n" +                                                "SQLWARN3: " + sqlWarn[2] + "\n" +                                                "SQLWARN4: " + sqlWarn[3] + "\n" +                                                "SQLWARN5: " + sqlWarn[4] + "\n" +                                                "SQLWARN6: " + sqlWarn[5] + "\n" +                                                  "SQLWARN7: " + sqlWarn[6] + "\n" +                                                "SQLWARN8: " + sqlWarn[7] + "\n" +                                                "SQLWARN9: " + sqlWarn[8] + "\n" +                                                "SQLWARNA: " + sqlWarn[9] );                                logger.error("SQLSTATE: " + sqlState);                                // portion of SQLException                        }                }                // Get next exception                e = (java.sql.SQLException)e.getNextException();        }    }    /*     * DB2 seems to return a null statement when the connection is     * invalid, might be a much quicker test than the SQL select test.     *    protected boolean isConnectionInvalid ()    {        try        {            final java.sql.Statement st = this.sqlConnection.createStatement();            if (st == null)            {                log.debug("isConnectionInvalid() Yes : statement is null");                return true;            }            SqlUtils.closeStatement(st);        }        catch (final Throwable t)        {            log.debug("isConnectionInvalid() Yes : ", t);            return true;        }        return false;    }     *     */    //    // METHODS from OwfeDataSource    /**     * This method when implemented has to return a piece of SQL code     * that will be run against any database for connection     * validity checking.     */    public String getConnectionValiditySqlCode ()    {        return CON_VALIDITY_SQL_CODE;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -