`
文章列表
Traffic Control ,简称TC,主要是在输出端口处建立一个队列进行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子网的网络号的流量控制。流量控制器TC,其基本的功能模块为队列、分类和过滤器。Linux内核中支持的队列有,Class Based Queue ,Token Bucket Flow ,CSZ ,First In First Out ,Priority ,TEQL ,SFQ ,ATM ,RED。这里我们讨论的队列与分类都是基于CBQ(Class Based Queue)的,而过滤器是基于路由(Route)的。   TC的一些常用命令: 网卡限速: eth ...
 在linux32上编译c程序,程序依赖apr,在编译时出现下面的错误:   /apr-1/apr.h:358: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘apr_off_t’   经过调查,发现是在32位机器上,编译c程序时需要说明要支持大文件,给CFLAGS增加设置 CFLAGS=-D_LARGEFILE64_SOURCE 编译通过   参考:http://stackoverflow.com/questions/2102821/linking-apache-libraries#     ...
在tomcat的webapps目录下,可以部署多个应用,例如应用的名称为appName,则访问该应用的url为: host:port/appName 如果需要以host:port/ 路径来访问该应用,可以设置server.xml的Context属性 <Context path="" docBase="appName" />   其中docBase是应用存放的位置,path是访问路径 这样设置后可以用两种路径访问名为appName的应用,即:host:port/appName以及host:port/ 由于tomcat在加载app ...
ActiveMQ集群中包括broker1和broker2,在broker1上建立connector连接到broker2。当两个broker启动后,在没有生产者、消费者的情况下,broker1持续出现InactivityIOException,不断断开链接并重连。测试发现在broker2上useInactivityMonitor设置为false。 分析结果如下: useInactivityMonitor在客户端和服务器端有不同的含义。 在客户端,useInactivityMonitor为true意味着AbstractInactivityMonitor会定时检查读取的消息数量。如果数量没有 ...
  对于gradle2.0以前的版本,在build.gradle的最后加上 tasks.withType(Compile) { options.encoding = "UTF-8" }      对于gradle2.0以后的版本,在build.gradle的最后加上 tasks.withType(JavaCompile) { options.encoding = "UTF-8" }   Compile 已经被重命名为 JavaCompile.  要设置 Groovy sources, 使用tasks.withTy ...
在C#中调用C++的DLL碰到了蹊跷的问题,C++暴露如下接口:   void func(StructA* a)      该函数的参数为一个结构体指针。在C#代码中调用该函数,C++中得到该指针,这里的值是正确的,然后将该指针赋予C++代码中的一个结构体指针变量,后面再取该变量时,结构体中的一个变量总是错误的值,其他值都是对的。经过分析认为原因可能是该指针变量的值在C#环境中被改动了,解决方案为在C++中得到该指针后对其做深拷贝,后面使用深拷贝后的指针,该问题就消失了。
    IBM Workload Deployer为云计算提供了创建、部署和管理工作负载的解决方案。用户可以使用它从基本镜像来快速构建、部署虚拟系统,扩展镜像,定制镜像并形成可重用的部署单元。IBM Workload Deployer还提供以应用为中心的业务应用快速部署能力。IBM Workload Deployer带有标准和定制化的中间件虚拟镜像,能够监控应用负载需求条件并根据设定的服务标准等级调整资源分配或者优先级。     IBM Workload Deployer为预装的和定制化的中间件虚拟镜像和部署模式提供专用的存储。IBM Workload Deployer为私有云的快速部署和集 ...
java命令中用-d32和-d64来表明程序运行在32位或者64位环境。如果JVM本身不支持该参数,会报告错误: java -d32 Unrecognized option: -d32 Could not create the Java virtual machine.  当前仅有java hotspot server VM支持64位模式。选择 "-server"选项必须使用-d64;"-client"选项会忽略使用-d64;如果没有指定-d32或者-d64,则默认运行在32位模式。除非仅有64位系统。   目前在windows平台下jdk1 ...
    Prefetch extension用于一条消息被发送出去但是没有收到确认回复的情况。如果设置了usePrefetchExtension为true,那么在代理分发消息数量达到预取值后,,代理仍然会继续分发消息。例如,如果prefetch size=10,代理分发了10条消息而没有收到确认回复,如果usePrefetchExtension为true ,则代理会继续分发另外10条消息。如果usePrefetchExtension为false, 则代理不会再分发消息,直到收到了前面10条消息中某些消息的确认回复。
在大量消息持续发送到broker的情况下,当broker到消费者之间的网络满了以后,broker的消息无法发送出去,导致在TransportConnection的dispatchQueue中堆积的消息越来越多。PendingMessageCursor中的消息不能被及时消费,导致broker判断消费者为慢消费者。当broker的内存被耗尽后JVM会频繁的进行full gc,由于消息不能被回收,所以消息对象会从年轻代转移到老年代而不会释放内存,导致broker几乎停止对外服务。   这个问题的根本原因是ActiveMQ只对接收消息作了流量控制,但是没有发送消息堵塞的情况。需要根据消息发送情况 ...
    如果消息是持久化的,activemq收到消息后会存储在持久性cursor中。对于非持久化消息,会存储在File Cursor中。从名称上File Cursor是持久性cursor,实际上activemq把FilePendingMessageCursor作为非持久性cursor。File Cursor首先在内存中保存消息的引用,如果内存使用量达到上限,那么会把消息引用保存到临时文件中,这样就不会因为有大量消息没有被消费而导致OOM。当消息consumer启动时,mq收到消息会激活broker上的DurableTopicSubscrition,该subscription会检查当前的消息c ...
ActiveMQBytesMessage类型的消息在特殊情况下会丢失数据,就是在被拷贝前设置消息的某个属性。下面是测试代码:  producer代码 MessageProducer producer; //initialize Connection, Session, Producer ...... byte[] bs = "bytes message".getBytes(); BytesMessage message = session.createBytesMessage(); message.writeBytes(bs); for(int i ...
Active MQ 5.7版在NIO模式下SSL通信可能会出现BufferUnderFlowException异常。NIO模式下SSL通信的工作类为 org.apache.activemq.transport.nio.NIOSSLTransport,数据包传输格式为数据长度dataL +数据内容dataContent,所以基本的命令处理算法是这样的      1 //得到数据包长度 nextFrameSize = plain.getInt(); 2//为命令分配buffer,总长度为数据包长度 + 4,4是nextFrameSize自身的长度 currentBuffer = B ...
  IBM MQ是广泛应用的消息中间件,如果实际项目中消息中间件只有IBM MQ,那么可以用IBM MQ提供的包来访问。如果想让客户端代码通用,支持所有JMS标准的MQ,就需要以JMS标准方式访问。参考这个帖子, 关键是如何获得连接MQ的java.jms.Connection。对于IBM MQ不能以传入url的方式获得Connection,只能以JNDI查找的方式获得Connection。     public static final String icf = "com.sun.jndi.fscontext.RefFSContextFactory&qu ...
ActiveMQ有支持两种事务, JMS transactions - the commit() / rollback() methods on a Session (which is like doing commit() / rollback() on a JDBC connection) XA Transactions - where the XASession acts as an XAResource by communicating with the Message Broker, rather like a JDBC Connection takes place in a ...
Global site tag (gtag.js) - Google Analytics