草庐IT

jms-serializer

全部标签

java - Spring 与 JMS + ActiveMQ 集成 : Messages remain in JDBC Message Store after reconnect

我正在尝试使用SpringIntegration和ActiveMQ消息代理配置JMS。我的出站channel应该由JDBC消息存储支持,以防止数据丢失,例如经纪人或我的应用程序离线。到目前为止,我的配置似乎有效,但JDBC消息存储的行为并不像我预期的那样。如果我断开代理,发送到出站channel的消息将按预期保留,但在重新连接后它们保留在数据库中并且不会发送到队列。但是,我在重新连接后发送的更多消息到达队列,如果我重新启动我的应用程序,持久消息也会最终发送......application-context.xml-->context.xml我正在使用EcomxProducerGatew

java - Jmeter:在发布 JMS 消息时对多个线程使用相同的 ConnectionFactory

我正在使用Jmeter的JMS点对点采样器来测试将大量JMS消息发布到队列时的性能。Jmeter目前为每个线程(根据提供的线程数)创建一个新的QueueConnectionFactory和QueueConnection。我想这不是它通过前端发生的方式,在前端,单个连接工厂处理不同的线程。我们如何确保它只为所有线程创建一个连接?Jmeter中有任何选项吗?还是我们应该修改代码?如果有人能指导我正确的方向,那就太好了。 最佳答案 从2.7版开始,JMeter没有创建一个QueueConnection并跨线程共享它的选项。只有Initia

java - JMS 主题生存时间

我正在开发一个由一些模块组成的应用程序。在其中一个模块中,有人创建了一个主题生产者来发布关于主题的消息,但该模块没有主题消费者来使消息出队。主题生产者使用setTimeToLive()将生存时间属性设置为300000毫秒。我预计如果没有消费者,消息会在300000毫秒内过期并被释放。该应用程序部署在Tomcat6.0.36上,它使用外部ActiveMQ服务器来处理队列和主题。在主题设置下的MBeans选项卡中使用JavaVisualVM监视ActiveMQ我看到变量“EnqueueCount”在增长,但我不明白生存时间设置是否对这些消息生效。我希望看到计数器“ExpiredCount”

java - ActiveMQ JMS ping

ApacheActivemq5.2.0我的应用程序监听三个主题的消息并发送两个主题的消息。当我的应用程序被“webping”时,我想检查这些主题是否存在。我想知道这是否可能。这是我的观察,Advisorymessages可以用于此,但它们仅在生产者/消费者加入时才发送消息。这不是我想要的。我只想检查我是否可以向出站主题发送消息以及可以接收关于入站主题的消息。自定义心跳解决方案。我可以让每个生产者每5秒发送一次心跳消息,而监听器不处理心跳消息而是更新标志/时间戳。这样我就知道该主题已经启动并正在运行。ApacheActiveMQ中是否内置了类似心跳的功能?还是“针对某个主题的ping”?

java - JMS/HornetQ = 如何从客户端以编程方式创建 JMS 队列?

我知道可以通过hornetq-jmx.xml配置文件在HornetQ中创建JMS队列。但我想从客户端执行此操作?我试过:HornetQJMSClient.createQueue(queueName);但这似乎没有创建队列(在hornetq服务器上)?当我尝试为此队列创建消费者时,我总是会收到一个队列未知的异常。如果能提供有关如何从客户端创建JMS队列的建议,我将不胜感激。(我根本不想在客户端或服务器上使用JNDI,如果可能的话)。更新:我不介意使用任何HornetQs核心API(与JMSAPI相对)从客户端创建队列。我的问题是:是否有任何方法可以从客户端创建队列(使用JMSApis或使

java - 更改 com.sun.org.apache.xml.internal.serialize.XMLSerializer & com.sun.org.apache.xml.internal.serialize.OutputFormat

使用com.sun.org.apache.xml.internal.serialize.XMLSerializer和com.sun.org.apache.xml.internal.serialize.OutputFormat导致使用java1.6编译时出现一些错误。我找到的解决方案是在添加xerces后使用org.apache.xml.serialize.XMLSerializer和org.apache.xml.serialize.OutputFormat。问题是这些类已被弃用。在不触及代码的情况下,我可以使用什么来替换它们?谢谢这是我使用的依赖项:xercesxercesImpl2.

java - XA/JTA 事务 : JMS message arrives before DB changes are visible

上下文是:生产者(JTA事务PT)正在向JMS队列发送消息并进行数据库更新;consumer(JTAtransactionCT)在同一个队列上监听并在收到消息时读取DB;应用服务器-WebLogic,数据库-Oracle。我观察到,有时CT(还?)无法看到PT的数据库更改,如果已收到相应的JMS消息(PTpromise了吗?)。似乎JTA不能保证这种一致性(这在JurgenHoller的演讲“TransactionChoicesforPerformance”中也得到了证实)。避免此类问题的最佳方法是什么(明显的除外-不使用JTA)?谢谢。 最佳答案

java - 从 PL/SQL 调用/使用 JMS

是否可以从PL/SQL调用/使用JAVA消息服务(JMS)?我知道我们可以从pl/SQL调用java,但是调用java不同于调用JMS队列或JMS主题,因为JMS依赖于JNDI资源命名,当我们使用基于JNDI的资源时,我们首先必须将它们部署在一些然后使用J2EE容器。所以调用JMS总是涉及部署在一些J2EE容器上,然后利用它的功能。回到我之前提到的问题,我想从PL/SQL使用JMS以及它如何处理部署和基于JNDI的资源……? 最佳答案 您的问题中有两个问题需要单独解决:JNDI不,调用JMS服务不依赖于JNDI资源,也不需要将JMS

java - Apache Camel JMS - 异常没有通过请求/回复返回给调用者

我使用ApacheCamel和JMS创建了一个简单的请求/回复设置。一切正常-调用被分派(dispatch)到服务器端服务,结果返回到客户端。只有当服务器端出现异常时,这个异常才不会返回给调用者。异常出现在服务器上,客户端收到超时。我想在客户端接收异常。据我了解可用的文档,我想要的应该是默认行为。我还尝试使用onException子句或为回传设置另一条路线,但所有这些都无济于事。所以我的问题是我在设置中缺少什么来将异常返回给调用者?详细信息如下(代码已简化):用于通信的JMS队列部署在独立的JBoss中(7.1.1.FINAL)JNDI用于查找工厂以创建到队列的连接客户端当前是运行在J

java - 如何保证JMS的可靠传递

我认为很多(在我的例子中是Spring)使用JMS的应用程序可能会遵循此工作流:DatabaseA===>Producer===>JMSQueue===>Consumer===>DatabaseB那么可靠性就是一个问题。假设当DatabaseA中的数据记录应始终标记为delivered时,当包含数据记录的消息真正被消费并将数据保存在Database中时B。然后就是问题了:据我所知,目前JMS协议(protocol)没有定义任何函数将确认从consumer发送到producer,而只定义到MOM,因此实际的consumer-to-producer确认方法因JMS提供者而异。那么是否意味着