Forum Stats

  • 3,814,961 Users
  • 2,258,937 Discussions
  • 7,892,898 Comments

Discussions

How to pass data more than raw limit..

3004
3004 Member Posts: 204,171 Green Ribbon
Hi,
How can i send msg payload which has more
data than 32k. I dont want to use OCI. I am
trying to send a BIG XML through AQ.

Thanks
Dhiraj.

Note in docs below it says:::
For PL/SQL, Java and precompilers the limit is 32K; for the OCI the limit is 4G.

From DOCS


RAW" ---

To store payload of type RAW, AQ creates a queue table with a LOB column as the payload repository. The theoretical maximum size of the message payload is the maximum amount of data that can be stored in a LOB column. However, the maximum size of the payload is determined by which programmatic environment you use to access AQ. For PL/SQL, Java and precompilers the limit is 32K; for the OCI the limit is 4G. Because the PL/SQL enqueue and dequeue interfaces accept RAW buffers as the payload parameters you will be limited to 32K bytes. In OCI, the maximum size of your RAW data will be limited to the maximum amount of contiguous memory (as an OCIRaw is simply an array of bytes) that the OCI Object Cache can allocate. Typically, this will be at least 32K bytes and much larger in many cases.

Because LOB columns are used for storing RAW payload, the AQ administrator can choose the LOB tablespace and configure the LOB storage by constructing a LOB storage string in the storage_clause parameter during queue table creation time.

Comments

  • 3004
    3004 Member Posts: 204,171 Green Ribbon
    Dhiraj,
    Its a PL SQL limitation that more than 32K cannot be passed as raw.

    You can use OCI Interface to achieve that. If you specifically dont want to use OCI, you can create an ADT with a lob in it and use PL/SQL to pass in raw data with size > 32K.
    null
This discussion has been closed.