public void run() {
while (true) {
cp_id = new Vector();
gateway_route = new Vector();
service_number = new Vector();
user_number = new Vector();
sp_number = new Vector();
sm = new Vector();
link_id = new Vector();
vMoUrl = new Vector();
dnIndex=new Vector();
isEmpty=true;
try {
con = DB.getConnection();
con1 = DB.getConnection();
stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt= con1.createStatement();
rs = stmt.executeQuery(DB.getMtSql());
int i=0;
while(rs.next()) {
isEmpty = false;
i++;
mtLogger.info("ID" +String.valueOf(i)+" "+rs.getString("dnIndex"));
sendSms(rs.getString("dnIndex"),
rs.getString("dcCp_id"),
rs.getString("dcgateway_route"),
rs.getString("dcService_number"),
rs.getString("dcUserMobile"),
rs.getString("dcsp_number"),
rs.getString("dcMsg"),
rs.getString("dclinkid"),
rs.getString("dcMoUrl")
);
stmt1.executeUpdate("update smp_cp_mo set dcSendFlag='y' where dnIndex='"+rs.getInt("dnIndex")+"'");
} } catch (Exception e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
}
}
try {
if (isEmpty) {
sleep(Integer.parseInt(DB.getSleep()));//休眠
}
} catch (InterruptedException e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
}
}
}
while (true) {
cp_id = new Vector();
gateway_route = new Vector();
service_number = new Vector();
user_number = new Vector();
sp_number = new Vector();
sm = new Vector();
link_id = new Vector();
vMoUrl = new Vector();
dnIndex=new Vector();
isEmpty=true;
try {
con = DB.getConnection();
con1 = DB.getConnection();
stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt= con1.createStatement();
rs = stmt.executeQuery(DB.getMtSql());
int i=0;
while(rs.next()) {
isEmpty = false;
i++;
mtLogger.info("ID" +String.valueOf(i)+" "+rs.getString("dnIndex"));
sendSms(rs.getString("dnIndex"),
rs.getString("dcCp_id"),
rs.getString("dcgateway_route"),
rs.getString("dcService_number"),
rs.getString("dcUserMobile"),
rs.getString("dcsp_number"),
rs.getString("dcMsg"),
rs.getString("dclinkid"),
rs.getString("dcMoUrl")
);
stmt1.executeUpdate("update smp_cp_mo set dcSendFlag='y' where dnIndex='"+rs.getInt("dnIndex")+"'");
} } catch (Exception e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
}
}
try {
if (isEmpty) {
sleep(Integer.parseInt(DB.getSleep()));//休眠
}
} catch (InterruptedException e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
}
}
}
while (true) { isEmpty=true;
try {
con = DB.getConnection();
con1 = DB.getConnection();
stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(DB.getMtSql());//select top 2 * from smp_cp_mo类似的
int i=0;
while(rs.next()) {
isEmpty = false;
i++;
mtLogger.info("ID" +String.valueOf(i)+" "+rs.getString("dnIndex"));
//log4j 注释
//sendsms 发送url请求
sendSms(rs.getString("dnIndex"),
rs.getString("dcCp_id"),
rs.getString("dcgateway_route"),
rs.getString("dcService_number"),
rs.getString("dcUserMobile"),
rs.getString("dcsp_number"),
rs.getString("dcMsg"),
rs.getString("dclinkid"),
rs.getString("dcMoUrl")
);
stmt1.executeUpdate("update smp_cp_mo set dcSendFlag='y' where dnIndex='"+rs.getInt("dnIndex")+"'");
} } catch (Exception e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
}
}
try {
if (isEmpty) {
sleep(Integer.parseInt(DB.getSleep()));//休眠
}
} catch (InterruptedException e) {
if (errorLogger.isDebugEnabled()) {
e.printStackTrace();
}
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw, true);
e.printStackTrace(pw);
errorLogger.error(cw.toString());
}
}
}
String cpid,
String gatewayroute,
String servicenumber,
String usernumber,
String spnumber,
String sms,
String linkid,
String sMoUrl
) throws Exception {
us2togbk g2u=new us2togbk();
sms=g2u.gbk2us(sms); String urlStr = sMoUrl +
//String urlStr = "http://218.26.177.244:9090/pro_server/http/recv_cpmt.asp" +
"msg_type=CSTI_MO" + "&cp_id=" + cpid.trim() + "&gateway_route="+gatewayroute.trim()+"&user_number=" + usernumber.trim() +"&service_number=" + servicenumber.trim()+
"&sm=" + sms.trim() + "&link_id=" + linkid.trim() + "&sp_number=" + spnumber.trim();
mtLogger.info("ID"+dnIndex+urlStr);
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// con.setDoOutput(true);
//OutputStreamWriter out=new OutputStreamWriter(con.getOutputStream());
// out.close(); //con.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; (R1 1.3); .NET CLR 1.1.4322)");
conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)");
conn.setRequestMethod("GET");
conn.setDoInput(true); try{
sb = new StringBuffer(); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ( (response = in.readLine()) != null) {
sb.append(response);
}
System.out.println(sb.toString());
mtLogger.info("mo response is "+sb.toString());
in.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
isEmpty = true; }
如果试结果集有重复的记录,那就说明你的sql语句有问题
请在rs = stmt.executeQuery(DB.getMtSql());之前System.out.println(DB.getMtSql()) ;
如果该句有错,请检查你的DB.getMtSql()方法,应该试里面错误
mtLogger.info("ID" +String.valueOf(i)+" "+rs.getString("dnIndex")); 这个i 都不增加 重复两次一般最多 真是奇怪