【发布时间】:2017-01-03 23:57:26
【问题描述】:
在 Weblogic 12c 中,我怎样才能只有一个消息驱动 bean 的实例/线程。
我找不到此处定义的“max-beans-in-free-pool”的等效注释属性 https://docs.oracle.com/cd/E24329_01/web.1211/e24977/summary.htm#WLMDB1385
Java 代码:-
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "jms/myConnectionFactory"),
@ActivationConfigProperty(propertyName = "destinationJndiName", propertyValue = "jms/myQueue"),
@ActivationConfigProperty(propertyName = "MaxPoolSize", propertyValue = "1") })
public class JayMDB implements MessageListener {
额外参考:https://docs.oracle.com/cd/E24329_01/web.1211/e24390/mdbtuning.htm#PERFM271
【问题讨论】:
-
这似乎是一个瓶颈。在请求涌入的高峰期,您为什么不想要一个更大的池?
-
你试过了吗?可能适用于 WLS 12c stackoverflow.com/questions/8939292/…
-
@Filip 谢谢伙计,我会试试的。实际上我没有使用 weblogic-application.xml 并且没有使用任何 xml 并且只使用了所有注释。希望我能够混合使用 xml 和注释。
-
@duffymo 谢谢。我明白。但另一方面,如果我们抽取并发调用,第三方 SOAP Webservices api 会出现死锁错误......因此试图一次限制一个调用。
-
Web 服务应该是无状态和幂等的。我会调查死锁并修复它,而不是让调速器阻碍你的系统。
标签: java ejb weblogic12c message-driven-bean