Distributed PowerBuilder

I am in the process of moving an existing PB5 PFC application Distributed
PB 5.  I have several concerns in regards to the capabilities of this
option.   We are considering moving the database access along with the
business NVOs/Rules from the client machine to an application server.  
These are some of the concerns we have...

1.In terms of using datastores on the server machine and datawindows on the
client machine, how will the communication be facilitated?
-  should the datawindows on the client app be external?
2. In regards to the datawindow to server communication for retrieve, etc.
Should we use a custom structure to represent each datawindow or is there a
more generic common method that could be used instead.
3. How could I handle all updates, inserts, deletes  which the client
performs? has anyone came up with a clever method of doing this?  
4. Are there any limitations to distributed PB other than the outlined
limitations in the documentation? Ie. max array size, unbounded vs. bounded
arrays, max string size, etc. ?
5. We are currently using the PFCs as our base, it appears that we will
have to rewrite some of the PFC services such as linkage ( when retrieval
is required), any other things that come to mind?
6. What kind of load can the Application Server (the middle tier written
using distributed PB) handle in terms of number of users simultaneously
asking for services ?
Any response would be greatly appriciated.
Please respond by e-mail if you can.

Mark Vaxman                                                                Consultant & CPD
Relational Solutions Inc.                                                48 Yonge
Street,Suite 400, Toronto,
Ont. M5E 1G6                                                                Tel:(416)868-6578
Email : markv@relsol.com                                                  Fax: (416)868-6579
0
Mark
7/8/1997 5:45:49 PM
📁 sybase.powerbuilder.general
📃 62418 articles.
⭐ 19 followers.

💬 4 Replies
👁️‍🗨️ 628 Views


[posted and emailed]
"Mark Vaxman" <markv@relsol.com> wrote:
>
>1.In terms of using datastores on the server machine and datawindows on the
>client machine, how will the communication be facilitated?
You pass arrays of structure back and forth, with the structure matching your
datawindow columns.
>-  should the datawindows on the client app be external?
Don't need to be.  They never connect to a database during runtime, so it
doesn't matter.  Having them defined as sql will allow you to preview them to
ensure they look the way you want them to.  You could also put the datawindows
in a common PBL (common between client and server apps) and use that datawindow
to retrieve from the database as well.
>2. In regards to the datawindow to server communication for retrieve, etc.
>Should we use a custom structure to represent each datawindow or is there a
>more generic common method that could be used instead.
Structure is about the only way right now to do it.
>3. How could I handle all updates, inserts, deletes  which the client
>performs? has anyone came up with a clever method of doing this?  
We wrote a datawindow service that we call in pfc_update, overriding the default
PFC update functionality, to pull out only the new rows, modified rows, and
deleted rows, putting them into ANY variables so the descendant datawindow can
convert them to the proper structure, then send them to the server.  
>4. Are there any limitations to distributed PB other than the outlined
>limitations in the documentation? Ie. max array size, unbounded vs. bounded
>arrays, max string size, etc. ?
Nope.  Other than bugs, anyway.
>5. We are currently using the PFCs as our base, it appears that we will
>have to rewrite some of the PFC services such as linkage ( when retrieval
>is required), any other things that come to mind?
We didn't really have to change much of anything.  The only other thing that
comes to mind is that we made the u_dw ancestor non-updatable with the PFC
method to do that (something like of_setupdatable ( false ) ).
>6. What kind of load can the Application Server (the middle tier written
>using distributed PB) handle in terms of number of users simultaneously
>asking for services ?
Well, it depends on the size of your server machine.  Ours is a dual Pentium II
with 256M memory, and it's had over 50 clients chugging away.  It can probably
handle more, that's just the most I've ever seen.  It also depends on how
memory-efficient you make your server.  If you leave a lot in memory as you run,
you would be able to get the same kind of load on the machine.
-Rick
Rick Langel
langelrj@phibred.com
Pioneer Hi-Bred International, Inc.
0
langelrj
7/10/1997 6:07:30 PM
Thanks for the response, the information was quite useful.  I just have
some additional questions...
Rick Langel <langelrj@phibred.com> wrote in article
<33c51cad.13340639@forums.powersoft.com>...
> [posted and emailed]
> 
> "Mark Vaxman" <markv@relsol.com> wrote:
> >2. In regards to the datawindow to server communication for retrieve,
etc.
> >Should we use a custom structure to represent each datawindow or is
there a
> >more generic common method that could be used instead.
> 
> Structure is about the only way right now to do it.
Did your team attempt to export the actual data ( using describe)  and pass
it to the client machine where the client uses ImportString on that data? 
I have heard that someone attempted to do so.
 
