I’m writing this up mostly as a future reference for myself, but maybe someone here might find it usefull, too.How-To starts further down, first a little background info. ![]()
While upgrading one of our Solaris-based Domino servers to R6 I decided strip down the OS installation from ‘End user’ to ‘Core minus a few packages’ (hate all those useless junk in end user…). After stripping down and patching up the OS I went ahead and tried to install R 6.0.1 on the machine, which went suprisingly smooth (setup was complaining about a few missing system patches but I just ignored it because I didn’t have the associated packages installed anyway). ![]()
After the installation process finished I started up the server, which didn’t seem to mind its ‘lighter’ environment as it happily began with its various upgrade tasks (it was an upgrade install over an existing 5.0.11 version).
Alas, while watching the various agents run for the first time I noticed something unpleasant: While the LotusScript agents ran just fine none of the Java agents seemed to work (especially those in reports.nsf).
Error messages seen always started with:
java.lang.UnsatisfiedLinkError: exception occurred in JNI_OnLoad
and various other Java errors after that (mostly from AWT functions).
Further analization brought up two main causes for this problem:
Domino on Solaris seems to rely on OS’s Java runtime environment
The graphics rendering routines in Domino’s JVM use an old AWT (Advanced Windowing Toolkit) which can’t run without a headend (here: an X11 display)
As I wasn’t able to find decent documentation from Lotus/IBM on the dependency of Domino on Solaris system packages (boo!) it was either ‘give up and go back to end user’ or ‘find it out yourself’. I chose the latter and here’s what I came up with…
So, here’s an overview of what we need to do to get Java & AWT working on a Core Solaris install with a bare minimum of additional software packages. For that we need:
-
Solaris 8 Software CD 1
-
Latest SunSolve CD (or access to sunsolve.sun.com)
-
Web access
- First, we need to set up a basic X11 environment, preferably without adding 30+ packages to the system.
Pop in your Software CD 1, mount it and install the following packages in the given order:
SUNWxwdv Kernel device drivers for X Window System
SUNWxwfnt X Window System Fonts (required fonts)
SUNWxwice OpenWindows ICE library and iceauth
SUNWdtcor Solaris Desktop /usr/dt file system anchor
SUNWtltk ToolTalk binaries and shared libraries
SUNWtltkx ToolTalk library (64-bit)
SUNWxilrl XIL Runtime Environment
SUNWxilow XIL Deskset Loadable Pipeline Libraries
SUNWxwplt X Window System platform software
There’s a good chance you could leave out SUNWdtcor but SUNWxwplt gets unhappy whithout it so I left it in.
Note: Even though we’re installing kernel drivers no reboot is required here as we won’t use them.
- As those packages contain numerous bugs and security leaks you also need to apply 2 patches:
108652-66 Xsun patch
110286-10 Tooltalk patch
You can get those from a recent SunSolve CD or directly from sunsolve.sun.com.
- Next, we need an X-server with a virtual framebuffer (so we don’t have to have a graphics adapter in the system).
Surf over to www.blastwave.org and get this package: xvfb-6.6-SunOS5.8-sparc-CSW.pkg
Install it using pkgadd and add this startup script to your system somewhere before your Domino startup script:
------------------------------------------
#!/bin/sh
Start virtual framebuffer (for Domino JVM)
case “$1” in
‘start’)
echo "Starting Xvfb..."
/opt/csw/bin/Xvfb :10 &
;;
*)
echo "Usage: $0 { start }"
;;
esac
exit 0
------------------------------------------
(Feel free to add additional functions (e.g. ‘stop’) as needed.)
Execute it once (so Xvfb is running), check if it’s really running, then proceed to the next step.
(Easiest way to check would probably be: /usr/openwin/bin/xdpyinfo -display :10 )
- Now, enable your Domino server to talk to the X11 instance.
Your ‘notes’ user needs to have it’s DISPLAY variable set up to point to display number 10.
Easiest way to accomplish that is adding something like this to his .profile file:
------------------------------------------
DISPLAY=:10
export DISPLAY
------------------------------------------
- Also needed: Basic components of SUN’s Java runtime environment.
Again from Software CD 1, install these 3 packages in the given order:
SUNWctpls Portable layout services for Complex Text Layout supp
SUNWmfrun Motif 2.1.1 libraries, headers, xmbind and bindings
SUNWjvrt JavaVM Runtime environment
Note: These are the basic packages needed to run the java agents in reports.nsf. Your own agents may require additional libraries depending on the functions youre using!
- Before last, add some additional fonts to the system as required by your agents.
These can also be found on Solaris Software CD 1. The report agents need some fonts from this package:
SUNWi1of ISO-8859-1 (Latin-1) Optional Fonts
Again, your agent’s requirements might be different so you may need even more font packages.
Now, it’s time to test if your Java environment is working. From a console prompt, enter java -version
If that yields a response like “java version 1.1.8” pat yourself on the back, you’re done. ![]()
If at this point you’re getting errors regarding libX11.so libraries you may need to do the following on the system console as root:
ln -s /usr/openwin/lib/libX11.so.4 /usr/lib/libX11.so.4
ln -s /usr/openwin/lib/libX11.so.5 /usr/lib/libX11.so.5
ln -s /usr/lib/libX11.so.4 /usr/lib/libX11.so
- Finally, quit (don’t simply restart) your domino server and bring it back up again. Your Java agents should work now. Mine did and are still working fine.

–
Martin
PS: Anybody out there who knows if there are any other dependencies in Domino to Solaris packages not available in the core installation?