Omnis Technical Note TNWE0011

Deploying Omnis Web Client Server on Linux Server Appliances.

For Omnis Studio 3.0+
By Joe Frost and Bob Whiting

How do I use the Omnis Web Client Server without X-Windows? This technical note explains the configuration changes that must be made to Linux based server appliances to facilitate the use of the Omnis Web Client Server. Server appliances typically do not have a display device capable of supporting X-Windows.

As Omnis is an X based application it requires X-Windows to run however it doesn't require that it's output actually be visible.

The current release of Xfree86 includes a device called Xvfb - the X Virtual Frame Buffer that effectively simulates the X display in an area of memory. Running this will enable you to run Omnis on Linux machines that do not have a graphic display.

First of all check to see if your system has the Xvfb driver installed, if not get the latest version of Xfree86 from http://www.xfree.org.

Install Omnis Web Client Server and run the omset script. Place your library in the Startup folder so that it is launched automatically. Datafiles and so on must be placed in the appropriate locations.

Change directory to /root and create .xinitrc as follows:
[path where omnis is installed]/omnisI386

This will cause omnisI386 to be run when root starts X-Windows.

Make a file called omnisd with the following content:
xinit -- /usr/X11R6/bin/Xvfb :0 -screen 0 1024x768x16 &

This runs X-Windows specifying Xvfb as the driver to use and requests a screen resolution of 1024x768 with 16bit color (the minimum that Omnis requires).

You could also execute omnisd at startup via whichever mechanism your system performs this (e.g. /etc/rc.d/init.d....)

If you wish to debug your Omnis libraries while they are running on your server appliance then it is possible to make it use another machine as the display device for X.

Type:
xhost +n.n.n.n

On the machine that you will use as the display where n.n.n.n is the IP address of the appliance.

Type:
export DISPLAY=n.n.n.n :0.0

On the appliance where n.n.n.n is the IP address of your display machine.

Now when you execute omnisI386 on the appliance you should see Omnis appear on the display machine after a few seconds.

This assumes that there are no security devices such as firewalls between the appliance and the display machine.