This content has been marked as final. Show 2 replies
the AQ$JMS_TEXT_MESSAGE is an object type. So you'll need to import that type as your application view.
The problem with this JMS objecttype is how to populate it.
When your text (XML) is more than 4000 characters in length, the TEXT_LOB attribute should get the text. If less, the TEXT_VC attribute should get the text. In any case, the TEXT_LEN should be set to the length of the XML.
AFAIK, you can't currently do this with InterConnect directly.
The most popular solution is to have InterConnect deliver this message to a simple non-JMS queue and have some PL/SQL or java code convert it to a proper JMS text message and put it in the JMS text queue.
There are some features in the DBMS_AQ package to register a plsql procedure to be triggered when a message arrives (dbms_aq.register). That could be a procedure which converts the message for you.
In ProcessConnect (coming soon) there is a dedicated JMS adapter available.
Another solution is just to use the DB Adapter to accept a VARCHAR2/CLOB containing the message which is then enqueued onto a AQ$_JMS_TEXT_MESSAGE-based queue. This, I suppose, eliminates the need to place the message in some intermediate non-JMS queue.