北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

障害はいつも定時前(2)

AUでxhmlコンテンツを古い端末で見たとき、ゲートウェイが自動でhdml変換してくれる。このときページのサイズが大きすぎると、ゲートウェイは自動で2ページに分けて表示してくれる。



今日の障害は、AUの古い端末で、アンケート入力フォームからPOSTした結果取得したページが長かったために2ページに分けてくれたのだが、その2ページ目がエラーで表示されないと言うもの。疑問点は二つ。



(1) 2ページ目の表示に必要な引数が渡っていないようだ。なぜ?

(2) 引数が渡っていない場合も処理を用意してるのに、端末エラーになるのはなぜ?



【解決編】

AUのページングは、実は2回リクエストを発生させることにより実現していた、というのが原因。1ページ目のPOSTは成功するが、2ページ目を表示しようとする時は同じURLにGETリクエストを送るため、引数が渡らずにエラーページが返ってくる。ゲートウェイ側では、「1ページ目の続きを表示するために、さっきのリクエストと同じ結果を返して欲しい」と思って動作しているので、エラーページを返されても処理できずに、破綻する。



今回の教訓も、先入観にとらわれずに全てを疑え、ってことで終幕。