Spring Boot 应用程序错误日志显示尝试在 FanManager 中配置 ONS 失败,出现 oracle.ons.NoServersAvailable

新手上路,请多包涵

我正在使用 spring-boot-starter-jdbccom.oracle.ojdbc:ojdbc8:19.3.0.0 驱动程序运行 Spring Boot 应用程序( v2.2.0-RELEASE )。

当我尝试使用 JdbcTemplate 查询数据库时,我在控制台日志中看到以下错误:

 2019-11-15 14:07:51.154 ERROR 23436 --- [main] oracle.simplefan.FanManager: attempt to configure ONS in FanManager failed with oracle.ons.NoServersAvailable: Subscription time out

我不知道为什么我会看到这个错误,即使数据库连接成功并且查询结果是正确的。

有什么办法可以消除这个错误或忽略它吗?

原文由 Saikat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

您可以在启动应用程序时设置系统属性:

 -Doracle.jdbc.fanEnabled=false

或者从类路径中删除 simplefan 和 ons 罐子。使用 Maven,它可能看起来像这样:

 <dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>${oracle.version}</version>
  <exclusions>
    <exclusion>
      <groupId>com.oracle.database.ha</groupId>
      <artifactId>simplefan</artifactId>
    </exclusion>
    <exclusion>
      <groupId>com.oracle.database.ha</groupId>
      <artifactId>ons</artifactId>
    </exclusion>
  </exclusions>
</dependency>

更多详细信息,请参见 Oracle 的 JDBC 开发人员指南“为 FAN 事件支持安装和配置 Oracle JDBC 驱动程序”的第 29.3 节

原文由 Antoni Myłka 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果罐子的组 ID 不相同(例如,不同的 ojdbc 版本),则使用 Maven Antoni 的答案删除罐子可能对您不起作用。您需要找到这些组 ID。例如,我使用 ojdbc8,查看我的 IDE 中使用的库(此处为 Idea)我可以看到 ons 和 simplefan 的 groupId(此处为 com.oracle.jdbc)

使用IDE查找库的groupId

现在我只需要将适当的 ID 用于排除(这里的示例是针对 ojdbc 8 的)

 <dependency>
  <groupId>com.oracle.ojdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <exclusions>
    <exclusion>
      <groupId>com.oracle.ojdbc</groupId>
      <artifactId>simplefan</artifactId>
    </exclusion>
    <exclusion>
      <groupId>com.oracle.ojdbc</groupId>
      <artifactId>ons</artifactId>
    </exclusion>
  </exclusions>
</dependency>

原文由 user2588770 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题