Oracle Service Bus, publish small/big messages to Oracle AQ endpoint

The weird thing was for certain responses i couldn’t find the payload back when i queried the aq table in the database.

select qt.user_data.text_vc
,      qt.user_data.text_lob
from my_aq_table qt

The process just completed succesfull in osb, but the payload wasn’t there (well it looked like it wasn’t there).

queue_table_select

When publishing big payloads to an Oracle AQ endpoint, Oracle (db) will decide weither the payload will get stored either as text-value or clob-value.
Messages smaller then 4k will get inserted as text, messages bigger then 4k will get inserted as clob.

When you’ve stored a object type in the user_data column you can cast it with something like

select treat(qt.user_data as <my_object_type>).<my field in the object_type>
from my_aq_table qt
Share this Post:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

4 Responses to “Oracle Service Bus, publish small/big messages to Oracle AQ endpoint”

commenter

Hi,

watch out , because oracle desides where to put the payload , you could have some problems with plsql to get the message.

commenter

Didn’t do a test yet..but guess you can use the text_len to decide to either select on the lob or text value.

Leave a Reply:

Name (required):
Mail (will not be published) (required):
Website:
Comment (required):
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>