
单例的默认@ConcurrencyManagement为ConcurrencyManagementType.CONTAINER,默认@Lock为LockType.WRITE。基本上,这意味着每个方法(包括generateReports)都被有效地标记为synced关键字,这意味着在generateReport运行时,checkQueueState将被阻止。
考虑使用ConcurrencyManagement(ConcurrencyManagementType.BEAN)或@Lock(LockType.READ)。如果上述建议均无济于事,我怀疑您已找到Glassfish的错误。
顺便说一句,您可能需要persistent =
false,因为即使您的服务器处于脱机状态,您也不必保证checkQueueState方法每5秒触发一次。换句话说,当您使服务器重新联机时,您可能不需要容器触发“追赶”。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)