Microsoft KB Archive/157151

= Microsoft Knowledge Base =

How Linktab.ini Helps with Interoperability
Last reviewed: November 27, 1996

Article ID: Q157151

The information in this article applies to:


 * Softimage 3D for IRIX versions 3.0, 3.5, 3.51
 * Softimage 3D for Windows NT versions 3.0, 3.01, 3.51

SUMMARY
The Linktab.ini file is an ASCII file that specifies a one-to-one relationship between UNIX and Windows NT paths. The Linktab.ini is a simple translation table that significantly improves the interoperability of Softimage 3D. It provides Softimage 3D with the necessary information to locate and load files that are either on a remote computer or are installed at a different location on the current computer. This article explains how the Linktab.ini file works.

Problems With Windows NT and IRIX Interoperability
When you use Softimage 3D in heterogeneous environments, namely Windows NT and IRIX, there are a few important environmental differences. These differences are listed below:


 * Windows NT is not case sensitive. It does not differentiate between uppercase and lowercase file names. For example, FILENAME.txt is considered the same as filename.txt.
 * There are many providers of NFS for personal computers. Familiarize yourself with the settings regarding case handling of file names. Depending on the provider, the syntax used to identify a mounted-file system can vary. Some providers use the UNC convention (\\machinename\mount_point), while others use the UNIX style naming convention (machinename:/mount_path/mount_point).
 * Softimage 3D recognizes both forward and backward slashes on Windows NT.
 * In a DOS shell, the letter case is retained as you type text. If you type: << cd USERS >>, the shown path is in uppercase, whereas if you type: < >, the shown path is in lowercase instead. When you start "soft," the letter case that you use is retained.

In Softimage 3D, all files that compose a scene are placed together in a given database. Problems occur when references to files that are external to the database are kept within a scene, for example, pictures taken from another computer on the network. Softimage 3D uses the linktab.ini translation table (or equivalence table) to locate files (references) in other locations.

Interoperability problems might occur in the following situations:


 * Distributed rendering using mental ray.
 * Moving a scene from one computer to another. (Presumably, manually. For example, using File manager rather than Softimage 3D's dbexchange.)
 * Sharing databases (or user's accounts) between IRIX and Windows NT computers.
 * Resolving UNIX symbolic link from an Windows NT computer.
 * Resolving installation or configuration miss-matches between computers.

Anytime a scene is moved from one platform to another, or started from a remote platform using NFS, interoperability problems concerning files outside a database might arise. Linktab.ini resolves these issues and helps you move files from one architecture to another.

What The Linktab.ini File Does
The Linktab.ini file is an ASCII file that specifies a one-to-one relationship between UNIX and Windows NT paths. Each line of the Linktab.ini file represents this relationship. By convention, the paths maintained in the file are UNIX style. Therefore, the Linktab.ini file is only required on Windows NT hosts and not IRIX hosts.

The Linktab.ini is a simple translation table that significantly improves the interoperability of Softimage 3D. It provides Softimage 3D with the necessary information to locate and load files that are either on a remote computer or are installed in a different location on the current computer. This same information is also used when saving scenes from a Windows NT computer. When you distribute rendering, it associates shaders between UNIX and Windows NT.

How The Linktab.ini File Works
When Softimage 3D finds a Linktab.ini translation file, it ensures that scenes remain compatible across platforms. When Softimage 3D is launched, it looks for the Linktab.ini file in the directory pointed to by SI_LOCATION. If a Linktab.ini file is found, an internal table of path translation (Windows NT to UNIX and UNIX to Windows NT) is built. Internally, Softimage 3D builds the list of all network drives currently connected to the Windows NT computer as well as the associated mount point. This list, in conjunction with the Linktab.ini file, provides the necessary information to translate paths from Windows NT to UNIX.

Path references are translated according to the following rules:

  When loading a scene: - Softimage 3D translates UNIX paths (if possible) to the equivalent mount point, and then to the corresponding network drive letter. - Softimage 3D translates UNC references to the corresponding network drive letter.   When saving a scene: - Softimage 3D translates Network drive letters to the given UNC mount point, and then to the corresponding UNIX path (if an entry is found    in the Linktab.ini table). 

For example:

User1 and user2's accounts on SGI are "/home/user1" and "/home/user2" that are linked to "/mnt1/allusers/user1" and "/mnt1/allusers/user2".

On the Windows NT computer, a network drive is connected (using NFS) to  "sgi1:/mnt1/allusers" and in this case linked to, drive "h:". You build a Linktab.ini file that contains the following information:

sgi1:/mnt1/allusers!user1 /home/user1 sgi1:/mnt1/allusers!user2 /home/user2 sgi2:/usr/people/user3         /usr/people/user3 \\pc_server1\share_location  /pc_server1 When you load Softimage 3D, Softimage 3D encounters the path "/home/user1/...", and translates it to "h:/user1/...", which is the equivalent Windows NT path. In this example, the true mount point is "sgi1:/mnt1/allusers" and the exclamation mark indicates that only that portion of the path should be looked up in the current list of the NFS network drive.

When you save a scene, the path is re-translated to the proper UNIX path "/home/user1/...". This ensures that scenes remain accessible from both platforms.

Remember that the first path argument of each line is the Windows NT path, while the second path argument on each line is the UNIX equivalent.

In the Linktab.ini file example given above, the third line indicates that the path "/usr/people/user3" comes from computer sgi2 at the same location. The fourth line indicates that an Windows NT file server is being used by both NT and UNIX computers. The fourth line indicates that on UNIX computers, references to files located on the "pc_server1" remote file server continue to use the UNIX path "/pc_server1" or this is to say that "\\pc_server1\share_location" is indeed mounted as "/pc_server1" on all UNIX computers.

Maintenance
The Linktab.ini file is not maintained by Softimage 3D. When changes are made to the network configuration or data is moved from one physical location to another, this file must be updated accordingly. Since this procedure requires knowledge of both the Windows NT and IRIX operating systems, system administrators, should perform this task.

Troubleshooting
Softimage 3D's translation process can be dumped in a DOS shell by setting the SI_LINKTAB_DEBUG environment variable to "yes" prior to the dump. This trace lists all of the current translation information that Softimage 3D uses to match corresponding UNIX and Windows NT file names.

Remember that the matching process is done from top to bottom, that is for a given path reference, the line entries of the Linktab.ini file are searched in order. Place the longest matching UNIX path first, because they are the most restrictive and should be processed first. This reduces the possibility of building a table with conflicting rules.

The following is an example of Linktab.ini containing conflicting rules:

sgi1:/mnt1/allusers!user  /home sgi2:/home/people/user3   /home/people/user3 For example:

Softimage 3D loads a scene that references a path of the form "/home/people/user3". When the first path argument is applied the result is an invalid path like "h:/user2/people/user3". This is why the longest UNIX path should be placed first in the table. There are numerous examples of conflicting rules. If you are responsible for maintaining the Linktab.ini, you should always look for and re-order the rules, or, if possible, change the conflicting names. You should never match uppercase and lowercase letters in a path that will be exported to other platforms. This reduces the chances of miss-matching cases.

Following is a check list to track interoperability problems:


 * Verify that all remote locations are mounted on both Windows NT and UNIX computers.
 * Double-check permission access to all remote locations.
 * Double-check the mount point syntax and look for mixed uppercase and lowercase names.
 * Use the SI_LINKTAB_DEBUG environment variable to trace the process.
 * Look for conflicting rules in the Linktab.ini file.