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

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

?? cmppdbaccess.java~1~

?? 中國移動CMPP3.0短消息通信程序
?? JAVA~1~
字號:
package com.zhanghao.cmpp;/** * <p>Title:CMPPDBAccess</p> * <p>Description: 湖南移動短信網關通訊程序</p> * <p>數據庫訪問類</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: sunun tech ltd.</p> * @author zhanghao * @version 1.0 */import java.util.*;import java.sql.*;import com.zhanghao.common.database.*;import com.zhanghao.common.util.*;public class CMPPDBAccess {  private static CMPPDBAccess DBAccess;  public boolean isAvail = false;  /** 上行數據緩沖,當CMPPMOReceiveThread接受到上行數據后,將數據保存在該緩沖中,由   *  CMPPMODataSaveThread線程將數據再保存到數據庫中 **/  public Vector vctMOData = new Vector(1,1);  /** 下行數據緩沖,當CMPPDBAccess從數據庫中取出數據后,保存在該緩沖中,由   *  單連接時的CMPPMOSendThread線程或雙連接時的CMPPMTSendThread線程將數據發送到ISMG **/  public Vector vctMTData = new Vector(1,1);  private CMPPMODataSaveThread moSaveThread;  public CMPPDBAccess() {  }  /**取得CMPPMOSocketProcess的唯一實例 **/  public static CMPPDBAccess getInstance(){    if(DBAccess == null){      DBAccess = new CMPPDBAccess();    }    if(!DBAccess.isAvail){      DBAccess.connect();    }    else{    }    return DBAccess;  }  /**   * 連接到數據庫   * @return true(成功)or false(失敗)   */  public boolean connect(){    Connection conn = null;    ResultSet   rs  = null;    try {//      Class.forName(DBDriver);//      conn = DriverManager.getConnection(Connect_URL, DBUser, DBPass);      conn = ConnectionPool.getConnection();      //從連接池取得連接并測試連接是否成功      String strSql = "";      if(CMPPParameter.DBType ==1)        strSql = "SELECT SYSDATE FROM DUAL";      else if(CMPPParameter.DBType ==2)        strSql = "select getdate()";      else if(CMPPParameter.DBType ==3)        strSql = "select getdate()";      rs = conn.createStatement().executeQuery(strSql);      rs.next();      rs.getString(1);      System.out.println("[CMPPMaster]"+PublicFunction.getFormatTime()+" 通訊程序連接數據庫成功!");      rs.close();      this.isAvail = true;      moSaveThread = new CMPPMODataSaveThread();      moSaveThread.start();      System.out.println("[CMPPMaster]"+PublicFunction.getFormatTime()+" 緩沖數據線程啟動...");    }//    catch (ClassNotFoundException cnfe) {//      disconnect();//      System.out.println("Not Found Database Connect Driver " + cnfe);//    }    catch (Exception ex) {      System.out.println("[CMPPMaster]連接數據庫失敗DBAccess.connect() 異常:" + ex);      this.isAvail = false;    }    finally{      discloseconn(conn,null,null);  //關閉connection(放回連接池)    }    return this.isAvail;  }  /**   * 將vctMOData中的MO數據保存到數據庫中   * @param vctMOData   * @throws java.lang.Exception   */  public void saveMODataFromVector(Vector vctMOData) throws Exception{    Connection conn = null;    Statement  stmt = null;    try{      conn = ConnectionPool.getConnection();      stmt = conn.createStatement();      conn.setAutoCommit(false);      //插入語句      for(int i=0;i<vctMOData.size();i++){        CMPP submitMsg = (CMPP)vctMOData.elementAt(i);        StringBuffer sbSql = new StringBuffer("");        sbSql.append("insert into cmpp_from_ismg ( from_ismg_id, deliver_msg_id, deliver_destnation_id,");        sbSql.append("deliver_service_id, deliver_msg_fmt, deliver_src_terminal_id, deliver_registered_delivery,");        sbSql.append("deliver_msg_length, deliver_msg_content");        sbSql.append(") values (seq_sms.nextval,");        sbSql.append("" +submitMsg.Msg_Id+",");        sbSql.append("'"+submitMsg.Dest_Id+"',");        sbSql.append("'"+submitMsg.Service_Id+"',");        sbSql.append("" +submitMsg.Msg_Fmt+",");        sbSql.append("'"+submitMsg.Src_terminal_Id+"',");        sbSql.append("'"+submitMsg.Registered_Delivery+"',");        sbSql.append("'"+submitMsg.Msg_Length+"',");        sbSql.append("'"+submitMsg.Msg_Content+"'");        sbSql.append(")");        stmt.addBatch(sbSql.toString());      }      stmt.executeBatch();      conn.commit();      conn.setAutoCommit(true);    }    catch(Exception ex){      throw ex;    }    finally{      discloseconn(conn,stmt,null);    }  }  /**   * 將待發送數據放入緩沖   * @return   */  public boolean fectchMTDataToBuffer(){    String strSql = "";    if(CMPPParameter.DBType ==1)    strSql = "select * from (select rownum as my_rownum,a.* from( "+             "SELECT * FROM cmpp_to_ismg WHERE submit_status = 1"+             ") a where rownum<= 20 )where my_rownum> 0";    else    strSql = "select * from cmpp_to_ismg where submit_status = 1";    ResultSet rs    = null;    Statement stmt  = null;    Connection conn = null;    try {        //System.out.println("[SPAMaster]讀取待發送信息到緩沖...");        conn = ConnectionPool.getConnection();        stmt = conn.createStatement();        rs   = stmt.executeQuery(strSql);    }    catch (Exception ex) {        this.isAvail = false;        Debug.outWarn("[CMPPMaster]Fetch data from cmpp_to_ismg table failed: " + ex) ;        return false;    }    byte[] msg;    try {         int num        = 0;   //取出待發送數據的計數器         String content = "";         while( rs.next()) {            if(num++ > 1000) break;  //每次最多取出1000條記錄            String msgcontent      = rs.getString ("MSG_CONTENT")==null?"":rs.getString ("MSG_CONTENT").trim();            //如果發送字符長,則截成多段            int length     = 70;  //標準為70個字符            int iMsgLenth = msgcontent.length();//            int iLength = (0 + length > iMsgLenth) ? iMsgLenth - 0 : length;//            int iBeginIndex = 0;//            int iEndIndex   = iEndIndex   =//                (iBeginIndex + iLength > iMsgLenth) ? (iMsgLenth) : (iBeginIndex + iLength);////            for (;iBeginIndex  < iEndIndex;//                 iBeginIndex = iEndIndex,//                 iEndIndex   = (iBeginIndex + iLength > iMsgLenth) ?//                 (iMsgLenth) : (iBeginIndex + iLength)//                )//            {             CMPP mtMsg   = new CMPP(CMPP.CMPP_SUBMIT);             mtMsg.Msg_Id = rs.getLong("to_ismg_id");             mtMsg.Service_Id = rs.getString("service_id");             mtMsg.Pk_total   = rs.getByte("pk_total");             Debug.outInfo("[發送數據]"+PublicFunction.getFormatTime()+ " Mobile Num:" +                                mtMsg.Dest_Id + ",Msg Content:" + msgcontent);             synchronized(vctMTData){               vctMTData.addElement(mtMsg);             }//           } // end for (;iBeginIndex  < iEndIndex;.....        }    }    catch(Exception e){       e.printStackTrace();       return false;    }    //關閉連接    try{        rs.close() ;        stmt.close() ;    }    catch(SQLException e){      e.printStackTrace();      this.isAvail = false;      return false;    }    //System.out.println("開始只標志為");    //置發送標記SEND_STATUS為-2    CMPP mtMsg;    int sndSize    = vctMTData.size() ;    for(int i = 0; i < sndSize; i++){        mtMsg = (CMPP)vctMTData.elementAt (i);        strSql = "update cmpp_to_ismg set send_status = -2 where msgid =  " + mtMsg.Msg_Id ;        try {            stmt = conn.createStatement();            stmt.execute(strSql);            stmt.close() ;        }        catch (SQLException ex) {            System.out.println("[SPAMaster]DBAccess.Set Send_Status error :" +ex.toString());            vctMTData.removeElementAt (i);            i--;            sndSize--;            this.isAvail = false;            return false;        }    }    discloseconn(conn,null,null);  //關閉connection(放回連接池)    return true;  }  /**釋放連接池的連接closeconn();  //關閉connection(放回連接池)**/  private void discloseconn(Connection conn,Statement stmt,ResultSet rst){    try{      if(rst != null){        rst.close();      }       if(conn != null){        conn.close();      }      if(stmt != null){        stmt.close();      }   }    catch (Exception sqle){      System.out.println("Database disconnecting failed"+sqle);    }  }  /**   * <p>Title: CMPPMODataSaveThread保存上行數據的線程</p>   * <p>Description: 湖南移動短信網關通訊程序</p>   * <p>Copyright: Copyright (c) 2004</p>   * <p>Company: sunun tech ltd.</p>   * @author zhanghao   * @version 1.0   */  public class CMPPMODataSaveThread extends Thread{    public boolean isAvail = false;    public CMPPMODataSaveThread(){      isAvail = true;    }    public void run(){      //轉儲緩沖中的MO數據      Vector vctWillSaveMO = new Vector(1,1);      try{        while(isAvail && CMPPDBAccess.getInstance().isAvail){          if(vctMOData.size()>0){            synchronized(vctMOData){              for(int i=0;i<vctMOData.size();i++){                vctWillSaveMO.addElement(vctMOData.elementAt(i));              }              //清空緩沖中的數據              vctMOData.removeAllElements();            }            //調用CMPPDBAccess的存儲方法存儲上行數據            System.out.println("vctWillSaveMO.size"+vctWillSaveMO.size());            CMPPDBAccess.getInstance().saveMODataFromVector(vctWillSaveMO);            vctWillSaveMO.removeAllElements();          }          else{            PublicFunction.sleep(20);          }        }      }      catch(Exception ex){        //打印異常,并關閉連接        Debug.outInfo("[CMPPMaster]保存MO數據失敗:"+ex.toString());        //將未寫入數據庫的MO數據放回原MO緩沖        if(vctWillSaveMO.size()>0){          for(int i =0;i<vctWillSaveMO.size();i++){            vctMOData.addElement(vctWillSaveMO.elementAt(i));            vctWillSaveMO.removeElementAt(i);          }        }        DBAccess.getInstance().disclose(null);      }    }  }  /**   * 斷開數據庫連接   */  private void disclose(Connection conn) {    try {      if(this.isAvail){        if(conn != null){          conn.close();        }        this.isAvail = false;        Debug.outInfo("通訊程序關閉數據庫連接");      }    }    catch (Exception sqle){      System.out.println("Database disconnecting failed");    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看不卡| 午夜国产不卡在线观看视频| 日韩精品电影一区亚洲| 成人污视频在线观看| 欧美精品久久99久久在免费线| 中文字幕不卡在线播放| 免费观看日韩av| 欧美日韩精品三区| 亚洲三级理论片| 国产精品1区2区3区| 51精品视频一区二区三区| 亚洲精品乱码久久久久久| 成人av资源站| 国产三区在线成人av| 六月丁香综合在线视频| 欧美放荡的少妇| 一区二区三区欧美久久| av欧美精品.com| 欧美国产丝袜视频| 国模一区二区三区白浆| 欧美一二三区精品| 午夜国产精品一区| 欧美日韩三级视频| 亚洲图片欧美色图| 欧美色手机在线观看| 亚洲乱码国产乱码精品精可以看| 福利一区福利二区| 久久久久9999亚洲精品| 国产一区二区导航在线播放| 日韩免费电影一区| 麻豆91在线播放| 日韩午夜小视频| 久久国内精品视频| 日韩一区二区不卡| 免费精品99久久国产综合精品| 在线播放欧美女士性生活| 亚洲高清三级视频| 欧美日韩亚洲国产综合| 亚洲午夜一区二区| 欧美手机在线视频| 日韩精品一二三区| 91精品国产一区二区三区| 日日夜夜免费精品视频| 欧美久久久久久蜜桃| 日本怡春院一区二区| 日韩欧美色综合网站| 国产尤物一区二区| 国产日韩精品一区| www.欧美.com| 亚洲欧洲综合另类| 欧美午夜精品电影| 午夜欧美视频在线观看 | 蜜臀av一区二区在线免费观看| 在线成人免费观看| 精品在线亚洲视频| 久久久久久久网| 99麻豆久久久国产精品免费 | 国产精品免费免费| 99国产精品99久久久久久| 综合久久综合久久| 欧美日韩免费视频| 极品美女销魂一区二区三区| 久久精品亚洲精品国产欧美kt∨| 懂色av中文一区二区三区| 中文字幕一区二区三区蜜月 | 蜜乳av一区二区| 久久综合九色综合97婷婷女人 | 色综合久久88色综合天天6| 亚洲综合在线第一页| 这里只有精品免费| 国产在线国偷精品产拍免费yy| 欧美激情在线一区二区| 在线视频国内自拍亚洲视频| 日韩高清不卡一区二区三区| 日韩欧美在线不卡| 成人午夜看片网址| 亚洲狠狠爱一区二区三区| 日韩精品一区二区三区蜜臀| 国产成人精品一区二| 一区二区三区不卡视频| 日韩一区二区不卡| 波多野结衣精品在线| 亚洲成人精品影院| 久久久亚洲午夜电影| 色综合中文综合网| 国产精品理伦片| 欧美日韩精品免费| 国产乱人伦偷精品视频不卡 | 国产精品天天摸av网| 色噜噜狠狠一区二区三区果冻| 日韩av电影一区| 国产精品久久三区| 日韩一区二区电影| 一本一道波多野结衣一区二区| 蜜桃视频在线观看一区二区| 国产精品天天看| 日韩亚洲欧美在线观看| 色综合欧美在线视频区| 精品一区精品二区高清| 一区二区三区四区蜜桃| 久久久久99精品国产片| 欧美日韩www| eeuss国产一区二区三区| 麻豆freexxxx性91精品| 亚洲精品日日夜夜| 国产亚洲美州欧州综合国| 欧美男生操女生| 成人免费av资源| 精品一区二区三区免费观看| 一区二区三区中文字幕精品精品| 精品国产乱码久久久久久老虎| 91黄色在线观看| 国产.欧美.日韩| 蜜臀91精品一区二区三区| 亚洲黄一区二区三区| 国产日韩欧美精品一区| 欧美一区二区福利在线| 在线国产电影不卡| 成人动漫一区二区在线| 久久99这里只有精品| 午夜精品在线视频一区| 最新国产成人在线观看| 久久久另类综合| 日韩免费高清电影| 3d动漫精品啪啪1区2区免费| 色欧美片视频在线观看| 成人黄色小视频| 国产麻豆成人精品| 老司机精品视频导航| 三级在线观看一区二区| 亚洲国产精品久久一线不卡| 亚洲欧美欧美一区二区三区| 国产精品素人视频| 国产调教视频一区| 欧美本精品男人aⅴ天堂| 欧美美女视频在线观看| 91久久国产最好的精华液| 91丨九色丨尤物| 成人ar影院免费观看视频| 国产99久久久久久免费看农村| 韩国三级电影一区二区| 蜜桃视频一区二区三区在线观看| 偷窥少妇高潮呻吟av久久免费| 亚洲精品免费视频| 亚洲精品福利视频网站| 最新高清无码专区| 亚洲欧美日韩国产另类专区 | 精品欧美一区二区三区精品久久| 欧美日韩激情一区| 精品视频123区在线观看| 欧洲色大大久久| 色欧美片视频在线观看 | 国产一区二区在线免费观看| 免费亚洲电影在线| 久久99久久99| 国产综合久久久久久鬼色| 美国一区二区三区在线播放| 美女www一区二区| 久99久精品视频免费观看| 久久se这里有精品| 国产精品中文字幕日韩精品| 国产一区二区三区高清播放| 国产精品一卡二| 大美女一区二区三区| av一二三不卡影片| 色乱码一区二区三区88| 欧美午夜在线一二页| 9191精品国产综合久久久久久 | 91美女片黄在线| 色噜噜狠狠色综合中国| 欧美日韩黄色一区二区| 日韩免费福利电影在线观看| 精品av久久707| 国产女人水真多18毛片18精品视频| 欧美高清在线视频| 成人欧美一区二区三区视频网页| 亚洲免费在线视频| 性久久久久久久久| 久久99精品久久久久久动态图 | 成人的网站免费观看| 色悠悠久久综合| 91精品午夜视频| 久久综合九色综合97婷婷| 国产精品色哟哟网站| 亚洲夂夂婷婷色拍ww47| 日本怡春院一区二区| 国产精品1区二区.| 色天天综合久久久久综合片| 91精品国产高清一区二区三区蜜臀 | aaa国产一区| 欧美三级电影精品| 欧美变态tickling挠脚心| 国产精品美女www爽爽爽| 亚洲一区二区三区爽爽爽爽爽| 日韩高清在线不卡| 成人污视频在线观看| 欧美日韩一区二区三区四区五区| 日韩视频一区二区| 成人免费在线观看入口| 日韩和欧美一区二区|