A A A i

jeudi  8 janvier 2004jeudi 8 janvier 2004

Gathering information from ColdFusion stack trace

Today, a ColdFusion stack trace, on ".NET Developer's Journal". Compared to JSP, there's not much of an improvement, since ColdFusion is unable to track the line where the error happened. But at least it details some useful information with a specialized error-handler (SQL error in that case). I put below a copy of the page, in case of the source error is corrected. Of course, such information should never be displayed to the customer on a production site.

Another interesting thing is the approach taken by ColdFusion : pipelining with filters. We see in the stack trace the following steps: DataSource, Globals, Browser, ClientScopePersistence, Exception, Path, RequestMonitor, Application, Include. Some people may think "overkill", and some days I may be one of those. Right now I think "clean, very procedural but clean". After all, building websites with Java following the SUN way has never been object-oriented, so why not. And in fact, whereas some people see in a so called Model 2X an evolution which would be good to integrate in JSP engines, I can't help thinking it fits nicely with the kludgy evolution JSP has always had since its birth. J2EE 1.3 Filters are of course from a least advanced engineering, but they are predictable, which is something very important while debugging. [Ecoute en cours: Eye to eye with you - Nancy Danino - Xavier Jamaux - (4:05)]

Error Occurred While Processing Request

Error Executing Database Query.

General error: Table 'content.dotnetspecial' doesn't exist
 
The error occurred in E:\Inetpub\wwwroot\dotnet\readmessage.cfm: line 1
-1 : Unable to display error's location in a CFML template.

SQL    select * FROM dotnetspecial order by id desc
DATASOURCE   content
VENDORERRORCODE   1146
SQLSTATE   S1000
Please try the following:

Browser   Mozilla/5.0 (Windows; U; Windows NT 5.0; fr-FR; rv:1.5) Gecko/20031007
Remote Address   xxx.xxx.xxx.xxx
Referrer   http://sys-con.com/dotnet/articleprint.cfm?id=356
Date/Time   08-Jan-04 06:18 PM
Stack Trace
at cfreadmessage2ecfm205899276.runPage(E:\Inetpub\wwwroot\dotnet\readmessage.cfm:1) at cfreadmessage2ecfm205899276.runPage(E:\Inetpub\wwwroot\dotnet\readmessage.cfm:1)

java.sql.SQLException: General error: Table 'content.dotnetspecial' doesn't exist
	at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source)
	at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown Source)
	at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source)
	at org.gjt.mm.mysql.Connection.execSQL(Unknown Source)
	at org.gjt.mm.mysql.Connection.execSQL(Unknown Source)
	at org.gjt.mm.mysql.Statement.execute(Unknown Source)
	at org.gjt.mm.mysql.jdbc2.Statement.execute(Unknown Source)
	at coldfusion.server.j2ee.sql.JRunStatement.execute(JRunStatement.java:212)
	at coldfusion.sql.Executive.executeQuery(Executive.java:974)
	at coldfusion.sql.Executive.executeQuery(Executive.java:886)
	at coldfusion.sql.SqlImpl.execute(SqlImpl.java:229)
	at coldfusion.tagext.sql.QueryTag.setupCachedQuery(QueryTag.java:603)
	at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:443)
	at cfreadmessage2ecfm205899276.runPage(E:\Inetpub\wwwroot\dotnet\readmessage.cfm:1)
	at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:147)
	at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:357)
	at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:62)
	at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:107)
	at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
	at coldfusion.filter.PathFilter.invoke(PathFilter.java:80)
	at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:47)
	at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
	at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:35)
	at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:43)
	at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
	at coldfusion.CfmServlet.service(CfmServlet.java:105)
	at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
	at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
	at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:252)
	at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
	at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)
	at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)
	at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
	at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)
	at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

(Cyberpunk, 2004/01/08 18:17) lien permanent

Commentaires ici et ailleurs :

Two things: in IE, oh god - your blog is IMPOSSIBLE to read with it set to "small text."
Secondly, you're being unfair to poor JSP - *my* JSP container of choice is very much able to describe line numbers.

Posté par Anonymous, le vendredi 9 janvier 2004 à 06:14 #

First point: yes, I should check my blog on IE sometime. But regarding the font size, it should be the "right" size with the IE default, I like small text...
Second point: what is your JSP container of choice? The problem in my daily work is that I don't choose the one I work with :-)

Posté par Damien, le vendredi 9 janvier 2004 à 07:18 #

Discofeel

L'autre jour je cherchais sur différents comparateurs de prix l'album Daft de Art Of Noise... dans la liste des sites, les ténors, et un au nom bizarre, Discofeel. Peu de commentaires sur le comparateur de prix en question, je lance google à la poursuite du nom, sans grand résultat : deux ou trois pages de ci de là, pas un grand écho ce site. De visite sur leur site, j'aperçois tout de suite le RCS en base de page, ça commence enfin à inspirer un peu confiance. Et là, l'accroche du site : "Vous pourrez trouver sur notre site, plus de 10 000 références d'albums CD originaux neufs à prix unique : 9,99 € TTC". Et après un peu de navigation dans le catalogue, force est de constater qu'on y trouve beaucoup de chose. Ho pas les dernières sorties évidemment, et on peut trouver ponctuellement moins cher ailleurs, mais avoir un site aussi facile à naviguer, ça devient de plus en plus rare. Toujours est-il qu'il y a là de quoi boucher des trous dans ma discothèque.

Dépassant ce niveau de navigation dans la vitrine, il faut voir comment se déroule la transaction. Prise de deux titres, frais de ports raisonnables, colissimo suivi, réception sous deux jours ouvrés, le tout accompagné de mails bien faits au fur et à mesure du processus, sans fioriture : comme le site, c'est carré, c'est propre, c'est net. Depuis j'ai repassé plusieurs commandes sur ce site, toujours avec la même qualité de service, toujours la même petite structure derrière (apparemment ils viennent d'ouvrir une troisième boutique dans le vrai monde). Le petit commerce comme ça, j'aimerais en voir partout. [Ecoute en cours: Tainai kaiki II-Returning to the Womb - Sakamoto Ryuichi - (5:17)](Tout venant, 2004/01/08 17:06) lien permanent


qui est

nom : Damien Bonvillain
courriel : kame à cinemasie.com
bloggercode:
B9 D+ T+ K S F I- O X+ E- L- C-- Y1 R+ W- P+ M5 N-- N+
un peu plus : Google Whoring tortue

Messagerie instantanée

    les koms

    m'enfin

    Quant à mes invectives imaginaires, je vous laisse chercher un endroit adéquat pour les ranger. Elles craignent la lumière, si vous voulez une piste.
    Lien associé
    Eolas - « Aimez moi, c'est un ordre. »

    les bons vieux


    archives

    « janvier 2004 »
    lunmarmerjeuvensamdim
    1234
    567891011
    12131415161718
    19202122232425
    262728293031

    XML RSS 2.0 XML RSS 2.0 commentaires A A A i

    liens

    allégeance

    Blog sans chat

    colophon

    Propulsé par pointClairMerci à la caféineDevelopment with EmacsBadges from GTMcKnightFreeListed on BlogSharesGeoURL