Could Not Fetch URL エラー

閲覧: 394 回
最初の未読メッセージにスキップ

masa

未読、
2010/03/15 3:53:472010/03/15
To: Google-App-Engine-Japan
秋田と申します。

検索条件によっては、ページ全体を取得するとタイムアウトを起こす確率が、非常に高くなるため、ページの骨組みのみを、最初に作成し、詳細な情報を
Ajaxで取得するページを作成しています。

Ajaxの読み込みを同時に多数走らせているせいか、部分の読み込みでも、ごく稀に(1%以下の確率?)でタイムアウトが起きます。

これに関しては、再度読み込ませることで対応し、うまく動いているのですが、さらに稀な頻度で、
Could Not Fetch URL : ここにそのURL
というエラーが起きます。

この場合も、再読み込みを行えば、問題なく動くように見えます。この対応でも、今のところ問題はないのですが、このエラーがどういう原因で起きるのか
が、わからないと、気持ちが悪いもので・・・

どのような、状況で起きるのか? 読み直しの実行だけで問題はないのか?

お知恵を拝借できたらと思います。

よろしくお願いします。

kazunori_279

未読、
2010/03/15 22:00:492010/03/15
To: Google-App-Engine-Japan
秋田さん、

スティルハウス佐藤と申します。

> Could Not Fetch URL : ここにそのURL

これはクライアント上で出るエラーですよね? HTTPステータスコードは得られますか?
もしサーバー上で何らかのエラーが発生していれば、App Engineの管理コンソール上に表示されているはずです。

スティルハウス佐藤

masa

未読、
2010/03/15 23:01:572010/03/15
To: Google-App-Engine-Japan
レスありがとうございます。

情報が欠如してました。

ステータスコードは、500です。
Internal Server Error です。

中にjava.io.IOException の記述があります。
再現性がないもので、出て欲しい時に出てくれません。

また、出たら、もう少し詳細な情報を載せます。

masa

未読、
2010/03/15 23:51:012010/03/15
To: Google-App-Engine-Japan
Ajaxのコールバックに返ってくるメッセージです。
参考になるでしょうか?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1"/>
<title>Error 500 </title>
</head>
<body><h2>HTTP ERROR: 500</h2><pre>Could not fetch URL:
https://www.google.com/calendar/feeds/foo...@sample-group.com/private/full?start-min=2010-03-16T00%3A00%3A00.000&amp;start-max=2010-03-16T23%3A59%3A59.999&amp;orderby=starttime&amp;sortorder=ascending</pre>
<p>RequestURI=/zaiseki/zaiseki_calget.jsp</p><h3>Caused by:</
h3><pre>java.io.IOException: Could not fetch URL:
https://www.google.com/calendar/feeds/foo...@sample-group.com/private/full?start-min=2010-03-16T00%3A00%3A00.000&start-max=2010-03-16T23%3A59%3A59.999&orderby=starttime&sortorder=ascending
at
com.google.appengine.api.urlfetch.URLFetchServiceImpl.handleApplicationException(URLFetchServiceImpl.java:
75)
at
com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:
45)
at
com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler
$Connection.fetchResponse(URLFetchServiceStreamHandler.java:409)
at
com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler
$Connection.getInputStream(URLFetchServiceStreamHandler.java:290)
at
com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler
$Connection.getResponseCode(URLFetchServiceStreamHandler.java:131)
at
com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:
535)
at
com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:
515)
at
com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:
535)
at com.google.gdata.client.Service.getFeed(Service.java:1073)
at com.google.gdata.client.Service.getFeed(Service.java:1015)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:
669)
at com.google.gdata.client.Service.query(Service.java:1175)
at com.google.gdata.client.Service.query(Service.java:1116)
at
org.apache.jsp.zaiseki.zaiseki_005fcalget_jsp._jspService(zaiseki_005fcalget_jsp.java:
182)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
324)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at com.google.appengine.tools.development.PrivilegedJspServlet.access
$101(PrivilegedJspServlet.java:23)
at com.google.appengine.tools.development.PrivilegedJspServlet
$2.run(PrivilegedJspServlet.java:59)
at java.security.AccessController.doPrivileged(Native Method)
at
com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:
57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1093)
at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
51)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
121)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:352)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
396)
at org.mortbay.thread.BoundedThreadPool
$PoolThread.run(BoundedThreadPool.java:442)
</pre>

Kazunori Sato

未読、
2010/03/16 1:14:322010/03/16
To: google-app-...@googlegroups.com

> Ajaxのコールバックに返ってくるメッセージです。
> 参考になるでしょうか?

App EngineからGoogle Calendarの情報を取得するときに500エラーが出ているよ
うですね。App Engineの内部で何らかのサービス(Datastore等)や外部リソー
スにアクセスするときは、エラーが出る前提でリトライやスキップ等のロジック
を書いておくのがお勧めです。

========================================================================
佐藤一憲/Stillhouse Co. http://www.sth.co.jp

> --
> このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。

masa

未読、
2010/03/16 3:45:552010/03/16
To: Google-App-Engine-Japan
佐藤ざん、ありがとうございました。
そういうことも、ありがちなんですね。

Ajaxのloadを再度かけるという方向で、解決したいと思います。

On 3月16日, 午後2:14, Kazunori Sato <kazunori...@gmail.com> wrote:
> > Ajaxのコールバックに返ってくるメッセージです。
> > 参考になるでしょうか?
>
> App EngineからGoogle Calendarの情報を取得するときに500エラーが出ているよ
> うですね。App Engineの内部で何らかのサービス(Datastore等)や外部リソー
> スにアクセスするときは、エラーが出る前提でリトライやスキップ等のロジック
> を書いておくのがお勧めです。
>
> ========================================================================
> 佐藤一憲/Stillhouse Co. http://www.sth.co.jp
>

全員に返信
投稿者に返信
転送
新着メール 0 件