Subject Re: Low speed connection issues
Author Adam
Are you planning on exposing Firebird to the internet, or a dial in
VPN Client? I would recommend about directly exposing any database
server to the internet.

You are using Delphi 7. We use RemObjects to create our n-tier stuff.
It is a bit complicated at first, but pretty good once you have
figured out what is going on. In a nutshell, you define the
procedures and functions in a service that sits on the database
server using the TCP Channel component. Your client application can
then talk to the server module you have just created, and RO takes
care of all the comms stuff for you. It also gives you the option of
compressing and encrypting the comms stream.

If you are building for a low speed connection, you are probably
going to have to make a couple of design decisions that take that
into account. You may need to run your query in a different thread so
you don't lock the main UI. You may need to restrict the query to
return 10 records at a time etc.

One other question though. Do you get any improvement if you name the
fields in your query?


select Name, Address
from Person
where ID=1

--- In, "matijamikac"
<matijamikac@y...> wrote:
> I am testing simple two-tier application with low-speed connection
> between client and Firebird server (as low as 7kB/s). Something like
> slow dial-up using old modems...
> It works fine, but slow!
> I made some testing, and here are results:
> - when client sends simple SELECT * FROM table WHERE condition
> set includes only one row!) total TCP traffic is arround 1,5kB -
> though there is pretty big overhead, it is fast enough...
> - but, when recieven result (simple single row, max. 500 bytes -
> 15-20 numbers (4 bytes) and few varchars (total 200 chars x 2 bytes
> unicode is used) TCP traffic from server to client is more than
> (meaning, when I recieve data, my app responds in a second - I
> like to speed it up!)
> I analyzed traffic using Ethereal and there seems to be some Reply
> void packets (IB protocol) that are almost fully empty (zeros).
> length is totaly cca. 2kB (two packets - 14xx bytes + 6xx bytes). Is
> there a way to 'override' this behaviour?
> In Firebird.conf I decreased TCPRemoteBufferSize to 1448, hoping
> could help, but it doesn't look to help.
> I am using FB and IBX components in Delphi 7.
> Any suggestions?