A defunct process is a process that has exited, but the parent process has not called
wait()
for it yet. The wait() system call returns the child process exit value to the parent for whatever processing it might need to do based on whether the process succeeded or not. Since the process has exited, you cannot kill it - as you've found out. This is true for root as well. A defunct process stays in the process table until a wait() call has been made (I think maybe if the parent exits then that works too .. not 100% sure about that).
I think you'll have to discuss the problem with supplier of the OpenLink software. If a reboot is needed, you'll have to discuss with the system admin.
NB. You can find out the status of a process (or some processes) by using the -p flag for ps e.g.
$ ps -fp 1234,9876,34567
will do
ps -f
for processes 1234, 9876, 34567. If you only need to examine one process, then just use
ps -fp pid