Managing large client billing databases
When using the The account selection popup, the User ClientThe User Client tool is an add-on that resides on a user's desktop. It allows users to view their current account balance via a popup window, provides users with the opportunity to confirm what they are about to print, allows users to select shared accounts via a popup, if administrators have granted access to this feature, and displays system messages, such as, the "low credit" warning message or print policy popups. displays a list of client accounts for the user to choose from. This account list is downloaded from the server whenever the account list is updated (i.e. new accounts added). The accounts are downloaded in a very efficient compressed format (taking approximately 10-20 bytes per account). This works very well on the vast majority of sites that have less than 10,000 accounts and are running on fast network connection.
On sites that have 10's of thousands of accounts and many workstations on remotes with bandwidth-limited WAN connections the accumulated bandwidth usage could be significant. To reduce this bandwidth usage, you can configure the clients to load the accounts from a file stored locally at each site. When the accounts are updated on the server, you can recopy the file to each site. This distributes the client account list to all users at a site by sending the account list over the network only once, instead of one copy per workstation/client.
The process works as follows:
-
On the server the administrator sets up a scheduled task to run the server command to generate the client accounts file as follows:
server-command create-user-client-accounts-file
This creates the client account file in [app-path]/server/data/client/client-accounts.dat.
For more information running server-command see Server commands (server-command). See below for a sample batch file.
-
Copy the client-accounts.dat to each of the sites running the client software. Copy the file to a shared location accessible by all users running the client (e.g. a file share).
Tip:If you are using Microsoft distributed file system (DFS), you can copy the client account file to the distributed share. DFS then efficiently distributes the file to all your remote sites.
-
Configure the User Client to run with the
--accounts-file "\\fileserver\path\to\client-accounts.dat"
option. Clients at each site should use the accounts file stored locally at that site. The account file location can also be specified in the client's config.properties file. For more information on client configuration settings see Configuring the User Client using the command-line.
-
Clients then load the accounts from the file and not directly from the server. The client only loads the accounts from the server if it fails to load the accounts file (i.e. the file does not exist).
Below is an example batch script that you can schedule to run regularly on your PaperCut NG server. Schedule this to run whenever your shared accounts are updated (e.g. once a day). Modify the script to reflect where PaperCut NG is installed and where the client file is distributed.
REM Batch file to create and distribute the client accounts file
REM Create the client account file
[app-path]\server\bin\win\server-command create-user-client-accounts-file
REM === COPY TO SERVER 1 ===
REM Copy to destination server
REM Create temp file, so clients do not load an incomplete file.
copy /y [app-path]\server\data\client-accounts.dat \\svr1\share\accounts.tmp
REM Rename the temp file the final account file name used by the User Clients
move /y \\svr1\share\accounts.tmp \\svr1\share\client-accounts.dat
REM === COPY TO SERVER 2 ===
copy /y [app-path]\server\data\client-accounts.dat \\svr2\share\accounts.tmp
move /y \\svr2\share\accounts.tmp \\svr2\share\client-accounts.dat
Known limitations
There is one minor limitation of using the client account file approach. When the account selection popup is displayed, it lists all the defined accounts (even if the user does not have permission to charge to these accounts). The server still enforces security to ensure that users can only charge to the accounts they have permission to access.