webspeed - root on batch

tommyj77pl

New Member
Hi,

Our application is based on PHP and it gets data from the webspeed using PHP file comand i.e.
$array=file(http://webspeed_host/some_file.html?query);

some_file.html :
<script language="SpeedScript">
output-content-type("text/html").
for each some_db.
{&out} some_data_1 ";" some_data_2" "\n".
end.
</script>

Ocassionaly our server slows down and creates loads of root on batch
After I remove all the root batch processes everything works fine

Can you tell me if there is anything I am doing wrong or maybe if something can be done in different way?

Can I increase number of agents for webspeed and what number is an optimal?

Do you know any consultant our company can contact regarding this type of webspeed issue?

Thanx in advance
 
Hi Tommyj77pl,

I'll try to answer parts of your question.

First of all:
<script language="SpeedScript">
output-content-type("text/html").
for each some_db.
{&out} some_data_1 ";" some_data_2" "\n".
end.
</script>
How much data can be retrieved with this type of queries? I can imagine if this is a big table then it can take some time to finish the query.
I use my WebSpeed agents for short requests, I always try to keep my request time under the 500 ms. Any request which I know that will take a long time I split of as a batch job so the agent is freed again and ready for 'normal' requests.
For queries which need to be processed in real time (meaning the user is waiting for it) I break them up per 50 results with some first, next, prev, last 50 functionality.
This reduces request time and makes optimum use of the agents.

Every time you query a large table with for each: end. the agent is in a busy state, at that moment any other request will be handled by another agent if an agent is available or an agent will be started until you have reached the maximum number of agents (depending on license or configuration).

Can I increase number of agents for webspeed and what number is an optimal?
You can configure that with the Progress explorer or by editing the ubroker.properties file.
You have to figure out how many agents you need during 'normal' running of your appplication. That number you use to configure the minimum and initial number of agents. Maximum number is just the number of licenses you have (or how much memory you have :-).

Now back to your problem:
What version of Progress you have?
What sp level?
What OS?
Are the agents on the same machine as the database?
Any errors in the <servicename>.broker or <servicename>.server.log?
What is the average response time for a request:
wtbman -name <servicename> -q

When you see all the root batch processes what is the state of the agents at that moment and how many agents are runnning. (again wtbman -name <servicename> -q)

If the webspeed agents are running at the same machine as the database then making a direct connection to the database (self service client) is more efficient then with -N and -S. (Although I had some problems with this with Progress 9.1D)

Regards,

Casper.
 
Back
Top