Manage large client billing databases
When using the Account selection, the User Client 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:
This creates the client account file in
For more information running
server-command, see Server commands (server-command). See below for a sample batch file.
client-accounts.datto 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).
Configure the User Client to run with the
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.propertiesfile. For more information on client configuration settings, see Configure 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/MF server. Schedule this to run whenever your shared accounts are updated (e.g. once a day). Modify the script to reflect where PaperCut NG/MF 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
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.