Testing a high performance SQL to SMS configuration on your LAN
This guide gives you information on how you can setup a test environment
to evaluate the performance of Ozeki NG SMS Gateway. This environment is useful
to test the configuration explained in the
"High performance SQL to SMS gateway configuration
(500 MPS+)" guide.
Introduction
The configuration presented here demonstrates how you can transfer SMS messages
from a database server to a Short Messages Service Center (SMSC) at a rate of
500 messages per second or more. The configuration is made up of two systems:
Computer "A" and
Computer "B" (Figure 1).
Computer "A" represents the short messages service center (SMSC). The
role of this computer is to accept SMPP client connections and to simulate
SMSC functionality. In our test environment the SMSC functionality will be
simulated with the built in SMPP server of Ozeki NG SMS Gateway. (In a real
life system you will not install computer "A". It will be operated by an SMS
service provider and you will connect to
it through the Internet.)
Computer "B" represents a high performance SQL to SMS Gateway computer.
This computer reads SMS messages from an MS SQL database server and send
these messages through an SMPP link to the SMSC. This functionality is
established with Ozeki NG SMS Gateway. (This is the system you purchase from
Ozeki.)
The hardware configuration of both computer "A" and computer "B" should
be:
Intel Core 2 Quad Q9550 2.83 GHZ CPU, Samsung 160Gb 7200 RPM SATA2 HDD,
4 GB RAM, Windows XP OS. Of course you can use other hardware configuration.
If you have a more powerful hardware you will achieve greater performance.
The network connection between computer "A" and computer "B" should
be a 100 Mbps ethernet LAN.
Figure 1 - Test environment
Setting up "Computer A"
To setup "Computer A" as an SMSC you need to perform the following steps:
- Download Ozeki NG SMS Gateway
- Install Ozeki NG SMS Gateway with the default settings
- Install a HTTP Server service provider
connection
- Install an SMPP user
- Optimize Ozeki NG SMS Gateway for high
performance
After installation "Computer A" will act as an SMSC.
Setting up "Computer B"
To setup "Computer B" as an SQL to SMS gateway you need to perform the
following steps:
- Download Ozeki NG SMS Gateway
- Install Ozeki NG SMS Gateway with the default settings
- Install an "SMPP service provider
connection" to connect the system to Computer "A"
- Install a "Database user with batch
processing"
- Optimize Ozeki NG SMS Gateway for high
performance
After installation "Computer B" will act ash an SQL to SMPP gateway.
Settings for the SMPP link
When you setup the SMPP connection, you should follow these guidelines:
On computer "A", when you create the SMPP user, please provide the following
information:
- username: "smp1"
- password: "qwe123"
On computer "B", when you configure the SMPP service provider connection,
please configure the following information:
- host: The IP address of computer "A"
- port: 9500
- username: smp1
- password: qwe123
How will the system work?
The system will work in a transparent way, that allows you to track every
step from message reading from the database to SMPP forwarding. To track the
events all you have to do is to examine the logs the software generates. A
separate log file is written for each component.
To start the testing procedure of your system, you will insert messages into
the ozekimessageout database table. For example you can insert 20 000 messages
at your first test. After you have inserted the messages, you don't have to do
anything else. The process from this point is fully automatic.
The first step of the process is executed by the "Database user". The
"Database user" checks periodically the ozekimessageout table. It will
find your messages and will read 5000 messages in the first batch and
will queue these messages for delivery in the "Ozeki NG SMS Gateway
engine". (After all your messages
are delivered, it will read the next 5000 messages. If you have less
the 5000 initially, it will work with less.)
After the "Database user" has read the messages from the database and have
queued them for delivery, the "Ozeki NG SMS Gateway engine" will pass these
messages to the "SMPP service provider connection" for delivery. The "SMPP
service provider" connection is the SMPP client module of the Ozeki NG SMS
Gateway software. It runs on computer "A" and it connects to the built in
SMPP server of computer "B" through the LAN. The connection is a TCP/IP based
network link. The actual message delivery speed on this link is determined by
two factors: the network bandwidth and the speed
the SMSC is able to accept messages. Since currently the SMSC is also an
Ozeki NG SMS Gateway software, and you connect your systems through an
Ethernet LAN, you don't have to worry about network and SMSC performance.
The next step in the process takes place on computer "B". On computer "B"
the built-in SMPP server of Ozeki NG SMS Gateway accepts the messages and
adds them to the delivery queue of an SMPP user. (Remember that you had to
setup an SMPP user account on computer "B", and you had to configure the
username and password of this SMPP user account on computer "A"
to establish the link.)
Finally on computer "B", Ozeki NG SMS Gateway forwards the messages to
the "HTTP Server" service provider connection. The HTTP server service
provider connection in this case acts as a "dummy link" to the mobile
network. Instead of sending the messages to mobile
phones it saves them to a text file. The path of the text file is
"C:\Program Files\Ozeki\OzekiNG - SMS Gateway\Drivers\HTTPServer0\outbox.txt".
This is OK for testing, since during performance tests we don't want to
reach actual mobile phones. When you setup your system with a real SMSC,
your messages will be forwarded to the mobile network.
How to insert a large number of test messages?
To insert a large number of test messages to your MS SQL server, you need to
use an SQL console. For example Microsoft SQL Server Management Studio allows
you to enter SQL commands on your database server. The following SQL script
can be used to generate 20000 test messages.
Begin transaction
DECLARE @recno int;
SET @recno=20000
While @recno>0 Begin
SET @recno=@recno-1
INSERT INTO ozekimessageout (receiver,msg,stat) VALUES
('+2222222',CAST(@recno AS varchar)+' sms message text',1);
End;
Commit
How to find out what the actual transfer speed was?
To find the transfer speed, all you have to do is to open the event log
of the "Database user with batch processing" module. You can do this
by clicking on the "Users and applications" menu item, then selecting
the user, then clicking on "events" (Figure 2). In the event view you
will have a row showing the throughput.

Figure 2 - Message transfer speed
More information
Next page:
Optimize NG for high performance
|