当前位置: 首页 > 知识库问答 >
问题:

Spring MDP:轮询间隔?

慕容渊
2023-03-14

客户使用此模式:

  • Apache Camel和CXF JMS接收器
  • 它们在内部使用Spring MDP(消息驱动POJO)来实现它们的消息接收器
  • 它们部署在IBM WebSphere Application Server 7上
  • 队列管理器是IBM Websphere MQ 6
  • Spring MDP使用JNDI队列连接工厂绑定到队列管理器--支持连接池和会话池
<bean id="ibmmq" class="org.apache.camel.component.jms.JmsComponent">
    <property name="configuration" ref="jmsConfig"/>
</bean>

<!-- JNDI reference to the queue manager -->
<jee:jndi-lookup id="myTargetConnectionFactory" jndi-name="${mq.queueconnectionfactory}"/>

<bean id="jmsDestResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver"/>

<bean id="myConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="targetConnectionFactory" ref="myTargetConnectionFactory"/>
    <property name="username" value="SOME_USER"/>
    <property name="password" value=""/>
</bean>

<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">

    <property name="connectionFactory" ref="${mq.connectionfactorybean}" />        
    <property name="destinationResolver" ref="jmsDestResolver" />        
    <property name="concurrentConsumers" value="1" />
    <property name="maxConcurrentConsumers" value="1" />

    <!--
        NOTE: If we try to use a cache without a transactionManager we get "Connection closed" errors
    -->
    <property name="cacheLevelName" value="CACHE_NONE" />
</bean>

共有1个答案

墨高杰
2023-03-14

我不确定CXF,但对于骆驼听众来说:

JmsConfiguration中的默认JMS使用者似乎属于“default”类型。方法,它将从Spring实现一个DefaultMessageListenerContainer。

来自Javadoc

我在这里不确定,但Spring文档表明简单的消息侦听器容器不支持XA事务。这可能是需要考虑的问题,因为您正在应用程序服务器中运行。

 类似资料:
  • 和此xhtml: 我想动态更新primefaces轮询组件的间隔时间,但不改变我的示例代码。睡眠总是每1秒执行一次。 我的代码中有什么错误?

  • 问题内容: 我正在研究ajax长期轮询,但感到困惑。传统的ajax调用和长时间轮询有什么不同 此示例仅以递归方式调用服务器。与setInterval中的传统调用不同。 问题答案: 顾名思义,“ 长时间轮询” 意味着长时间轮询某些内容。 这是实际过程的开始,您对服务器上的某个脚本进行ajax调用,在本例中为,您需要使服务器脚本(例如)足够智能,以便仅在所需数据可用时才响应请求,该脚本应等待指定的时间

  • 我有一个Kafka主题,并为其附加了1个消费者(主题只有1个分区)。现在对于超时,我使用默认值(心跳:3秒,会话超时:10秒,轮询超时:5分钟)。 根据留档,轮询超时定义消费者必须在其他代理将该消费者从消费者组中删除之前处理消息。现在假设,消费者只需1分钟即可完成处理消息。 现在我有两个问题

  • 我正在使用Kafka-Connect API实现一个自定义源连接器,可用于轮询REST-API并将JSON响应沉入Kafka主题。 现在我想知道如何实现SourceTask的轮询间隔,JDBC连接器如何提供一个轮询间隔。在某个地方,我必须将线程设置为睡眠状态,但是我必须在哪里执行此操作?

  • 是否使用@kafkaListener在间隔基中轮询()Kafka消息?如何在特定时间内阻止KafkaListenerEndpointRegistry轮询消息

  • 问题内容: 我最近在StackOverflow上问了一个有关我的功能的问题,人们建议我使用Ajax Long Polling。我花了几天的时间研究该主题,并尝试编写基本的长轮询代码,但是这些代码都没有起作用,而且我什么也做不了。 这是我的基本功能: 有人能够告诉我如何将其转变为基本的长轮询功能,或者甚至直接指向我需要到达的路径。很感谢任何形式的帮助。谢谢! 问题答案: 通常(即,当不使用长时间轮询