Oracle EM潜在的致命闪退风险(oracle em闪退)

Oracle EM潜在的致命闪退风险

Oracle Enterprise Manager(EM)是一款为企业级应用程序提供数据库管理和监测服务的平台。然而,Oracle EM也存在着致命的闪退风险。在本文中,我们将研究这个问题的原因以及解决方案。

这个问题的根源是由于EM所使用的Java虚拟机(JVM)对错误的处理方式。通常情况下,JVM遇到不能够再次执行的错误时,会在其日志文件中记录下来。然而,在EM中,这些错误会直接导致JVM崩溃并且不会记录任何日志信息。

造成这个问题的主要原因是由于Oracle EM使用的默认的日志文件大小为1M和默认的日志文件数量为10个。这就导致了在JVM崩溃前,EM日志文件很容易就达到了限制大小而无法再继续记录日志信息。因此,JVM崩溃后,我们很难知道具体是什么导致了程序的崩溃。

为了解决这个问题,我们需要修改EM的日志记录方法。我们需要将EM的日志文件大小限制增加到5M以上,同时,我们也需要增加日志文件的数量。这可以通过修改以下两个配置文件进行实现:

1. /sysman/config/emoms.properties

2. /sysman/config/emoms_logging.xml

对于emoms.properties文件,我们需要修改以下两个属性值:

1. emoms.log.max.bytes:将其值设置为5M或更高

2. emoms.log.max.files:将其值设置为20或更高

对于emoms_logging.xml文件,我们需要修改以下属性值:

1.

2.

以上所述的修改将使得EM记录的日志文件大小更大,并且数量也会更多。这也会使EM更容易记录到日志信息,而不是直接崩溃。

除此之外,我们还可以使用Java线程转储(Java Thread Dumps)来帮助我们诊断问题。Java线程转储是一种将JVM中所有线程的状态和堆栈跟踪信息导出到一个文本文件的技术。这也可以让我们更容易地调试和查找问题。

在Oracle EM中,我们通过执行以下命令来生成Java线程转储文件:

$/bin/emctl jvmcontrol getthreadstacks -filename=filename.txt

运行以上命令后,我们就可以得到一个包含了所有线程状态和堆栈跟踪信息的文件。然后,我们可以使用Java的线程分析工具,如Eclipse MAT,来分析这个文件并找出具体的问题。

综上所述,虽然Oracle EM存在着潜在的致命闪退风险,但我们可以通过合适的配置文件记录大小和使用Java线程转储技术来解决此问题。通过这些方法,我们可以更加精准地找出EM的问题并进行诊断和解决。


数据运维技术 » Oracle EM潜在的致命闪退风险(oracle em闪退)