搭建短信服務器
來源:程序員人生 發(fā)布時間:2015-01-21 08:51:33 閱讀次數(shù):6787次
今天憑著積極主動的態(tài)度,把短佩服務器的運行環(huán)境搭建成功,在此和大家分享下經(jīng)驗,希望能幫助到大家。
1.安裝Oracle客戶端,原來1直使用精簡版的Oracle客戶端,但“創(chuàng)天炫彩”沒法辨認,只能安裝Oracle官方提供的Oracle客戶端;

2.在Oracle客戶真?zhèn)€tnsnames.ora配置文件添加連接串;
ORCL172 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.22.51.172)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RDPCS)
)
)
3.安裝GPRS Modem的驅動程序,插上GPRM Modem硬件;

4.安裝GPRM Modem的管理程序;

5.創(chuàng)天炫彩的通道配置;

6.在Oracle數(shù)據(jù)庫創(chuàng)建程序所需的數(shù)據(jù)表,腳本以下:
create table MSG_FAILEDBOX
(
ID NUMBER not null,
OriginMsgID NUMBER not null,
ExpressLevel NUMBER default 2 not null ,
Sender VARCHAR2(100),
Receiver VARCHAR2(200) not null,
MsgType NUMBER not null,
MsgTitle VARCHAR2(500),
MMSContentLocation VARCHAR2(500),
SendTime DATE default SYSDATE not null,
CommPort NUMBER not null,
ActualSendTime DATE not null,
FailedReason VARCHAR2(500)
);
alter table MSG_FAILEDBOX
add constraint MSG_FAILEDBOX_PK11075707620945 primary key (ID)
using index
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
create table MSG_INBOX
(
ID NUMBER not null,
Sender VARCHAR2(100) not null,
MsgType NUMBER not null,
MsgTitle VARCHAR2(500),
MMSUrl VARCHAR2(200),
MMSContentLocation VARCHAR2(4000),
MsgArrivedTime DATE not null,
MMSDownloadedTime DATE,
MMSDownloadedState NUMBER default 0 not null ,
CommPort NUMBER not null
);
alter table MSG_INBOX
add constraint MSG_INBOX_PK21075710238559 primary key (ID)
using index
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
create table MSG_OUTBOX
(
MsgID NUMBER not null,
ExpressLevel NUMBER default 2 not null ,
Sender VARCHAR2(100),
Receiver VARCHAR2(200) not null,
MsgType NUMBER default 1 not null ,
MsgTitle VARCHAR2(500),
MMSContentLocation VARCHAR2(500),
SendTime DATE default SYSDATE not null,
CommPort NUMBER default 0 not null
);
alter table MSG_OUTBOX
add constraint MSG_OUTBOX_PK21075710226041 primary key (MsgID)
using index
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
create table MSG_SENTBOX
(
ID NUMBER not null,
OriginMsgID NUMBER not null,
ExpressLevel NUMBER not null,
Sender VARCHAR2(100),
Receiver VARCHAR2(200) not null,
MsgType NUMBER not null,
MsgTitle VARCHAR2(500),
MMSContentLocation VARCHAR2(500),
SendTime DATE not null,
CommPort NUMBER not null,
ActualSendTime DATE not null,
ReceiveMMSTime DATE,
MMSMessageID VARCHAR2(200)
);
alter table MSG_SENTBOX
add constraint MSG_SENTBOX_PK21075710226041 primary key (ID)
using index
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
create sequence MSG_FAILEDBOX_ID_SEQ
minvalue 1
maxvalue 999999999
start with 81
increment by 1
cache 20;
create sequence MSG_INBOX_ID_SEQ
minvalue 1
maxvalue 999999999
start with 81
increment by 1
cache 20;
create sequence MSG_OUTBOX_ID_SEQ
minvalue 1
maxvalue 999999999
start with 141
increment by 1
cache 20;
create sequence MSG_SENTBOX_ID_SEQ
minvalue 1
maxvalue 999999999
start with 81
increment by 1
cache 20;
CREATE OR REPLACE TRIGGER "SET_MSG_FAILEDBOX_ID" BEFORE INSERT
ON "MSG_FAILEDBOX"
FOR EACH ROW
DECLARE
NEXT_MSG_FAILEDBOX_ID NUMBER;
BEGIN
SELECT MSG_FAILEDBOX_ID_SEQ.NEXTVAL INTO NEXT_MSG_FAILEDBOX_ID FROM DUAL;
:NEW.ID := NEXT_MSG_FAILEDBOX_ID;
END;
/
CREATE OR REPLACE TRIGGER "SET_MSG_INBOX_ID" BEFORE INSERT
ON "MSG_INBOX"
FOR EACH ROW
DECLARE
NEXT_MSG_INBOX_ID NUMBER;
BEGIN
SELECT MSG_OUTBOX_ID_SEQ.NEXTVAL INTO NEXT_MSG_INBOX_ID FROM DUAL;
:NEW.ID := NEXT_MSG_INBOX_ID;
END;
/
CREATE OR REPLACE TRIGGER "SET_MSG_OUTBOX_ID" BEFORE
INSERT ON "MSG_OUTBOX"
FOR EACH ROW
DECLARE
NEXT_MSG_OUTBOX_ID NUMBER;
BEGIN
SELECT MSG_OUTBOX_ID_SEQ.NEXTVAL INTO NEXT_MSG_OUTBOX_ID FROM DUAL;
:NEW.MsgID := NEXT_MSG_OUTBOX_ID;
END;
/
CREATE OR REPLACE TRIGGER "SET_MSG_SENTBOX_ID" BEFORE
INSERT ON "MSG_SENTBOX"
FOR EACH ROW
DECLARE
NEXT_MSG_SENTBOX_ID NUMBER;
BEGIN
SELECT MSG_SENTBOX_ID_SEQ.NEXTVAL INTO NEXT_MSG_SENTBOX_ID FROM DUAL;
:NEW.ID := NEXT_MSG_SENTBOX_ID;
END;
/
commit;
7.創(chuàng)天炫彩的數(shù)據(jù)庫配置:

數(shù)據(jù)庫配置頁面的數(shù)據(jù)庫連接串名稱和步驟2在tnsnames.ora中配置的連接串名稱必須相同,測試連接。
8.發(fā)送測試短信:

使用方法為:向MSG_Outbox表(信息發(fā)送表)插入想要發(fā)送的短信內容,GRRS Modem硬件中的程序會把表中的數(shù)據(jù)發(fā)送到目標手機號,同時將這條記錄從MSG_Outbox表刪除。消息發(fā)送成功,將這條記錄存儲到MSG_Sentbox表(信息發(fā)送成功表);消息發(fā)送失敗,將這條記錄存儲到MSG_Failedbox表(信息發(fā)送失敗表)。MSG_Inbox表用于存儲接收到的彩信/短信。
到此,短佩服務器的運行環(huán)境搭建成功,希望我的分享能夠幫助大家進步。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