2012-01-16 2 views
0

外部システムとのインタフェースがあり、そこからフラットファイルを取得して処理します。現在のところ、ファイルがftpの場所にあるかどうかをチェックし、存在する場合は処理します。 私は最近、メッセージブローカーとしてファイルシステムを利用することが悪い考えであることを読んだので、私はこの質問に答えています。誰かが、このような状況が他のツールの使用に適しているかどうかを明確にすることができますか? 私たちはJavaベースのアプリケーションです。外部システムでデータを転送する技術

答えて

2

最初に質問する必要があるのは「それは機能していますか?」です。

答えが「はい」の場合は、それが悪い考えであると読んだだけで、変更については気をつけてください。私はチョコレートがあなたのために悪い得ることを読んだが、私はは、このようなファイルはあなたの知識がなくても、削除、またはしようとしているとして、あなたがに実行することができます潜在的な問題があります

:-)それをあきらめていませんよ(前者の場合のパーミッション、後者の場合はセンチネルファイルやコンテンツチェックの使用などの両方を軽減する方法がありますが)半分だけ転送されたプロセスファイル

私自身、IBMのMQやJMSなどのメッセージキューイングシステムを好むだろう。なぜなら、上記の2番目のパラグラフのように、 :

  • 問題は、現在の解決策では現れます。または
  • 不要なリワークのために余裕を持ってお金を払っています。

最後の箇条書きは展開が必要です。作業は不要であるかもしれませんが(特に存在しない問題を修正するという観点から)、パフォーマンスやセキュリティを向上させたり、メンテナンスの労力を削減したりすることができれば、必ずしもそれを無駄にするわけではありません。

+0

私は完全に同意します。 "フラグファイル"のポーリングは、このような状況では完全に適切なことです。それには何も間違っています。 – paulsm4

+0

これはメッセージブローカーとして使用されるファイルシステムには当てはまりませんが、これは基本的に独自のメッセージングシステム(Derek C. Ashmore; J2EE Architect's handbook)を作成するのと同じですか?現在のソリューションは機能しますが、将来的にこれらを実装するために使用できる最適なアプローチが何であるかを知りたがっています。 – sarego

+0

@sarego、いいえ、それほどではありませんが、「独自のメッセージブローカーを作成する」は含まれていません。私が克服しようとしているのは、おそらくファイルシステムベースのメッセージキューイングシステムを一から作成するべきではありませんが、すでにそこにあるものを捨てないでください。最善の方法は、最初から始める場合は、MQのような既に構築され、非常によくテストされたメッセージキューイング製品を使用することです。 – paxdiablo

0

ファイルを同期するためにデータベースを使用します。ファイルの場所を指すデータベースを用意します。ファイルが完全に転送されたときにのみ、データベースにエントリを入れます。これにより、完成したファイルを確実に取得できます。ファイルシステムをポーリングするのではなく、新しいエントリが存在するかどうかを確認するためにデータベースをポーリングできます。ポーリングメカニズムのための非常に簡単なセットアップ。フォルダに新しいファイルが表示されたことを知らせたい場合は、メッセージキューを取得する必要があります。

関連する問題