Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

Question about scalability

edited October 2003 in Server
I've been doing a little research into how scalable the system we're
building is.

Initially, we'll have the following on one box:
- Web Server w/RB Web Tier
- Report Server
- Database Server with separate databases for Customer A, Customer B...

However, here's a possible future configuration:

Box 1:
- Web Server w/RB Web Tier

Box 2:
Report Server
Database Server with databases for Customer A, Customer B...

Box 3:
Report Server
Database Server with databases for Customer C, Customer D...

Can I change TrsWebTier.ServerConnection.Address on the fly, depending on a
parameter value (Customer)? I see the ServerFarmSettings, but this wouldn't
work in my imaginary configuration, since I wouldn't want to send a Customer
A job to report server on Box 3.

--
Nathan Sutcliffe
nsutcliffe at speedlinesolutions period com

Comments

  • edited October 2003

    Do not know whether this is possible or not. I researched the source code
    and you can try the following.

    Use the TrsWebTier.BeforeProcessRequest event. This event is passed an
    aRequest parameter that you will need to typecast as TrsWebRequest.

    I did not compile this, but try something like this:

    uses
    rsWebRequest, rsWebSessionManager, rsWebSession;

    var
    lWebRequest: TrsWebRequest;
    lWebSession: TrsWebSession;

    begin
    {typecast to get the web request}
    lWebRequest := TrsWebRequest(aRequest);

    {access the web session for this request}
    lWebSession := gWebSessionManager.GetSettionForID(lWebRequest.SessionID);

    {assign the desired server connection address here}
    lWebSession.ServerConnection := {assign server connection address here};

    endl








    --
    Nard Moseley
    Digital Metaphors
    http://www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2003

    This line should have read like this:

    lWebSession := gWebSessionManager.GetSessionForID(lWebRequest.SessionID);



    --
    Nard Moseley
    Digital Metaphors
    http://www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2003
    > lWebSession := gWebSessionManager.GetSessionForID(lWebRequest.SessionID);

    Thanks. Hopefully, I'll have some more questions about scalability once
    we've got loads of customers pounding on our system!
This discussion has been closed.