草庐IT

ACTIVEMQ

全部标签

java - ActiveMQ OutOfMemory 无法创建更多线程

我正在模拟服务器过载,但出现此错误:java.lang.OutOfMemoryError:unabletocreatenewnativethread我读过这个页面http://activemq.apache.org/javalangoutofmemory.html,我可以增加内存大小。但是我该怎么做呢?我需要修改哪个文件?我尝试通过bin/activemq脚本传递参数,但没有成功。 最佳答案 您的案例对应于massivenumberofthreads。有3种方法可以解决:减少线程数(即文档中的-Dorg.apache.activem

java - 嵌入式 ActiveMQ 代理需要哪些依赖项?

我正在尝试使用嵌入式ActiveMQ代理进行单元测试,如下所述:http://activemq.apache.org/how-to-unit-test-jms-code.html我需要包含哪些Maven依赖项?目前我只有这些:javaxjavaee-api6.0providedorg.apache.activemqactivemq-core5.5.0这是我得到的:java.lang.ClassFormatError:AbsentCodeattributeinmethodthatisnotnativeorabstractinclassfilejavax/jms/JMSException尝

java - 无法使用内置的 BrokerService.stop 调用关闭嵌入式 activeMQ 服务

我一直在使用嵌入式activeMQ服务器配置(配置与说明嵌入式activeMQ服务器/监听器概念的示例非常相似)。作为应用程序的一部分,我有一个监视目录的监视线程。我没有终止进程来关闭activeMQ服务器,而是引入了一个“STOP”文件检查,如果该文件存在,服务器将关闭。我试图通过调用代理上的停止函数来完成关闭:(broker.stop())这似乎关闭了服务。但是,在System.exit时,会引发异常错误:我观察到另一篇提到类似行为的帖子的回复表明“这是正常的”行为。另一篇文章指出我应该禁用shutdownhook(通过代理的Spring配置,通过设置useShutdownHook

java - 如何在ssl中激活mq

我正在尝试通过jms(activemq)发送消息,但我希望它采用ssl协议(protocol)。它现在实际上在tcp中工作。我使用jndi,带有一个虚拟主题和2个队列。有人可以帮我吗,我试过了,但我卡住了,服务器无法启动:http://activemq.apache.org/how-do-i-use-ssl.html谢谢编辑:日志显示:“对实体“needClientAuth”的引用必须以“;”结尾分隔符。” 最佳答案 我会回答我自己的问题:首先在..../apache-activemq-5.11.1/conf/activemq.xm

java - 为 JMS 监听器处理 Spring Security 的首选方法是什么?

我有一个有点单一的Java应用程序,它围绕我的业务服务层的Spring@Servicebeans构建。通常,我的每个业务服务方法都有SpringSecurity注释(例如@PreAuthorize)来为该操作执行适当的授权规则。在主要的web应用程序流程中,这工作得很好;每个Web请求都隐含地由sessioncookie等处理身份验证。但是,当涉及到与其他“内部”系统的各种集成点时,我看不出一个明确的解决方案。例如,我将使用JMS队列中的方法,该队列已经在代理中定义了自己的身份验证和授权规则,因此我想隐式地“信任”我收到的消息。然而,就目前情况而言,像这样的足够简单的Camel路线:W

java - 启用 stomp 后的 activemq oom

在Activemq服务器上启用STOMP协议(protocol)(​​之前仅启用默认协议(protocol))后,它开始因oom而失败。我只有1个客户使用STOMP。它可以工作1周而不会失败或在重新启动后一天失败。这是配置文件:elementisusedtoconfiguretheActiveMQbroker.-->"selectorAware="true"/>"producerFlowControl="false">"producerFlowControl="false">...securitypluginsconfig...开始参数:/usr/java/default/bin/ja

java - 无法让 ActiveMQ 重新发送我的消息

我有一个用Java编写的单线程ActiveMQ消费者。我想要做的就是从队列中接收()消息,尝试将其发送到Web服务,如果成功则确认()它。如果Web服务调用失败,我希望消息保留在队列中并在超时后重新发送。它或多或少地工作,除了重新发送部分:每次我重新启动我的消费者时,它会为仍在队列中的每条消息获取一条消息,但在发送失败后,消息永远不会重新发送。我的代码如下:publicbooleaninit()throwsJMSException,FileNotFoundException,IOException{ActiveMQConnectionFactoryconnectionFactory=n

java - 为 ActiveMQ JMS 连接使用用户名和密码

ApacheActiveMQ使用用户名和密码创建安全连接。InitialContextinitCtx=newInitialContext();javax.jms.ConnectionFactoryqcf=(javax.jms.ConnectionFactory)initCtx.lookup(factoryName);Connectionconnection=qcf.createConnection(userName,password);我在哪里可以找到这些凭据。这些用户名和密码是否在任何ActiveMQ配置文件中配置? 最佳答案 回

java - ActiveMQ Web 控制台不适用于嵌入式代理

我有一个完全通过java代码配置的嵌入式代理(没有可部署的xml文件)。当我将浏览器指向Web控制台时,我只收到404,并且lsof显示8161上没有任何内容正在监听。是否可以仅使用Java代码使用Web控制台?我用ActiveMQ自带的webserver没问题,8161端口也没问题。 最佳答案 如果您使用Java代码而不使用Spring,那么只需自己创建自己的servlet容器并在其中注册管理WAR。这exampleshowshowtodoitinJavacode这是从Web控制台的源代码中获取的。请注意,您可能需要多次试验和错误

java - 通过 JNDI 使用 ActiveMQ

我正在尝试使用JNDI创建与ActiveMQ的简单连接。我有名为“example.A”的队列。根据ActiveMQdocumentationtouchingJNDI,如果我想通过JNDI使用ConectionFactories和队列(主题),我必须将jndi.properties文件放在我的类路径中。据我了解,默认情况下,activeMQ类路径是%activemq%/conf目录。我没有改变它。所以我的队列有这个属性:queue.MyQueue=example.A我已经为使用JNDI的ActiveMQ创建了java客户端类,如下所示:PropertiesjndiParameters=n