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

📄 submitthread.java

📁 中国网通SP侧短信网关--CNGP协议实现Java源代码-根据《中国网通.PHS短消息网关技术规范》
💻 JAVA
字号:
package cn.netjava.cngpclient;

import java.sql.*;
import java.util.*;

import cn.netjava.cngpclient.connection.ComConstants;
import cn.netjava.cngpclient.connection.IsmgInfo;
import cn.netjava.cngpclient.log.LogManage;
import cn.netjava.cngpclient.publics.*;

import java.util.logging.*;

/**
 * 发送接口表数据到服务器网关的线程
 * 中国网通短信网关客户端--蓝杰实训项目
 * @author www.NetJava.cn
 *
 */
public class SubmitThread extends Thread {

	public static SubmitThread getIns() {
		if (null == dddd) {
			dddd = new SubmitThread();
		}
		return dddd;
	}

	private static int MTcount = 0;

	public void run() {
		cn.netjava.cngpclient.publics.PublicFuction.threadSleep(1000);
		int i = 1, msg_id = 0;
		String usernumber = "error!";
		ResultSet rs;
		while (true) {
			cn.netjava.cngpclient.publics.PublicFuction
					.threadSleep(IsmgInfo.SendInterval);
			if (connup == null)
				initDB();

			try {
				rs = getpstmt.executeQuery();
				while (rs.next()) {
					Thread.sleep(IsmgInfo.SendInterval);
					SendDataBean s = new SendDataBean();
					s.clearAllDest();
					msg_id = rs.getInt(1);
					usernumber = rs.getString(2);
					s.addDestAddr(usernumber);
					s.dataCoding = rs.getByte(3);
					s.feeTerminalId = rs.getString(4);
					s.feeType = rs.getByte(5);
					s.feeUserType = rs.getByte(6);
					s.servieceType = rs.getString(7);
					s.infoFee = Integer.parseInt(rs.getString(8));
					s.sendData = rs.getString(9);
					s.registeredDelivery = rs.getByte(10);
					s.srcAddr = rs.getString(11);
					s.subType = rs.getByte(12);

					if (cn.netjava.cngpclient.connection.CmppConnectionManager
							.instance().connectionSubmit.getStatus() != ComConstants.NOTCONNECTED) {
						if (cn.netjava.cngpclient.connection.CmppConnectionManager
								.instance().sendToIsmg(s))
							deleMO(msg_id);
						LogManage.ins().myLog.logp(Level.INFO, "",
								"" + MTcount, " send to:  " + usernumber);
						MTcount++;
					}

				}
			} catch (Exception e) {
				LogManage.ins().myLog.logp(Level.SEVERE, "", "",
						"  databaseacc run:get submit message from db error: "
								+ e);

				try {
					connup.close();
					connup = null;
					initDB();
				} catch (Exception ef) {
					connup = null;
				}
				cn.netjava.cngpclient.publics.PublicFuction.threadSleep(3000);
			}
		}

	}

	private boolean deleMO(int id) throws Exception {

		delepstmt.setInt(1, id);
		delepstmt.execute();
		return true;
	}

	private SubmitThread() {
		while (!initDB()) {
			cn.netjava.cngpclient.publics.PublicFuction.threadSleep(3000);
			LogManage.ins().myLog.logp(Level.SEVERE, "", "",
					"  init Submit conn  error ");
		}
	}

	private boolean initDB() {
		try {
			connup = DatabaseAccess.connectDatabase(
					PublicConstants.CONNECTION_intery,
					PublicConstants.DB_USER_intery,
					PublicConstants.DB_PASS_intery);
			getpstmt = connup.prepareStatement(getSql);
			delepstmt = connup.prepareStatement(deleSql);
			LogManage.ins().myLog.logp(Level.INFO, "", "",
					"   Submit conn DB OK");
			return true;
		} catch (Exception e) {
			LogManage.ins().myLog.logp(Level.SEVERE, "", "",
					"   Submit conn DB error: " + e);
		}
		return false;
	}

	private static SubmitThread dddd = null;

	private static Connection connup = null;

	private static PreparedStatement getpstmt = null;

	private static PreparedStatement delepstmt = null;

	private static String getSql = "select top 5 *    from cngp_interface_SUBMIT where  MSG_SRC like '"
			+ IsmgInfo.spCode + "%' ";

	private static String deleSql = "delete from cngp_interface_SUBMIT where ID=?";

}

⌨️ 快捷键说明

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