Oracle数据库异常--- oracle_10g_登录em后,提示java.lang.Exception_Exception_in_sending_Request__null或Connection

本文介绍了一种解决Oracle企业管理器中出现的java.lang.Exception:ExceptioninsendingRequest::null错误的方法,通过修改时区设置并重启dbconsole服务来消除该错误。


1,出现Request为null这种错误一般是因为没有设置时区,一般默认的是agentTZRegion=GMT,也就是GMT。所以大家只要设置了这个东西,然后重新启动dbconsole就可以了。下面是设置以及重新启动dbconsole的全过程。

第一步,在Oracle安装目录中找打这个文件emd.properties(以往大家都是找不到这个文件在哪里),D:\oracle\product\10.2.0\db_1\PC-20111014FOHC_orcl\sysman\config,我的这个文件就是在这个路径下。估计大家都能找到这里D:\oracle\product\10.2.0\db_1,再往下就是PC-20111014FOHC_orcl文件夹,这个是我的计算机名_数据库全局变量,大家只要找到以自己计算机命名的这个文件即可,然后依次找到sysman\config这个路劲下,然后就找到了emd.properties这个文件。然后用记事本打开这个文件,在此文件的最后一行你就可以看到
agentTZRegion=GMT。
 
第二步,将agentTZRegion=GMT中的GMT改成Asia/Chungking,也就是agentTZRegion=Asia/Chungking,这里有个问题就是Asia一定首字母大写,Chungking的首字母也要大些,你也可以用其他的地区,比如Asia/Beijing、Asia/Shanghai,不过我试过这个在我的机器上行不通,而改成Chungking(重庆)之后便可以正确显示,这个我也不清楚为什么,关于时区的列表参考:10.2.0\db_1\sysman\admin\supportedtzs.lst这个路径的文件去查找下中查找。改完后会提示另存,在你另存时别忘了设置编码格式,并保存为properties格式,并覆盖原来的emd.properties文件。
 
第三步,在cmd下输入输入此命令,>set oracle_sid=wangdan(wangdan也就是数据库全局变量名,也就是数据库名),当然回车之后没任何反应。
 
第四部,继续输入命令>emctl stop dbconsole(大家一定要注意emctl,最后一个字母是L,不是1,笔者因为把l弄成1,费了好大劲,希望大家不要犯我的错误)。这一步就是关闭dbconsole,回车之后如下图:
  第五步,最后一步,启动原来关闭的dbconsole服务。键入命令>emctl start dbconsole,回车
 
好了,经过这些操作之后大家重新启动浏览器,然后重新登录企业管理器就会发现java.lang.Exception: Exception in sending Request :: null这个错误没有了。
### 错误原因分析 #### 权限问题 虽然系统 uid 为 1000 通常代表系统进程,拥有较高权限,但如果在某些特定的系统配置者版本中,广播的发送受到了额外的权限约束,可能会导致权限不足而抛出 `java.lang.Throwable` 错误。例如,系统为了增强安全性,对某些广播的发送添加了更严格的权限检查。 #### 广播接收者问题 如果广播接收者在处理 `AudioService.CHECK_MUSIC_ACTIVE` 广播时出现异常,也可能会导致发送广播时抛出错误。比如接收者代码中存在空指针异常、数组越界等问题,当广播发送到接收者时,接收者处理代码崩溃,进而影响到广播发送端。 #### 系统状态异常 系统在某些异常状态下,如内存不足、系统服务崩溃等,可能会影响广播的正常发送。例如,当系统内存严重不足时,广播机制可能无法正常工作,从而抛出异常。 ### 解决方案 #### 检查权限配置 由于系统 uid 为 1000 通常具有较高权限,权限问题的可能性相对较小,但仍需确认。可以检查系统的权限配置文件,确保没有对 `AudioService.CHECK_MUSIC_ACTIVE` 广播的发送进行额外的权限限制。 #### 检查广播接收者代码 对所有注册了 `AudioService.CHECK_MUSIC_ACTIVE` 广播的接收者代码进行检查,确保代码中没有潜在的异常。可以在接收者的 `onReceive` 方法中添加异常捕获,避免因接收者代码崩溃影响广播发送: ```java public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try { // 处理广播的代码 } catch (Exception e) { e.printStackTrace(); } } } ``` #### 检查系统状态 检查系统的内存使用情况、系统服务状态等。可以通过系统日志查看是否存在内存不足、系统服务崩溃等异常信息。如果是内存不足问题,可以尝试清理系统缓存、关闭不必要的后台进程等操作。 #### 重试机制 在发送广播时添加重试机制,当第一次发送广播失败时,尝试重新发送: ```java int maxRetries = 3; int retryCount = 0; while (retryCount < maxRetries) { try { Intent intent = new Intent(AudioService.CHECK_MUSIC_ACTIVE); context.sendBroadcast(intent); break; // 发送成功,退出循环 } catch (Throwable e) { retryCount++; if (retryCount >= maxRetries) { e.printStackTrace(); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

添柴程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值