Database Management for Smalltalk

How to avoid multiple images having the same id


Q:  “As each image has an id, how does that work from a runtime image which might be installed on multiple PCs?  Any special requirements for generating runtime?”

A:  In a runtime image, the global variable ImageID is a random 6-digit number allocated when VOSS is initialized by the statement:

  VOSSRoot initializeVOSS.

It’s used to control the number of concurrent images logged on to any virtual space, which is relevant only when VOSS is used in client/fileserver configuration, i.e. VOSS installed on the client machines, all connected to the same virtual space files.  When VOSS is configured as a server, serving each remote client by a separate background process in the same image, imageID is relevant only in multi-processor servers, where each server cpu is running a separate image.  There is a small chance that two images could be allocated the same ImageID, if this happens then the second to log-on will be told it is already logged-on.  Re-initializing VOSS in that image will allocate another ImageID.

This can also happen after a crash where an attempt to log-on, although finding the virtual space in good condition, finds that the image is still recorded as logged-on, in this case it is automatically logged-off and the user is asked to log-on again; no re-initialization is necessary.

Leave a Reply