Sametime 9 and CentOS

I like to use CentOS in the lab to install all IBM software to avoid licensing costs and Windows when possible. CentOS has always had it’s challenges and I have blogged a few times about additional libraries required to get software working. I use the basic server install which is pretty minimal but that’s what you should be using, right?

With Sametime 9 I have noticed the following gotchas you should be aware of.

Do not use 64 bit CentOS for the Community server

I have never been able to install Sametime Community server on a 64 bit version of CentOS. The same is still true for Sametime 9.

When installing Domino on the 64 bit version it helpfully tells you that you need to install 32 bit packages.

To run this installer you need 32bit (i686) packages installed on your 64 bit Linux RedHat.
They are not installed by default, but are mandatory. The installer will exit after this message.
        libXtst-1.0.99.2-3.el6.i686
        libXmu-1.0.5-1.el6.i686
        libXp-1.0.0-15.1.el6.i686
        libXft-2.1.13-4.1.el6.i686
        libXi-1.3-3.el6.i686

When installing the Community server I get various errors.

[root@st9 Server]# ./setuplinux.bin

     Initializing Wizard……..
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 712: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 1551: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected
./setuplinux.bin: line 472: bc: command not found
./setuplinux.bin: line 690: [: : integer expression expected

[root@st9 Server]# yum install bc

./install_tdiv70_linux_x86_64.bin -is:tempdir /opt/temp

Initializing Wizard……..
Extracting Bundled JRE.

Bundled JRE is not binary compatible with host OS/Arch or it is corrupt.  Testing bundled JRE failed.

[root@st9 Server]# ./setuplinux.bin -console -is:log /tmp/installlog.txt

Log file created by MultiPlatform installer @Mon Sep 30 10:20:15 BST 2013
INSTALLER_PATH=/opt/installs/sametime/SametimeStandardServer/Server/./setuplinux.bin
Checking the environment variables specifed in the JVM files to find the JVM…
No JVM can  be found using the shell environment variable. Searching JVM will co
ntinue with Path Hints specified in the JVM Files…
jvm files not specified. Searching a JVM can not be performed.
Extracting bundled JRE…
checking disk space on the parition /tmp/istemp6007273102015 for /tmp/istemp6007273102015/ibm_linux_15.bin
83843 512 bytes disk blocks required.
29139696 512 bytes disk blocks  available on the partition /tmp/istemp6007273102015
Disk space check on the parition /tmp/istemp6007273102015 succeeded.
checking disk space on the parition /tmp/istemp6007273102015 for /tmp/istemp6007273102015/ibm_linux_15.bin
Bundled JRE is not binary compatible with host OS/Arch or it is corrupt.  Testing bundled JRE failed.

[root@st9 Server]# ./setuplinux.bin -is:extract
9 files extracted in the directory /opt/installs/sametime/SametimeStandardServer/Server/istemp6336273102254

I have tried setting a temp directory, extracting the jar file, nothing works. I now always use the 32 bit version of CentOS which works like a charm.

Install Perl

When installing the Video MCU (VMCU) and Video Manager (VMgr) you need to install additional packages as detailed in list of RPMs to install on the Sametime Video MCU. What I found after applying all the packages listed and others to cater for the fact that it is not RHEL is the following errors on start-up.

[10/24/13 6:44:38:124 BST] 00000047 SystemCommand W com.polycom.proximo.util.runtime.SystemCommand setStatus status changed for cmd[/usr/bin/sudo /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/current/bin/admin-cfg-scripts/getNetworkInfo.pl] exitValue[1] status[ENDED_FAILURE]
[10/24/13 6:44:38:125 BST] 00000047 RedHatSystemC E com.polycom.proximo.shared.system.RedHatSystemCommandManager logFailedSc failed command: cmd[/usr/bin/sudo /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/current/bin/admin-cfg-scripts/getNetworkInfo.pl] exitValue[1] status[ENDED_FAILURE]
[10/24/13 6:44:38:126 BST] 00000047 RedHatSystemC E com.polycom.proximo.shared.system.RedHatSystemCommandManager logFailedSc stderr: sudo: unable to execute /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/current/bin/admin-cfg-scripts/getNetworkInfo.pl: No such file or directory

[10/24/13 6:44:38:126 BST] 00000047 RedHatSystemC E com.polycom.proximo.shared.system.RedHatSystemCommandManager logFailedSc stdout:
[10/24/13 6:44:38:132 BST] 00000047 DmaStartupSer E com.polycom.proximo.startup.DmaStartupServlet init Startup Serlvet experienced Problems: java.lang.NullPointerException
                                 java.lang.NullPointerException
    at com.polycom.proximo.supercluster.SuperclusterService.startService(SuperclusterService.java:616)
    at com.polycom.proximo.supercluster.SuperclusterServiceRuntimeExt.initialize(SuperclusterServiceRuntimeExt.java:52)
    at com.polycom.proximo.startup.DmaStartupServlet.init(DmaStartupServlet.java:146)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:338)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1363)
    at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:606)
    at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:576)
    at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:425)
    at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
    at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1175)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:774)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2182)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)
    at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:116)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:994)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:502)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)

I tried calling the .pl files explicitly like the application was doing.

