Discus Home Page  |   Knowledge Center  |   Administration Instructions

Options Manager -- Last Access Information

This option is set from the Profiles tab of the Options Manager interface.

Background Information

Discus and Discus Pro record, in the user database, the "last access" time of a user. This is used to display information in the User Manager, and in Discus Pro, as a basis for filtering the User Manager list based on access time and for display in the user interface member list.

To record a "last access" time in the user database, Discus must perform an update of that database whenever a user accesses the board (to record the new time).

If a MySQL database is used with Discus Pro, the update operation is quick and safe, as database systems such as MySQL are optimized to store large quantities of information and to allow this information to be updated easily. However, if a flat text file is being used, to update the one bit of information (user access time), it is necessary to read the user file into memory, make the manipulation, and write the user file back out. Continuous reading and writing of the user file in this way makes it susceptible to corruption in the case of a server crash.

Writing to the user file has another disadvantage - each write requires that the user database be locked. While the database is updated to record a last access time, no other processes can access the user database at this time. It is for this reason that a "File Locking Error" on the users.txt file may be frequently seen on busy boards with many members.

This setting allows you to control how often your user database is updated with the user's access time. The issue here is a tradeoff between accuracy of the "last access" time and speed and reliability of your board (improving performance by reducing the number of file writes).

Options Explained

  • Upon each access: Each time the user's password is validated for any reason, the last access time is recorded. This could be many hundreds or thousands of times in a browser session, if the user previews and posts several messages and performs searches. This is most accurate because it records the access time whenever possible, but least efficient because it causes the board's user database to be written and rewritten the most.

  • Whenever username and password are manually entered: As the option says, when the user types in their username and password into the board, or has this information automatically filled in by a cookie, this is counted as an access. This is a reasonably accurate measure of user access to the board, and it can improve the performance.

  • Upon first access to board in session: If Discus can detect that a user has already accessed the board in the same browser session, the update will not be performed. You can use this option to catch the time that a user first logs in within a session, but it will be off by quite a while if the user is on your board for a long time. This substantially improves performance but is not very accurate.

  • Never: Discus will never record the "last accessed" time in the user database. This is the most efficient, since no database updates are ever performed, but it does not provide any tracking whatsoever for user access times. This option is recommended only in the case that you are sure that you will never have a need to see who is accessing your board, and when. In practice, this is not recommended.

What about MySQL?

If you are using Discus Pro and have the MySQL database back-end enabled, this option will not appear in the Options Manager. Because MySQL is so reliable and fast at making an update of user information, the equivalent of "Upon each access" as noted above is performed. However, this will not create much additional load on the server, and will not result in file locking errors, since MySQL is designed to accept and manage multiple connections to the same database.



Copyright © 2002, DiscusWare, LLC, all rights reserved