Applies To | |||
Product(s): | ProjectWise Caching Server, ProjectWise Gateway Server | ||
Version(s): | XM edition (08.09.x.x) and V8i (08.11.xx.xxx) (SS1 - 4) | ||
Environment: | N/A | ||
Area: | N/A | ||
Subarea: | N/A | ||
Original Author: | Ranveer Basra | ||
Overview
This document will provide an overview on how ProjectWise Caching works along with providing you step by step instructions on how to configure your ProjectWise Caching Server. It will also provide examples from a simple setup to a complex setup of how caching can be configured. The dmskrnl.cfg file provides detailed information on the [Gateway] & [Routing] sections and should be read for detailed information.
**PLEASE NOTE: Name change of service
ProjectWise V8 2004 Edition: File Transfer Server (FTS)
ProjectWise V8XM & V8i Edition: Caching Server
**PLEASE NOTE: It is not necessary to install ProjectWise Caching Server on the Integration Server or the ProjectWise Gateway Service. The Integration Server and the Gateway Service have the caching component already in there modules. Once you enable caching via the dmskrnl.cfg file, the Server will allow caching.
A few terminologies that will be used in this tech note:
DMZ: Demilitarized zone. Section of an organization's network topology that is outside the company firewall.
UDP: User Datagram Protocol.
Caching: The temporary storage of files
Setup:
In the examples below, all configurations have been made on Windows 2003 Servers.
There are three sections in the c:\Program Files\Bentley\ProjectWise\Bin\dmskrnl.cfg file that are very important to understand. Most of the configuration for caching will be done in this file.
FileTransferSrv=1
This variable is uncommented by default on the ProjectWise Caching Server. It tells the ProjectWise service that it is configured to be a Caching Server. Enabling this configuration on an Integration Server will have negative effects such as not being able to see a datasource or completely deactivating the Integration Server's functionality.
ConnectionSrv=1
This variable is uncommented by default on the ProjectWise Gateway Server. It tells the ProjectWise service that it is to act as a gateway for users to connect through to the Integration Server. If you are setting up caching on a Gateway\Connection server then this needs to be uncommented along with the FileTransferSrv=1
******************
[ServerNameResolution]
This section is newly added in SelectSeries1 (08.11.07.xx and above) If your Gateway/Caching server is publically accessible. This configuration is configured with the first binding NIC to a externally accessible FQDN.
**In previous versions prior to SelectSeries1 this configuration was done under the Clustering Section.
*******************
[NameResolution]
Provides name resolution for the Servers IP
[Cache]
This section in the dmskrnl file enables the temporary caching. In the example below each part of the line has be to uncommented by removing the ‘;' semi-colon. The description to each setting is to the right of each variable.
enabled = Can be set to true or false ; true - enables caching, false -disables caching.(Mandatory)
servers=ipad1:port, ipad2:port ;Specifies which Server it will cache. If this section is left blank everything is cached from all servers. (Optional)
storagePath= ;Path to where all cached files will be stored(Mandatory)
limit=xxx ;xxx is amount of disk space that can be taken up in the path where the cached files are stored. (In MB) The threshold for the cached folder is 80%, when the folder is 80% full files start to delete with the least modified dated first. (Optional)
Examples from the dmskrnl
[Cache]
;Enabled=true
;Servers=192.168.32.129:5800
;StoragePath=d:\cacheroot
;Limit=500
[Gateway]
The configurations under this section are for the ProjectWise Explorer (Client) application. The gateway section gives the Client directions on how to connect to make the request from the remote Server where the file lives.
This section does not give a route but tells the Client (s) the first hop in the route.
The best way to think of this section is Storage Area (where the files lives) = Caching Server (where the file will be taken to)
For example:
endpoint=gateway1
endpoint = is where the files reside usually storage area server
gateway1= is where the request from the client is going to get its gateway information from first.
If the Client is making a request that is not on the same subnet as the Integration Server or the Gateway, you will need to tell the Client where it is getting its gateway information (directions) from. On the machine where ProjectWise Explorer is installed: Navigate to the Control Panel and open the ProjectWise Network Configuration Settings (In V8i it is called ProjectWise V8i Network Configuration Settings). Under the DNS Services tab point to the server where the client will be getting it's Gateway Information from. (Figure 1.)
(Figure 1.)
[Routing]
This section is telling the Caching Server where the next hop is to the Storage Area Server. This section is strictly for Server routing. All that is defined is the Server IP or Name and the port number.
Example from the dmskrnl:
Endpoint = 5800
ProjectWise Integration Server:
Storage Area:
When setting up caching it is recommended to use fully qualified domain names (FQDN).
**PLEASE NOTE: In V8i it is mandatory to use FQDN
If short names are used, it is necessary to use short names for ProjectWise Storage Areas as well. In ProjectWise Administrator under the Storage Area make sure the Computer Name is not an IP address if short names are used in the dmskrnl.cfg files (figure 2.)
(figure 2.)
Examples of Caching Setups
Example 1:
Simple caching between two locations.
See Figure 3 for the network configuration. Location one has an Integration Server called ServerA and Location 2 has an Integration Server called ServerB. Both Servers are also acting as Caching Servers.
In this scenario the Clients on the ServerA side request a file from ProjectWise that is stored on the ServerB side. However, if the file is already cached on ServerA, the Client will retrieve the file from ServerA. If it is not already cached, the client will retrieve the file from ServerB and it will be cached on ServerA. The reverse would happen for Clients on the ServerB side, When a client from ServerB side accesses a file that lives on ServerA side, it will first try to get it from the cache on ServerB and if not found, retrieve it from ServerA and cache it on ServerB.
(Figure 3.)
*Note: on serverB [Routing] should be serverA=5800 same as V8XM configuration shows.
Example 2:
In this example the Clients connect to the Integration Server through a Gateway Server and cache files on the Gateway Server.
In this scenario, the Clients in Location 1 are requesting files from ProjectWise that are located on ServerA in Location 2. When the Client makes a request if the file is not already cached on Gateway1, Gateway1 will make a request from ServerA in Location 2, retrieve the file back in to the cached folder on Gateway1 and then forward it to the Client. If the file already is in the cached folder on Gateway1, then the Client will retrieve the file from the Gateway1 folder. Figure 4 shows the configuration needed for this scenario.
(Figure 4.)
Example 3:
In this scenario, all Clients are in different locations and have a storage area for their data stored locally on each of their Caching Servers. However, all users are caching files from all the other locations to their local Caching Server's cache folder. The company wanted to have all Clients pass through the Integration Server, however you do not need to.
Figure 5 shows the communication path for this configuration.
Following the Client request (red line), the user requests files via ProjectWise Explorer that are located on the Caching2 storage area. The request goes first to Caching1 server which then makes a request to INTServer1 on behalf of the Client. The ProjectWise Integration Server then consults the database for the location of the file.
Next, following the blue line, the request is acknowledged by the database on where the file location is, and then the request is sent back to the Client through the Caching1 Server.
The Client now knows where the file lives and sends a request back to the Caching1 server (Orange line) which then is routed to the (INTServer1) to the storage area location Caching2.
Finally, following the (green line) which brings the file via the INTServer1 server back to theCaching1 cache folder completing the request, with the file sent to the user.(Figure 5.)
(Figure 5.)
Troubleshooting:
ProjectWise communicates on port 5800.
**PLEASE NOTE: When communicating across different networks and through firewalls it is important to make sure port 5800 is open bidirectional to each ProjectWise server.
The following tools can be used for checking ProjectWise and network connectivity
**PLEASE NOTE: If the router/firewall is blocking ping then these methods will not show accurate information.
A) ProjectWise Windows Socket Analyzer:
The ProjectWise Windows Socket Analyzer is installed when you install ProjectWise Explorer.
- Start > All Programs > Bentley > ProjectWise > Tools > Users Tools
- Double click on 'Windows Socket Analyzer'
- Keep everything default until you get to 'Remote Host' (Type in the Name of the server you are going to communicate with) Click Next.
- Address: Will show the IP address of the remote host; Click Next.
- Local Host: information & Address: local host IP address will display; Click Next
- If the Local Server is able to communicate with the Remote Server via port 5800 you will get a message stating, "'Connection to remote host established and closed successfully"
- If you get an Error [60004] Invalid data or ' '; you will have to check with your network team and make sure port 5800 is open for bi-directional communication.
B) TELNET TO PORT 5800:
1. Go to Start > Run > type CMD
2. In the DOS prompt type telnet 5800
a. If it is successful it will show Telnet on the top left window
b. If it is not successful it will show ‘Connecting To ...Could not open connection to the host, on port 5800: Connect failed'
C) PWPING:
A command line tool delivered with ProjectWise that lets you run a network trace that reads the configurations set in the ProjectWise network control panel, which in turn reads the routing and gateway sections in the dmskrnl.cfg file.
1. Navigate in to C:\Program Files\Bentley\ProjectWise\bin and open file pwping.log.xml in notepad
2. Change the <priority value=> to ‘all' and save the pwping.log.xml
i.e. change the "debug" to "all"
<root>
<priority value="debug" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4j:configuration>
3. In the MS-DOS prompt change directory to C:\Program Files\Bentley\ProjectWise\bin
4. Type pwping endpoint server name (Figure 6.)
(Figure 6.)
Usage: pwping [-d display-name] [-h hops] [-n count] [-t timeout]
Options:
-d display-name Display name of the endpoint datasource to trace route
to; name will be resolved via normal ProjectWise DNS.
If this switch is specified, the target_name command
argument must be omitted.-h hops Maximum number of servers to transit on the way.
Defaults to the end of the route.-n count Number of ping requests to send between hops.
Defaults to 1.-t timeout Timeout in milliseconds to wait for each reply.
Defaults to 5000ms.-c Display caching configuration information1.
- A successful pwping shows 1 hop from a Gateway Server to the Integration Server
pwping: INFO - Tracing route to host '<HOSTNAME>'
pwping: INFO - Hop: 1 Host: <HOSTNAME> Address: 111.11.11.1 PW Version: 08.11.05.37 AvgTime: <1ms AvgTtl: 128
- A route that is mis-configured in the dmskrnl.cfg file under the gateway and routing section will result in information from the pwping that can guide you to fix the configuration. An example of an pwping that has mis-configuration in the dmskrnl.cfg file is below.
pwping: INFO - Tracing route to host ‘<HOSTNAME>'
pwping: ERROR - Error 32768 "failed to trace route" at func: wmain line: 321
5. After you run a few reproducible errors or unsuccessful caching request , your log file will be located in C:\Documents and Settings\All Users\Application Data\Bentley\Logs
If you need assistance TSG can help. When contacting Support please have these items ready for review.
**PLEASE NOTE: (These files are mandatory for support)
1. Topography with ALL Servers that are being used.
a. Internal IP address
b. External IP address
c. Name resolution
2. Dmskrnl.cfg files from ALL Servers
a. Integration Server
b. Caching Server
c. Gateway Server
See Also
External Links
Comments or Corrections?
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!