OC4J 启动项目报错 问题归纳

前言: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 

你可能感兴趣的:(OC4J 启动项目报错 问题归纳)