我尝试使用spring-boot-starter-data-r2dbc和oracle-r2dbc运行r2dbc应用程序,但它给我一个异常“org . spring framework . Dao . dataaccessresourcefailureexception:无法获得r2dbc连接;嵌套异常为Java . lang . illegalstateexception:此发布者不支持多个订阅者。
这是我的属性文件:
spring.r2dbc.url=r2dbc:oracle:thin://localhost:1521:orcl
spring.r2dbc.username=user
spring.r2dbc.password=password
和 gradle 文件的依赖部分:
dependencies {
ktlint 'com.pinterest:ktlint:0.41.0'
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
implementation('com.fasterxml.jackson.module:jackson-module-kotlin')
implementation('org.codehaus.janino:janino')
implementation('org.springframework.cloud:spring-cloud-starter-stream-kafka')
implementation('org.springframework.cloud:spring-cloud-stream')
implementation('org.springframework.boot:spring-boot-configuration-processor')
implementation('org.apache.httpcomponents:httpclient:4.5.8')
implementation('org.springframework.retry:spring-retry')
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation('org.springframework.boot:spring-boot-starter-data-r2dbc')
implementation('com.oracle.database.r2dbc:oracle-r2dbc')
implementation('com.oracle.database.jdbc:ojdbc11:21.1.0.0')
}
此处的零件代码导致错误:
message.flatMap { fromMessage ->
Mono
.zip(
listOf(
dimensionAdviserRepository
.findFirstByEntityIdOrderByFromDateDescToDateDesc(message.adviserKey)
.map { it?.adviserKey ?: -1L }
.switchIfEmpty(Mono.just(-1L)),
dimensionAccountRepository
.findFirstByEntityIdOrderByFromDateDescToDateDesc(fromMessage.accountKey!!)
.map { it?.account_key ?: -1L }
.switchIfEmpty(Mono.just(-1L))
))}
我缺少任何配置还是这是已知的限制?
看起来,您自己在Oracle R2DBC Github回购中打开了一张罚单,在这个问题之后出现了这个问题,并得到了答案。
帮助有同样问题的人:
这是Oracle R2DBC版本0.1.0的已知限制。它已经在版本0.2.0中得到了修复,但该版本的目标是R2DBC SPI版本0.9,Spring Data R2DBC目前不支持该版本,因为它还没有正式发布。
R2DBC SPI版本0.9的GA版本计划于2021 12月06日发布,在此之后,我们可以期望Spring Data R2DBC实现对其的支持,从而可以升级Oracle R2DBC驱动程序并摆脱此限制。
编辑:根据计划,R2DBC SPI的0.9.0.RELEASE版本于昨天发布。现在只需要等待支持0.9版本R2DBCSPI的SpringDataR2DBC的新版本。
''组织。springframework。道。DataAccessResourceFailureException:获取R2DBC连接失败;嵌套异常为java。lang.IllegalStateException:此发布服务器不支持多个订阅服务器。位于组织。springframework。r2dbc。联系ConnectionFactoryUtils。Reactor处的lambda$getConne
问题内容: 我正在尝试使用Redis Cookbook示例: 我在这里取得了成功,但从未得到“消息”。 我的客户端index.htm是这个 客户如何发布到特定的Redis“聊天”频道。 问题答案: 如果您在node.js程序中使用Redis发布/订阅功能,则应使用一个Redis客户端连接来监听某个频道,使用另一个Redis客户端连接来发送常规命令和/或将消息发布到您的频道。从node_redis文
我正在使用mosquitto(http://mosquitto.org/)作为MQTT代理,并寻求关于负载平衡订阅服务器的建议(针对相同的主题)。这是如何实现的?我所读到的关于该协议的所有内容都表明,相同主题的所有订阅者都将获得一条发布消息。 这似乎效率很低,因此我正在寻找一种方法,将发布的消息以循环方式提供给连接的订阅服务器之一,以确保负载平衡状态。
hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函
> 糟糕的图案设计 仅在连接订阅服务器时才启动,如果没有可用的订阅服务器时停止 不成功共享数据,需要两个类(主题类和重复可观察类) 我希望避免监听器/接口来共享周围的信息,让rxjava2来完成它的工作。 经过研究,我发现有refcount()和share(),但我不确定这是否是解决这个问题的正确方法。在我的例子中,这是一个REST服务,它轮询服务器,如果至少有一个订阅服务器连接到其他地方,它应该
我正在尝试使用spring-integration-kafka-2.1.0。在我公司的项目中发布。但是,由于下面列出的例外情况,它不起作用:org。springframework。信息。MessageDeliveryException:Dispatcher没有频道“org”的订户。springframework。网状物上下文WebApplicationContext:/order。“奥Kafka”