中间件
iteye_7726
这个作者很懒,什么都没留下…
展开
-
glassfish对ejb cache的监控
打开ejb监控,可以看到sessionBeans,看不到Entity Beans。下面是段精彩的回答:"Entity Beans" is really a misnomer, specifically in the EJB context today.In EJB2, when we had CMP and BMP Entity Beans (we still do, but...),...原创 2009-12-29 20:14:05 · 129 阅读 · 0 评论 -
EJB 的事务与timer
1)设定时间间隔后能重复定时的Timer 在EJB 2.1规范中定义的Timer有两种,一种是single-event timers,另一种是interval timers。single-event timers在它的生命周期中只产生一次timeout,而interval timers可以在每经过一段时间间隔后产生一次timeout。 2)Timer的持久性 ...原创 2012-11-02 15:21:10 · 215 阅读 · 0 评论 -
EJB transction, BMT, CMT,setRollbackOnly
So, you have two choices: BMT and CMT.(unless you're an entity, in which case you're CMT)With BMT, your job is to demarcate the start and end of the transaction.You use your context (EJBContext)...原创 2012-11-02 15:22:59 · 221 阅读 · 0 评论 -
ActiveMq中Session的事务与消息过期
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 a...原创 2013-11-07 11:52:39 · 358 阅读 · 0 评论 -
以JMS标准接口访问IBM MQ
IBM MQ是广泛应用的消息中间件,如果实际项目中消息中间件只有IBM MQ,那么可以用IBM MQ提供的包来访问。如果想让客户端代码通用,支持所有JMS标准的MQ,就需要以JMS标准方式访问。参考这个帖子,关键是如何获得连接MQ的java.jms.Connection。对于IBM MQ不能以传入url的方式获得Connection,只能以JNDI查找的方式获得Connection。...2013-11-08 09:57:36 · 959 阅读 · 0 评论 -
Active MQ5.7版在NIO模式下SSL通信的问题以及后续版本的解决
Active MQ 5.7版在NIO模式下SSL通信可能会出现BufferUnderFlowException异常。NIO模式下SSL通信的工作类为 org.apache.activemq.transport.nio.NIOSSLTransport,数据包传输格式为数据长度dataL +数据内容dataContent,所以基本的命令处理算法是这样的 1 //得到数据包长度ne...原创 2013-11-11 09:35:00 · 171 阅读 · 0 评论 -
ActiveMQ中ActiveMQBytesMessage类型可能会丢失数据的问题及解决
ActiveMQBytesMessage类型的消息在特殊情况下会丢失数据,就是在被拷贝前设置消息的某个属性。下面是测试代码: producer代码MessageProducer producer;//initialize Connection, Session, Producer......byte[] bs = "bytes message".getBytes();...原创 2013-11-23 12:00:14 · 2004 阅读 · 0 评论 -
activemq 持久化topic处理过程及其消息游标轮转问题的解决方案
如果消息是持久化的,activemq收到消息后会存储在持久性cursor中。对于非持久化消息,会存储在File Cursor中。从名称上File Cursor是持久性cursor,实际上activemq把FilePendingMessageCursor作为非持久性cursor。File Cursor首先在内存中保存消息的引用,如果内存使用量达到上限,那么会把消息引用保存到临时文件中,这...原创 2013-12-04 09:17:30 · 414 阅读 · 0 评论 -
Activemq 在大流量下出现内存耗尽的情况以及解决方案
在大量消息持续发送到broker的情况下,当broker到消费者之间的网络满了以后,broker的消息无法发送出去,导致在TransportConnection的dispatchQueue中堆积的消息越来越多。PendingMessageCursor中的消息不能被及时消费,导致broker判断消费者为慢消费者。当broker的内存被耗尽后JVM会频繁的进行full gc,由于消息不能被回收,所...原创 2014-01-13 12:41:03 · 4438 阅读 · 0 评论 -
Activemq prefetch extension的含义
Prefetch extension用于一条消息被发送出去但是没有收到确认回复的情况。如果设置了usePrefetchExtension为true,那么在代理分发消息数量达到预取值后,,代理仍然会继续分发消息。例如,如果prefetch size=10,代理分发了10条消息而没有收到确认回复,如果usePrefetchExtension为true ,则代理会继续分发另外10条消息。如果us...2014-01-14 13:47:56 · 167 阅读 · 0 评论 -
tomcat中valve和servlet filter的区别
Valve是位于Catalina容器中的组件,可以插入到请求处理pipeline中,对请求做某些处理。Servlet filter的作用与valve相同,不同的是valve是Tomcat的私有机制,与tomcat的基础架构/API是紧耦合的。Servlet API是公有的标准,所有的Web容器都支持filter机制。所以valve不是跨web容器的,filter是可以的。另一个重要的区别是...原创 2011-04-14 17:32:45 · 494 阅读 · 0 评论 -
尽量使用Glassfish's naming provider而不是Java SE CosNaming JNDI provider
Java SE CosNaming JNDI provider的问题:第一,它用于获得Corba或者RMI-IIOP对象,而不是数据源这样的对象。第二,对于获得RMI-IIOP对象也是有局限性的,对于Remote EJBs,CosNmaing只支持EJB 2.1 Remote view (不是EJB 3.0)第三,使用CosNaming不能充分利用Glassfsih的ORB的能力。...原创 2010-08-05 17:48:31 · 138 阅读 · 0 评论 -
中间件开发-各种中间件的常识
什么是中间件中间件是分布计算机系统中集成各个组成的软件粘接剂。也有人把中间件定义为网络环境中一组为许多应用需要的、可复用和可扩充的服务或(资源相关的)功能。"Middleware can be viewed as a reusable, expandable set of services and functions that are commonly needed by many a...原创 2009-06-10 14:43:06 · 1178 阅读 · 0 评论 -
OSGi实现Equinox与应用服务器
Equinox项目是Eclipse开源组织提供的OSGi框架的实现。Eclipse自3.0版本开始,其内核移植到OSGi框架上。通过OSGi框架强大的组件控制,交互和管理能力,再加上Eclipse插件的自有特点,Eclipse开源框架得到了跳跃式的发展。同时,OSGi规范得益于Eclipse IDE环境庞大的使用者,OSGi联盟也进入了快速发展时期。OSGi作为应用服务器的基础架构已经成为...原创 2009-06-14 13:23:21 · 148 阅读 · 0 评论 -
远程访问jboss的方法
jboss有个特点,在本机启动之后,只能在本机的网页访问 http://localhost:8080,在其他机器上访问不了jboss机器。解决方法:在目录jboss-5.1.0.GA\server\default\deploy\jbossweb.sar下,编辑文件server.xml,找到这句: ...2009-07-03 13:53:27 · 138 阅读 · 0 评论 -
提高glassfish启动速度的方法
设置参数set -Dcom.sun.enterprise.server.ThreadedSystemAppStartup=true 可以强迫glassfish以多线程的方式启动系统应用。ThreadedSystemAppStartup的缺省值为false,glassfish会顺序的启动系统应用。...原创 2010-01-28 16:25:21 · 369 阅读 · 0 评论 -
RabbitMQ vs Apache ActiveMQ vs Apache qpid
[url]http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/[/url]6 May, 2010RabbitMQ vs Apache ActiveMQ vs Apache qpidPosted by Bhavin TurakhiaWe need a simple message que...原创 2010-09-25 22:23:09 · 221 阅读 · 0 评论 -
glassfish中同时调试多个server instance的方法
修改domain.xm,从cluster的java-config的-Xrunjdwp option中删除address属性。这会导致JVM为instance选择一个随机的debug port。在server log中可以看到选择的port number。例如: * Before: debug-options="-Xdebug -Xrunjdwp:t...2010-03-03 12:05:20 · 161 阅读 · 0 评论 -
I/O模型
Unix的5种I/O模型1、阻塞I/O2、非阻塞I/O3、I/O复用(select、poll、linux 2.6种改进的epoll)4、信号驱动IO(SIGIO)5、异步I/O(POSIX的aio_系列函数)同步I/O和异步IOPOSIX把这两个术语定义如下:同步I/O操作导致请求进程阻塞,直至操作完成异步I/O操作不导致请求阻塞。根据上...2010-04-20 13:24:34 · 86 阅读 · 0 评论 -
glassfish中对连接池中的连接有效性检查
Glassfish的connnection pool管理着连接的池。由于用了池,连接可能会失效,比如网络故障或者数据库服务器重启,连接都会关闭。这时候用户请求使用一个连接,会发生连接失败。要解决这个问题,在连接池的配置页面,启用连接验证,配置项的"is-connection-validation-required"为true, 选择验证方法为 table,这意味着池会尝试查询表,如果失败,pool...原创 2010-06-22 09:58:35 · 250 阅读 · 0 评论 -
判断端口是否被占用的方法
在glassfish的NetUtils中,是这样判断的[code="java"]try { ServerSocket ss = new ServerSocket(port); ss.close(); return true; } catch (Exception e) { return false; }[/code]...原创 2010-06-26 17:16:57 · 355 阅读 · 0 评论 -
ActiveMQ,InactivityIOException: Channel was inactive for too (>30000) long的问题分析
ActiveMQ集群中包括broker1和broker2,在broker1上建立connector连接到broker2。当两个broker启动后,在没有生产者、消费者的情况下,broker1持续出现InactivityIOException,不断断开链接并重连。测试发现在broker2上useInactivityMonitor设置为false。分析结果如下:useInactivityM...原创 2014-12-11 17:54:20 · 1354 阅读 · 0 评论