メッセージが 1 時間あたり 70K XML の割合で受信し続けるアプリケーションがあります。これらの XML メッセージを消費し、中間キューに格納します。すべてのメッセージを 24 時間で消費するという SLA を満たす必要があるため、中間キューが作成されます。24 時間以内に XMLS を使用して内部キューにロードできます。内部キューにロードした後、XMLS を処理し (解析し、ほとんど変換を適用せず、ほとんど検証を実行しません)、データを高度に正規化されたデータ モデルに格納します。データモデルがパフォーマンスに大きな影響を与える可能性があることはわかっていますが、残念ながら、データモデルを制御することはできません。現在、2,000 件のメッセージを処理するのに 3.5 分かかっており、これは許容できません。2K メッセージの場合は 1 分に短縮したいと考えています。これまでに行ったことは次のとおりです。
1) 該当する場合は適用指数。
2) XML の解析に XMLBeans を使用します (各 XML のサイズはそれほど大きくありません)
3) 不要な検証、変換などをすべて削除し ました。
アプリケーションの実行環境:
オペレーティング システム: RHEL 5.4 64 ビット
プラットフォーム: JDK 1.6.0_17、64 ビット
データベース: Oracle 11g R2 64 ビット (2 ノード クラスター)
外部 MQ: IBM キュー
内部一時ストレージ MQ: JBoss MQ
アプリケーション サーバー: Jboss 5.1 .0.GA (EAP バージョン)
XML メッセージを消費して処理する順序は非常に重要であるため、並列処理を行うことはできません。
パフォーマンスを向上させるために他にできることはありますか?