This Client Server article is republished in its entirety from 2004 for reference purposes.
In many ProjectWise environments, offices in multiple cities, countries or continents work together on projects and share information with each other via a company-wide network. In most cases, the projects can be set up so that the bulk of that network traffic will be local by storing the actual files on a ProjectWise file transfer server in the office where these files will be used most. However, when someone in another office needs access to these files, all of that data needs to be sent through a interoffice connection. And many times that data will travel from one office to another just for viewing purposes, without even being changed.
At times like this, you may wish that a local ProjectWise server could keep a local copy of these files, so that the next time you or someone else opens this file, it would open quicker. But you would also want to be sure that you have a current copy of the file.
In ProjectWise V8 2004 Edition, Bentley introduced file-caching. The local ProjectWise server-which could be an application server, a file transfer server, or a connection server-will be configured so that clients who request a certain file will first be directed to a cache on a local ProjectWise server before going to the file transfer server that keeps the original copy of the file in the designated storage area. This is all controlled by configuring the dmskrnl.cfg of the servers. I will describe how to do this with a simple example.
A company has two offices; let's say in Amsterdam and New York. The application server (AMS-SERVER), which also hosts the storage area, is located in Amsterdam. In New York, there is a file transfer server (NY-SERVER), which is also used to publish the datasources to clients in the New York office.
On NY-SERVER, the following changes have been made to the dmskrnl.cfg:
FileTransferSrv=1
ConnectionSrv=1
Databases=db0
[db0]
DsServer = 1
Server = AMS-SERVER
[Cache]
Enabled=true
;Servers=
StoragePath=d:\cacheroot
Limit=200
[Gateway]
AMS-SERVER = NY-SERVER[Allow(210.176.*.*)]
[Routing]
AMS-SERVER=5800
Both FileTransferSrv=1 and ConnectionSrv=1, because this server has a storage area, but also publishes the datasources of the Application Server in Amsterdam.
If the server was previously used only as a connection server, then it needs to run as FileTransferSrv to enable file-caching. That also means you will need a File Transfer Server license.
The cache has been enabled. The folder d:\cacheroot will be created automatically. In above example 200 MB is the maximum size of the cache.
Now the gateway and routing has to be configured. Users that request data from AMS-SERVER, need to be redirected to NY-SERVER. By adding an Allow rule to this line, only users in this IP-range will use the gateway.
If the data is not available on NY-SERVER, the request will be forwarded to the next server, which is in this case AMS-SERVER, on port 5800.
In Amsterdam, the dmskrnl.cfg will get the following additions:
NY-SERVER = AMS-SERVER[Allow(192.168.*.*)]
NY-SERVER=5800
In fact just the opposite: It's caching only the files from NY-SERVER, and this is why the gateway and routing are now working in the other direction.
Open Files:
You will see the most improvement with files that are not often changed anymore. Instead of downloading a new copy from a remote server, only a small check will be performed, to verify that the cached copy is still up to date.
If the file was last updated by someone in the other office, it will be opened from that location.
Using Reference Files:
One of the major benefits happens when using large reference files that are not often modified. Before, each user needed to retrieve this file from the remote server into his or her local storage area. Now only one user will need to do this, and the next user will use the cached copy.
Closing Files:
When a file is modified and saved, both the cached copy and the remote copy will need to be updated, so you will notice no difference here.
If configured as above, the cache will be filled by files that are used as time goes by. The files will be updated only when someone requests that file. And when you are the first to open a file that needs updating from the remote server, you will have to wait for the information to transfer.
If you would like to fill the cache overnight, to have the storage area and the cache location synchronized the next morning, you will like Active Caching.
A command-line utility called Fetchfiles can transfer folders or files that you select to the cache location.
Client Server Archive
ProjectWise TechNotes And FAQs
Bentley's Technical Support Group requests that you please confine any comments you have on this Wiki entry to this "Comments or Corrections?" section. THANK YOU!
Original Author: Bentley Technical Support Group