📄 gateway.sql
字号:
--=================================================================
--==================SMGP_Submit下行转发日志表======================
--=================================================================
--收到上级网关的Submit_Rsp后写此表,收到状态报告后根据MsgID补填部分状态包字段
drop table SMGP_MT_Log;
CREATE TABLE SMGP_MT_Log (
Id int(10) NOT NULL auto_increment,
SrcNode int(11) NOT NULL, --源CP代码(或本地业务代码)
SrcRecvTime varchar(14) NOT NULL, --从CP接收到原始SMGP_Submit(或HTTP请求)的时间,与日志同
MsgId_Echo bigint(20) default '', --返回给下节点的Submit_Rsp中的MsgID
DestNode int(11) NOT NULL, --转发的目的上节点编号
SentTime varchar(15) NOT NULL, --收到正确Submit_Rsp的时间
RelayTimes int(2) NOT NULL default '1', --重新转发的次数
-----------以下为转发包内容--------------
Total_Length int(10) NOT NULL,
Sequence_Id int(10) NOT NULL, --转发包流水号
MsgType int(1) NOT NULL,
NeedReport int(1) NOT NULL default '1',
Priority int(1) NOT NULL default '0',
ServerID varchar(10) NOT NULL,
FeeType varchar(2) NOT NULL,
FeeCode varchar(6) NOT NULL,
FixedFee varchar(6) NOT NULL,
MsgFormat int(3) NOT NULL,
ValidTime varchar(17) default '',
AtTime varchar(17) default '',
ReplyPath varchar(21) NOT NULL,
ChargeTermId varchar(21) NOT NULL,
DestTermId varchar(21) NOT NULL,
MsgLength int(3) NOT NULL,
MsgContent varchar(252) NOT NULL default '',
-----------上节点发来的Submit_Rsp中的MsgID--------------
MsgID varchar(21) NOT NULL, --与Report中的相同
-----------收到状态报告后补填以下字段--------------
ReportTime varchar(15) default '', --状态报告包接收时间
Report_Seq int(10) default '', --状态报告包流水号
Report_MsgID varchar(21) default '', --Report包本身的MsgID
SrcTermID varchar(21) default '', --用户手机号
Done_date varchar(10) default '', --网关下发给手机的时间
Report_Stat varchar(7) default '', --状态报告标识
Err varchar(3) default '', --错误代码
---------------------------------------
PRIMARY KEY (Id)
KEY SrcNode (SrcNode),
KEY SrcRecvTime (SrcRecvTime),
KEY MsgId_Echo (MsgId_Echo),
KEY ReplyPath (ReplyPath),
KEY DestTermId (DestTermId),
KEY Report_Stat (Report_Stat)
) TYPE=MyISAM;
--=================================================================
--==================CMPP_Submit下行转发日志表======================
--=================================================================
--收到CMPP_Submit_Rsp后插入,收到状态报告后根据MsgID补填部分状态包字段
drop table CMPP_MT_Log;
CREATE TABLE CMPP_MT_Log (
Id int(10) NOT NULL auto_increment,
SrcNode int(11) NOT NULL, --源CP代码(或本地业务代码)
SrcRecvTime varchar(14) NOT NULL, --从CP接收到原始CMPP_Submit(或HTTP请求)的时间,与日志同
MsgId_Echo bigint(20) default '', --返回给下节点的Submit_Rsp中的MsgID
DestNode int(11) NOT NULL, --转发的目的上节点编号
SentTime varchar(15) NOT NULL, --收到正确Submit_Rsp的时间
RelayTimes int(2) NOT NULL default '1', --重新转发的次数
-----------以下为转发包内容--------------
Total_Length int(10) NOT NULL,
Sequence_Id int(10) NOT NULL, --转发包流水号
Pk_total int(3) NOT NULL default '1',
Pk_number int(3) NOT NULL default '1',
Registered_Delivery int(1) NOT NULL default '1',
Msg_level int(1) NOT NULL default '0',
Service_Id varchar(10) NOT NULL,
Fee_UserType int(1) NOT NULL,
Fee_terminal_Id varchar(21) NOT NULL,
TP_pid int(1) NOT NULL default '0',
Tp_udhi int(1) NOT NULL default '0',
Msg_Fmt int(1) NOT NULL,
Msg_src varchar(6) NOT NULL, --信息来源(SP_Id)
FeeType varchar(2) NOT NULL,
FeeCode varchar(6) NOT NULL,
Valid_Time varchar(17) default '',
At_Time varchar(17) default '',
Src_Id varchar(21) NOT NULL,
DestUsr_tl int(3) NOT NULL default '1',
Dest_terminal_Id varchar(21) NOT NULL,
Msg_Length int(3) NOT NULL,
Msg_Content tinyblob NOT NULL default '',
Reserved tinyblob default '',
-----------上节点发来的Submit_Rsp中的MsgID--------------
MsgID bigint(20) NOT NULL default '', --与Report中的相同
-----------收到状态报告后补填以下字段--------------
ReportTime varchar(15) default '', --状态报告包接收时间
--Report_Seq int(10) default '', --状态报告包流水号
Report_MsgID varchar(21) default '', --Report包本身的MsgID
Stat varchar(17) default '', --状态
Done_time varchar(10) default '',
Dest_Id varchar(21) default '', --用户手机号
SMSC_sequence int(10) default '', --SMSC发送的消息标识
---------------------------------------
PRIMARY KEY (Id),
KEY SrcNode (SrcNode),
KEY SrcRecvTime (SrcRecvTime),
KEY MsgId_Echo (MsgId_Echo),
KEY Src_Id (Src_Id),
KEY Dest_terminal_Id (Dest_terminal_Id),
KEY MsgID (MsgID),
KEY Stat (Stat)
) TYPE=MyISAM;
--=================================================================
--======================下行转发记录缓存表=========================
--=================================================================
--CMPP_Submit或SMGP_Submit转发失败时便存入此表,以便检查错误码/重发
--定时(3秒)检查"下一次转发时间",时间到则读取记录重发,
--方法一:提取RelayTimes小于最大值,RelayTimes大于当前时间,
-- 且目的节点已经在线的记录进行再次转发,提取记录后便马上删除记录
-- 仍转发失败则RelayTimes加一,ScheduleTime延时加倍
--方法二:同时将Relaying置1,RelayTimes加一,转发成功后将记录删除,
-- 否则将Relaying改回0
--接收到原始Submit包的时间(SrcRecvTime)超过一定时间(24小时),则不再重发
drop table MT_Queue;
CREATE TABLE MT_Queue (
Id int(10) NOT NULL auto_increment,
SrcNode int(11) NOT NULL, --源CP代码(或本地业务代码)
SrcRecvTime varchar(14) NOT NULL, --从CP接收到原始CMPP_Submit的时间,与日志同
MsgID_Echo bigint(20) default '', --返回给下节点的Submit_Rsp中的MsgID
DestNode int(11) NOT NULL, --转发的目的上节点编号
ScheduleTime datetime default NULL, --下一次的转发时间,为0表示不再重发
Result int(2) default '', --错误响应码,若为-1则表示超时无应答,或(因网络连接异常)暂时无法发送的数据包
--Relaying int(1) NOT NULL default '0', --正在转发标识,为1表示正在转发,为0表示等待转发
RelayTimes int(2) NOT NULL default '1', --已经尝试转发的次数(一定次数后不再重新转发)
-----------以下为转发包内容--------------
Protocol int(1) NOT NULL default '0', --请求包协议类型,0-CMPP;1-SMGP;
Total_Length int(10) NOT NULL,
Sequence_Id int(10) NOT NULL, --转发包流水号
Pk_total int(3) NOT NULL default '1',
Pk_number int(3) NOT NULL default '1',
Registered_Delivery int(1) NOT NULL default '1',
Msg_level int(1) NOT NULL default '0',
Service_Id varchar(10) NOT NULL,
Fee_UserType int(1) NOT NULL,
Fee_terminal_Id varchar(21) NOT NULL,
Tp_pId int(1) NOT NULL default '0',
Tp_udhi int(1) NOT NULL default '0',
Msg_Fmt int(1) NOT NULL,
Msg_src varchar(6) NOT NULL, --信息来源(SP_Id)
FeeType varchar(2) NOT NULL,
FeeCode varchar(6) NOT NULL,
Valid_Time varchar(17) default '',
At_Time varchar(17) default '',
Src_Id varchar(21) NOT NULL,
DestUsr_tl int(3) NOT NULL default '1',
Dest_terminal_Id varchar(21) NOT NULL,
Msg_Length int(3) NOT NULL,
Msg_Content tinyblob NOT NULL default '',
Reserved tinyblob default '',
MsgType int(1) NOT NULL, --SMGP_Submit中的字段
FixedFee varchar(6) NOT NULL, --SMGP_Submit中的字段
---------------------------------------
PRIMARY KEY (Id),
KEY RelayTimes (RelayTimes),
KEY SrcNode (SrcNode),
KEY SrcRecvTime (SrcRecvTime),
KEY DestNode (DestNode),
KEY ScheduleTime (ScheduleTime),
KEY Result (Result),
KEY Src_Id (Src_Id),
KEY Dest_terminal_Id (Dest_terminal_Id)
) TYPE=MyISAM;
--=================================================================
--==================SMGP_Deliver上行转发日志表=====================
--=================================================================
--SMGP_Deliver上行转发日志表
--若转发的目的地为本地业务,则先将记录插入MO_Local表,再写入本表(以便计费)
drop table SMGP_MO_Log;
CREATE TABLE SMGP_MO_Log (
Id int(10) NOT NULL auto_increment,
SrcNode int(11) NOT NULL, --源网关代码
SrcRecvTime varchar(14) NOT NULL, --从网关接收到原始SMGP_Deliver的时间,与日志同
SrcMsgId varchar(20) NOT NULL, --收到的SMGP_Deliver包的MsgId
DestNode int(11) NOT NULL, --转发的目的下节点或本地业务编号
SentTime varchar(15) NOT NULL default '', --成功转发时间(收到正确Deliver_Rsp的时间)
RelayTimes int(2) NOT NULL default '1', --重新转发的次数
-----------以下为转发包内容--------------
Total_Length int(10) NOT NULL,
Sequence_Id int(10) NOT NULL, --转发包流水号
MsgID varchar(21) NOT NULL,
IsReport int(1) NOT NULL,
MsgFormat int(3) NOT NULL default '15',
RecvTime varchar(14) NOT NULL,
SrcTermID varchar(21) NOT NULL,
DestTermID varchar(21) NOT NULL,
MsgLength int(3) NOT NULL,
MsgContent tinyblob default '',
---------------------------------------
PRIMARY KEY (Id)
KEY SrcRecvTime (SrcRecvTime),
KEY SrcMsgId (SrcMsgId),
KEY DestNode (DestNode),
KEY MsgID (MsgID),
KEY SrcTermID (SrcTermID),
KEY DestTermID (DestTermID)
) TYPE=MyISAM;
--=================================================================
--==================CMPP_Deliver上行转发日志表=====================
--=================================================================
--CMPP_Deliver上行转发日志表
--若转发的目的地为本地业务,则先将记录插入MO_Local表,再写入本表(以便计费)
drop table CMPP_MO_Log;
CREATE TABLE CMPP_MO_Log (
Id int(10) NOT NULL auto_increment,
SrcNode int(11) NOT NULL, --源网关代码
SrcRecvTime varchar(14) NOT NULL, --从网关接收到原始CMPP_Deliver的时间,与日志同
SrcMsgId bigint(20) NOT NULL, --收到的CMPP_Deliver包的MsgId
DestNode int(11) NOT NULL, --转发的目的下节点或本地业务编号
SentTime varchar(15) NOT NULL default '', --成功转发时间(收到正确Deliver_Rsp的时间)
RelayTimes int(2) NOT NULL default '1', --重新转发的次数
-----------以下为转发包内容--------------
Total_Length int(10) NOT NULL,
Sequence_Id int(10) NOT NULL, --转发包流水号
Msg_Id bigint(20) NOT NULL, --转发包给下节点的包的MsgId
Dest_Id varchar(21) NOT NULL,
Service_Id varchar(10) NOT NULL,
TP_pid int(3) default '0',
TP_udhi int(3) default '0',
Msg_Fmt int(1) NOT NULL default '15',
Src_terminal_Id varchar(21) NOT NULL,
Registered_Delivery int(1) NOT NULL,
Msg_Length int(3) NOT NULL,
Msg_Content tinyblob NOT NULL default '',
Reserved tinyblob default '',
---------------------------------------
PRIMARY KEY (Id),
KEY SrcRecvTime (SrcRecvTime),
KEY SrcMsgId (SrcMsgId),
KEY DestNode (DestNode),
KEY Msg_Id (Msg_Id),
KEY Src_terminal_Id (Src_terminal_Id),
KEY Dest_Id (Dest_Id)
) TYPE=MyISAM;
--=================================================================
--======================上行转发记录缓存表=========================
--=================================================================
--CMPP_Deliver或SMGP_Deliver转发失败时便存入此表,以便检查错误码/重发
--定时(3秒)检查"下一次转发时间",时间到则重发
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -