Migrating to a Multiple Server MMSC, WAP Gateway, or NowSMS Gateway

Posted by on Jun 23, 2008 in Support Blog

Topic Keywords: , , , , ,

The recent postings about multiple server redundant NowSMS or NowWAP configurations have generated a lot of questions from existing customers about how to migrate an existing installation to a multiple server configuration.

Migrating an existing NowWAP installation to a multiple server configuration is the easiest task to explain. That’s because there is no shared data storage requirement, and minimal synchronisation required between the multiple servers. The only synchronisation required is for the RADIUS accounting feed from the access server, which supplies MSISDN information.

Simply install NowWAP on a new server. Copy WAPGW.INI from the existing server to the new server to copy over the existing configuration.

Next, edit WAPGW.INI on each server. Under the [WAPGW] header, add a RadiusForward1=ip.address entry, where ip.address is the IP address of the other NowWAP server. If there are more than two servers, on each of the servers, add additional RadiusForward#=ip.address entries as required (e.g., RadiusForward2=ip.address, RadiusForward3=ip.address, each on a separate line).

Now you just have to put a network load balancer in front of the servers, so that the multiple servers have a single shared IP address that is visible to your end users. (Note that you’ll want to use the IP address of your existing NowWAP server as the shared IP address, so you will need to change the IP address of the existing NowWAP server in order to enable the load balancer to use that address as the shared IP address.)

One important note about the network load balancer. In addition to the standard “stickiness” that load balancers expect to support for TCP/HTTP connections, the load balancer also needs to support “stickiness” for the UDP protocol in order to properly support WAP/WSP clients. Otherwise clients using the WAP/WSP protocol will end up opening up concurrent sessions on multiple servers, using more licenses than would otherwise be required. By default, many load balancers only maintain UDP “stickiness” for a short time period, like 30 seconds, but we recommend a value of at least 5 minutes (300 seconds) for best results.

Another note … if you are using an evaluation/trial copy of NowWAP for one or more of the multiple servers, be aware that the evaluation license only allows 10 concurrent sessions. Evaluation licenses that support larger concurrent session limits can be provided if you contact us directly.

A document that explains the NowWAP multiple server configuration process can be downloaded at http://www.nowsms.com/download/nowwap-ft.pdf. But basically, it’s a very easy process.

Migrating an existing NowSMS installation to a multiple server configuration is a slightly more complex task.

The document that explains the multiple server NowSMS configuration can be downloaded at http://www.nowsms.com/download/nowsms-ft.pdf. That document provides a good basic explanation, but it is more oriented toward a new installation, rather than converting an existing single server installation into a multiple server installation.

The conversion process is more difficult because each of the shared NowSMS servers need to access a common data store that contains configuration information, user account databases, and various message queues and data stores.

In a single server installation, all of the configuration information, user account databases, message queues and data stores, are stored under the NowSMS program directory (or under the ProgramData\NowSMS directory in Windows Vista or Windows Server 2008) on that server.

To migrate to a multiple server installation, all of this shared data must be moved/copied to a shared network storage server. Then your existing NowSMS server needs to be reconfigured so that it looks for all of the shared data on the network storage server instead of on the local server.

The easiest way to do this is to copy the existing NowSMS program directory (or ProgramData\NowSMS directory on Vista or Windows Server 2008) to the shared network storage server. Of course, you should stop the NowSMS services before doing this.

To avoid confusion, next, rename the existing NowSMS program directory so that you do not inadvertantly start the NowSMS server with an out-of-date copy of data.

Re-install NowSMS so that the NowSMS program directory is recreated. When the NowSMS configuration program dialog is displayed at the end of the installation, press Cancel to exit the configuration program. When the prompt is displayed indicating that the “Service is not active”, press No so that the services are not started.

In the NowSMS program directory, create a file named SHAREDVOLUME.INI. The contents of this file should be:

[SharedVolume]
SharedVolume=\\server\path

Where \\server\path is the location of the shared copy of the NowSMS configuration data.

If you are using NowSMS as an SMS gateway, we also recommend adding MessageIDPrefix=xxx to this configuration file, where “xxx” is a unique prefix that identifies this server. This prevents a problem where multiple SMS gateways may assign duplicate message IDs.

