前言:oc4j是上古时代的服务器技术,奈何项目在用,迁移服务器后通过opmnctl startall启动不了项目,只有百度、bing到处乱找一通,算是勉强解决了大部分问题
防止敏感信息,oc4j的实例名 用 XXXXXX替代
1.oc4j使用的jdk版本怎么查看?
cd $OAS_HOME/jdk/jre/bin && java -version
2. 报错:32位程序在64位系统上运行导致报错
/lib/ld-linux.so.2:bad ELF interpreter: No such file or directory
安装下glic即可
yum install glibc.i686
3.opmnctl startall 启动报错:
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这个明显不是正常的域名,猜测是 自定义的,
所以配置一下hosts:
ip地址 XXXXXX
4. 移植hosts映射后,opmnctl startall启动报错:
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发现报错
libgcc_s.so.1 must be installed for pthread_cancel to work
没有安装32位的libgcc
sudo yum install libgcc.i686
安装后无问题 能启动OC4J服务,但是 HTTP_Server 服务不来
6 查看.HTTP_Server~1 日志 报错
error while loading shared libraries: libdb.so.2: cannot open shared object file: No such file or directory
下载一个 libgdbm.so.2.0.0 ,然后再制作一个软链接
ln -s /data/xxxx/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2
再配置 Apache ,修改httpd.conf 中的用户信息到当前用户
重启启动服务,HTTP_Server 也能起来,还存在两个WebCache没起来
7.手动开启WebCache:opmnctl startproc ias-component=WebCache
报错:
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 启动不了问题
根据https://www.techpaste.com/2014/10/opmn-failed-start-managed-process-ohs/
删除了/data/XXX/orahome/webcache目录下的webcacheadmin.pid、webcache.pid
再次启动依然如上报错。
再看WebCache配置:webcache.xml
发现 IDENTITY 配置不对,修改为当前用户
再次启动,项目正常运行
------------------------------------- 2023-02-15 update------------------------------------
9.因为对接方更新了证书,导致https不能使用报错:ubject key, Unknown key spec: Invalid RSA modulus size
根据 https://forums.oracle.com/ords/apexds/post/ioexception-subject-key-unknown-key-spec-invalid-rsa-modulu-4480
的说法,这是因为老项目 jdk1.4.2 不兼容2048 字节的 证书。
所以需要两个步骤:
9.1. 引入 bcprov-jdk14-XX.jar
9.2.然后修改 $JAVA_HOME/jre/lib/security/java.security ,oc4j 对应的 是 $OAS_HOME/jre/lib/security/java.security 文件:
改为:security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
其他配置顺延调整,只是 security.provider.2 改为 org.bouncycastle.jce.provider.BouncyCastleProvider
9.3. 重启项目
9.4.我重启后发现还是不行。报错。很明显原因是我引入的jar包,没被 Java运行环境 引用到,
这个时候 需要查看 $OAS_HOME/opmn/conf/opmn.xml 文件
查看其 "start-parameters" 配置中的 -Djava.ext.dirs= 是什么? 如果没有这个配置 则需要 引入这个配置。
配置的值就是一个目录,这个目录 要包含我们引入的 bcprov-jdk14-XX.jar
9.5.重启项目。一切ok