特定のタスク(マージ)を実行するのに40スレッド、別のタスクを実行するスレッドが20個必要です(永続性)。マージには持続性より約5倍の時間がかかります。 私はこの並行性を達成するためにメッセージ駆動型Beanを使用しています。MDB並行インスタンスが起動しない
は、私は次のような構成
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "testing/RecordMerger"),
@ActivationConfigProperty(propertyName = "maxSessions", propertyValue = "40")
})
で1 MDB RecordMergerを作成し、私は永続化のために同じようなことをした
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "testing/RecordPersistor"),
@ActivationConfigProperty(propertyName = "maxSessions", propertyValue = "20")
})
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = MyJmsResourceAdapter
InstanceLimit = 40
</Container>
を次のようにtomee.xmlでの私の設定ですレコードマージキューは非常に高速な生産をしているので、常に新しい要素がありますレコードマージキュー。レコードマージキューは、データをレコード持続性キューに入れます。
私が直面している問題は、レコードの合併が40スレッドを使用するように設定されていると、私のtomemerサーバがレコードの永続性のMDBをインスタンス化せず、レコードがそのキューに蓄積されるということです。レコードの合併のmaxSessionプロパティを20に減らすと、両方のMDBがインスタンス化され始めます。
MDBの両方が実行され、レコードの合併が40のスレッドを持っていることを確認するために、必要なことを教えてください。