[SPRING] Spring JMS와 Oracle AQ
SPRINGSpring JMS와 Oracle AQ
누구든지 JMS JMS를 Oracle AQ 대기열과 함께 사용할 수 있습니까?
이 기사를 기반으로 AQ에 연결하려고합니다. http://blog.nominet.org.uk/tech/2007/10/04/spring-jms-with-oracle-aq/
하지만 지금이 오류가 나타납니다. JMS-137 : ADT 페이로드가있는 대상에 대해 페이로드 팩토리를 지정해야합니다.
이걸로 어떤 도움이 많이 감사합니다
감사 Damien
해결법
-
==============================
1.그 오류는 실제로 작동하고 있지만 큐에 들어오는 객체를 생성하기위한 페이로드 팩토리를 제공하지 않는다는 것을 알려줍니다. 수신기를 만들 때 그렇게합니다. 이 경우 내 페이로드는 XMLTYPE이므로 페이로드 팩토리 만 사용합니다.
그 오류는 실제로 작동하고 있지만 큐에 들어오는 객체를 생성하기위한 페이로드 팩토리를 제공하지 않는다는 것을 알려줍니다. 수신기를 만들 때 그렇게합니다. 이 경우 내 페이로드는 XMLTYPE이므로 페이로드 팩토리 만 사용합니다.
queueReceiver = ((AQjmsSession) queueSession). createReceiver(queue, XMLType.getORADataFactory());
-
==============================
2.AnyDataType 또는 User Defined Payload를 대기열에 넣거나 대기열에서 제거하려는 경우 JDBC 유형 맵을 제공해야합니다.
AnyDataType 또는 User Defined Payload를 대기열에 넣거나 대기열에서 제거하려는 경우 JDBC 유형 맵을 제공해야합니다.
게시 한 링크에서이를 수행 할 수있는 가장 좋은 장소는 Oracle Destination FactoryBean.getObject입니다.
필자의 경우 XMLType 인 Oracle 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); }
AnyDataType 페이로드를 기억하면 OCI JDBC 드라이버를 사용해야하므로 씬 드라이버는 그렇지 않습니다.
커스텀 페이로드에 대한 더 자세한 정보는 여기에 있습니다. http://download.oracle.com/docs/cd/B19306_01/server.102/b14257/aq_stage.htm#sthref2705
-
==============================
3.Spring을 사용하고 있다면 이것을 해결할 수있는 방법입니다 : http://blog.javaforge.net/post/30858904340/oracle-advanced-queuing-spring-custom-types
Spring을 사용하고 있다면 이것을 해결할 수있는 방법입니다 : http://blog.javaforge.net/post/30858904340/oracle-advanced-queuing-spring-custom-types
"탄력없는"환경에서 위의 블로그 게시물에서 설명한 것처럼 자신 만의 메시지 소비자를 만드십시오.
from https://stackoverflow.com/questions/4450925/spring-jms-and-oracle-aq by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 3.2에서 경로 변수의 공백을 자르지 않는다. (0) | 2019.05.11 |
---|---|
[SPRING] Spring에서 Bean을 재정의하는 것을 멈추는 방법 (0) | 2019.05.11 |
[SPRING] executeSqlScript가 PL / SQL 용 Spring 블록과 함께 실패합니다. (0) | 2019.05.11 |
[SPRING] Spring Bean 사용자 정의 범위 JMS (0) | 2019.05.11 |
[SPRING] Classpath를 가진 Spring Boot 실행 가능한 Jar (0) | 2019.05.11 |