Support forum

Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_TopicIcon
Problem with the script connector
sp_NewPost Add Reply sp_NewTopic Add Topic
June 18, 2012
2:53 pm
Henk Helmantel
Guest
Guests

Keeping the Console open on one of the log pages can cause high CPU use when the log database gets too big. The reason is that the console tries to load new log items every 10 seconds and when there is a lot of SMS traffic and the log database is large, the database has to do a lot of work.

Diafaan SMS Server 2.0 has a new option to limit the size of the log database. Select Actions-Options-Logging from the menu and set the "Limit to ... items per log" option to the desired log limit. This is the default for new installations but existing installations keep the old setting after an update.

Regards, Henk

June 14, 2012
8:14 pm
Luis Villar
Guest
Guests

Hi Henk,

We manage to put everything in order, the high CPU usage was in the end the console that we kept open all the time, when we closed it the CPU normalized to minimal usage. the our SMS operation was crashing when we receive special caracters like line feeds and the like but that was more on our side of the middleware application we created between the Diafaan and our top up system.

In order to process our high throughput we created 10 script connectors that each process only messages depending on the last digit of the "from" number this way we divided the load on 10 connectors and have been running with excellent results. than you for all your help.

regards

Luis

May 17, 2012
1:47 pm
Henk Helmantel
Guest
Guests

I have done some testing and the most likely cause for the high CPU use is that the Scripting Connector spends a lot of CPU cycles to process all received messages with your script. If the Scripting Connector cannot keep up with the received messages it will just keep on running the script and if the script is resource intensive (and not waiting for a server response for instance) it results in high CPU use for Diafaan SMS Server.

At the moment, the only solution when you run into performance problems is to use the SQL Connector to process the messages.

Regards, Henk

May 17, 2012
9:47 am
Luis Villar
Guest
Guests

Thanks Henk,

We will build a solution around SQL connector. We have 2.x version, we just purchased it this monday. I suspect that the high cpu consumption had to do with the queueing up of messages on the script due to our volume. I hope with a more loosely couple solution the Diafaan server can work with less stress just receiving and sending messages without having to wait for third party processing.

We will let you know how it turns out.

Regards,

Luis

May 16, 2012
9:40 pm
Henk Helmantel
Guest
Guests

Hi Luis,

The best way to increase message handling speed is to use the SQL Connector to store incoming messages in a database and use a separate program to processes the records from the database and put the response messages back in the database. Using URL's with the Web Connector is probably not must faster than using a script since the Web Connector also handles received messages one by one. The SQL Connector can handle batch operations much better.

Do you use the new version of Diafaan SMS Server (2.0.0.0) or an older version? The new version is much more resource friendly, it is still possible to get high CPU use but only in some very specific circumstances.

Regards, Henk

May 16, 2012
7:09 pm
Luis Villar
Guest
Guests

Hi Henk,

We put debug statements on the script and in effect the problem was that we did not receive a reply from the DLL, we corrected that situation and it's been working fine.
We have an operation where we process prepaid phone topups and we evoke the topup routine from the script directly, but the script as you explained works on a one by one basis processing messages and the top up procedure takes, when normal, up to 1 to 3 seconds. This means that from the Script I can only process 1 message at the time even though our topup server can handle multi-thread calls.

We receive up at peak hours up to 2 to 4 topup request per second and to process them one at the time would build queue on the Diafaan waiting for the topup to process 1 at the time at a rate of about 2 seconds each.

We are changing our design to queue up in data base the messages and have out own process dispatch the top up and on a separate connector (SQL or URL) send the reply message of the result of the topup.

If you have any suggestions as to anything that can help that would be appreciated.

By the way. is there a 64 bit version of the Diafaan server? when it is working it is taking up all of 2 out of the 4 processors and it is taking between 40% and 60% of the CPU time is this normal?

Thanks for the help

May 15, 2012
8:51 pm
Henk Helmantel
Guest
Guests

Hi Luis,

The Scripting Connector processes all incoming messages and send status updates one by one. If it takes a long time to handle a message, the Scripting Connector waits until the code is finished before the next message is handled. E.g.:

private void OnMessageReceived(.....)
{
Thread.Sleep(-1);
}

will stop the Scripting Connector processing any further messages.

I suspect that this is what happens in your script, one of the messages just takes a very long time or indefinitely to return and the Scripting Connector stops processing any other messages.

You might send me the script you use so I can take a look, but it is possible that the problem is located in your own DLL. One way to find that out is to build in some debug code to your script like:

private void OnMessageReceived(.....)
{
WriteToFile("Start of OnMessageReceived");
// Your code with the DLL calls
WriteToFile("End of OnMessageReceived");
}

If the DLL does indeed cause the script to halt then the last line in the file will be "Start of OnMessageReceived".

Regards, Henk

May 15, 2012
6:56 pm
Luis Villar
Guest
Guests

Greetings,

We installed the Diafaan SMS Server and after testing it in controlled environment we purchased a license and put it in production. We use the Script Connector.

We process about 3000 SMS in 3 hours, each message has a response a delivery verify for each response. after a while the Gateway Log would receive messages but the Script Connector would not receive any of the incoming messages so our operation would stop. We also tried working this at low traffic hours from 12:00 AM on forward but at 6:40 AM we had the same thing happened, the gateway would receive messages but the script connector log did not receive anymore messages to process. at 6:40 AM it is very low traffic still.

Like I said, the Gateway Log receives messages from the SMPP Server but the script connector stops receiving them.

We use a DLL inside the script system.dll, system.xml.dll, system.configuration.dll and an in-house DLL for communications.

We have Windows Server 2008 R2, SQL Server 2008 Enterprise R2.

thank you for your assistance

Regards
Luis

Forum Timezone: Europe/Amsterdam

Most Users Ever Online: 494

Currently Online:
6 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Member Stats:

Guest Posters: 364

Members: 0

Moderators: 0

Admins: 1

Forum Stats:

Groups: 2

Forums: 3

Topics: 532

Posts: 1844

Newest Members:

, Henk Helmantel

Administrators: Henk Helmantel: 551