システム間接続のはまりパターン
中〜大規模開発のシステム間接続でハマったときのメモ。
連携方法は様々だが 徹底解説! ITアーキテクトとは何か?(4):システム間連携のアーキテクチャ、4つの基本パターンと正しい適用のポイント (1/2) - @IT で解説されているアプリケーション連携が多い。
LAN アナライザーを使えばすぐ分かりそうなものが大半だが、禁止されている現場が多いのかもしれない。
接続できません!どうなってるんですか!?
ステルス接続
こちらのログには出力なし。LAN アナライザーでもパケットを拾えない。
原因は…
- 相手の設定が間違っていてテスト環境を向いていた
- ネットワーク経路で止められていた (ルータ、プロキシーなど)
- 相手のマシンがテスト環境のマシンだった
404 not found
URL が間違っている。
原因は相手の設定ミスなのだが「こちらはすぐに直せないのでそちらでなんとかしてください!」…ここでなんとかするのも仕事である。
応答がありません!
"接続できない" から一歩前進。
原因は…
- こちらからはちゃんと応答しているのだが、受信した相手プロセス (スレッド) がなぜか死ぬ
- 上記同様だが、相手プロセスが無限ループで無応答に見える
エラーが返ってくるんですが!どうなってるんですか!?
原因のほとんどは「エラーを返すのが正しい」パターン。
データが送られてこないんですが!
原因は…
- こちらからはちゃんと送っているのだが、受信した相手プロセス (スレッド) がなぜか死ぬ
- 上記同様だが、相手プロセスが無限ループで無応答に見える
- 上記同様だが、相手の処理が遅すぎてタイムアウト
変わり種: そちらのデータを受信すると CPU 100% になるんですが!
ビジー無限ループ (送ったデータは正しかった)
*1:まず自分の書いたプログラムを疑うのは大前提