Youll use FileMaker Server to make your FileMaker Pro databases available to many users at once across a network. On its own, the FileMaker Pro software can host files for networked access from up to five users at a time, in whats called a peer-to-peer configuration. In practice, except for developmental configurations, or production deployments to very small groups, peer-to-peer sharing is unlikely to be a suitable choice for making files available to multiple networked users. Unless you e in that rather small minority of situations, youll want to look at FileMaker Server instead.
Two separate products are available under the name FileMaker Server:
For a discussion on ODBC and JDBC, see Chapter 20, "Exporting Data from FileMaker," p. 595.
To find out about Instant Web Publishing, see Chapter 21, "Instant Web Publishing," p. 633.
Custom Web Publishing is discussed in Chapter 23, "Custom Web Publishing," p. 699.
The essential distinction here is between Server and Server Advanced. Server allows connections from only FileMaker Pro clients. To allow access from ODBC, JDBC, or web clients, you need to purchase Server Advanced.
Installing and working with the components of FileMaker Server Advanced is covered extensively in other chapters. This chapter focuses on the administration and configuration tools and techniques that pertain to the core Server product.
There are some major differences between FileMaker Server and peer-to-peer database hosting. We alluded to the differences between these methods in the preceding chapter. The limitations of the peer-to-peer sharing method are fairly severe: With peer-to-peer sharing, no more than ten database files may be served, to no more than five clients at a time. The peer-to-peer method uses a regular copy of FileMaker Pro as the database host, so a deployment of this type also forgoes important features of FileMaker Server, especially the capability to make regular, scheduled backups of the databases. Although such schedules could be created with operating-system-level scripting technologies, its much simpler to use FileMaker Servers built-in tools.
Additionally, peer-to-peer configurations tend to be run on less capable hardware than Server-based configurations. In some cases, weve even seen peer-to-peer configurations hosted on an individuals personal workstation, in constant daily use for many tasks. Neither lower-end hardware nor constant competition for machine resources is a good foundation for a robust multiuser deployment.
If you do choose to begin with a peer-to-peer configuration for multiuser database sharing, we recommend that you still treat this situation as a server-type deployment as far as possible. Give the database host its own dedicated machine on which to runone that people won casually use for other daily tasks; make sure that you have a reliable solution for regular backups; make sure that the machine at least meets the minimum specifications for the FileMaker Pro client software, and add a bit more RAM if you possibly can.
Backing Up Open Files
If you e backing up hosted FileMaker files by hand, please be aware that you should never make a copy of a FileMaker file while it is openeven if its not hosted and is in use by only a single user. FileMaker can guarantee that a database file is in a fully consistent state on disk only if the file has been closed properly by the server process. Otherwise, there might be database transactions that exist only in RAM that have not yet been committed to disk.
In versions of FileMaker prior to version 7, a database that had been copied from an open file would display a warning the next time it was opened, stating that the file had been closed improperly and was being checked for consistency. This warning no longer necessarily appears in FileMaker 8 when you open a file that has been copied from an open file. Don let this fact lure you into thinking that its now okay to copy an open file. Its not.
As youll read in a later section, FileMaker Servers built-in backup capability handles the details of closing the files before backing them up. If you e working in a peer-to-peer setting, you don have that luxury. Youll need to make sure that any automated solution you put into place takes into account the need to close each database file before backing it up.
The extremely limited scalability and lack of backup automation capabilities ought to discourage you from using FileMakers peer-to-peer sharing for production use. For the cost of a handful of copies of the FileMaker Pro client, you can host your databases on a solid server platform (FileMaker Server) that can handle 125 database files (potentially comprising thousands of tables) and up to 250 users.
Weve talked about some of the features that set the FileMaker Server product line apart as a hosting solution: much greater scalability than the plain FileMaker Pro software, and the capability to perform automated tasks such as backups. There are quite a number of other distinguishing features as well. Here are some of the most important:
In addition to these features, FileMaker Server offers a large number of other important functions as well, such as the capability to send messages to guests, to disconnect idle guests, to limit the visibility of database files based on user privileges, to be run in a scripted fashion from the command line, and to capture a variety of usage statistics and server event information for logging and analysis. All of these features are discussed in the sections to come.
Like any piece of server software, FileMaker Server has certain minimum hardware and software requirements. Youll achieve the best results with a dedicated server; as with any piece of server software, its best if FileMaker Server is the only significant server process running on a given machine. Forcing FileMaker Server to compete with other significant processes, such as mail services or domain controller services, is likely to hurt Servers performance.
File Sharing and FileMaker Server
A special word is in order about file sharing and file servers. FileMaker, Inc., recommends that all file sharing should be disabled on a machine running FileMaker Server. This has long been the official position, and in the past, a number of different reasons have been advanced for this. For instance, FileMaker Server uses its own techniques for managing concurrent access to files, and its been said that contention between FileMaker Servers file access and the operating systems file sharing could lead to file corruption.
Another troublesome fact about file sharing is that it opens the possibility that users could mount the volume containing the hosted database files on their own computers, and open the files directly with FileMaker Pro, at the same time that other users were accessing the files via Server. This is a clear recipe for disaster and is almost certain to lead to file corruption.
In practice, its often been difficult to disable file sharing completely on the server machine. Its often desirable to have at least part of the server machine published as a share point to move new FileMaker databases up to the server or to copy local backups to remote storage.
At the very least, if you feel you must have an operating system-level share point somewhere on the server, make very sure that the OS-level file sharing does not directly cover the directories where the live FileMaker files are kept. (Later sections in this chapter discuss the location of those files.)
And as a best practice, try to disable OS-level file sharing altogether on the server machine, and use one of the many good remote administration tools available insteadtools such as Terminal Services (Windows), Apple Remote Desktop (Mac OS), or Timbuktu (cross-platform commercial).
The server machine, in addition to being dedicated as far as possible to FileMaker Server, and having the minimum amount of file sharing enabled (preferably none), also needs the things discussed in the following sections.
The server machine needs to be enabled for TCP/IP networking with one or more static IP addresses. (Much earlier versions of FileMaker Server supported the IPX/SPX protocol in addition to TCP/IP, but this has not been the case for several versions of Server.) Note, by the way, that FileMaker Server 8 is capable of multihoming, meaning that it can take full advantage of multiple physical network interfaces, each with its own IP address. FileMaker Server listens on all available network interfaces. As far as we know, its not possible to configure FileMaker Server to ignore one or more of the available interfaces; if the interface is available, FileMaker Server tries to bind to port 5003 on that interface and begins listening for FileMaker traffic. (The FileMaker client/server port number, 5003, is also not configurable.)
Like any database, FileMaker Server is capable of being extremely disk-intensive. For some database operations, particularly those involving access to many recordssuch as a large update or a reportthe speed of the servers hard disk may be the limiting factor. RAID (Redundant Array of Inexpensive Disks) technologies (whereby multiple physical disks are combined into a single disk array, for greater speed, greater recoverability, or both) are becoming ever cheaper, and some sort of RAID array may well be the right answer for you. (It probably goes without saying, but we e talking about a hardware-based RAID, not a software-based RAID.) Otherwise, consider a high-RPM SCSI disk, or one of the relatively new Serial ATA disks.
This is a fairly obvious requirement for a server machine. But its worth noting that FileMaker Server 8 can take full advantage of multiple processors.
Again an obvious requirement. FileMaker Server 8 is capable of using up to 800MB of RAM for its cache. Maximum cache RAM is determined as a fraction of installed RAM: the formula is roughly (physical RAM 128) x .25. This means that in order to be able to use 800MB of cache memory, youll need 4GB of RAM installed. This limitation on cache RAM was introduced in FileMaker Server 7.0v3. FileMaker Server can use only 2GB of RAM directly. Larger amounts of RAM will increase the available cache, and are also desirable if you e running components of FileMaker Server Advanced on the same machine as Server itself. (Those components can be installed on the same machine as Server, or a different machine, as discussed in Chapter 23.)
FileMaker is a client/server application, which means that FileMaker Pro clients remain in constant contact with a database host such as FileMaker Server. FileMaker Server constantly polls (attempts to contact) any connected clients to determine what they e doing and whether they e still connected. In addition, although Server 8 is capable of handling a few more tasks than its predecessors, it still needs to send quite a lot of data to the client for processing in certain kinds of operations. All this means that FileMaker is an extremely network-intensive platform that benefits greatly from increased network speed. Best results will be achieved on fast network connections of T1 speed or greater. A 10Mbps LAN is an improvement, and 100Mbps is even better. Of course, theres no point in spending money on machines with Gigabit Ethernet interfaces if the intervening network and the individual client machines don support such a high speed.
FileMaker Server 8 supports the following operating systems: Mac OS X Server, Mac OS X client, (10.3.9 or 10.4.x for both), Windows XP Professional Service Pack 2, Windows 2000 Server Service Pack 4, and Windows 2003 Server Standard Edition Service Pack 1. On the Mac OS X side, Mac OS X Server is listed as the recommended choice. FileMaker, Inc., has indicated that this means it has not tried to verify the acceptability of the regular Mac OS X operating system for loads greater than 50 connected FileMaker users.
Although not strictly a requirement for running FileMaker Server, proper care and housing of server equipment is a necessity, one thats often overlooked, especially in the small and medium-sized business sectors, some areas of education, and among nonprofit groups. These are all key groups of FileMaker users, ones that do not always have sufficient resources to build and maintain anything like a data center. Ideally, a server of any kind should be housed in a physically secure and isolated area, with appropriate cooling and ventilation, with technical staff on hand 24 hours a day to troubleshoot any issues that arise, and with automated monitoring software that periodically checks key functions on the server and notifies technical personnel by email or pager if any services are interrupted. Some organizations are fortunate enough to be able to house their FileMaker servers in such an environment. But even if you can provide all those amenities, you can see to the key areas. The server should minimally be up off the floor, well ventilated, and under lock and key if possible. And some sort of monitoring software is nice, and need not break the bank: the open source package Nagios (http://www.nagios.org) is a popular and powerful open-source monitoring package.
Nagios runs on UNIX but can monitor servers running on almost any platform. Many server monitoring packages exist for Windows deployment as well.
Its sometimes a point of confusion, but its important to know that FileMaker Server 7 and 8 will not run on a machine running an earlier version of FileMaker Server at the same time. If you want to run Server 7/8 and Server 5.5 or earlier at the same time, you need two machines to do so. The same holds true for FileMaker Server 7 and 8; they cannot both be run simultaneously on the same machine.
Part I: Getting Started with FileMaker 8
Using FileMaker Pro
Defining and Working with Fields
Working with Layouts
Part II: Developing Solutions with FileMaker
Relational Database Design
Working with Multiple Tables
Working with Relationships
Getting Started with Calculations
Getting Started with Scripting
Getting Started with Reporting
Part III: Developer Techniques
Developing for Multiuser Deployment
Advanced Interface Techniques
Advanced Calculation Techniques
Advanced Scripting Techniques
Advanced Portal Techniques
Debugging and Troubleshooting
Converting Systems from Previous Versions of FileMaker Pro
Part IV: Data Integration and Publishing
Importing Data into FileMaker Pro
Exporting Data from FileMaker
Instant Web Publishing
FileMaker and Web Services
Custom Web Publishing
Part V: Deploying a FileMaker Solution
Deploying and Extending FileMaker
FileMaker Server and Server Advanced
Documenting Your FileMaker Solutions