2015-07-26

创建tibco BW domain

创建tibco bw domain本是一件简单的事,运行domainutility程序,图形化界面,向导式的一步步照着做就好了,可是有些坑被我踩到了。

目标机器是远程的一台Red Hat Enterprise Linux Server 5.6,经过一台jump server ssh过去的。本来是要用另外一个用户去运行domainutility来创建domain,可是remote display设置好像不对,X server启动了,可是就是无法启动domainutility,总是报错:

可是以root身份却能启动 domainutility的图形化界面,把root用户的DISPLAY变量复制到另外一个用户仍然报错,不能启动图形化界面。不想在这儿折腾太久了,心想先以root身份创建然后再用chown更改文件所有者好了。创建完毕,文件所有者也更改了,然后以另一个用户的身份去运行,直接报错内存访问错误Speicherzugriffsfehler。换作root用户与运行报告同样的错误。用strace一看:
open("/root/bin", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 EACCES (Permission denied)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

看样子还真是和以root用户运行domainutility有关。

2015-07-09

安装Tibco EMS 8.2.1

在一台Linux machine CentOS 6.6上安装Tibco EMS 8.2.1,安装过程没有报错,不过在安装日志里会发现下面的错误:

(07-09-2015.083025), ::ERROR::, WizardAction exception encountered., class com.tibco.installer.util.TIBCOUniversalInstallerAction
(07-09-2015.083025), ::ERROR::, null, class com.tibco.installer.util.TIBCOUniversalInstallerAction
(07-09-2015.083025), Debug, 
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tibco.installer.util.TIBCOUniversalInstallerAction.executeDialogAction(TIBCOUniversalInstallerAction.java:613)
at com.tibco.installer.wizard.action.TIBCORunInstaller._executeDialogAction(TIBCORunInstaller.java:252)
at com.tibco.installer.wizard.action.TIBCORunInstaller._runSequence(TIBCORunInstaller.java:185)
at com.tibco.installer.wizard.action.TIBCORunInstaller._runInstallSequences(TIBCORunInstaller.java:90)
at com.tibco.installer.wizard.action.TIBCORunInstaller.run(TIBCORunInstaller.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tibco.installer.util.TIBCOUniversalInstallerAction.executeWizardAction(TIBCOUniversalInstallerAction.java:529)
at com.tibco.installer.wizard.action.TIBCORunWizardAction.execute(TIBCORunWizardAction.java:26)
at com.installshield.wizard.StandardWizardListener.execute(Unknown Source)
at com.installshield.wizard.StandardWizardListener.currentBeanChanged(Unknown Source)
at com.installshield.wizard.Wizard$RunThread.run(Wizard.java:1829)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/istemp14304190082624/_bundledJRE_/lib/i386/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.loadLibraries(Unknown Source)
at java.awt.Toolkit.<clinit>(Unknown Source)
at sun.awt.AppContext$2.run(Unknown Source)
at sun.awt.AppContext$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.initMainAppContext(Unknown Source)
at sun.awt.AppContext.access$400(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.getAppContext(Unknown Source)
at javax.swing.text.html.parser.ParserDelegator.getDefaultDTD(Unknown Source)
at javax.swing.text.html.parser.ParserDelegator.setDefaultDTD(Unknown Source)
at javax.swing.text.html.parser.ParserDelegator.<init>(Unknown Source)
at com.tibco.installer.util.TIBCOHtmlToTextConverter.parse(TIBCOHtmlToTextConverter.java:33)
at com.tibco.installer.util.TIBCOHtmlToTextConverter.<init>(TIBCOHtmlToTextConverter.java:21)
at com.tibco.installer.wizard.action.TIBCOPreInstallSummaryPanelWizardAction._doConsole(TIBCOPreInstallSummaryPanelWizardAction.java:64)
at com.tibco.installer.wizard.action.TIBCOPreInstallSummaryPanelWizardAction.run(TIBCOPreInstallSummaryPanelWizardAction.java:26)

... 18 more


Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.SunToolkit
at sun.awt.AppContext$2.run(Unknown Source)
at sun.awt.AppContext$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.initMainAppContext(Unknown Source)
at sun.awt.AppContext.access$400(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.getAppContext(Unknown Source)
at javax.swing.SwingWorker.getDoSubmit(Unknown Source)
at javax.swing.SwingWorker.<init>(Unknown Source)
at com.tibco.installer.util.TIBCOAntTaskRunner.<init>(TIBCOAntTaskRunner.java:20)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks._executeMachineModelAntTask(TIBCOExecutePostInstallAntTasks.java:651)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks._updateMachineModel(TIBCOExecutePostInstallAntTasks.java:562)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks._doConsole(TIBCOExecutePostInstallAntTasks.java:160)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks.run(TIBCOExecutePostInstallAntTasks.java:57)

结果是不能启动tibemsd64,根据提示/opt/tibco/ems/8.2/lib/64目录下symbolic links缺失。看样子是安装时没有被创建,需要在/opt/tibco/ems/8.2/lib/64目录下手动创建下面几个links才能启动tibemsd64。

libcrypto.so -> libcrypto.so.0.9.8
liblber-2.4.so -> liblber-2.4.so.2.5.5
libssl.so -> libssl.so.0.9.8
libxml2.so -> libxml2.so.2.7.6

yum install libXext.i686 安装了
Installing : libXau-1.0.6-4.el6.i686                                                                                                           
Installing : libxcb-1.9.1-2.el6.i686                                                                                                           
Installing : libX11-1.6.0-2.2.el6.i686                                                                                                        
Installing : libXext-1.3.2-2.1.el6.i686

之后重新安装又发现缺少libXrender.so.1
Caused by: java.lang.UnsatisfiedLinkError: /tmp/istemp3030190095829/_bundledJRE_/lib/i386/xawt/libmawt.so: libXrender.so.1: cannot open shared object file: No such file or directory
估计安装完libXrender.so后又会报告缺少另外的库。

安装gtk2.i686(yum install gtk2.i686)会安装一堆和libX相关的依赖包,包括:
libXcomposite 
libXcursor   
libXdamage  
libXfixes  
libXft    
libXi    
libXinerama
libXrandr 
libXrender

安装完gtk2后又报告缺少libXtst,Caused by: java.lang.UnsatisfiedLinkError: /tmp/istemp9782190102622/_bundledJRE_/lib/i386/xawt/libmawt.so: libXtst.so.6:

安装libcanberra-gtk2.i686(yum install libcanberra-gtk2.i686)完后才没有报错。


set64bit:

pre-assembly-ref-ems_64bit_client_runtime:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber.so liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap.so libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 libxml2.so.2.7.6 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so libxml2.so.2.7.6 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libcrypto.0.9.8.dylib and /opt/tibco2/ems/8.2/lib/64/libcrypto.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libssl.0.9.8.dylib and /opt/tibco2/ems/8.2/lib/64/libssl.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.2.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/liblber.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.2.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/libldap.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libz.1.2.3.dylib and /opt/tibco2/ems/8.2/lib/64/libz.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libcrypto.sl.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libcrypto.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libssl.sl.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libssl.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.sl.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.sl.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.sl.9 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.sl.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.sl.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber.so 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap.so 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so.9 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libcrypto.so.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libcrypto.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libcrypto.so libcrypto.so.0.9.8 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libssl.so.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libssl.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libssl.so libssl.so.0.9.8 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber.so 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/liblber.so 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/liblber.so

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber.so liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap.so 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libldap.so 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libldap.so

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap.so libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libxml2.so 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libxml2.so

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so libxml2.so.2.7.6 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libxml2.so.2

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 libxml2.so.2.7.6 

BUILD SUCCESSFUL
Total time: 6 seconds

解决办法:安装EMS 8.2.1之前,先安装:
yum install glibc.i686 
yum install gtk2.i686 
yum install libcanberra-gtk2.i686

都可以使用silent安装模式,为什么installer还需要一堆libX的东西,那不是和图形界面有关的吗?