OpenDolphin-1.3をMacOSX Tiger上で構築する記録です。1台のMac上にサーバも構築してみようと考えています。このブログでは、元町皮ふ科様のサイトを参考に、それを忠実に(?)再現しようとした試みです。 バイブルサイトのURIは、こちらです。

2008年7月31日木曜日

ORCAとOpenDolphinの連携 (原因究明編)

前回は、OpenDolphin-1.2.5のユーザーズマニュアルを参考にORCAとOpenDolphinの連携のためのセッティングを行ってきましたが、失敗してしまいました。
ORCA上でも受付情報の送信が「遮断」と出ていますので、送信自体が失敗しているようです。

で、いろいろ調べてみますと、どうやら株式会社デジタルグローブ社のウェブサイトに「Dolphin-ORCA連携」というページがあるではありませんか。
こちらに、より詳細な設定が記載されていました。
主な違いは、jma-receiptサーバのセッティングでしたが、これはOpenDolphinからの情報を受け取る方ですので、とりあえず受け付け情報がOpenDolphinにわたらない原因ではなさそうです。

一応、情報の内容としては、ウェブページの方が新しそうでしたので、ウェブページに準拠してセッティングを変更してみましたが、やはり受付情報の受け渡しがうまく行きません。

よくわからなかったので、Debian側にWiresharkをインストールしパケットをキャプチャしてみました。結果、どうやらDebian側から192.168.0.5にSYNパケットは投げられていますが、それに対する応答が無いようです。

ここで、どうやってソケット接続をしているのかソースにあたってみようと言う無謀な試みに出ました。ここで、おかしな事に気がつきました。
Dolphin側では30秒ごとに新規受付があるかどうか確認しているとの事ですが、ORCAのClaimでは、どうやら受付登録時にその情報を送信しているだけのようです。つまり、DolphinがClaimを介してORCAにその都度問い合わせをしているのであれば、Claimに情報を要求するようなシステムが必要になるはずです。でも、どうやらそういった仕組みはなさそうです。
では、30秒ごとの確認ってなに???

で、ソースを見てみた感じの推測ですが、OpenDolphinでソケットサーバを用意しておいて、ORCAから送信される受付完了のClaim送信を受信しているようです。それをいったんOpenDolphinで自前のデータベースに登録して、30秒ごとにOpenDolphinが自前のデータベースに検索をかけているという事のようです。

この仕組みからすると、ORCAが受付完了の情報をClaim送信する際に、OpenDolphin側のClaimサーバが起動していなければ、その情報はOpenDolphin側に受け渡されない事になります。で、OpenDolphinのClaimサーバは、OpenDolphinのクライアントに含まれていますので、つまりOpenDolphinを起動する前の受付情報はOpenDolphinに渡されない事になりそうです。

この辺は、もしOpenDolphin側のClaimサーバをOpenDolphinクライアントと分離できれば、たとえばORCA起動PCで同時に立ち上げておけば受付情報が抜ける問題については解決できそうです。
もしくは、どうせOpenDolphinはORCAが無いと導入が難しいので、Claimという粗結合を廃して直接ORCAのデータベースをたたいて情報を得るようにしてしまえば良いと思うのですが、、、。

話はそれましたが、Javaでは具体的にソケット通信の詳細をコーディングしているわけではなさそうなので、なぜOpenDolphinがSYNに応答しないのか分かりませんでした。

0 件のコメント:

自己紹介

ちょっとしたTipsのメモです。