【问题标题】:Oracle AQ java implementation of enque/dequeOracle AQ java实现入队/出队
【发布时间】:2020-03-27 19:16:33
【问题描述】:

过去几天我一直在互联网上搜索任何正在运行的 Oracle 高级队列的示例实现,用于消息的 enque/deque,但没有任何成功。

我试图遵循规范中提到的 oracle 文档,但对我来说并不清楚。

  • 它没有任何关于要使用的依赖项 (maven/gradle) 的公开信息。 [我知道我需要使用 aqapi.jar] 。任何与我正在使用的 jdbc 驱动程序兼容的特定版本。

  • 我也在为此使用 c3p0 连接池,并为 c3p0 寻找开箱即用的 AQSession 支持,以避免从代码角度进行连接和会话处理。

注意:队列表和队列已经从数据库层设置。我只是想为消息委托编写一个生产者/消费者。我们正在使用 oracle 12c 和 Java 11。

任何类型的信息都将不胜感激。

【问题讨论】:

    标签: java oracle oracle12c ojdbc advanced-queuing


    【解决方案1】:

    您只需要 Oracle JDBC 瘦驱动程序 (ojdbc) 即可执行入队或出队等 AQ 操作。有关 API 的更多详细信息,请参阅Oracle JDBC Javadoc。另请在 stackoverflow 上查看其他问题以获取一些代码示例: How to enqueue on Oracle AQ table on commit with Java and consume with a JMS client

    请注意,您有两种选择:a) 直接使用 AQ API 或 b) 如果您想使用 JMS API,则使用 AQ-JMS。

    aqapi.jar 仅用于“创建队列”、“启动队列”等管理目的。否则您不需要它。

    【讨论】:

    • 感谢 Jean 的提示。我真的很想使用 JDBC 提供的 AQ API(无 AQ-JMS)。 enqueue 和 dequeue API 没有说明批处理排队和出队。逐一进行排队和出列会大大降低性能。
    • 您将在 ojdbc 的下一个版本中通过 JDBC API 获得批量入队和出队。它尚未发布。
    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多