Run the NowSMS configuration program, and you should see your previously existing configuration information, all of which is now being loaded from the shared data storage location.

If “Run as Service” is not checked for both services, check this setting for both services, which will cause both services to start. We then recommend pressing the “Stop” button for both services to stop the services until the next step of the process can be verified.

Before you start the NowSMS services to operate off of the shared data storage location, there is one more important consideration. The SMS gateway and MMSC operate under the services context of the Windows operating system. By default, they use the built-in LocalSystem account.
If the shared network storage requires a username and password login for access, LocalSystem will attempt to authenticate as “guest” with no password. This should not be a problem in most environments, where the shared data storage server should be protected by firewalls, and/or preferrably on a private IP network accessible only to the NowSMS servers.

However, if you need to authenticate to the shared data storage server with a username and password, it is necessary to configure the NowSMS services to login to Windows with a username and password that matches that required by the remote server. To configure this username and password, it is necessary to edit the NowSMS service attributes under the “Services” configuration dialog, which can be found in the “Administrative Tools” area of Windows. Right click on “Now SMS & MMS Gateway“, and select “Properties”, the on the “Log On” page, configure the user account and password to be used. Repeat the process for the “Now MMSC” service.

Start the NowSMS services (either through the Windows Services dialog, or via the NowSMS configuration program).

Send some test messages to verify that NowSMS is properly using the SHAREDVOLUME.INI settings.

It is now possible to add additional servers, configured with the same SHAREDVOLUME.INI settings.

NowSMS Shared Volume Files and Directories

When you’re migrating an existing single server installation of NowSMS to a multiple server installation, you may be interested in knowing exactly which files and directories are actually required on the shared volume.

Here is a brief description of the shared files and directories. Note that all of these files and/or directories may not exist in all installations, as they are only created if needed.

SMSGW.INI
MMSC.INI
MMSBLOCK.TXT (optional configuration file)
MMSCUSERS.DB
MMSCUSERS.D2A/I (old “MMSC Users” files from pre-NowSMS 2006)
SMSUSERS.D2A/I
VASPIN.D2A/I
VASPOUT.D2A/I

(Note: It is anticipated that any .D2A/I files in the above list will be migrated to .DB files in future versions.)

BULKQ (outbound SMS message queue for messages sent to large # of recipients)
DLISTS (distribution lists created via web interface)
IPNOTIFY (WAP push notification queue for IP-based notification in lab environments)
MMS-IN (2-way received MMS)
MMSCDATA (MMSC message store for local “MMSC Users”)
MMSCIN (inbound message queue for messages received via MM4, SMTP, and delivery notifications)
MMSCOUT (outbound message queue for SMTP, and some MM4 acknowledgments)
MMSCUSERS (statistics and message counters for local “MMSC Users”)
MMSSMS (message store for MMS messages converted to SMS with web link)
OTA (used for pre-configured OTA files)
OUTPPGQ (WAP push notification queue for when an external PPG is being used)
Q (outbound SMS message queue)
SMPPDATA (SMS message ID tracking files … ActiveUsers directory is not part of the shared volume configuration)
SMS-IN (2-way received SMS queue)
UAPROF (cached User-Agent profiles for MMSC)
USERS (SMS message queues for local user accounts)
VASPIN (configuration information for “MMSC VASP” accounts)
VASPOUT (configuration information for “MMSC Routing” accounts)
VASPQ (message queue for “MMSC Routing” accounts)

Additional shared volume files and directories may be added in future releases, so this should not be considered an exhaustive list.

The following files/directories are created in the NowSMS directory structure local to each server:

UID.DAT (SMS message-id tracking file)
*.CTR (statistic counters)
*.ERR (error condition tracking files)
*.EXE (program files)
*.DLL (program files)
*.TMP (temporary files)

AUDIOBIN (program files)
HTML (web interface templates)
IMAGEBIN (program files)
MMSCADMIN (web interface templates)
MMSINQ (in-process receiving message queue for MMS messages being received via GSM modem)
SMPPDATA\ActiveUsers (active SMPP client connection tracking)
STATS (statistic counters)
TEMP (temporary files)
WEBADMIN (web interface templates)

For comments and further discussion, please click here to visit the NowSMS Technical Forums (Discussion Board)...