芭蕾舞女演员JMS连接池?

时间:2018-12-04 21:14:48

标签: jms connection-pooling ballerina

我有一个小的Ballerina程序,我从一个JMS队列接收消息,通过JDBC调用存储过程,然后将答复发送到另一个JMS队列。

DB可以并行处理多个请求,因此我为其设置了JDBC连接池。如何设置类似的JMS连接池?

或者我应该只拥有一组芭蕾舞女演员服务吗?

2 个答案:

答案 0 :(得分:1)

当前的芭蕾舞演员实施不支持任何JMS资源池。

但是,芭蕾舞女演员的模型应该允许并行处理,而无需显式编码。

使用来自以下GIST jmsreceiver.bal的代码,该处理是并行完成的。

它产生了以下日志:

Initiating service(s) in 'receiver.bal'
2018-12-08 18:38:38,963 INFO  [ballerina/jms] - Message receiver created for queue MyQueue 
2018-12-08 18:38:57,445 INFO  [] - rcv ID:EMS-SERVER.55865C0BF16270:1500 
2018-12-08 18:38:58,461 INFO  [] - snd ID:EMS-SERVER.55865C0BF16270:1500 
2018-12-08 18:38:58,466 INFO  [] - rcv ID:EMS-SERVER.55865C0BF16270:1501 
2018-12-08 18:38:58,474 INFO  [] - rcv ID:EMS-SERVER.55865C0BF16271:1502 
2018-12-08 18:38:59,469 INFO  [] - snd ID:EMS-SERVER.55865C0BF16270:1501 
2018-12-08 18:38:59,472 INFO  [] - rcv ID:EMS-SERVER.55865C0BF16270:1503 
2018-12-08 18:38:59,478 INFO  [] - snd ID:EMS-SERVER.55865C0BF16271:1502 

答案 1 :(得分:0)

我对Ballerina并不是很熟悉,但是通读Ballerina JMS tutorial看来Ballerina可以使用Java库。如果是这种情况,那么您应该签出https://github.com/messaginghub/pooled-jms。它是从成熟的ActiveMQ JMS Pool中派生出来的,并经过增强以提供JMS 2.0功能。它建立在Apache Commons Pool之上,并且是通用的(即与ActiveMQ没有关系),因此可以与您选择的任何JMS实现一起使用。

Here's a simple example如何使用它。您只需要实例化一个JmsPoolConnectionFactory,然后使用通常会从JNDI获得的连接工厂调用setConnectionFactory。之后,您可以像使用任何普通的JMS连接工厂一样使用它。