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 >