Jump to content
Software FX Community

Chart displayed intermittently in web farm


ranganh

Recommended Posts

Hi,

Sorry about the long post, but I wanted to give you as much information as possible.

I have three win 2003 servers in a web farm with no server affinity. Each machine has chartfx installed and PSS service is running on all three machines.

When the page containing chart control is loaded (from a client machine), the chart is displayed most of the times. Occasionally, the chart image is missing.

To narrow down on the problem, I tried to bring up the following URL on each of the three machines (Server 1, 2 and 3) as localhost.

https://localhost/EA/ChartFX.aspx?id=0-032915250&type=png&mime=image%2fpng 

The chart came up in one of the servers (Server 1), where the physical temp file is present.

On the other two servers, the event log had

Can not read file E:\Program Files\chartfx\PSS\Temp\032915250(TLZ3IX2YIRM)_png

Could not find file 'E:\Program Files\chartfx\PSS\Temp\032915250(TLZ3IX2YIRM)_png'.

This makes me think that the PSS service on server 1 is not communicating with the PSS service on other servers (2 & 3). 

However, at this point, I ran out of ideas and am looking for suggestions.

Here is the ChartFX.PSS.Service.exe.config

<configuration>
 <appSettings>
  <add key="MemorySlidingTime" value="0:10:0" />
  <add key="DiskSlidingTime" value="2:0:0" />
  <add key="EventLogLevel" value="Information" />
  <add key="TempPath" value="e:\program files\chartfx\pss\temp" />
  <add key="Machine1" value="192.212.57.90"></add>
  <add key="Machine2" value="192.212.57.91"></add>
  <add key="Machine3" value="192.212.57.92"></add>
  <add key="ThisMachine" value="1"></add> <!-- has value 2 on server2, 3 on server3-->
  </appSettings>
<system.runtime.remoting>
<application>
 <service>
<wellknown mode="Singleton" type="ChartFX.Pss.ServiceContact, ChartFX.Pss.Service" objectUri="PssService" />
 </service>
 <channels>
<channel port="8082" ref="tcp"/>
 </channels>
</application>
 </system.runtime.remoting>
</configuration>

 Here is the ChartFX.WebForms.config entry

<chartfx>
  <PssOutput>
  <ServiceURL>tcp://localhost:8082/PssService</ServiceURL>
  <HandlerURL>/EA</HandlerURL>
  <RootURL></RootURL>
  <RootURLFile></RootURLFile>
  <Authenticate>false</Authenticate> <!-- intentionally disabled authentication -->
  </PssOutput>
</chartfx>

Note: The PSS Http handler is moved to my web app (EA) as the web app uses forms authentication. 

1) How do I check if the PSS service is communicating with other servers on the farm?

2) The port 8082 is open on these servers, what could be the other reasons that may prevent the PSS from communicating to other servers on the farm.

 

Link to comment
Share on other sites

Indeed your PSS services are not comunicating with each other.

For some reason the machine ID of the server generating the request is "0" (0-032915250) it should be something else (1,2 or 3). "0" is a special value meaning NO FARM.

Looking at the code the only time that happens is when there is no config file or there is no entries for the machines in the config file.

I don't understand why though because I copy-pasted that section of your config file and it read it just fine.

I beleive your config file is not beign read, maybe is in the wrong place or maybe there is a permissions issue.

Please try this:

1) Replace: 

<add key="EventLogLevel" value="Information" />

With:

  <add key="EventLogLevel" value="Trace" />

In one of your servers.

2) Restart the server. Watch the event log. Specifically what for the Start message. You should see something like this:

This Machine: 1

Port: 8082

Location: ....

Version: 7.0.2645.16621

License ID: ...

If This Machine says zero, then the config file is not beign rea, or at least that section isn't.

Try hitting a page in this server, if the EventLog level was read correctly then yu should start seeing a lot of events from PSS.

If this is not beign read either, then the config file is definetly not beign read. The config file must be located in the same folder where the PSS service EXE is.

 

Link to comment
Share on other sites

I had no idea that the first digit of the image ID is actually the server number on the farm. That was a great clue.

 I stopped and started the PSS service on all three machines and observed that 'This Machine' value from the event log entry is now correct.

 I also noticee that the Image URL from the page source has the server ID ("3") as well.

/EA/ChartFX.aspx?id=3-033016061&type=png&mime=image%2fpng

In my quick test, the chart seems to come up good and consistently. So I think I am all set.

Thank you for the timely respose. Will keep you posted If I see any issue again.

--

The reason why the PSS services were not communicating with each other, here is a speculation -

After I installed chartfx, the service was running (by default) on all servers.

I edited the PSS config to include the IP addresses on the farm, This machine etc and saved the changes. However I did not restart the service.

Could this be the reason?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...