问题标签 [jboss-mdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12911 浏览

java - MDB 注释的可配置值

我正在尝试使用这种方法在我们的 EJB3 应用程序中接收邮件。简而言之,这意味着创建一个带有以下注释的 MDB:

我有这个工作,但情况不太理想:主机名、用户名和密码是硬编码的。在编译之前没有使用 ant 和 build.properties 替换这些值,我不知道如何将它们外部化。

使用 MBean 是理想的,但我不知道如何将值从 MBean 获取到 MDB 配置。

我该怎么做?

0 投票
4 回答
26422 浏览

java - glassfish 中的 Java 堆空间错误

我正在使用全新的 Glassfish 安装,几乎没有自定义。

我有一个消息驱动 Bean (ObjectUpdateMDB),它侦听一个主题,然后更新它在数据库中接收到的对象。有很多对象正在更新。运行一段时间后,我得到了这个异常:

看起来这是堆空间的问题。我需要调整堆空间做什么?应用服务器本身还是代理?我该怎么做呢?

0 投票
2 回答
2004 浏览

java - Ejb 3,消息驱动的 bean 与有状态会话 bean 合作?

嘿!我对 Java EE 和 Stackowerflow 都比较陌生,请善待 :-)

我有一堆设备触发 Java 消息,以便在任何状态更改时发送。这些设备通常在大约 30-90 分钟的时间间隔内处于活动状态。除了事件详细信息之外,每条事件消息都包含一个设备 ID。

我的应用程序的核心是订阅这些事件的消息驱动 bean。每次收到事件时,我都必须访问数据库以查找有关设备的一些信息。

如果我可以将有状态会话 bean 与每个活动设备相关联,那将是非常棒的!如果这是一个 Web 应用程序,我会使用 http 会话来存储有状态 bean 的句柄或引用(我是对的吗?)。有什么方法可以从我的消息 bean 中存档?

0 投票
1 回答
1830 浏览

jpa - REQUIRES_NEW 注释方法在没有事务的情况下执行?

我有一个无状态 bean 负责将实体持久化到数据库中。这个无状态 bean 由消息 bean 的 onMessage 方法调用。连线的事情是,在第一条消息上一切正常,但在下一条消息上,负责持久化的方法在事务外部调用,即使该方法使用 REQUIRES_NEW 注释。

调用 refresh 会触发以下异常:

引起:javax.persistence.TransactionRequiredException:没有事务正在进行

有任何想法吗?我对 JTA 还很陌生,所以我可能错过了一些重要的事情?

0 投票
1 回答
802 浏览

jboss - JBoss 4.0.5 MDB 配置

这个在打我,我一直想不通……所以就这样吧。我想在我的应用程序中添加一个 Message Drive Bean,它被打包为一个 .ear 文件

按照文档,我创建了一个 jboss.xml 和一个 ejb-jar.xml,我试图将它们放在 META-INF 和根目录以及 WEB-INF 上,但我只是不认为它工作(即MDB 永远不会加载,也不会收到消息。

我的耳朵文件看起来像:

0 投票
1 回答
3531 浏览

java - 消息驱动的 Bean 选择器 (JMS)

我最近发现了消息选择器

我的问题是:如何在运行时使选择器动态化?

假设消费者决定他们只想要具有“易碎是假”属性的消息

消费者能否在不重新部署 MDB 的情况下以某种方式更改选择器?

注意:我使用的是 Glassfish v2.1

0 投票
1 回答
2547 浏览

weblogic - 使用无状态会话 bean 后,MDB 是否应该调用 remove()?

我们多年前的 WebLogic J2EE 应用程序有一个使用无状态会话 bean 的消息驱动 bean。MDB onMessage 方法获取无状态会话 bean 的 home 接口,并调用 home 接口的create()方法来获取实际的无状态会话 bean 本身。

代码不会尝试缓存会话 bean,只是直接使用它:

MDB中没有对应remove()的调用。

我的问题是:在这种情况下不打电话是不是很糟糕remove()

我相当确定需要调用remove()一个有状态的会话 bean,但是对于 state less 是否需要调用对我来说不太清楚。remove()

我们最近进行了显着的性能改进,但突然开始在负载下耗尽有状态会话 bean,但有以下异常:

我们的 MDB 池设置为:

我们的无状态会话 bean 池设置为:

我的问题是,调用create()无状态会话 bean 的 MDB 是否也负责调用无状态会话remove()bean ?(该应用程序似乎已经运行多年而没有调用,但我想知道提高吞吐量是否暴露了一个旧错误。)remove()

0 投票
1 回答
1711 浏览

jdbc - 控制 JMS 服务器:创建的 MDBean 过多(weblogic)

我有一个执行延迟操作的应用程序。用户生成 100 万条消息,这些消息存储在 JMS 队列中,然后一个 MDBean 使用这些消息并执行一些操作并将数据存储在数据库中。由于 JMS Queue 工作得太快,它会尝试创建 100 万个 MDBean 实例,而这些实例又会尝试创建 100 万个数据库连接。由于 JDBC 连接池无法处理 100 万个连接请求,因此其中一些超时也就不足为奇了。

控制创建的 MDBean 数量的最佳解决方案是什么?100 万条消息最好由一定数量的不超过 JDBC 池中允许的连接数的 MDBean 处理

0 投票
6 回答
6105 浏览

java - JMS 消息驱动 Bean 工作者同步

我们刚刚开始构建我们的 JMS 架构并具有以下基本设置:

  1. 玻璃鱼 v2.1
  2. MDB 通过 TopicConnectionFactory 监听一个主题(都在本地服务器上)

现在,当有新消息到达时,MDB 会生成一个工作线程,即使我们已经按顺序传递消息,我们也需要一种同步机制,以便线程在并发处理请求之前检查特定条件。

这些线程有没有办法共享数据?或者是否有任何其他机制(除了数据库表/行锁)可以用于同步?

提前致谢。


澄清一下,我不是在创建自己的线程。正如每个人都正确指出的那样,容器为我做到了。让我用一个例子来帮助解释我的困境。

-消息 A 到达 t=0,它“创建”数据 id 1

-消息 B 到达 t=0.1,它“更新”数据 id 1

现在假设容器产生 2 个工作人员来处理 A 和 B,并且“创建”数据比更新它需要更多的时间,更新将更早处理并且没有效果。

为了更清楚,

-在处理消息 B 时,我会在 t=1 时查找数据 id 1(没有找到它,因此没有做任何事情就完成了)。

- 在 t=2 处理消息 A 时将创建数据 id 1。

0 投票
2 回答
172 浏览

jakarta-ee - 如何通知 web 模块有关在 MDB (EJB3.0) 中执行的作业状态?

我们正在使用消息驱动 Bean 来生成大型报告和处理持久任务。MDB 如何在没有客户端轮询的情况下通知 web 模块 fe 会话侦听器有关作业状态的信息?

提前致谢。