Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何使async=false和alwaysSessionAsync=false在vm传输上工作?_Spring_Activemq - Fatal编程技术网

Spring 如何使async=false和alwaysSessionAsync=false在vm传输上工作?

Spring 如何使async=false和alwaysSessionAsync=false在vm传输上工作?,spring,activemq,Spring,Activemq,我需要实现一个消息传递场景,该场景使用来自多个目的地(主题)的消息。由于这些主题的吞吐量非常低,我使用springssimplemessagelistenercontainer让activemq将消息推送到适当的侦听器中 alwaysSessionAsync=false确保我与嵌入式代理的vm连接不会为每个会话创建一个线程(因为我每个侦听器有一个会话,数千个侦听器) 像这样,我的配置在内部activemq任务线程中启动simplemessagelistenercontainer,容器将其调度到线

我需要实现一个消息传递场景,该场景使用来自多个目的地(主题)的消息。由于这些主题的吞吐量非常低,我使用springs
simplemessagelistenercontainer
让activemq将消息推送到适当的侦听器中

alwaysSessionAsync=false确保我与嵌入式代理的vm连接不会为每个会话创建一个线程(因为我每个侦听器有一个会话,数千个侦听器)

像这样,我的配置在内部activemq任务线程中启动simplemessagelistenercontainer,容器将其调度到线程池中。不幸的是,activemq任务线程非常慢

因此,我想使用async=false(而不是jms.sendsync)来使用消息发送线程来处理消息,并将其推送到侦听器中,在该侦听器中,消息被调度到处理程序线程池中

不幸的是,这会导致死锁(根据yourkit)

如何使这两个属性工作?
或者:如何为异步发送加速嵌入式activemq?

async=false&;jms.copyMessageOnSend=false&;jms.useAncySend=false&;jms.alwaysSessionAsync=false&;jms.dispatchAsync=false

做我想做的事。但是,如果您在使用消息时发送消息,这将导致死锁