2013-12-21 115 views
1

我在我的應用程序中使用EJB MDB 3.0和WAS 7服務器。我有7個MDB,因此在WAS服務器上創建了7個隊列和7個激活規範。我已將所有7個激活規範maxPoolDepth設置爲6,並將資源適配器客戶屬性concurrentSession設置爲1,將maxConnections設置爲10. DataSource maxConnections設置爲60.MDB基本上使用消息詳細信息更新Solid DB。問題是當數千條消息在隊列中發佈時,應用程序正在創建太多數據庫連接(超過60個),導致數據庫性能問題。所以我想我需要限制每秒處理的消息數量。MDB消息限制

如果我設置激活規格maxPoolDepth,那麼是否需要在WAS控制檯上創建WorkManager和/或調度程序,但是我沒有在應用程序中配置WorkManager和TimerManager的位置。因爲我只有ejb-jar-bnd.xml(配置消息驅動bean)和Spring bean配置XML文件。在這種情況下,我是否也需要TimerManager?或者有沒有其他方法可以通過更新MDB本身中的一些註釋來控制消息限制?

此外,在Activation Spec上設置maxPoolDepth屬性和給MDA本身賦予@ActivationConfigProperty(propertyName =「maxSession」,propertyValue =「6」)Annotation之間有什麼區別?

回答

0

論ACTICATION規格CONFIGS:

管理控制檯>資源> JMS>激活規範有一個設置

「最大併發MDB每個端點調用」

我通常把我的10.你可能想要玩這個號碼。