前言:oc4j是上古時(shí)代的服務(wù)器技術(shù),奈何項(xiàng)目在用,遷移服務(wù)器后通過opmnctl startall啟動(dòng)不了項(xiàng)目,只有百度、bing到處亂找一通,算是勉強(qiáng)解決了大部分問題
防止敏感信息,oc4j的實(shí)例名 用 XXXXXX替代
1.oc4j使用的jdk版本怎么查看?
cd $OAS_HOME/jdk/jre/bin &&? java -version
2. 報(bào)錯(cuò):32位程序在64位系統(tǒng)上運(yùn)行導(dǎo)致報(bào)錯(cuò)
/lib/ld-linux.so.2:bad ELF interpreter: No such file or directory
安裝下glic即可
yum install glibc.i686
3.opmnctl startall 啟動(dòng)報(bào)錯(cuò):
opmnctl: starting opmn and all managed processes...
GETHOSTBYNAME(XXXXXX): 1
RCV: Connection reset by peer
Communication error with the OPMN server local port.
Check the OPMN log files
GETHOSTBYNAME 表示域名解析,所以這里首先存在域名解析問題。
XXXXXX這個(gè)明顯不是正常的域名,猜測是 自定義的,
所以配置一下hosts:
ip地址? XXXXXX
4. 移植hosts映射后,opmnctl startall啟動(dòng)報(bào)錯(cuò):
opmnctl: starting opmn and all managed processes...
RCV: Connection reset by peer
Communication error with the OPMN server local port.
Check the OPMN log files
5. 查看opmn.log發(fā)現(xiàn)報(bào)錯(cuò)
libgcc_s.so.1 must be installed for pthread_cancel to work
沒有安裝32位的libgcc
sudo yum install libgcc.i686
安裝后無問題 能啟動(dòng)OC4J服務(wù),但是 HTTP_Server 服務(wù)不來
6 查看.HTTP_Server~1 日志 報(bào)錯(cuò)
error while loading shared libraries: libdb.so.2: cannot open shared object file: No such file or directory
下載一個(gè)? libgdbm.so.2.0.0 ,然后再制作一個(gè)軟鏈接
ln -s /data/xxxx/lib/libgdbm.so.2.0.0? /usr/lib/libdb.so.2
再配置 Apache ,修改httpd.conf 中的用戶信息到當(dāng)前用戶
重啟啟動(dòng)服務(wù),HTTP_Server 也能起來,還存在兩個(gè)WebCache沒起來
7.手動(dòng)開啟WebCache:opmnctl startproc ias-component=WebCache
報(bào)錯(cuò):
opmnctl: starting opmn managed processes...
=======================================================================
opmn id=XXXXXX:6200
? ? 0 of 2 processes started.
ias-instance id=XXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ias-component/process-type/process-set:
? ? WebCache/WebCache/WebCache
Error
--> Process (pid=25565)
? ? failed to start a managed process after the maximum retry limit
? ? Log:
? ? /oracle/orahome/opmn/logs/WebCache~WebCache~1
-----------------------------------------------------------------------
ias-component/process-type/process-set:
? ? WebCache/WebCacheAdmin/WebCacheAdmin
Error
--> Process (pid=25558)
? ? failed to start a managed process after the maximum retry limit
? ? Log:
? ? /oracle/orahome/opmn/logs/WebCache~WebCacheAdmin~1
8.定位到WebCache 啟動(dòng)不了問題
根據(jù)https://www.techpaste.com/2014/10/opmn-failed-start-managed-process-ohs/
刪除了/data/XXX/orahome/webcache目錄下的webcacheadmin.pid、webcache.pid
再次啟動(dòng)依然如上報(bào)錯(cuò)。
再看WebCache配置:webcache.xml
發(fā)現(xiàn) IDENTITY 配置不對(duì),修改為當(dāng)前用戶
再次啟動(dòng),項(xiàng)目正常運(yùn)行
------------------------------------- 2023-02-15 update------------------------------------
9.因?yàn)閷?duì)接方更新了證書,導(dǎo)致https不能使用報(bào)錯(cuò):ubject key, Unknown key spec: Invalid RSA modulus size
根據(jù)?https://forums.oracle.com/ords/apexds/post/ioexception-subject-key-unknown-key-spec-invalid-rsa-modulu-4480
的說法,這是因?yàn)槔享?xiàng)目 jdk1.4.2? 不兼容2048?字節(jié)的?證書。
所以需要兩個(gè)步驟:
9.1. 引入?bcprov-jdk14-XX.jar
9.2.然后修改?$JAVA_HOME/jre/lib/security/java.security ,oc4j 對(duì)應(yīng)的 是 $OAS_HOME/jre/lib/security/java.security 文件:
改為:security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
其他配置順延調(diào)整,只是?security.provider.2 改為?org.bouncycastle.jce.provider.BouncyCastleProvider
9.3. 重啟項(xiàng)目
9.4.我重啟后發(fā)現(xiàn)還是不行。報(bào)錯(cuò)。很明顯原因是我引入的jar包,沒被 Java運(yùn)行環(huán)境 引用到,
這個(gè)時(shí)候? 需要查看?$OAS_HOME/opmn/conf/opmn.xml? 文件
查看其?"start-parameters" 配置中的?-Djava.ext.dirs= 是什么? 如果沒有這個(gè)配置 則需要 引入這個(gè)配置。
配置的值就是一個(gè)目錄,這個(gè)目錄 要包含我們引入的?bcprov-jdk14-XX.jar
9.5.重啟項(xiàng)目。一切ok?