Ballerina JMS连接池?

Ballerina JMS连接池?,jms,connection-pooling,ballerina,Jms,Connection Pooling,Ballerina,我有一个小的Ballerina程序,从一个JMS队列接收消息,通过JDBC调用存储过程,然后向另一个JMS队列发送回复 DB可以并行处理多个请求,所以我为它设置了一个JDBC连接池。如何设置类似的JMS连接池 或者我应该只拥有一个Ballerina服务库吗?我对Ballerina不太熟悉,但通读一遍Ballerina似乎可以使用Java库。如果是这样的话,那么你应该退房。它是从成熟的ActiveMQ JMS池派生出来的,并经过增强以提供JMS 2.0功能。它构建在之上,并且是通用的(即与Acti

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

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


或者我应该只拥有一个Ballerina服务库吗?

我对Ballerina不太熟悉,但通读一遍Ballerina似乎可以使用Java库。如果是这样的话,那么你应该退房。它是从成熟的ActiveMQ JMS池派生出来的,并经过增强以提供JMS 2.0功能。它构建在之上,并且是通用的(即与ActiveMQ没有联系),因此它可以与您选择的任何JMS实现一起工作


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

当前的ballerina实现不支持任何JMS资源池

然而,芭蕾舞演员的模型应该允许并行处理,而不需要显式编码

使用以下要点中的代码,处理是并行完成的

它生成了以下日志:

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 

你能在这里澄清用例吗?对于建立大量连接的大型应用程序,通常需要JMS连接池。但是,如果您有一个“小型”程序,则不清楚您为什么需要JMS连接池,特别是因为发送JMS消息基本上已经是异步的(即,在调用
send
返回之前,您不必等待消息被处理)与返回前必须处理的DB请求不同,该服务基本上是一个存储过程包装器:它从请求队列读取输入参数,调用SP并将结果写入响应队列。我需要增加它的吞吐量,DB服务器可以并行处理多个请求。在Camel中,我将创建一个池JDBC连接工厂和一个池JMS连接工厂,用于同时接收多个消息。由于ballerina不公开任何直接访问Java类的方法,建议的池库将需要重新实现ballerina JMS子系统。很高兴知道。谢谢你的澄清。