[英]Using Oracle queues with UCP
是否可以使用 UCP 創建 OracleConnection 以使用入隊方法?
如今,使用連接池將消息從 java 客戶端排入 Oracle AQ 隊列的最佳方法是什么?
來自 OracleDatasource 的 Javadoc 關於棄用緩存的建議並建議改為使用 UCP。 但是我試圖用它實例化一個連接,但是不可能將它轉換為 OracleConnection,我得到了一個代理異常。
似乎很清楚,UCP 旨在返回常見的 java 接口,如 Connection from sql package 並且不熟悉 Oracle 具體用例?
有人可以幫助我了解如何通過連接池使用 Oracle AQ 嗎?
謝謝你。
Java 依賴項:
Spring ucp屬性:
spring.datasource.type=oracle.ucp.jdbc.PoolDataSource
spring.datasource.oracleucp.connection-factory-class-name=oracle.jdbc.pool.OracleDataSource
異常信息:
java.lang.ClassCastException: oracle.ucp.jdbc.proxy.oracle$1ucp$1jdbc$1proxy$1oracle$1ConnectionProxy$2oracle$1jdbc$1internal$1OracleConnection$$$Proxy cannot be cast to oracle.jdbc.driver.OracleConnection
源代碼:
@Autowired
public InsertController(DataSource ds) {
this.ds = ds;
}
private OracleConnection getConnection() throws Exception {
Connection con = this.ds.getConnection();
return (OracleConnection) con; //Proxy error propagation
}
您可以將 UCP 連接類型轉換為 oracle.jdbc.OracleConnection,然后調用下面的 API 使消息入隊。
public void enqueue(String queueName, oracle.jdbc.aq.AQEnqueueOptions opt, oracle.jdbc.aq.AQMessage mesg) throws SQLException;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.