root@vmgr admin-cfg-scripts]# /usr/bin/sudo vi /opt/IBM/WebSphere/MediaServerPNMGR/proximo/current/bin/admin-cfg-scripts/getNetworkInfo.pl
root@vmgr admin-cfg-scripts]# /usr/bin/sudo /opt/IBM/WebSphere/MediaServerPNVMG/proximo/current/bin/admin-cfg-scripts/getNetworkInfo.pl
udo: unable to execute /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/current/binadmin-cfg-scripts/getNetworkInfo.pl: No such file or directory
root@vmgr admin-cfg-scripts]# /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/currnt/bin/admin-cfg-scripts/getNetworkInfo.pl
bash: /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/current/bin/admin-cfg-script/getNetworkInfo.pl: /usr/bin/perl: bad interpreter: No such file or directory

The errors show that the .pl (Perl files) could not be called. Once I installed both versions of Perl I could start the server and call the various .pl files.

root@vmgr admin-cfg-scripts]# yum install perl
[root@vmgr admin-cfg-scripts]# yum install perl*.i686
I can now run /opt/IBM/WebSphere/MediaServerPNVMGR/proximo/current/bin/admin-cfg-script/getNetworkInfo.pl

HTTP 404 errors when using yum

When trying to install firefox using yum on a CentOS server I found that I was getting HTTP 404 errors when yum was trying the various mirrors. All these mirrors were in America.

I had fastestmirror installed which should pick up local mirrors which should be quicker. Many people have suggested altering yum configuration files to specify country codes but I found that yum clean all worked for me and pulled firefox from a UK mirror on the next attempt.

More NFS file locking and Connections

So I posted a blog NFS file locking and it’s affect on Connections not long ago so when I came across a similar problem with my lab deployment of Connections 3.0.1 on CentOS I thought it would be easy to sort out…..

I was seeing the following exception in the systemOut.log:

[7/9/12 22:27:51:172 BST] 00000022 SystemOut     O java.lang.reflect.InvocationTargetException
[7/9/12 22:27:51:173 BST] 00000022 SystemOut     O      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[7/9/12 22:27:51:173 BST] 00000022 SystemOut     O      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:56)
[7/9/12 22:27:51:174 BST] 00000022 SystemOut     O      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39)
[7/9/12 22:27:51:174 BST] 00000022 SystemOut     O      at java.lang.reflect.Constructor.newInstance(Constructor.java:527)
[7/9/12 22:27:51:175 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.utils.Utils.getImpl(Utils.java:44)
[7/9/12 22:27:51:175 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.utils.FileLock.getFileLock(FileLock.java:41)
[7/9/12 22:27:51:176 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.ObjectManagerState.<init>(ObjectManagerState.java:408)
[7/9/12 22:27:51:176 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.ObjectManager.createObjectManagerState(ObjectManager.java:293)
[7/9/12 22:27:51:176 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.ObjectManager.initialise(ObjectManager.java:237)
[7/9/12 22:27:51:177 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.ObjectManager.<init>(ObjectManager.java:197)
[7/9/12 22:27:51:177 BST] 00000022 SystemOut     O      at com.ibm.ws.sib.msgstore.persistence.objectManager.PersistentMessageStoreImpl.start(PersistentMessageStoreImpl.java:354)
[7/9/12 22:27:51:178 BST] 00000022 SystemOut     O      at com.ibm.ws.sib.msgstore.impl.MessageStoreImpl.start(MessageStoreImpl.java:1518)
[7/9/12 22:27:51:178 BST] 00000022 SystemOut     O      at com.ibm.ws.sib.admin.impl.JsMessagingEngineImpl.start(JsMessagingEngineImpl.java:609)
[7/9/12 22:27:51:178 BST] 00000022 SystemOut     O      at com.ibm.ws.sib.admin.impl.HAManagerMessagingEngineImpl.activate(HAManagerMessagingEngineImpl.java:995)
[7/9/12 22:27:51:179 BST] 00000022 SystemOut     O      at com.ibm.ws.sib.admin.impl.JsActivationThread.run(JsActivationThread.java:92)
[7/9/12 22:27:51:179 BST] 00000022 SystemOut     O Caused by: java.io.IOException: No locks available
[7/9/12 22:27:51:180 BST] 00000022 SystemOut     O      at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:914)
[7/9/12 22:27:51:180 BST] 00000022 SystemOut     O      at java.nio.channels.FileChannel.tryLock(FileChannel.java:973)
[7/9/12 22:27:51:181 BST] 00000022 SystemOut     O      at com.ibm.ws.objectManager.utils.FileLockImpl.<init>(FileLockImpl.java:58)
[7/9/12 22:27:51:181 BST] 00000022 SystemOut     O      … 15 more

I tried the steps in my previous blog to no avail. I also edited /etc/fstab on the client appending “lock” as follows.

xxx.xxx.x.xx:/opt/IBM/LotusConnections/shared /opt/IBM/LotusConnections/data/shared nfs rw,lock,hard,intr 0 0

I re-read some CentOS documentation picking up on the following:

“nfslock also has to be started for both the NFS client and server to function properly. To start NFS locking as root type: /sbin/service nfslock start. If NFS is set to start at boot, please ensure that nfslock also starts by running chkconfig –list nfslock. If nfslock is not set to on, this implies that you will need to manually run the /sbin/service nfslock start each time the computer starts. To set nfslock to automatically start on boot, type the following command in a terminal chkconfig nfslock on. ”

After enabling nfslock on the two clients and the server as well as setting it to start at boot I was up and running again. Odd thing was that this was running fine up until a prolonged shut down of my servers.