是否有人有Spring JMS與Oracle AQ隊列一起工作?Spring JMS和Oracle AQ
我試圖根據本文 http://blog.nominet.org.uk/tech/2007/10/04/spring-jms-with-oracle-aq/
上連接到AQ,但現在我得到這個錯誤 JMS-137:有效載荷工廠必須爲目的地的指定用ADT有效載荷
任何幫助,這是非常讚賞
感謝 達明
是否有人有Spring JMS與Oracle AQ隊列一起工作?Spring JMS和Oracle AQ
我試圖根據本文 http://blog.nominet.org.uk/tech/2007/10/04/spring-jms-with-oracle-aq/
上連接到AQ,但現在我得到這個錯誤 JMS-137:有效載荷工廠必須爲目的地的指定用ADT有效載荷
任何幫助,這是非常讚賞
感謝 達明
該錯誤指示我,它實際工作但你並沒有給它一個有效負載工廠來創建隊列中的對象。你在創建接收器的時候這樣做。在這種情況下,我的有效載荷是XMLTYPE,所以我只是用它的有效載荷工廠:你當你想連接隊列或取消排隊AnyDataType或用戶自定義的有效載荷提供一個JDBC類型映射
queueReceiver = ((AQjmsSession) queueSession).
createReceiver(queue, XMLType.getORADataFactory());
。
在您發佈的鏈接中,最好的地方是在OracleAqDestinationFactoryBean.getObject中。
就我而言,我希望去排隊它們的XMLType的甲骨文的LCR,所以我不得不做的的getObject
public Object getObject() throws Exception {
QueueConnection queueConnection = connectionFactory.createQueueConnection();
AQjmsSession session = (AQjmsSession) queueConnection.createQueueSession(true,
Session.SESSION_TRANSACTED);
Map map = session.getTypeMap();
map.put("SYS.XMLTYPE", Class.forName("oracle.xdb.XMLTypeFactory"));
return session.getQueue(queueUser, queueName);
}
記住,你必須使用OCI JDBC驅動程序AnyDataType載荷下,因爲瘦身司機不會這樣做。在這裏定製的有效載荷
更多信息 http://download.oracle.com/docs/cd/B19306_01/server.102/b14257/aq_stage.htm#sthref2705
這是如果你使用Spring,你如何解決這個問題:http://blog.javaforge.net/post/30858904340/oracle-advanced-queuing-spring-custom-types
在「無彈性」環境剛剛創建自己的消息消費者像在描述上面的博客帖子。