Getting Around Requirements
For the most part, the requirements for applications to be made highly available are already handled in well-written Solaris applications. Unfortunately, however, there are many applications, especially those ported from other platforms or created by niche developers, that are not well written. They make so many assumptions about the environment in which they will run that they cannot be easily made into highly available data services. This problem is compounded when there is no access to the source code of the application and the creator is unwilling (or unable) to make fixes.
Nevertheless, these applications are frequently a vital piece of an enterprise IT environment, and so must be made highly available somehow. In some instances, it may be possible to circumvent the restrictions and create a Sun Cluster data service, although these work-arounds can often be complicated. Here are some approaches you may need to try to work around problem applications:
- Use the LD_PRELOAD environment variable to cause the runtime linker to insert custom replacements for functions called by application. [1] This is particularly useful for changing the behavior of standard function calls that result in the application getting the wrong information. One good example would be to use LD_PRELOAD to define a different version of gethostname(3c), so that it returns the current logical hostname, rather than the physical hostname of the node.
- Use symbolic links to redirect file paths for data and/or configuration information, but keep in mind the risks of having the links replaced (see "File Location Independence" earlier in this chapter).
- Redirect startup input data from stored files, but be careful of security implications of storing passwords or similar data.
You should also remember that it is not strictly necessary for a data service to operate over an IP network for it to be made highly available, despite the apparent emphasis on this in the preceding rules. An IP network connection is the most common way to access services on a Sun Cluster system, but it is quite possible to make other kinds of applications highly available.