我正在尝试在 oracle 中创建对多个消费者队列的持久订阅。使用 JMS Spring 支持。这是一个 Grails 应用程序。
我的弹簧代码如下:
myQueueConnectionFactory(uk.my.MyQueueConnectionFactory) {
dataSource = ref("dataSourceListener")
}
myMessageListener(uk.my.MyMessageListener)
jms.'listener-container'( 'client-id':'clientid', 'connection-factory':'myQueueConnectionFactory', 'acknowledge':'auto', 'concurrency':'1', 'destination-type': 'topic' ) {
jms.'listener'( destination:'my.queue', ref:'myMessageListener', subscription: 'subscription' )
}
我已经指定了客户端 ID 和订阅值。但似乎每次我与队列建立连接时,都会注册一个新的消费者。显示为“TSUB_....”之类的内容如果我停止并启动我的应用程序,则会创建另一个使用者,并且在应用程序关闭时添加到队列中的任何消息都不会出队。
谁能指出我创建持久订阅的正确方向。我原以为我的“client-id”和“subscription”值会为我做这件事。我需要在其他地方指定这些吗?
谢谢!