Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread Best way to connect to server over internet
Tue, Feb 10 2009 7:47 PMPermanent Link

David
I just got a call asking if my app can connect over the internet.  Currently
it uses DBISAM 4 and is fully C/S.

Do I need to add any other software?  My program uses blobs so is there
anyway to cache images?  Is there anything I'm missing?

Thanks for any advice.
Tue, Feb 10 2009 8:12 PMPermanent Link

"Jeff Cook"
David wrote:

> I just got a call asking if my app can connect over the internet.
> Currently it uses DBISAM 4 and is fully C/S.
>
> Do I need to add any other software?  My program uses blobs so is
> there anyway to cache images?  Is there anything I'm missing?
>
> Thanks for any advice.

Hi David

Your app should work, just need to make sure that the ports that the
server uses are open to the internet.

How well it works is another issue - you'll probably find things that
work OK on a LAN face bottlenecks when you work across the internet -
hopefully a bit of tuning will fix the problems.

My understanding is that blobs only get passed over the network as
required, so if you were showing 10 records in a grid, DBISAM would do
the read ahead for 10 records to fill the grid but NOT get the blobs
unless you explicitly need them.

All this is really easy to test.  

Get a free dynamic DNS address from dyndns.net.  Set up your broadband
router to enable the dynamic address and to pass through the required
ports to your server machine.  Thats all at the server end.

At the client end just put your new dynamic address into the
Session.RemoteHost.

Caveat - I'm working on v3.30 still, so there might be some changes for
DBISAM v4.

Cheers

Jeff

--
Jeff Cook
Aspect Systems Ltd
www.aspect.co.nz
+
Joan and Jeff Cook
The Cooks Oasis
www.cookislandsoasis.com
Wed, Feb 11 2009 11:41 AMPermanent Link

David
Thanks for the reply.

I'm going to try and play with VMWare to set up a "remote" location and
lower the net connection and see how that works.

It would REALLY be a load off my mind if this works out of the box across
the internet.  I was worried that I would need to add one of those
"middle-tier", or whatever their called, software packages first.


On 2/10/09 8:12 PM, in article
C3B28A3A-1257-405A-8529-A9ACB73968CA@news.elevatesoft.com, "Jeff Cook"
<jeffc@aspect.co.nz> wrote:

> David wrote:
>
>> I just got a call asking if my app can connect over the internet.
>> Currently it uses DBISAM 4 and is fully C/S.
>>
>> Do I need to add any other software?  My program uses blobs so is
>> there anyway to cache images?  Is there anything I'm missing?
>>
>> Thanks for any advice.
>
> Hi David
>
> Your app should work, just need to make sure that the ports that the
> server uses are open to the internet.
>
> How well it works is another issue - you'll probably find things that
> work OK on a LAN face bottlenecks when you work across the internet -
> hopefully a bit of tuning will fix the problems.
>
> My understanding is that blobs only get passed over the network as
> required, so if you were showing 10 records in a grid, DBISAM would do
> the read ahead for 10 records to fill the grid but NOT get the blobs
> unless you explicitly need them.
>
> All this is really easy to test.
>
> Get a free dynamic DNS address from dyndns.net.  Set up your broadband
> router to enable the dynamic address and to pass through the required
> ports to your server machine.  Thats all at the server end.
>
> At the client end just put your new dynamic address into the
> Session.RemoteHost.
>
> Caveat - I'm working on v3.30 still, so there might be some changes for
> DBISAM v4.
>
> Cheers
>
> Jeff

Wed, Feb 11 2009 5:37 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

David,

<< I just got a call asking if my app can connect over the internet.
Currently it uses DBISAM 4 and is fully C/S.

Do I need to add any other software? >>

No, but you may need to profile your application specifically over the
Internet to determine if there are any performance bottlenecks due to the
lesser bandwidth.  You can then use the TDBISAMSession.OnRemoteTrace to
investigate which calls are taking the most time:

http://www.elevatesoft.com/manual?action=mancompevent&id=dbisam4&product=d&version=7&comp=TDBISAMSession&event=OnRemoteTrace

You can find a conversion function for this in the DBSYS source code:

procedure TMainForm.RemoteSessionRemoteTrace(Sender: TObject;
                                            TraceRecord: TTraceRecord);
var
  TempString: string;
begin
  with TraceRecord do
     begin
     TempString:=PadRight(DateTimeToStr(DateTime),24,' ');
     case EventType of
        teConnect:
           TempString:=TempString+' '+PadRight('Connect',10,' ')+
                                  ' '+PadRight(IntToStr(ElapsedTime)+'
msecs',16,' ');
        teReconnect:
           TempString:=TempString+' '+PadRight('Re-connect',10,' ')+
                                  ' '+PadRight(IntToStr(ElapsedTime)+'
msecs',16,' ');
        teDisconnect:
           TempString:=TempString+' '+PadRight('Disconnect',10,' ')+
                                  ' '+PadRight(IntToStr(ElapsedTime)+'
msecs',16,' ');
        teRequest:
           TempString:=TempString+' '+PadRight('Request',10,' ')+
                                  ' '+PadRight(IntToStr(ElapsedTime)+'
msecs',16,' ')+
                                  ' '+PadRight(RemoteRequestName,30,' ')+
                                  '
'+PadRight(IntToStr(RemoteRequestSize)+' bytes',16,' ');
        teReply:
           TempString:=TempString+' '+PadRight('Reply',10,' ')+
                                  ' '+PadRight(IntToStr(ElapsedTime)+'
msecs',16,' ')+
                                  ' '+PadRight(RemoteReplyResultName,30,'
')+
                                  ' '+PadRight(IntToStr(RemoteReplySize)+'
bytes',16,' ');
        end;
     end;
  WriteLn(TraceLogFile,TempString);
end;

<< My program uses blobs so is there anyway to cache images? >>

DBISAM will only load BLOBs "on-demand", so you shouldn't have any issue
with BLOBs unless you are requesting them more often than necessary by
displaying them in a grid, etc.

--
Tim Young
Elevate Software
www.elevatesoft.com

Tue, Feb 17 2009 5:48 AMPermanent Link

"Carlos"
<cut>



> << My program uses blobs so is there anyway to cache images? >>
>
> DBISAM will only load BLOBs "on-demand", so you shouldn't have any issue
> with BLOBs unless you are requesting them more often than necessary by
> displaying them in a grid, etc.
>
> --
> Tim Young
> Elevate Software
> www.elevatesoft.com


Sorry if I interferes but I have one question.
Viewing data in a grid how many records are sent? All record in
query/dataset or only those showing ?
Thanks

Carlos

Tue, Feb 17 2009 6:35 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Carlos


It should only be the ones showing in the grid.

Roy Lambert [Team Elevate]
Tue, Feb 17 2009 1:21 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Carlos,

<< Viewing data in a grid how many records are sent? All record in
query/dataset or only those showing ? >>

As Roy indicated, only those showing in the grid.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image