Movable Type
トラックバック送信エラーをなんとかした。
先日、自分のエントリーをトラックバックしようと思い、相手先のエントリーに向けて発信したら、エラーが出たので、送信に失敗したと思い込み、3回ほど送信を繰り返してしまいました。その時、はたと思い起こしました。「トラックバック送信時のエラーって、ちゃんと送られている」んだということを…、相手先のエントリーを見てみると、ちゃっかりと自分の送信したトラックバックが3つも表示されていました。「あちゃー」と思っても、もう後の祭りですね。ここんとこ、トラックバックを送るっていうのをしていなかったから、「トラックバック送信エラーが出たらまず、相手のエントリーを確認」という鉄則を、すっかり忘れていました。送っちゃった皆様申し訳ないです。<(_ _)>
ついでに、「設定」の中にある「トラックバック先の自動検出を動作させる」のラジオボタンがONになっていました。お陰で何度も送るスパイラルにはまっていたようです。
で、これじゃあ迷惑のかけ通しだということで、対策ないかなぁ〜と、検索。
さすがは、インターネットすぐに見つかりますね。ということで、対応策をこうじました。
「Modern Syntax」さんのエントリー「トラックバックPINGエラーで何度も送ってしまう罠」によると、トラックバックが成功しているにもかかわらずエラーが表示されるのは、相手側サイト側から発信される「受信しました」ってメッセージを、システムが受信を待ちきれないから、いわゆるタイムアウト時間を超えてしまうんだそうです。ということは、相手のサーバの処理能力によってエラーが出るかでないかが決まるようです。
解決策としては、処理が遅いサーバからの返答を待てない、せっかちさんな性格を、ちゃんと待ってあげられる「Movable Type」ちゃんにしてあげる必要があるわけです。
で、解決方法なんですが、「mt.cfg」をテキストエディターで開いて、「# PingTimeout 20」という一文がありますから、ここを変更します。一番後ろの数字は待っている時間を表しています。デフォルトは、20秒でちょっと短すぎですね。動作させるために、まず、先頭の「#」を削除します。次に数字を設定したい時間に変更します。60秒なら60、90秒なら90という具合です。自分は今回は「PingTimeout 120」という設定にしました。編集が終わったら保存して、サーバにアップします。これで終わり。
まぁ、これでもエラーを起こす鈍重なサーバを使っている人もいると思うので、ウガーとイライラせずに、鉄則「トラックバック送信エラーが出たらまず、相手のエントリーを確認」を落ち着いて実行しましょうね。(自戒の念もこめて)
--追記--
120秒にしたにもかかわらず、トラックバックの送信エラーが、また発生しました。思っていたより遅いサーバが多いようです。仕方がないので、さらに60秒追加で180秒に待機時間を延ばしました。とりあえず、この変更後はエラーが起きてませんけど、広い世間ですから、もっと遅いサーバがあるかもしれません。
後、ついでに、個別ページを一度に再構築するページの数を変更できる命令を発見したので、デフォルトの40件から半分の20件に変更しました。1回の処理件数が少なくなったので再構築時にエラーが出にくくなったと思います。手順は上記と一緒です。「# EntriesPerRebuild 40」を「EntriesPerRebuild 20」にするだけです。