2011-11-18 5 views
2

ファイルをキュー(IBM-MQ)から取り出すソリューションを実装します。メッセージは、デキュー、処理、およびアーカイブ(ストア)する必要がある10〜20種類のxmlメッセージになります。しかし、メッセージに含まれているデータをDBに保存する際に、ソースファイルを保持したいので、アーカイブプロセスから生成されるFileIdを保持し、メタデータと共に保存する必要があります。キューからファイルを処理し、アーカイブしてDBに格納する

私は最もスループットの高いものを見つけようとしていますか?

要件:

  1. は、ファイルのアーカイブを保管してください。
  2. メッセージから解析されたデータ(xmlブロブではありません)を保存します。
  3. アーカイブからソースファイルIDを保持します。
  4. スケールが大幅に拡大する可能性があるソリューションを実装してください....現在、おそらく1時間に40-50,000件のメッセージがあります。

基本的に私の現在のボトルネックは、アーカイブプロセスとデータ処理/ dbのロードがシリアルである(アーカイブが処理され、XML解析/ロードを開始する前に成功していると思われます).....これを達成するためのより良い方法があるかどうかは分かりませんでした。

同じキューでリッスンする他のアプリケーションサーバーを追加して、必要に応じてメッセージを並行して処理できるとします。可能な限り処理を実行することで、DBをボトルネックとして排除しようとします(xml blobをDBに送ることはできますが、XMLシュレッディングを実行する必要があります)。

+1

この質問に答えるには、XMLファイルのサイズが "処理される"必要があることを知る必要があります。 – Brannon

答えて

0
  1. DBAと協力してデータベースへの書き込みを調整します。
  2. 複数の読み取りをテストし、より良いスループットが得られるかどうかを確認してください。

私の経験では、複数の読者が必要な場合がありますが、その数は多くの要因に左右されます。それを試して、何がベットであるかを見てください。

関連する問題