日記

Outbound Port 25 Blocking の悪夢 (送信できない!)

1 Mins read

「受信はできるのですが、メールが送れないので見てください」

それは一本の電話から始まった。

環境は他のメールサーバーを5つ借りているクライアントさん、それぞれPOP3、SMTPが存在していて、契約しているプロバイダ OCNのメアドは一つもない状態でPC数は5台ぐらい。

はて?前日まで使用出来ていて、全てのクライアントでいきなりダメ?

WebはOK、受信もOK、nslookupでdomainサーチもOK、でもメールだけ送れない???

telnetで接続を試みても、53、80、110はOK!でも25が接続エラー???

そのうち受信も駄目になり、その後にWebも駄目に、これはルーターが壊れたか?と思いまずはリセット

再起動後はメールの送信も1、2通できるしWebやメール受信もOK、がしばらくするとまた送信が出来ない、この不安定さが俺をますます混乱させる???いろいろ調べるが同じの繰り返し、クライアントさんからではなく、自社からはPOP,SMTPとも使用可能でサーバー側のエラーではなさそう???

ためしにルーターを変えてみる・・・・・またSMTPがダメ、でも初めの1,2通はメールが送れる、これが俺をますます混乱させる。

ふと「Outbound 」かぁ??ダメもとで465と587をtelnetで叩く・・・・

587でビンゴ!!!!!!

原因はOCN以外のSMTP経由の25を遮断したのが原因だった。

全てのメール設定を587にして完了。この間3日ぐらいかかった(涙)

最終的にはパケットモニタリングをしかけてルーターを詳細なsyslog吐けるものに変えて調べるしか方法はないかとも思っていたが・・・これやると時間&労力を取られるからな(苦笑)

なぜ、ルーターを再起動した後に1つ2つメールが25ポートで送れるかが不思議、且つそれが俺を苦しめた・・・・・しかも、徐々に外向けのアクセス(80や110)を麻痺させていく、これはコリジョンが起こったのではと

しかし、これくらっている人、結構いるんじゃないのかな?恐るべしOCN(怒)

参考文献

Read more
JavaScript日記

ExtJsにて自動ID生成

1 Mins read

ExtJs2.2.1にて独自クラスを作成した時に、数が多くなってくると固定idでは使うのが大変になってくる。???何が大変かはわかるでしょう!?、部品が一杯になってくるとidが重なる可能性が出てくるってことです。

独自クラス内では自分のidを使いたい、でも固定ではid管理がメンドクサイ、って時に私が使用している方法。(ってExt内では当たり前の使い方だったりする)

id: Ext.id()
上記をコンストラクタ内に設定

ちなみにコンストラクタにて上位からconfig指定されてくる可能性がある時は
id: config.id || Ext.id()

Ext自体、上位のクラスでidを指定しなければ下位のスーパークラスにて同じようにidを振ってくれるので、あくまで独自にidを知る且つそれを使いまわす時に使用する方法です。

以上

Read more
Linux日記

CentOS5.2 yumのエラー対応

1 Mins read

以下のようなエラーが発生することがある
File “/usr/bin/yum”, line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)

1. yumをクリーンアップ
過去にダウンロードしたパッケージ類を削除する。

# yum clean all

大抵の場合はこれでいける。
これでいけない場合

・・・また今度(^ ^)

Read more
パソコンのこと日記

参考書に載っていないシステム開発の心得

1 Mins read

今まで色々な言語の参考書を読んできたが、肝心なことが書かれていないと思い、世の中に一言(笑)

開発者に一番重要で必要なスキルは、Log出力機能を付けることだ!
 
1番の狙いとしては不正エラーを捉えることが目的で、後はおまけで色々と適材適所に仕掛けて、ほしい情報を出力すればいい。

じっくりテストをしたとしても運用を開始して本番環境で、ほぼ必ずと言ってよいほど、簡単には分からないエラーが発生する。その際、確実に問題点を絞り出すことが非常に重要となるので、この為だけに仕掛けると言っても過言ではない。この機能があるとないとでは大違いである。

当たり前だが、プログラム内は目に見えない。Log出力してあれば見える形でユーザーに対し「これで大丈夫です」と説明する材料となり、自信を持って説明することが出来る。また説明する開発者もアタフタせずにすむ。(笑)

開発する場合は正常なルートを初めは作ってしまいがちだが、一番はじめにLog出力機能を考えて作成する。最近ではLog4など色々と言語にぶら下がっている出力機能もあるので自作しても良いし、既存のLogClassを使用しても良い。

機能としては、出力機能、出力停止機能、出力先変更機能は最低ほしい。フラグやPathは定数をきっておいても良い。

最低限ほしい出力内容は日時、どこから出力されたか、ステータスはエラーなのかログなのかの切り分け情報、内容と四つはおさえてほしい。もちろんそのシステムにより、必要な情報は出力する。Web系アプリならマルチスレッドでの動作な使用ユーザー情報(IDなど)も必要で可能であればDBへ出力してもいい。

このDBへの書き込みはDB接続を前提としているので接続自体に問題が発生した時に捉えられないことがあるので、基本はローカルにログを吐いて、DB接続が確認できたらDBへも吐き出させるのが有効。(毎日夜中の1時になど)

DB出力は注意が必要で、プログラムエラーのログを吐こうとしたらDB接続エラーとなることが考えられる。エラーのエラーは本末転倒になる。DB出力は十二分に確認が必要。またシステム負荷の度合をみながら設置すること。

■Logを出力するタイミング
・エラー時
・単体起動時、単体終了時
・重要な箇所(DB更新など)

言語に存在し、余裕があればThrow系と連携をとると最適になる。

本当に硬いシステムの中身はLog出力機能が充実しているものであり、不安定なシステムにはLog機能が充実していないことが多い。

これが出来て一人前?・・・当たり前(苦笑)

Read more
Office日記

このメッセージ内の余分な改行が削除されました。

1 Mins read

Outlook2007を新たにインストして数日・・・・

「あれ?メールの表示がおかしい???」

「改行が無くなってる?」

「なんで???」

「そういえば、2003の時もあったなぁ」

ってこと皆さんはありませんか?

ふとヘッダー部分をみると「このメッセージ内の余分な改行が削除されました。」のメッセージが・・・

「余分な改行じゃないんだよ、この〇ソAIがぁ」と込み上げてくるのを抑えて(苦笑)

オプション → メールオプション → 改行の削除のチェックを外しましょう!

それにしてもこの機能がJapanでデフォルトONってのはどうなの?MSさん

Read more