Re: Question about max size of a dbrpcparam

"Navdeep Shergill" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
I tried with v0.82 and the same problem exists. I traced through the code
and naturally it is spending a lot of time in this function:

write.c -> tds_put_n(TDSSOCKET * tds, const void *buf, int n)

n = 40841216

The block size is 512; so it seems to be putting 512 bytes on the socket at
a time. I'm wondering if that is the problem; since doing 512 bytes at a
time of a 40mb file takes a while. One thing to note is that during the 'big
for loop' thats in that tds_put_n function; the TDSSOCKET->STATE changes to
TDS_DEAD. Dont know why.

The log file itself is about 200mb; so I really dont have a way to send that
but here is the last few entries in there

================================================================

<<Navdeep -> many more net.c779  sending packet>>
<<Navdeep -> last Packet >>

net.c:779:Sending packet
0000 03 00 02 00 00 00 01 00-00 00 00 00 00 00 00 00 |........ ........|
0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0080 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0090 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00a0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00b0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00c0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00d0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00e0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00f0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01a0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01b0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01c0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01d0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01e0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01f0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|

util.c:110:logic error: cannot change query state from DEAD to PENDING
rpc.c:304:returning FAIL: tds_submit_rpc() failed
dblib.c:3093:dbcancel(013AD618)
dblib.c:7782:dbperror(013AD618, 20047, 0)
dblib.c:7835:20047: "DBPROCESS is dead or not enabled"
dblib.c:4747:dbdead(013AD618) [dead]
====================================================================

On Wed, Oct 8, 2008 at 3:15 PM, James K. Lowden <[email protected]>wrote:

> Navdeep Shergill wrote:
> > I am using v0.64RC2 of FreeTDS. I am trying to call a stored proc on
> > SQL2005 server that takes in a image parameter. Here is my logic..
> >
> >             dbrpcparam(ldbproc,"@id",0,SYBCHAR,-1,strID.length(),idB);
> >             dbrpcparam(ldbproc, "@table"
> > ,0,SYBCHAR,-1,strTable.length(),focusB);
> >             dbrpcparam(ldbproc, "@name"
> > ,0,SYBCHAR,-1,strFileName.length(),nameB);
> >             dbrpcparam(ldbproc, "@title"
> > ,0,SYBCHAR,-1,strTitle.length(),titleB);
> >             dbrpcparam(ldbproc, "@update"
> > ,0,SYBCHAR,-1,updateFlag.length(),updateB);
> >             dbrpcparam(ldbproc,"@content"
> > ,0,SYBIMAGE,-1,numbytes,(BYTE*)memArea);
> >             dbrpcsend(ldbproc)
> >
> >
> > The image type is being fed with a byte pointer that holds the contents
> > of a file. This thing works file as long as the file is of a smaller
> > size. I have tried up to 30mb and it works fine. The problem happens
> > when I try to pass in files larger than 35mb+.
>
> It is quite difficult for me to test this because my test server is on the
> other end of a DSL line.  And you're using a pre-release version of an old
> release....
>
> If you can confirm the problem still exists in 0.82, post a log file (it
> will be big!) where I can download it.  We'll see what can be done from
> there.
>
> HTH.
>
> --jkl
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.