Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: DBMS_PIPE size Question
James Lorenzen wrote:
>
> We are workin on a project that will be using DBMS_PIPE and a Pro*C program
> to pass UNIX system commands to UNIX and receive the output from the
> commands back into PL/SQL packages.
>
> Using:
> SCO UNIX 3.0.0
> Oracle 7.1.3
> Pro*C 2.0.3.0.0
> PL/SQL 2.1.3
>
> We are having some problems with size when packing a buffer into the pipe
> we get a size error "ORA-06558: buffer in dbms_pipe package is full. No
> Items allowed" This happens when the string to be packed is 4091 and the
> max pipe length is set to 8192. If we set the string to be 1024 and the
> max pipe length to be 8192 the command works.
>
> Is there some sizing relationship between the pack size and the max pipe
> length. The package specification for dbms_pipe states that the max for
> the pack size is just under 4k.
>
> Does anyone out there have any ideas or pointers. We have gotten thing
> working by trial and error, but it would be nice to know what the actual
> requirements are.
>
> TIA
> James
> --
> lorenzen_at_visi.com | Life is complex; it has
> | real and imaginary parts
The maxpipesize is not the same as the message buffer size (strangely). The maxpipesize basically limits the total amount of bytes you can pack into a pipe before it croaks or waits for you to unpack it. Notice that the current maximum value for one message is 4096-(1*#_of_items)-(2*#_of_items)-1, so if your #_of_items = 1, your maximum value is 4092, which, although it is stating the painfully obvious, does NOT explain why your item of size *4091* is not working.
procedure pack_message_rowid(item in rowid);
So, I don't know if this is helpful or not (probably not) but it will at least give you ammunition when you call support.
-- Diana Duncan | My opinions are my own. Sr. Consultant | REALOGIC, Inc. | Excitement, Adventure and dduncan_at_realogic.com | Really Wild Things - Z.B.Received on Mon Apr 07 1997 - 00:00:00 CDT