> >3. How could I handle all updates, inserts, deletes  which the client
> >performs? has anyone came up with a clever method of doing this?  
> 
> We wrote a datawindow service that we call in pfc_update, overriding the
default
> PFC update functionality, to pull out only the new rows, modified rows,
and
> deleted rows, putting them into ANY variables so the descendant
datawindow can
> convert them to the proper structure, then send them to the server.
Very clever.  Did you use a structure for every buffer?
  
 
 >4. Are there any limitations to distributed PB other than the outlined
> >limitations in the documentation? Ie. max array size, unbounded vs.
bounded
> >arrays, max string size, etc. ?
> 
> Nope.  Other than bugs, anyway.
I have heard that sometimes DPB crashes if arguments passed ( arrays or
strings) execeed a specific size.  Same with bounded arrays or refereced
arrays returning less items that passed to the server.  Has anyone heard of
such problems with DPB?
 
> >5. We are currently using the PFCs as our base, it appears that we will
> >have to rewrite some of the PFC services such as linkage ( when
retrieval
> >is required), any other things that come to mind?
> 
> We didn't really have to change much of anything.  The only other thing
that
> comes to mind is that we made the u_dw ancestor non-updatable with the
PFC
> method to do that (something like of_setupdatable ( false ) ).
How did you handle the retrieval arguments when used by linkage service?
> -Rick
> 
> Rick Langel
> langelrj@phibred.com
> Pioneer Hi-Bred International, Inc.
Thanks again.

Mark Vaxman                                                                Consultant & CPD
Relational Solutions Inc.                                                 48 Yonge
Street,Suite 400, Toronto,
Ont. M5E 1G6                                                                Tel:(416)868-6578
Email : markv@relsol.com                                                  Fax: (416)868-6579

 
0
Mark
7/10/1997 6:55:43 PM
hi, mark

DPB, have promblem passing structures of variable length (this is report by
any user), i am expected for PB6.0

bye
0
Adalberto
7/11/1997 1:02:12 PM
"Mark Vaxman" <markv@relsol.com> wrote:
>Did your team attempt to export the actual data ( using describe)  and pass
>it to the client machine where the client uses ImportString on that data? 
>I have heard that someone attempted to do so.
No, we didn't try that.  We had the system I described to you in place before we
read about trying that.  
 
>Very clever.  Did you accomplish this by using a structure for every
>buffer?
Every set of data that gets passed across the connection has a structure,
unless, of course, it's an array of string or something.  We made a fairly
concerted effort to keep the number of the structures down by having different
retrieval datawindows use the same result set.  It's a little easier to manage
with fewer structures.
>I have heard that sometimes DPB crashes if arguments passed ( arrays or
>strings) exceed a specific size.  Same with bounded arrays or referenced
>arrays returning less items that passed to the server.  Have you heard of
>such problems with DPB?
Yup, that's one of the bugs I mentioned.  As far as we can tell, it's somewhat
random, in that it's not always the same size result set for all the times it
will fail.  Returning an array of longs will fail, I think at around 8000 or so.
We've had other arrays of structure fail at 273 rows, others at a few thousand.
To get around this, we set 'speedbumps', or max numbers of rows to return.  This
actually is a good thing for us systemwide, because many of our users are on
remote sites with low-speed connections, so if we can reduce the amount of
traffic, it will speed up the system somewhat.  Most of the DPB bugs are fixed
in a pre-release version of 5.0.04 that we got.  Of course, 5.0.04 broke a bunch
of other things, so it's unusable for us.  {sigh}  Such is life with
Powerbuilder.
>How did you handle the retrieval arguments when used by linkage service?
We're not using any linkage services, sorry.  

-Rick
Rick Langel
langelrj@phibred.com
Pioneer Hi-Bred International, Inc.
0
langelrj
7/11/1997 2:05:42 PM
Reply: