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

📄 cmppsavedata.java

📁 sp最新短信API(综合网关)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.wayout.wayoutsp.communication;import java.io.*;import java.util.*;import java.sql.*;import com.wayout.wayoutsp.publics.*;import com.wayout.wayoutsp.communication.*;public class CmppSaveData extends Thread{   private int  SAVE_INTERVAL       = 5000;   private boolean bConnectFlag     = false;    //获取连接数据库标志   private boolean bShutdownFlag    = false;   //是否需要提交(即已经有数据)   private boolean conn1NeedCommit  = false;   private boolean conn2NeedCommit  = false;   private boolean conn3NeedCommit  = false;   //是否用executeBatch   private boolean bMsgExecBatch    = true;   //是否自动提交 true:YES  false:NO   private boolean bAutoCommit      = false;   private volatile Connection        conn1     = null;   private volatile Connection        conn2     = null;   private volatile Connection        conn3     = null;   private volatile PreparedStatement pstmt1    = null;// for submit   private volatile PreparedStatement pstmt2    = null;// for report   private volatile PreparedStatement pstmt3    = null;// for deliver   //地区标志   private static int IsmgSectionFlag = IsmgInfo.IsmgSectionFlag;   private String submitSqlStatement =     "insert into WL_SYS_TOISMG( NUMTOISMGGUID, "+       "NUMSEQ_SUBMIT_ID, VC2MSG_ID, NUMPK_TOTAL, NUMPK_NUMBER, NUMREGISTERED_DELIVERY, "+       "NUMMSG_LEVEL, VC2SERVICE_ID, NUMFEE_USERTYPE, VC2FEE_TERMINAL_ID, NUMTP_PID, "+       "NUMTP_UDHI, NUMMSG_FMT, VC2MSG_SRC, VC2FEETYPE, VC2FEECODE, "+       "VC2VALID_TIME, VC2AT_TIME, VC2SRC_ID, NUMDESTUSR_TL, VC2DEST_TERMINAL_ID, "+       "NUMMSG_LENGTH, VC2MSG_CONTENT, VC2RESERVE, DATESUBMIT_TIME, NUMSUBMIT_RESULT, "+       "NUMSEND_COUNTER, NUMRECORD_STATUS ,NUMOPERATESEQID,VC2DELIVER_REPORT_STATUS,NUMDISTCODE,VC2ENABLEFLAG)" +     "values(SEQ_WL_SYS_TOISMG.nextval, "+       " ?, ?, ?, ?, ?, "+       " ?, ?, ?, ?, ?, " +       " ?, ?, ?, ?, ?, " +       " ?, ?, ?, ?, ?, " +       " ?, ?, ?, sysdate, ?, " +       " ?, 0,?,'',?,'Y')";   private String reportSqlStatement =     "insert into WL_SYS_FROMISMGRPT( NUMRPTGUID, "+       "NUMMSG_ID, VC2DEST_ID, VC2SERVICE_ID, "+       "VC2SRC_TERMINAL_ID, NUMMSG_LENGTH,VC2REPORTMSG_ID, "+       "VC2REPORTSTAT, VC2REPORTSUBMIT_TIME, VC2REPORTDONE_TIME, VC2REPORTDEST_TERMINAL_ID,NUMREPORTSMSC_SEQUENCE, "+       "VC2RESERVED, NUMRESP_RESULT, DATERECV_TIME, VC2STATUS,NUMDISTCODE,VC2ENABLEFLAG)" +     "values(SEQ_WL_SYS_FROMISMGRPT.nextval, "+       " ?, ?, ?, "+       " ?, ?, ?, " +       " ?, ?, ?, ?, ?, " +       " ?, ?, sysdate, '0',?,'Y')";   private String deliverSqlStatement =     "insert into WL_SYS_FROMISMG( NUMFRISMGID, "+       "NUMMSG_ID, VC2DEST_ID, VC2SERVICE_ID, "+       "NUMMSG_FMT, VC2SRC_TERMINAL_ID, NUMREGISTERED_DELIVERY, NUMMSG_LENGTH,VC2MSG_CONTENT, "+       "VC2RESERVED, NUMRESP_RESULT, DATERECV_TIME, VC2STATUS,NUMDISTCODE,VC2ENABLEFLAG )" +     "values(SEQ_WL_SYS_FROMISMG.nextval, "+       " ?, ?, ?, "+       " ?, ?, ?, ?, ?, " +       " ?, 0, sysdate, '0',?,'Y' )";   public CmppSaveData()  {   }  /**   * 写数据线程执行体.   * 连接维护<br>   * 提交数据   */   public void run()   {      connectDatabase();      if( bConnectFlag )        System.out.println("Cmpp Save Data Thread started ." );      while( !bShutdownFlag )      {          if( !bConnectFlag ){            PublicConstants.writeLog.info("Cmpp Save Data Thread reconnect Db ..." ,0);            PublicFuction.threadSleep(PublicConstants.RECONNECTDB_INTERVAL) ;            connectDatabase();            continue;          }          PublicFuction.threadSleep(SAVE_INTERVAL);          commitConn1();          commitConn2();          commitConn3();     } //end while     //thread exit     commitConn1();     commitConn2();     commitConn3();     disconnectConn1();     disconnectConn2();     disconnectConn3();   }  private void commitConn1(){      try      {        if( (conn1 !=null)&&(conn1NeedCommit) ){           synchronized  ( pstmt1){  //lock pstmt               if( bMsgExecBatch )                 pstmt1.executeBatch() ;               conn1.commit() ;           }                        //end lock           conn1NeedCommit = false;        }      } catch(Exception e){          PublicConstants.writeLog.error("CmppSaveData conn1 commit:"+e.toString());          if( (bConnectFlag=DatabaseAccess.isConnectDB(conn1))==false ){            disconnectConn1();            conn1 = null;          }      }  }  private void commitConn2(){      try{        if( (conn2 !=null)&&(conn2NeedCommit) ){           synchronized  ( pstmt2){  //lock pstmt             if( bMsgExecBatch )               pstmt2.executeBatch() ;             conn2.commit() ;           }                        //end lock           conn2NeedCommit = false;        }      } catch(Exception e){          PublicConstants.writeLog.error("cmppSaveData conn2 commit:"+e.toString());          if( (bConnectFlag=DatabaseAccess.isConnectDB(conn2))==false ){            disconnectConn2();            conn2 = null;          }      }  }  private void commitConn3(){      try      {        if( (conn3 !=null)&&(conn3NeedCommit) ){           synchronized  ( pstmt3){  //lock pstmt               if( bMsgExecBatch )                 pstmt3.executeBatch() ;               conn3.commit() ;           }                        //end lock           conn3NeedCommit = false;        }      } catch(Exception e){          PublicConstants.writeLog.error("CmppSaveData conn1 commit:"+e.toString());          if( (bConnectFlag=DatabaseAccess.isConnectDB(conn3))==false ){            disconnectConn3();            conn3 = null;          }      }  }  /**   * 终止线程   */  public void tStop(){    bShutdownFlag = true;  }  /**   * 连接数据库   * 与数据库建立两个连接   */  public void connectDatabase(){      if(conn1 == null)   // Prepare for conn1      {          conn1=DatabaseAccess.connectDatabase(              PublicConstants.CONNECTION_URL ,              PublicConstants.DB_USER ,              PublicConstants.DB_PASS );          if(conn1 != null) {            try{              if(bAutoCommit)                conn1.setAutoCommit(true);              else                conn1.setAutoCommit(false);              pstmt1=conn1.prepareStatement(submitSqlStatement);            }catch(SQLException eSQL) {              System.out.println("cmppSaveData prepareStatement conn1 :"+eSQL.toString());              PublicConstants.writeLog.error("cmppSaveData prepareStatement conn1 :"+eSQL.toString());              disconnectConn1();              bConnectFlag=false;            }          }      }      if (conn2 == null)   // Prepare for conn2      {          conn2=DatabaseAccess.connectDatabase(              PublicConstants.CONNECTION_URL ,              PublicConstants.DB_USER ,              PublicConstants.DB_PASS );          if(conn2 != null) {            try{              if(bAutoCommit)                conn2.setAutoCommit(true);              else                conn2.setAutoCommit(false);              pstmt2=conn2.prepareStatement(reportSqlStatement);            }catch(SQLException eSQL) {              System.out.println("CmppSaveData prepareStatement conn2 :"+eSQL.toString());              PublicConstants.writeLog.error("CmppSaveData prepareStatement conn2 :"+eSQL.toString());              disconnectConn2();              bConnectFlag=false;            }          }      }      if (conn3 == null)   // Prepare for conn3      {        conn3=DatabaseAccess.connectDatabase(            PublicConstants.CONNECTION_URL ,            PublicConstants.DB_USER ,            PublicConstants.DB_PASS );        if(conn3 != null) {          try{            if(bAutoCommit)              conn3.setAutoCommit(true);            else              conn3.setAutoCommit(false);            pstmt3=conn3.prepareStatement(deliverSqlStatement);          }catch(SQLException eSQL) {            System.out.println("CmppSaveData prepareStatement conn3:"+eSQL.toString());            PublicConstants.writeLog.error("CmppSaveData prepareStatement conn3 :"+eSQL.toString());            disconnectConn3();            bConnectFlag=false;          }        }      }      if( (conn1 !=null ) && (conn2 !=null )&&(conn3 !=null )  )        bConnectFlag=true;  }  /**   * 写Cmpp_Submit消息到数据库   * @param sm ShortMsgcmpp对象   * @return   *    true :成功   *    false:失败   */  public boolean saveCmppSubmitMsg(ShortMsgCmpp sm)  {    boolean bConnectState=false;    if(bConnectFlag == false) return false;    try    {         /**    System.out.println("Before save to DB ........."+            "\nsm.headSeqcNo:["+sm.headSeqcNo+"]"+            "\nsm.msgid:["+sm.submit_msg_id+"]"+

⌨️ 快捷键说明

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