- 浏览: 183259 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (101)
- DataBase (8)
- Java (37)
- Software (14)
- JavaScript (8)
- XML (4)
- WebService (5)
- SharePoint (6)
- ESB (4)
- Algorithm&Data Structure (5)
- CloudFoundry (1)
- liferay (1)
- portal (1)
- System Analysis (1)
- Storm (2)
- linux (3)
- Server (1)
- elasticsearch (1)
- angular (1)
- spark (1)
- python (2)
- ELK (1)
- Resin (1)
- Flink (1)
- python AI (1)
最新评论
-
yuekinger:
若果 64bit 下正常 32位系统下不正常运行的 排除dll ...
Java 调用 C# DLL -
yuekinger:
Win764 系统下成功! 实现 java 调用 c++ 链接 ...
Java 调用 C# DLL -
sdasds:
sdasds 写道pp1314 写道x931100537 写道 ...
Java 调用 C# DLL -
sdasds:
pp1314 写道x931100537 写道Exception ...
Java 调用 C# DLL -
pp1314:
x931100537 写道Exception in threa ...
Java 调用 C# DLL
问题4:Networks of Brokers
在每个activemq server的配置文件activemq.xml里加入如下内容,每个activemq server都需要设置内容相类型的multicase,如果activemq的连接设置了安全权限,则需要在networkConnector元素中加入userName password内容。
问题3:使用http协议
activeMQ的运行版本是4.0,调用activeMQ的jar包进行收发消息时,需要将activeMQ server目录里的commons-httpclient-2.0.1.jar、xstream-1.1.2.jar、xmlpull-1.1.3.4d_b4_min.jar拷贝到activeMQ jar使用者的classpath环境里。
问题2:Java与C#通过ActiveMQ进行消息交互
情景1:Java发送消息,C#接收消息; 情景2:C#发送消息,Java接收消息。
写C#的AMQ客户端时,需要引用到Apache.NMS-1.1.0-bin和Apache.NMS.ActiveMQ-1.1.0-bin这两个文件包中的dll文件(下载地址:http://archive.apache.org/dist/activemq/apache-nms/1.1.0/);将Apache.NMS.ActiveMQ-1.1.0-bin中的nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中,使客户端可以找到AMQ这两个相关的配置信息文件。
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本是v2,该版本在incubator-activemq-4.0不存在,无法与他进行消息交互;在apache-activemq-4.1.2中存在,可以进行消息交互。
出现过的问题:
1)No IConnectionFactory implementation found for connection URI
未将nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中。
2)java.lang.IllegalArgumentException: Invalid version: 6, could not load org.apache.activemq.openwire.v6.MarshallerFactory
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本与incubator-activemq-4.0中的该类的v*包版本不一致。
C#的AMQ客户端代码,参见附件:AMQ Client For C sharp.zip
问题1:topic receive: The subscription does not exist (activemq 4.0)
问题原因:同一个consumer的selector发生了变化,参见下面方法中的第84行至第95行。
org.apache.activemq.broker.region.TopicRegion.addConsumer(ConnectionContext context, ConsumerInfo info)
解决方案:在 AbstractRegion.removeConsumer 方法中增加null保护处理。
void org.apache.activemq.broker.region.AbstractRegion.removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception
topic subscriber的不同selector会影响到TopicViewMBean.getConsumerCount()的计数个数,具有不同selector的topic subscriber被认为是不同的consumer
原始错误信息(来自于activemq的输出信息):
在每个activemq server的配置文件activemq.xml里加入如下内容,每个activemq server都需要设置内容相类型的multicase,如果activemq的连接设置了安全权限,则需要在networkConnector元素中加入userName password内容。
<transportConnectors> <transportConnector name="openfire" uri="tcp://localhost:61617" discoveryUri="multicast://openfire"/> </transportConnectors> <networkConnectors> <!-- by default just auto discover the other brokers --> <networkConnector name="openfire" uri="multicast://openfire" userName="publisher" password="password" /> </networkConnectors>
问题3:使用http协议
activeMQ的运行版本是4.0,调用activeMQ的jar包进行收发消息时,需要将activeMQ server目录里的commons-httpclient-2.0.1.jar、xstream-1.1.2.jar、xmlpull-1.1.3.4d_b4_min.jar拷贝到activeMQ jar使用者的classpath环境里。
问题2:Java与C#通过ActiveMQ进行消息交互
情景1:Java发送消息,C#接收消息; 情景2:C#发送消息,Java接收消息。
写C#的AMQ客户端时,需要引用到Apache.NMS-1.1.0-bin和Apache.NMS.ActiveMQ-1.1.0-bin这两个文件包中的dll文件(下载地址:http://archive.apache.org/dist/activemq/apache-nms/1.1.0/);将Apache.NMS.ActiveMQ-1.1.0-bin中的nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中,使客户端可以找到AMQ这两个相关的配置信息文件。
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本是v2,该版本在incubator-activemq-4.0不存在,无法与他进行消息交互;在apache-activemq-4.1.2中存在,可以进行消息交互。
出现过的问题:
1)No IConnectionFactory implementation found for connection URI
未将nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中。
2)java.lang.IllegalArgumentException: Invalid version: 6, could not load org.apache.activemq.openwire.v6.MarshallerFactory
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本与incubator-activemq-4.0中的该类的v*包版本不一致。
C#的AMQ客户端代码,参见附件:AMQ Client For C sharp.zip
问题1:topic receive: The subscription does not exist (activemq 4.0)
问题原因:同一个consumer的selector发生了变化,参见下面方法中的第84行至第95行。
org.apache.activemq.broker.region.TopicRegion.addConsumer(ConnectionContext context, ConsumerInfo info)
解决方案:在 AbstractRegion.removeConsumer 方法中增加null保护处理。
void org.apache.activemq.broker.region.AbstractRegion.removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception
public void removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception { Subscription sub = (Subscription) subscriptions.remove(info.getConsumerId()); // if( sub==null ) // throw new IllegalArgumentException("The subscription does not exist: "+info.getConsumerId()); if (sub != null) { // remove the subscription from all the matching queues. for (Iterator iter = destinationMap.get(info.getDestination()).iterator(); iter.hasNext();) { Destination dest = (Destination) iter.next(); dest.removeSubscription(context, sub); } destroySubscription(sub); } }
topic subscriber的不同selector会影响到TopicViewMBean.getConsumerCount()的计数个数,具有不同selector的topic subscriber被认为是不同的consumer
原始错误信息(来自于activemq的输出信息):
INFO Service - Sync error occurred: java.lang.IllegalArg umentException: The subscription does not exist: OFFLINE:1:2 java.lang.IllegalArgumentException: The subscription does not exist: OFFLINE:1:2 at org.apache.activemq.broker.region.AbstractRegion.removeConsumer(AbstractRegion.java:202) at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:92) at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:296) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) ......
- AMQ_Client_For_C_sharp.zip (847.1 KB)
- 下载次数: 138
发表评论
-
实时推送
2018-12-20 15:47 807初探和实现websocket心跳重连 http://www ... -
Resin 维护
2018-06-13 09:42 696<!--[if gte mso 9]>< ... -
自动化测试
2016-12-13 17:16 6511、linux下 执行JMeter测试脚本 在机器的 ... -
Spark 记录
2016-07-15 09:47 7671、java.lang.StackOverflowError ... -
Java 日常操作
2016-03-15 09:57 632Eclipse 闪退 1、增加内存设置 -vmargs ... -
maven技术分享(一) 标准maven项目的搭建
2014-08-27 14:19 0其中的nexus 的maven 私服搭建,参考网上的资料。 ... -
Java 调用 C# DLL
2014-04-11 16:57 15779Java无法直接调用C# dll,需要通过经过桥接的方式, ... -
Apache 负载均衡的环境搭建 (使用Tomcat作为web server)
2012-03-02 17:21 2912前言 使用tomcat作为web server,搭建Apach ... -
知识归纳索引
2012-02-23 09:57 1216本片文章记录了读过的书籍和文章,并将原始资料作为附件上传。 ... -
acegi 开发笔记
2011-12-26 17:36 8406. 编译acegi-security-1.0.7-s ... -
Mule 开发问题记录
2011-11-30 16:54 17511. A Mule runtime distribution ... -
Log4j 学习笔记
2011-09-14 12:00 979为了彻底掌握log4j的使用,有必要去了解log4j的实现结构 ... -
ESB 研究
2011-08-24 15:08 1315Introduction to ESB 一些ESB的名词 E ... -
struts 开发笔记
2011-08-24 10:44 13771,struts默认根据http request请求流中的键值 ... -
JMS,ActiveMQ 内部实现的研究
2011-08-23 10:28 10741问题1,AMQ 4的openWireFormat与AMQ 5的 ... -
Java 学习笔记:1,类引导,反射机制下的对象创建
2011-08-22 17:39 9971, 类引导,反射机制下的对象创建 类引导最终会字节流传给na ... -
设计模式
2011-08-04 11:38 10471, 设计模式在JDK中的体现 参见stackoverflow ... -
ActiveMQ 开发
2011-07-29 13:28 26921, 配置activemq.xml时,修改<broker ... -
Java 中的 中文编码
2011-05-26 13:56 54241. java.net.URLEncoder.encode j ... -
Spring + Hibernate 例子(使用petclinic, 利用ant)
2011-03-03 16:30 1067Spring + Hibernate 例子 1. 使用Spr ...
相关推荐
特别是在高并发、分布式环境中,ActiveMQ能够帮助解决诸如系统解耦、最终一致性等问题,为构建复杂的企业级应用提供强有力的支持。同时,与Spring框架的良好集成进一步简化了ActiveMQ的使用,使得开发者能够更加专注...
- **日志配置**:日志记录可以帮助排查问题,可以定制日志级别和输出格式。 7. **高可用与集群**: - **镜像队列**:通过镜像队列,可以确保消息在多个Broker间复制,提高可用性。 - **集群部署**:通过集群,...
Apache ActiveMQ是业界广泛使用的开源消息中间件,它遵循Java Message Service (JMS) 规范,提供高效、可靠的异步通信解决方案。标题中的"ActiveMQ.rar"表明这是一个关于ActiveMQ的压缩包文件,可能包含了该中间件的...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议...通过学习和实践提供的例子,开发者能够更好地掌握如何在实际项目中利用ActiveMQ来解决异步通信、解耦组件、实现可靠的数据交换等问题。
- 日志记录:ActiveMQ的日志可以帮助诊断问题,可以通过调整日志级别获取更多调试信息。 - JMX工具:利用JMX(Java Management Extensions)可以远程管理和监控ActiveMQ实例。 总结,Apache ActiveMQ 5.10.0是一...
- **监控与日志**: 配置监控工具和日志记录,及时发现并解决潜在问题。 - **安全策略**: 实施适当的安全措施,如认证、加密等,保护消息传输的安全性。 #### 四、ActiveMQ进阶技术 **4.1 ActiveMQ如何实现消息的...
本项目基于Springboot和ActiveMQ实现了一种分布式事务解决方案,它利用了“本地事件表”和ActiveMQ来协调跨服务的数据操作。接下来,我们将深入探讨这个方案的各个组成部分以及它们如何协同工作。 首先,Springboot...
即使文件上传过程中出现错误,由于消息的持久化特性,可以确保消息不会丢失,待问题解决后重新尝试上传。 6. **负载均衡与扩展**:随着系统规模的扩大,可能需要增加ActiveMQ实例来分担负载。ActiveMQ支持集群部署...
- **问题排查**:文档可能提供常见问题及解决方法,帮助开发者快速解决问题。 5. **ActiveMQ技术总结文档** - **高级特性**:介绍如虚拟主题、网络连接、消息筛选等高级特性及其用法。 - **性能优化**:探讨如何...
通过这些资源,你可以了解如何创建生产者和消费者、如何配置和优化ActiveMQ,以及如何解决常见问题。同时,动手实践是提升技能的关键,尝试搭建一个简单的ActiveMQ环境,并编写一些示例应用来发送和接收消息。 总之...
10. **社区支持**:作为Apache软件基金会的项目,ActiveMQ拥有活跃的社区,提供了丰富的文档、示例和问题解答,方便用户学习和解决问题。 总的来说,"apache-activemq-5.12.0.zip"提供了全面的功能和强大的消息处理...
7. **监控与日志**:学习使用ActiveMQ的监控工具和日志记录,以便于诊断和解决问题。 8. **高级特性**:如消息优先级、分页、虚拟主题(Virtual Topics)、网络代理(Network of Brokers)等。 通过以上内容,...
- **Apache ActiveMQ社区**:Apache社区提供了丰富的文档和讨论资源,帮助用户解决问题和学习新技术。 - **API文档**:ActiveMQ的API文档详细解释了如何使用其提供的类和方法,便于开发人员集成和扩展。 综上所述...
总之,Apache ActiveMQ作为一款强大的消息中间件,为开发者提供了灵活、高性能的解决方案,以实现分布式系统间的异步通信,提升应用程序的可伸缩性和可靠性。5.6.0版本虽然已有些许年代,但它仍然代表了ActiveMQ成熟...
9. **插件系统**: ActiveMQ 具有强大的插件系统,开发者可以根据需求定制功能,例如添加新的协议支持、日志记录或者监控工具。 10. **嵌入式使用**: ActiveMQ 可以作为应用程序的一部分被嵌入,这样可以减少网络...
Apache ActiveMQ是业界广泛使用的开源消息中间件,它基于Java Message Service (JMS) 规范,提供高效、可靠的异步通信解决方案。ActiveMQ 5.13.2是该软件的一个版本,此版本可能包含了对之前版本的改进、修复和新...
综上所述,“apache-activemq-5.15.2-bin.zip”压缩包包含了一整套在Windows上运行Apache ActiveMQ所需的组件和服务,为企业级应用提供了强大的消息传递解决方案。用户不仅可以利用其进行异步处理,还可以构建分布式...
- **更好的监控**:可能改进了监控和日志记录,使用户更容易诊断和解决问题。 - **兼容性改进**:可能提升了与其他软件(如Java版本、操作系统等)的兼容性。 **使用ActiveMQ的场景:** 1. **微服务架构**:在...
5. **log4j-1.2.14.jar**:这是一个广泛使用的日志记录框架,用于记录ActiveMQ运行时的调试和诊断信息。 6. **backport-util-concurrent-2.1.jar**:这是一个Java并发工具包的回移植,为不支持Java 5及以上版本的...