📄 cmpp3mt.java
字号:
package com.khan.sms.cmpp3control;
import com.khan.util.common;
import com.khan.sms.cmpp3.*;
import com.khan.db.DBPoolCon;
import java.util.Vector;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Cmpp3MT /*implements Runnable*/ {
static boolean flag = true;
SendQueue sq = null;
CmppParam cp = null;
public Cmpp3MT(CmppParam cp, SendQueue sq) {
this.cp = cp;
this.sq = sq;
//this.rq = rq;
//common.Assert("debug:"+Thread.currentThread().getName()+"线程建立!");
}
public static void stopThread() {
flag = false;
}
synchronized private Cmpp3Submit getMt() {
String strsql = "Select top 1 [id], orgaddr,DestAddr_Count, destaddr, feeaddr, "
+ "serviceid, feecode, feetype, needreport, feeusertype, "
+ "userdata_len, userdata, msgfmt, at_time, valid_time, "
+ "pid, udhi, pk_total, pk_number, spid, "
+ "msglevel ,linkid "
+ "From SP_Mt "
+ "Where sendstatus = 0 "
+ "And sendcount < " + cp.RESEND_IDLE + " "
+ "And sendresult < 0 "
+ "order by sendlevel ";
//+ "limit 1";
DBPoolCon dbp = null;
String strs[][] = null;
//common.Assert(strsql);//
try {
dbp = cp.Cmpp_DB.get();
strs = common.poolGetRecord(dbp, strsql);
} finally {
cp.Cmpp_DB.release(dbp);
}
if (strs.length < 1) {
return null;
}
byte pk_total = 0;
byte pk_number = 0;
byte need_report = 0;
byte meg_level = 0;
String service_id = "";
byte fee_user_type = 0;
String Fee_terminal_Id = "";
byte tp_pid = 0;
byte tp_udhi = 0;
byte msg_fmt = 0;
String msg_src = "";
String feetype = "";
String feecode = "";
String src_id = "";
byte dst_usr_tl = 0;
Vector dst_terminal_id = new Vector();
byte msg_len = 0;
String msg = "";
int seq_id = 0;
String linkid = "";
try {
pk_total = (byte) (Integer.parseInt(strs[0][17]));
pk_number = (byte) (Integer.parseInt(strs[0][18]));
need_report = (byte) (Integer.parseInt(strs[0][8]));
meg_level = (byte) (Integer.parseInt(strs[0][20]));
service_id = strs[0][5];
fee_user_type = (byte) (Integer.parseInt(strs[0][9]));
Fee_terminal_Id = strs[0][4];
tp_pid = (byte) (Integer.parseInt(strs[0][15]));
tp_udhi = (byte) (Integer.parseInt(strs[0][16]));
msg_fmt = (byte) (Integer.parseInt(strs[0][12]));
msg_src = strs[0][19];
feetype = strs[0][7];
feecode = strs[0][6];
src_id = strs[0][1];
dst_usr_tl = (byte) (Integer.parseInt(strs[0][2]));
dst_terminal_id = new Vector();
String addrs[] = strs[0][3].split(";");
for (int i = 0; i < addrs.length; i++) {
dst_terminal_id.add(addrs[i]);
}
msg_len = (byte) (Integer.parseInt(strs[0][10]));
msg = strs[0][11];
seq_id = Integer.parseInt(strs[0][0]);
linkid = (strs[0][21] == null) ? "" : strs[0][21];
} catch (java.lang.NullPointerException e) {
cp.ErrMain.logOut("ID:" + strs[0][0] + ", MT记录中出现空字段", e);
return null;
}
Cmpp3Submit cs = new Cmpp3Submit(pk_total, pk_number,
need_report, meg_level,
service_id, fee_user_type,
(byte) 0x00, Fee_terminal_Id,
tp_pid, tp_udhi,
msg_fmt, msg_src,
feetype, feecode,
src_id, dst_usr_tl,
dst_terminal_id, (byte) 0x00,
msg_len, msg,
linkid);
cs.setSeqID(seq_id);
return cs;
}
private int mtSuccess(int id) {
String strsql = "Update SP_Mt Set sendstatus = 1, sendcount =sendcount + 1 "
+ "Where [id] = " + id;
int i = 0;
DBPoolCon dbp = null;
try {
dbp = cp.Cmpp_DB.get();
i = common.PoolExcuteSql(dbp, strsql);
} finally {
cp.Cmpp_DB.release(dbp);
}
return i;
}
public void run() {
if (cp.Cmpp_Socket.getConnected()) { //如果登录失败,则不进行socket传输
Cmpp3Submit cs = getMt();
if (cs == null) {
return;
}
cp.LogMain.logOut(cs.toString());
sq.removeTimeOut(cp.MAX_ACK_TIMEOUT);
if (sq.put(cs.getSeqID(), cs.encodeCmpp())) {
mtSuccess(cs.getSeqID());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -