dbTalk Databases Forums  

3022 when using update chunk

comp.databases.btrieve comp.databases.btrieve


Discuss 3022 when using update chunk in the comp.databases.btrieve forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Wendell Buckner
 
Posts: n/a

Default 3022 when using update chunk - 02-17-2004 , 09:54 AM






I think I know the answer to this but I want to ask it anyway. I have
database application where I store images into. I use update chunk to store
the image into the database. My chunk definition defines three 64k pieces
and I'm using indirect chunking. I should be able to send the entire image
in one call shouldn't I? Instead I get a 3022. If I send it one 64k chunk at
a time it works. But what's the use of indirect chunking if I can't define
multiple 64k chunks in the chunk descriptor? The docs say that the
requirement is that the chunk descriptor must fit in the data buffer? Which
is does... So why can't I do this? It almost seems like there is a parameter
that I can tweak to make this work but I can't find it. Someone explain this
to me.



Reply With Quote
  #2  
Old   
Bill Bach
 
Posts: n/a

Default Re: 3022 when using update chunk - 02-17-2004 , 06:25 PM






The 64K limit applies to the Btrieve call, and this includes the chunk data, not
just the descriptor, even in an indirect chunk.

Using an indirect chunk makes your application faster by eliminating the need to
transfer the chunk data from your application memory into a separate data buffer
for the Btrieve call. It is just there to make your program faster -- and not a
way around the limit.
Goldstar Software Inc.
Building on Btrieve(R) for the Future(SM)
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Pervasive.SQL Service & Support Classes ***
Chicago: March, 2004: See our web site for details!


Wendell Buckner wrote:

Quote:
I think I know the answer to this but I want to ask it anyway. I have
database application where I store images into. I use update chunk to store
the image into the database. My chunk definition defines three 64k pieces
and I'm using indirect chunking. I should be able to send the entire image
in one call shouldn't I? Instead I get a 3022. If I send it one 64k chunk at
a time it works. But what's the use of indirect chunking if I can't define
multiple 64k chunks in the chunk descriptor? The docs say that the
requirement is that the chunk descriptor must fit in the data buffer? Which
is does... So why can't I do this? It almost seems like there is a parameter
that I can tweak to make this work but I can't find it. Someone explain this
to me.


Reply With Quote
  #3  
Old   
Wendell Buckner
 
Posts: n/a

Default Re: 3022 when using update chunk - 02-18-2004 , 09:18 AM



Thanks... that's what I thought... so there is no way to adjust the packet
size?

"Bill Bach" <bbach (AT) cncdsl (DOT) com> wrote

Quote:
The 64K limit applies to the Btrieve call, and this includes the chunk
data, not
just the descriptor, even in an indirect chunk.

Using an indirect chunk makes your application faster by eliminating the
need to
transfer the chunk data from your application memory into a separate data
buffer
for the Btrieve call. It is just there to make your program faster -- and
not a
way around the limit.
Goldstar Software Inc.
Building on Btrieve(R) for the Future(SM)
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Pervasive.SQL Service & Support Classes ***
Chicago: March, 2004: See our web site for details!



Reply With Quote
  #4  
Old   
Leonard
 
Posts: n/a

Default Re: 3022 when using update chunk - 02-18-2004 , 11:36 PM



It is not actually the network packet size.
It is the data buffer. It has been defined as 64K in size forever.
The data buffer length specifier is 16 bits so that is as big as it
can get.

Leonard

On Wed, 18 Feb 2004 15:18:22 GMT, "Wendell Buckner"
<wendellbuckner (AT) sbcglobal (DOT) net> wrote:

Quote:
Thanks... that's what I thought... so there is no way to adjust the packet
size?

"Bill Bach" <bbach (AT) cncdsl (DOT) com> wrote in message
news:4032B118.95801A85 (AT) cncdsl (DOT) com...
The 64K limit applies to the Btrieve call, and this includes the chunk
data, not
just the descriptor, even in an indirect chunk.

Using an indirect chunk makes your application faster by eliminating the
need to
transfer the chunk data from your application memory into a separate data
buffer
for the Btrieve call. It is just there to make your program faster -- and
not a
way around the limit.
Goldstar Software Inc.
Building on Btrieve(R) for the Future(SM)
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Pervasive.SQL Service & Support Classes ***
Chicago: March, 2004: See our web site for details!



Reply With Quote
  #5  
Old   
Wendell Buckner
 
Posts: n/a

Default Re: 3022 when using update chunk - 02-19-2004 , 09:22 AM



Ok but why do they use such verbiage:

A request to the MicroKernel router specified a data buffer length that
resulted in a data packet size greater than 64 KB, which is the maximum.
This can occur even if the data buffer length for the request is smaller
than 64 KB because the MicroKernel router adds some packet overhead as it
forms the data packet.

Their documentation is somewhat misleading, but then again they do say that
64kb is the maximum...

I'm somewhat disappointed in this function call, I thought it could break
the 64kb barrier...

"Leonard" <lharvey (AT) austin (DOT) rr.com> wrote

Quote:
It is not actually the network packet size.
It is the data buffer. It has been defined as 64K in size forever.
The data buffer length specifier is 16 bits so that is as big as it
can get.

Leonard

On Wed, 18 Feb 2004 15:18:22 GMT, "Wendell Buckner"
wendellbuckner (AT) sbcglobal (DOT) net> wrote:

Thanks... that's what I thought... so there is no way to adjust the
packet
size?

"Bill Bach" <bbach (AT) cncdsl (DOT) com> wrote in message
news:4032B118.95801A85 (AT) cncdsl (DOT) com...
The 64K limit applies to the Btrieve call, and this includes the chunk
data, not
just the descriptor, even in an indirect chunk.

Using an indirect chunk makes your application faster by eliminating
the
need to
transfer the chunk data from your application memory into a separate
data
buffer
for the Btrieve call. It is just there to make your program faster --
and
not a
way around the limit.
Goldstar Software Inc.
Building on Btrieve(R) for the Future(SM)
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Pervasive.SQL Service & Support Classes ***
Chicago: March, 2004: See our web site for details!





Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.