Skip to main content
Inspiring
May 8, 2009
Question

CF8 returns blank page

  • May 8, 2009
  • 2 replies
  • 3953 views

Hi,

I have an Intranet application running on a CF8 Enterprise edition and the last few weeks we see a strange behaviour of our server: sometimes it just returns a blank page.

This occurs in the morning of a random day, when the first people try to log in to the Intranet. When we view the source of the returned page, it is totally blank, not even a hint of HTML code. We tried finding a clue in the log files, but as no error whatsoever is produced, no trace can be found.

The current solution is restarting the 'ColdFusion 8 Application Service' and everything works as normal. It intervals at around 5 days.

CF version : 8,0,1,195765

Operating System : Windows 2003 (5.2)

Java Version : 1.6.0_04

Enabled Session and Application variables.

Does anybody out there experiance the same or comparable problems? Does anybody know of a more permanent solution?

Thanks for ready.

    This topic has been closed for replies.

    2 replies

    Inspiring
    May 13, 2009

    Bert, I've got an idea (sort of ).

    I was working on a CF utility this afternoon, switching back and forth between Railo 3.1 and CF8. I ran some tests on Railo, then stopped it and switched to CF8. I reloaded my page and got the old blank white page with no code whatsoever. After I laughed about this, I decided to check the site in Firefox (was on Safari) and use Firebug/ColdFire to see if I could see anything in greater detail.

    While there was no code output, as you experienced, I was able to see in the ColdFire Execution tab/screen, that the onError method of Application.cfc was, in fact, called. Although my onError method is but a skeleton, I thought this was sort of encouraging.

    I added the following code, just under the CFARGUMENTS:

    <cfsavecontent variable="theError">

         <cfdump var="#arguments.exception#" />

    </cfsavecontent>

    <cffile action="write" file="/path/to/my/Desktop/funky_err.html" output="#theError#">

    I then reloaded the page and checked my Desktop. I was able to see the CFDUMP of the exception structure and read my error message. Once I fixed that error, I was able to see my page per normal and removed the above code from my onError method, never having to restart CF or anything like that.

    This got me thinking that this tactic might be worth a try the next time you encounter the blank page output. When it occurs, reopen the page in Firefox, checking to ensure via ColdFire that the onError method was indeed fired. If so, you can then try to force onError to output the details (whatever means work for you, of course) and see if you can't get some more information.

    Anyway, just a thought...

    Inspiring
    May 14, 2009

    That is indeed a good tactic. I've put the dump-to-file code in place (in comment) for when it happens, so I'll be ready for it.

    I also installed the Firefox plugins. (We work exclusively with IE6 SP3, but I gradually update the javascript/html/css to the DOM standard.)

    We use IIS6, which ships with Windows 2003 and, concerning the hotfix, my Jrun is of a newer version then the one's mentioned in the article.

    Thanks,

    Bert.

    Inspiring
    May 18, 2009

    I did not experience the blank page behaviour again, so I'm going to conclude that emptying the application scope is a bad thing.

    Special thanks to craigkaminsky for his support.

    Cheers,

    Bert.

    May 12, 2009

    Are you using any type of framework?  Typically if CF times out or has an error, it will display a specific error message even if the server has crashed.

    Inspiring
    May 13, 2009

    I do not use any kind of predefined framework (the Intranet app predates all those).

    I did however found out there was a scheduled task to clear the application store ever night at 11h. Also I've seen that the default APPLICATION timeout was 2 hours while my app configured it to one day.

    I cleaned that up by setting the default timeout back to two days and stopping the scheduled task.

    The believe would be that when the APPLICATION store was cleared but timed out, everything would work as expected. But when the cleared application would not timeout, will it still be initialized? (e.g. firing OnApplicationStart in cfc) When it would not be, I would assume it throws an error that the datasourcename for the DB was missing instead of the empty page.

    The thing to note about the situation is that the setup was not changed for at least 6 months, and these happenings just started with no apparent reason.

    ps the scheduled task was there to clear queries which resided in the APPLICATION scope, and needed refreshing each day

    Thanks for the reply, I really hope to get to the bottom of this.

    Inspiring
    May 13, 2009

    Bert,

    It sounds like you're using Application.cfc, well based on the onApplicationStart reference, anyway! If this is the case, are you using the onError method? It's been good to me at times when I've hit a wall.

    When I've hit a snag in my bug hunting/error fixing, I will add a CFFILE tag to the onError method, writing the argument.exception details to a file on the server, naming the file with a time stamp (so it doesn't get overwritten). Of course, writing the details to a DB might be easier to manage on an active Intranet app!

    I know it's not a 'solution' but it's been a useful tool for me when I'm stumped and has, at times, turned up error information I don't get elsewhere.