Question about scalability
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
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
This discussion has been closed.
Comments
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
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
Thanks. Hopefully, I'll have some more questions about scalability once
we've got loads of customers pounding on our system!