activeMQ查看连接线程

ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(
        ActiveMQConnection.DEFAULT_USER,
        ActiveMQConnection.DEFAULT_PASSWORD,
        ActiveMQConnection.DEFAULT_BROKER_URL);
Thread.currentThread().getThreadGroup().list();
/*
java.lang.ThreadGroup[name=main,maxpri=10]
        Thread[main,5,main]
*/

QueueConnection connection = factory.createQueueConnection();
Thread.currentThread().getThreadGroup().list();
/*2个线程,多了1个
java.lang.ThreadGroup[name=main,maxpri=10]
        Thread[main,5,main]
        Thread[ActiveMQ Task,5,main]    
*/

//Starts (or restarts) a connection‘s delivery of incoming messages.
connection.start();
Thread.currentThread().getThreadGroup().list();
/*6个线程,多了4个
java.lang.ThreadGroup[name=main,maxpri=10]
        Thread[main,5,main]
        Thread[ActiveMQ Task,5,main]
        Thread[ActiveMQ Transport: tcp://localhost/127.0.0.1:61616,5,main]
        Thread[InactivityMonitor ReadCheck,5,main]
        Thread[InactivityMonitor WriteCheck,5,main]
        Thread[ActiveMQ Task,5,main]
*/

/*
 * createQueueSession(boolean transacted, int acknowledgeMode)
 * transacted - indicates whether the session is transacted        
 * acknowledgeMode - indicates whether the consumer or the client will acknowledge any messages it receives; 
 *   ignored if the session is transacted. 
 *   Legal values are Session.AUTO_ACKNOWLEDGE, Session.CLIENT_ACKNOWLEDGE, and Session.DUPS_OK_ACKNOWLEDGE.
*/
QueueSession session = connection.createQueueSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("foo.bar");
MessageConsumer consumer = session.createConsumer(queue);
Thread.currentThread().getThreadGroup().list();
/*7个线程,多了1个
java.lang.ThreadGroup[name=main,maxpri=10]
        Thread[main,5,main]
        Thread[ActiveMQ Task,5,main]
        Thread[ActiveMQ Transport: tcp://localhost/127.0.0.1:61616,5,main]
        Thread[InactivityMonitor ReadCheck,5,main]
        Thread[InactivityMonitor WriteCheck,5,main]
        Thread[ActiveMQ Task,5,main]
        Thread[ActiveMQ Session Task,7,main]
*/

consumer.setMessageListener(new MessageListener() {
    @Override
    public void onMessage(Message msg) {
        if (msg instanceof TextMessage) {
            TextMessage txtMsg = (TextMessage) msg;
            try {
                System.out.println(txtMsg.getText());
            } catch (JMSException e) {
                e.printStackTrace();
            }
        }
    }

});

/*
TODO:同时运行两次再看状态,127.0.0.1:8161/admin/queues.jsp发消息测试一个队列多个监听效果。
C:\>netstat -na | grep 127.0.0.1:61616 
TCP    127.0.0.1:55897        127.0.0.1:61616        ESTABLISHED
TCP    127.0.0.1:61616        127.0.0.1:55897        ESTABLISHED
*/
if (System.in.read() > 0) {
    session.close();
    connection.close();
}
时间: 2024-10-17 15:03:00

activeMQ查看连接线程的相关文章

关于MySQL用户会话及连接线程

0.概念理解:用户会话和连接线程是什么关系? 用户会话和用户连接线程是一一对应的关系,一个会话就一个用户连接线程. 问题描述: 如果系统因为执行了一个非常大的dml或者ddl操作导致系统hang住,我们想断掉这个操作,怎么办? 解决办法: 1.kill thread:杀死用户的会话 但是时间长,效果不佳:前滚+回滚,前提是已经进行了很长时间,回滚就需要更多的时间 2.kill mysqld进程:推荐,用这种杀进程的方式,速度快 kill -9 进程号(ps aux 查看进程号) 数据库先前滚,不

多线程程序 怎样查看每个线程的cpu占用

可以用下面的命令将 cpu 占用率高的线程找出来: ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu 这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序.这样就可以找到占用处理器的线程了. 直接使用 ps Hh -eo pid,tid,pcpu | sort -nk3 |tail 获取对于的进程号和线程号,然后跳转到3.查看哪个进程线程

linux查看修改线程默认栈空间大小(ulimit -s)

linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大小值 临时改变栈空间大小:ulimit -s 102400, 即修改为100M 3.可以在/etc/rc.local 内 加入 ulimit -s 102400 则可以开机就设置栈空间大小 4.在/etc/security/limits.conf 中也可以改变栈空间大小: #<domain> &l

查看jdk 线程 日志

命令:jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 这些命令 必须 在 linux jdk bin 路径 下执行 eq: ./jstack 10303 即可  如果想把 内容打印到 文本里 即 ./jstack 10303 >111.log  打印 到 111.log文件 中,然后 sz  111.log 下载到本地查看. jmap -histo pid(查看实例) 怎么知道当前linux系统下的jdk路径,可以ps aux|grep jdk 可以看出路径,一般为/

windows查看进程线程的命令pslist

pslist是用命令行查看线程:ProcessExplorer是图形化的查看线程,都在附件中. 1.查看进程 tasklist or  pslist -t Name                             Pid Pri Thd  Hnd      VM      WS    PrivIdle                               0   0   2    0       0      28       0  System                  

activemq 安全连接

一.client连接broker 1.1 simple xml configuration activemq.xml配置 <plugins>            <simpleAuthenticationPlugin>               <users>                   <authenticationUser username="admin" password="password"  group

MySQL连接线程kill利器之pt-kill

如何每10秒检查一次,杀死指定用户超过100秒的查询? pt-kill --no-version-check --host 127.0.0.1 --port 3306 --user 'xxxxxx' --password 'xxxxxx' --charset utf8 --match-command Query --match-user 指定的用户名 --busy-time 100 --kill --victims all --interval 10 --print 常用参数说明 no-vers

通过top命令和thread dump查看JAVA线程死循环的案例

这篇文章是由一个面试的问题引出的.面试官问曰:"尔可知如何定位JAVA程序的死循环?".思虑良久,未有良策,回来查阅了下资料,经过一番曲折感觉自己解决问题的能力又提高了不少.以下是个例子,不一定很合适但足以说明一些问题. 1.查看进程ID: [[email protected] ~]$ jps3230 jar 2.按CPU使用率展示当前JAVA程序的所有线程: 其实这个地方按CPU的使用率来判定还不太好理解,以运行时间来判定可能更能说明问题些,具体的top命令可参考另外一篇文章(万能的

分布式-信息方式-ActiveMQ静态网络连接信息回流功能

"丢失"的消息 有这样的场景, broker1和 broker2通过 netwoskconnector连接,一些 consumers连接到 broker1,消费 broker2上的消息.消息先被 broker1从 broker2上消费掉,然后转发给这些 consumers.不幸的是转发部分消息的时候 broker1重启了,这些 consumer发现 broker1连接失败,通过 failover连接到 broker2上去了,但是有一部分他们还没有消费的消息被 broker2已经分发到了