Using RadChart control, works fine in most environments... However.
In production our webserver is served through a load balancer onto two machines. The RadChart control seems to only be working half the time. Suspect what's happening is that the RadChart control makes a call to the server, generates the chart image and places it on one of the machines, but the control makes the image request in a seperate call, and thus does not always get the same machine.
Does RadChart have support for deploying to a multi-system front end?
In production our webserver is served through a load balancer onto two machines. The RadChart control seems to only be working half the time. Suspect what's happening is that the RadChart control makes a call to the server, generates the chart image and places it on one of the machines, but the control makes the image request in a seperate call, and thus does not always get the same machine.
Does RadChart have support for deploying to a multi-system front end?
5 Answers, 1 is accepted
0
Hi Angus,
Your observation is correct -- it is possible that the image request is handled by the other machine. RadChart offers solution for this case -- set UseSession to false, populate TempImagesFolder with a shared folder, which is accessible from all the machines and grant the ASP.NET process with rights to write in this folder. You can find this described in this help topic.
All the best,
Ves
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Your observation is correct -- it is possible that the image request is handled by the other machine. RadChart offers solution for this case -- set UseSession to false, populate TempImagesFolder with a shared folder, which is accessible from all the machines and grant the ASP.NET process with rights to write in this folder. You can find this described in this help topic.
All the best,
Ves
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
Angus
Top achievements
Rank 1
answered on 25 Sep 2008, 08:35 PM
Excellent, except now the problem is that GDI+ throws up inside the control when it tries to write to the share.
ASP.NET must have access, because I'm creating the folder inside of the same piece of code, (where imageDir ends up being of the form \\myShare\ChartImages):
ASP.NET must have access, because I'm creating the folder inside of the same piece of code, (where imageDir ends up being of the form \\myShare\ChartImages):
protected
void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string imageDir = String.Format(@"{0}\ChartImages",
EnvironmentSettings.Instance.SharedFileSystemScratch);
imageDir = Server.MapPath(imageDir);
if (!Directory.Exists(imageDir))
{
Directory.CreateDirectory(imageDir);
}
MFHistoryChart.TempImagesFolder = imageDir;
//rest of function
0
Hi Angus,
It seems my previous reply has not been entirely correct, I am sorry for this. The temp images folder may not be placed outside the application due to security reasons, so this approach will not be applicable. An alternative solution involves using the default UseSession value (true) and a StateServer or SqlServer session state mode, so that the image is retrieved correctly.
Kind regards,
Ves
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
It seems my previous reply has not been entirely correct, I am sorry for this. The temp images folder may not be placed outside the application due to security reasons, so this approach will not be applicable. An alternative solution involves using the default UseSession value (true) and a StateServer or SqlServer session state mode, so that the image is retrieved correctly.
Kind regards,
Ves
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
Angus
Top achievements
Rank 1
answered on 26 Sep 2008, 05:19 PM
That's exceedingly poor. Which will create a single point of failure in our web farm, because all of the applications would need to point to a single ASP.NET State process or Sql State Server in order to maintain consistent state information. If that server fails, it would require a manual configuration change to point at a new state server, during which time the entire application would be offline.
That's a lot of overhead just to show a chart in a webpage.
That's a lot of overhead just to show a chart in a webpage.
0
Mike
Top achievements
Rank 1
answered on 10 Jan 2009, 08:52 AM
Have you tried adding a virtual directory to the shared drive in IIS?
Another thing to try is sticky sessions on the load balancer so a user always gets served by the same server. I know this may not be preferable, but it seems that it would scale better than the state server solution.
Another thing to try is sticky sessions on the load balancer so a user always gets served by the same server. I know this may not be preferable, but it seems that it would scale better than the state server solution.