EMCC(Oracle Enterprise Manager Cloud Control)是 Oracle 提供的一款企业级监控和管理软件,用于集中管理多个 Oracle 数据库实例和环境,在使用 EMC 进行图形化部署时,可能会遇到各种报错问题,其中一种常见的错误是与 Apache SSH 相关的 NoSuchMethodError。
EMCC 报错分析及解决步骤
一、报错信息
报错类型:NoSuchMethodError
具体错误消息:org.apache.sshd.client.future.ConnectFuture.verify(JLjava/util/concurrent/TimeUnit;[Lorg/apache/sshd/common/future/CancelOption;)Ljava/lang/Object;
日志片段:
20240923_100021:INFO:exitcode: 0 20240923_100021:INFO:将 OMS 上的文件 /u01/app/middleware/gc_inst/em/EMGC_OMS1/sysman/agentpush/20240923_095703AM/unzipTmp/linux_x64/unzip 复制到主机 10.163.12.101 上的 /u01/app/middlewareagent/ADATMP_20240923_095703AM/unzipTmp Attempt 1 20240923_100021:INFO:InitializationDeployer Shutting down RI 20240923_100021:INFO:InvocationTargetException Exception 20240923_100021:INFO:Printing Exception :java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at oracle.sysman.core.agentpush.ui.deployer.BaseDeployerOps.executeActions(BaseDeployerOps.java:2951) at oracle.sysman.core.agentpush.ui.deployer.InitializationDeployer.deploy(InitializationDeployer.java:619) at oracle.sysman.core.agentpush.ui.deployfwk.DeploymentWorker.run(DeploymentWorker.java:26) at oracle.sysman.util.threadPoolManager.WorkerThread.run(Worker.java:311) Caused by: java.lang.NoSuchMethodError: org.apache.sshd.client.future.ConnectFuture.verify(JLjava/util/concurrent/TimeUnit;[Lorg/apache/sshd/common/future/CancelOption;)Ljava/lang/Object; at oracle.sysman.prov.ssh.SSHDHelper.getClientSession(SSHDHelper.java:187) at oracle.sysman.prov.ssh.SSHDHelper.getClientSession(SSHDHelper.java:156) at oracle.sysman.prov.ssh.RunCommand.scpTo(RunCommand.java:861) at oracle.sysman.core.agentpush.ui.deployer.DeployerOps.copyFileToHost(DeployerOps.java:422) at oracle.sysman.core.agentpush.ui.deployer.DeployerOps.copyFileToNode(DeployerOps.java:460) at oracle.sysman.core.agentpush.ui.deployer.InitializationDeployer.doCopyAgentImage13c(InitializationDeployer.java:217) at oracle.sysman.core.agentpush.ui.deployer.InitializationDeployer.doCopyAgentImage(InitializationDeployer.java:183) ... 20240923_100021:INFO:Updating Action CopyAgentImagewith Status FAILED and error Message :org.apache.sshd.client.future.ConnectFuture.verify(JLjava/util/concurrent/TimeUnit;[Lorg/apache/sshd/common/future/CancelOption)Ljava/lang/Object and problem 不可用 and recommendation 不可用 20240923_100021:INFO:=================action status is not empty FAILED 20240923_100021:INFO:The following action failedCopyAgentImage 20240923_100021:INFO:TIME TAKEN for Initialization on host 10.163.12.101 is 0: hrs 0: m
二、错误原因分析
根据报错信息,NoSuchMethodError
通常表示在运行时无法找到某个方法,这通常是由于以下几种原因引起的:
1、类库版本不匹配:当前使用的类库中缺少所需的方法,可能是因为类库版本过旧或过新。
2、依赖冲突:多个类库之间存在依赖冲突,导致某些方法无法正确调用。
3、内部BUG:在某些情况下,这可能是一个已知的内部BUG,需要应用补丁或进行静默安装。
三、解决方法
针对上述可能的原因,可以采取以下步骤来解决问题:
1、检查并更新类库:确保所有使用的类库都是最新的稳定版本,并且相互兼容,特别是org.apache.sshd
相关类库。
2、应用补丁:如果这是一个已知的BUG,可以查找并应用相应的补丁,参考MOS文档中的解决方案,可能需要打特定的补丁或进行静默安装。
3、静默安装:尝试使用静默安装模式进行部署,避免图形界面带来的潜在问题。
4、检查日志文件:详细查看部署过程中生成的日志文件,寻找更多线索以确定问题的根本原因。
5、联系技术支持:如果以上方法都无法解决问题,建议联系Oracle技术支持获取进一步帮助。
四、相关FAQs
Q1: 什么是NoSuchMethodError?
A1:NoSuchMethodError
是一种Java异常,表示在运行时无法找到某个方法,这通常是由于类库版本不匹配或依赖冲突导致的。
Q2: 如何解决EMCC部署中的NoSuchMethodError?
A2: 解决EMCC部署中的NoSuchMethodError
可以尝试以下方法:
1、确保所有使用的类库都是最新的稳定版本,并且相互兼容。
2、查找并应用相关的补丁。
3、尝试使用静默安装模式进行部署。
4、详细查看部署过程中生成的日志文件,寻找更多线索。
5、如果以上方法都无法解决问题,建议联系Oracle技术支持获取进一步帮助。
EMCC部署过程中遇到的报错问题可以通过详细的日志分析和适当的解决方案来解决,希望以上内容能帮助您更好地理解和处理EMCC部署中的报错问题。