Failover Routing?

Failover Routing? SearchSearch
Author Message
Chris
New member
Username: Chrisc

Post Number: 1
Registered: 12-2008
Posted on Tuesday, December 02, 2008 - 02:16 pm:   

We have a few questions regarding NowSMS. Our configuration works via HTTP and we specify the route name as one of the arguments in the Querystring. We need to do this upfront for least cost routing.

An example of our URL:

http://localhost:8800/?User=xxxxxx&Password=xxxxxxxx&ReceiptRequested=Yes&Sender =%2b447700000000&PhoneNumber=%2b447700000000&DCS=11&Text=aaa&SMSCRoute=SMPP-IPX- BC&Validity=1D0H0M

In the past we have experienced one of our SMSC’s going down and as a consequence the “Q” folder grows to a massive size and sends CPU processing through the roof until the SMSC has sorted themselves out again.

What we’d like to achieve is for this to be automatically rerouted to another SMSC of our choice. We are keen to use the new version of NowSMS and have investigated your callbacks, but it doesn’t quite satisfy this requirement.

Any suggestions as to how we can achieve this?

Thank you
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7706
Registered: 10-2002
Posted on Tuesday, December 02, 2008 - 05:14 pm:   

Hi Chris,

NowSMS 2008 deals with the CPU issue of large queues a lot better than previous releases. If you're running an earlier release, you might want to look at this.

Also, make sure that you have "Separate Outbound Message Queues for each user" enabled on the "SMS Users" page. (This setting is being enabled by default in newer versions, but this has not always been the case. It reduces system CPU overhead related to large outbound message queues.)

Unfortunately, we don't have a solution for "fail over" (one or more connections take over only if a primary route is down), only for "load balancing" (multiple connections are always active, and if one or more routes go down, the others keep going).

This is a frequently asked for feature, so it something we need to address.

The biggest challenge for us has been figuring out how such a setting should be configured. I'll bring this up for discussion in our next engineering meeting and see if anyone has any fresh ideas on how to implement such a feature.

-bn
Chris
New member
Username: Chrisc

Post Number: 2
Registered: 12-2008
Posted on Wednesday, December 03, 2008 - 03:29 pm:   

Hi Bryce,

Thank you for your reply

We did have some ideas our end which may or may not be helpful:

1. If a route for a given message was down, a new callback could be made to give the option to either allow us to specify an alternative route or maybe even abandon the message.
2. *If we had an additional argument(s) like ALTSMSCRoute we could provide the alternate least cost route upfront to be used if the primary route is down.
3. *A new method on the SMS Accounting Callback that gave us the route status i.e. route up / down / added / deleted. Then we can reroute accordingly.

*This does not help us with messages already in the Queue.

It is not in any way meant to tell you how to configure this; we would simply like to help in this regard, as it is quite crucial to us.

Regards
Chris
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7709
Registered: 10-2002
Posted on Wednesday, December 03, 2008 - 07:19 pm:   

Hi Chris,

We had a long internal discussion about this, focusing mostly on what could be done short term with minimal impact on existing logic.

One of our engineers came up with a concept of a backup route. Essentially, this route wouldn't even be active until a primary connection (or group of connections) was down. The route would only become active when a primary connection was down, and it would handle the primary route's traffic until the primary connection came back on-line, at which time the backup connection would automatically disconnect.

It's not a perfect solution, but I got a chance to test an implementation of it earlier today, and it worked quite well. And the amount of code change required to implement was very small, which hopefully means testing should go smoothly.

While this is a nice additional capability, I'm not sure that it is workable for enough people who would like to see fail-over capabilities.

I'm thinking that rather than dynamically activating a new backup route, more people would like to dynamically re-route messages to an alternate route that is always active. But, that's more difficult to implement at this time.

We're going to investigate this latter scenario a little bit more, as I'm not convinced that it is that much more difficult.

-bn
Chris
New member
Username: Chrisc

Post Number: 8
Registered: 12-2008
Posted on Monday, January 12, 2009 - 01:36 pm:   

Hi Bryce

Any new developments on this?

Regards Chris
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7730
Registered: 10-2002
Posted on Monday, January 12, 2009 - 10:56 pm:   

Hi Chris,

Yeah, I guess we never posted a link for this.

It was implemented like I first described. You can have a backup route that only gets activated when a primary route is down.

http://www.nowsms.com/download/nowsms20081204.zip

I think it would be better if there was dynamic re-routing to an alternate route that is always active (i.e., more than just a backup route) ... but that has proven to be more difficult than anticipated.

-bn
Alex Kaiser
New member
Username: Alex_k

Post Number: 3
Registered: 07-2006
Posted on Wednesday, January 14, 2009 - 10:59 pm:   

Hello!

I have a question about patch 2008-12-04.

We have 2 connections:
main route - xxxx
backup route - yyyy
Main route (xxxx) has a parameter "BackupForRoute=yyyy".

If message already in the Q and "SMSRoute=xxxx" parameter set up. If main route goes down, will be the message sent over backup(yyyy) connection?

Regards,
Alex K.
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7732
Registered: 10-2002
Posted on Thursday, January 15, 2009 - 05:46 pm:   

Hi Alex,

The explanation in the readme file is confusing.

The logic is the opposite of what you describe above.

This would be correct:

We have 2 connections:
main route - xxxx
backup route - yyyy
backup route (yyyy) has a parameter "BackupForRoute=xxxx".

If message already in the Q and "SMSRoute=xxxx" parameter set up. If main route goes down, will be the message sent over backup(yyyy) connection?


---

For further clarification, if the "BackupForRoute=xxxxx" parameter is defined for a route (yyyyy) ... then the route (yyyyy) for which this parameter is defined will only be active if the route referenced by this parameter (xxxx) is down.

...actually that explanation is still very confusing. But hopefully it explains it a little better.

-bn
Alex Kaiser
New member
Username: Alex_k

Post Number: 5
Registered: 07-2006
Posted on Wednesday, January 21, 2009 - 03:12 pm:   

Hi Bryce!

Are you sure that queue IO operations via shared volumes is more performance efficient then SQL operations?

If you move NowSMS's queue to MS SQL or My SQL server - all problems with security, backup and performance will be headcache for database administrators. Also i think that storing data at database server is much more powerful thing for total system performance.

Regards,
Alex K.
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 381
Registered: 08-2008
Posted on Thursday, January 22, 2009 - 06:54 pm:   

Hi Alex,

This is an area that is under investigation.

I don't expect any news in the short term, but longer term there may be additional queue storage options.

--
Des
NowSMS Support