The data in page and data object instances is available exclusively to one
users session on for all the events associated with the period of *one web
hit*.
Because the instantiation of a page involves the loading interpretation the
HTML and page template files, a lot of overhead in time and memory is
involved in creating them. It is a similar story for data objects. So
NetDynamics maintains a pool of pages and reuses them for many users.
I agree that there are issues created by this reuse and it creates a need
for careful multi-user function testing.
One feature I would like is a web hit object which is created anew for each
web hit. Then any data which needs to be shared by the events of a single
web hit would have the right lifetime. Putting data in pages and data
objects gives it an extended lifetime which causes the problems you allude
to.
There are still plenty of options to maintain data for a particular users
including:
1. Put it in a database. This is really underrated. In my view it is
an excellent approach. This data survives a browser crash.
2. Use a session object. Session objects can be quite structured and
can be a fully encapsulated storage mechanism.
3. Use a hidden field, or URL attribute. Cookies are an approach,
however ND provides little explicit support.
4. Stateful Session Beans are available in NetDynamics 5.x and are
ideal for object oriented storage of session related data.
Brendan Johnston
TeamND
-----Original Message-----
From: Mikko [SMTP:[EMAIL PROTECTED]]
Sent: Thursday, May 20, 1999 10:40 AM
To: [EMAIL PROTECTED]
Subject: [ND] How ND dispatches pages with variables in
multiuser environments?
Hi,
I have coded about 5 months with NetDynamics and I still have some
confusion that how ND server internally dispatches ND project's
pages with
multiple
users and how the variables of the pages are stored(swapped,
permanent or
what)
For example:
If I have a ND project which has one page derived from CSpPage.
It runs inside ND server. That page has some member variables
for example:
class CSomePage extends CSpPage
{
...
private String _Value;
....
}
User 1 starts this project and
somewhere in page's code a value is set to that variable:
_Value = new String("Susan");
Okey, then another user uses that same application(and page too)
and somewhere he/she runs that same code where variable _Value
changes it's value.
_Value = new String("Megan");
Then finally the question!!!!
If user1 neither user2 does not set that _Value variables value
anymore what
will be seen in Web browser when this field is shown to user in some
display
field when
the page is reloaded?
Will both users see the last value of the _Value variable(Megan
here?) or
will they
see their own values set to that variable?
Can anyone tell me the answer?
Is UserSession-object the only way to prevent this? Or how these
situation
are usually
handled.
It is so easy to program a project when the programmer is the only
(single user) tester but when real customers are using that program
simultanously ...
I would be very grateful for the answer.
Regards
Mikko
_________________________________________________________________________
For help in using, subscribing, and unsubscribing to the discussion
forums, please go to:
http://www.netdynamics.com/support/visitdevfor.html
For dire need help, email: [EMAIL PROTECTED]
_________________________________________________________________________
For help in using, subscribing, and unsubscribing to the discussion
forums, please go to: http://www.netdynamics.com/support/visitdevfor.html
For dire need help, email: [EMAIL PROTECTED]