Hi all,
I've developed a win C# app that is actually database driven using SQL
server 2000. The idea is that only one application will be installed on
a server in a network and the program will be able to run at each client
machine by just double-clicking the application executable through a
network share. The program supports user logins.
What I want to do is find a secure way to control the number of
concurrent *users* using the application.
Any suggestions? 8 3997
pnp,
You could use transactions on the database level to do this, but I think
that is a bad idea. If you have to pass connections across objects, or use
other transactional resources, then doing that will not work.
Rather, I would recommend that you use the classes in the
System.EnterpriseServices namespace to create COM+ components. With these,
you can specify transaction boundaries which will allow resources to
register with COM+, and have COM+ control the transaction.
Or, you can use the classes in the System.Transactions namespace, if you
are using .NET 2.0.
Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
"pnp" <pnp.@.softlab.ntua.gr> wrote in message
news:e4**************@TK2MSFTNGP15.phx.gbl... Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the application.
Any suggestions?
You can maintain statistical data about users logged in the system at anyone
time in the SQL Server database. When the app initializes the first thing
is to check that number against the maximum allowed, and if more gracefully
shutdown.
User starts app: UPDATE UserStats set usercount=usercount+1;
User shutsdown app (after a successful start): UPDATE UserStats set
usercount=usercount-1;
Alex
"pnp" <pnp.@.softlab.ntua.gr> wrote in message
news:e4**************@TK2MSFTNGP15.phx.gbl... Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the application.
Any suggestions?
Alex,
This will not solve the problem, though. It's not about how many users
are on the app, what matters is that they are all hitting the same data
source at the same time. If you have operations that require more than one
operation, then you need to wrap that in a transaction, so that the state of
the app doesn't become corrupted (where another user can see only a part of
a change that was made, and then acts upon it).
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
"Alex Passos" <bz@netmerlin.nospam.com> wrote in message
news:ek**************@TK2MSFTNGP15.phx.gbl... You can maintain statistical data about users logged in the system at anyone time in the SQL Server database. When the app initializes the first thing is to check that number against the maximum allowed, and if more gracefully shutdown.
User starts app: UPDATE UserStats set usercount=usercount+1; User shutsdown app (after a successful start): UPDATE UserStats set usercount=usercount-1;
Alex
"pnp" <pnp.@.softlab.ntua.gr> wrote in message news:e4**************@TK2MSFTNGP15.phx.gbl... Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the application.
Any suggestions?
"pnp" <pnp.@.softlab.ntua.gr> wrote in message
news:e4**************@TK2MSFTNGP15.phx.gbl... Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the application.
Any suggestions?
Why do you need to restrict the number of users? Is it a SQL performance or
a licence issue or something else.
I suppose you application is transaction safe (that is multi-user ready) so
that's no issue right?
Willy.
He has only mentioned that he wants to control the number of concurrent
users on his app, not on SQL Server, but I completely understand your point.
More information is needed. from the OP.
"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.com> wrote in
message news:u8**************@tk2msftngp13.phx.gbl... Alex,
This will not solve the problem, though. It's not about how many users are on the app, what matters is that they are all hitting the same data source at the same time. If you have operations that require more than one operation, then you need to wrap that in a transaction, so that the state of the app doesn't become corrupted (where another user can see only a part of a change that was made, and then acts upon it).
-- - Nicholas Paldino [.NET/C# MVP] - mv*@spam.guard.caspershouse.com
"Alex Passos" <bz@netmerlin.nospam.com> wrote in message news:ek**************@TK2MSFTNGP15.phx.gbl... You can maintain statistical data about users logged in the system at anyone time in the SQL Server database. When the app initializes the first thing is to check that number against the maximum allowed, and if more gracefully shutdown.
User starts app: UPDATE UserStats set usercount=usercount+1; User shutsdown app (after a successful start): UPDATE UserStats set usercount=usercount-1;
Alex
"pnp" <pnp.@.softlab.ntua.gr> wrote in message news:e4**************@TK2MSFTNGP15.phx.gbl... Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the application.
Any suggestions?
It is not an SQL server license issue, but my own applications license
issue.
The problem with storing data in the SQL server db is that if one of the
instances of the app fail to close correctly, my db will have the
wrong number of concurrent users, which can result in bigger problems
(one could eventualy not be able to log in).
But I would like a little more information on using COM+ to control the
users. Nicholas, can you please describe me a scenario in a little more
detail?
(I would rather not use the .NET 2.0 yet)
Willy Denoyette [MVP] wrote: "pnp" <pnp.@.softlab.ntua.gr> wrote in message news:e4**************@TK2MSFTNGP15.phx.gbl...
Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the application.
Any suggestions?
Why do you need to restrict the number of users? Is it a SQL performance or a licence issue or something else. I suppose you application is transaction safe (that is multi-user ready) so that's no issue right?
Willy.
"pnp" <pnp.@.softlab.ntua.gr> wrote in message
news:u4**************@TK2MSFTNGP10.phx.gbl... It is not an SQL server license issue, but my own applications license issue.
The problem with storing data in the SQL server db is that if one of the instances of the app fail to close correctly, my db will have the wrong number of concurrent users, which can result in bigger problems (one could eventualy not be able to log in).
But I would like a little more information on using COM+ to control the users. Nicholas, can you please describe me a scenario in a little more detail?
(I would rather not use the .NET 2.0 yet)
Ok, this is what I had guessed.
You need to track of the numer of instances running, well the best place to
do it is in the database. The problem with "vanishing applications", can be
solved by means of a stored procedure that each application has to execute
at regular intervals to update it's "state", a watch dog running in SQL
server could remove non updated entries at regular intervals.
Using COM+ for this is not an option IMO, as it's a single point of failure,
if the COM+ (or any other solution based on a centralized service) fails, it
would prevent your applications to be started while otherwise your SQL
server might be in perfect shape.
Willy.
Another problem could be that an advanced user could create a stored
procedure that deletes all the entries that are inserted in the db
continuously (or triggered by an insertion) so he could bypass my user
control scenario.
Willy Denoyette [MVP] wrote: "pnp" <pnp.@.softlab.ntua.gr> wrote in message news:u4**************@TK2MSFTNGP10.phx.gbl...
It is not an SQL server license issue, but my own applications license issue.
The problem with storing data in the SQL server db is that if one of the instances of the app fail to close correctly, my db will have the wrong number of concurrent users, which can result in bigger problems (one could eventualy not be able to log in).
But I would like a little more information on using COM+ to control the users. Nicholas, can you please describe me a scenario in a little more detail?
(I would rather not use the .NET 2.0 yet) Ok, this is what I had guessed. You need to track of the numer of instances running, well the best place to do it is in the database. The problem with "vanishing applications", can be solved by means of a stored procedure that each application has to execute at regular intervals to update it's "state", a watch dog running in SQL server could remove non updated entries at regular intervals. Using COM+ for this is not an option IMO, as it's a single point of failure, if the COM+ (or any other solution based on a centralized service) fails, it would prevent your applications to be started while otherwise your SQL server might be in perfect shape.
Willy. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: bluedolphin |
last post by:
There seems to be a consensus that Access has a concurrent user limit
of 200 users. I am working on a system that currently stands at
approx. 1 gig and has a small number of users. However, there...
|
by: Krysa |
last post by:
Access 2K, DAO, split front end and back end; back end on server.
Regarding max of 255 concurrent users. Is it really users, or
connections? How would a user have more than one connection to same...
|
by: mgPA |
last post by:
Short: How can I limit the number of concurrent logins to Access
(2000) DB?
Long: I seem to be having the problem discussed in previous postings
of having more than 9 or 10 concurrent logins. ...
|
by: Adnan |
last post by:
Hey Ppl,
I'm developing an Online Auction Site using ASP.net and am
experiencing a problem with Transactions in ADO.Net.
When beginTrasaction() function is invoked from a specific connection,...
|
by: Bill Manring |
last post by:
I have an ASP.NET application which my company sells comercially. We license
on a concurrent user model, but we currently rely on the "honor" system for
the customers to give us their best guess...
|
by: krvrk |
last post by:
Hi,
I am creating a report for which i need to query a table for total number of users and Concurrent users logged in.
The table will contain Username(nvarcar,not null),SessionStart...
|
by: mktselvan |
last post by:
Hi,
Existing running oracle application 11i (11.5.8)
Database version is 8.1.7.4
There is any command / way to know the number of concurrent users for this application.
...
|
by: mastanrao |
last post by:
I want to findout how many concurrent users are avilable an application and i want allow 4 concurrent users with same username and password and i want to restrict 5 user.whenever user singout 5 with...
|
by: amitpatel66 |
last post by:
There is always a requirement that in Oracle Applications, the Concurrent Program need to be execute programatically based on certain conditions/validations:
Concurrent programs can be executed...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |