`
chengyue2007
  • 浏览: 1481838 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

report 开发过程中信号11问题的处理

 
阅读更多

http://blog.csdn.net/kongkongye/article/details/2300830

经常在report 开发中碰到信号11的问题,最近又碰到了几次。现在把信号11问题稍微总结一下。


1.信号11问题是怎样的?

如果并发请求报错,并且在其log 中看到如下的错误,就说明你正遭遇了信号11 问题。
因为报出来的信号11是很笼统的错误,它并不像其他具体错误那样清楚,因此,信号11问题一般不是太好解决。

 Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :                     
SIMPLIFIED CHINESE_CHINA.UTF8                                                                
                                                                                             
'.,'                                                                                         
                                                                                             
stat_low = B                                                                                 
stat_high = 0                                                                                
emsg:因出现信号 11 而终止                                                                    
                                                                                             
+---------------------------------------------------------------------------+                
FND_FILE 中日志消息开始                                                                      
+---------------------------------------------------------------------------+                
+---------------------------------------------------------------------------+                
FND_FILE 中日志消息结束                                                                      
+---------------------------------------------------------------------------+                
程序 因出现信号 11 而终止                                                                    
在为并发请求 341376 运行 Oracle 报表管理系统时,并发管理器遇到了一个错误。                   
                                                                                             
有关详情,请复查您的并发请求日志和(或)报表输出文件。


2. 什么是信号11 ?

信号是操作系统中进程通信的一种方法。平时我们用的最多的信号可能是kill -9 了, -9 就代表了一种信号,它是一种比较强的信号,接收到该信号的进程会被比较彻底的杀掉,相关资源都会释放,该信号不能被忽略。

信号11 实际上类似于这里的9,不过有些不一样。  下面是9,10,11 号信号的含义.
SIGKILL
                  Kill (cannot be caught or ignored). (9)
SIGBUS
                          Specification exception. (10*)
 SIGSEGV
                          Segmentation violation. (11*)


实际上还有很多的信号,比如:
1) HUP 14) ALRM 27) MSG 40) bad trap 53) bad trap
2) INT 15) TERM 28) WINCH 41) bad trap 54) bad trap
3) QUIT 16) URG 29) PWR 42) bad trap 55) bad trap
4) ILL 17) STOP 30) USR1 43) bad trap 56) bad trap
5) TRAP 18) TSTP 31) USR2 44) bad trap 57) bad trap
6) ABRT 19) CONT 32) PROF 45) bad trap 58) bad trap
7) EMT 20) CHLD 33) DANGER 46) bad trap 59) CPUFAIL
8) FPE 21) TTIN 34) VTALRM 47) bad trap 60) GRANT
9) KILL 22) TTOU 35) MIGRATE 48) bad trap 61) RETRACT
10) BUS 23) IO 36) PRE 49) bad trap 62) SOUND
11) SEGV 24) XCPU 37) bad trap 50) bad trap 63) SAK
12) SYS 25) XFSZ 38) bad trap 51) bad trap
13) PIPE 26) bad trap 39) bad trap 52) bad trap

回归下本题,我们基本可以推断出信号11是怎么发生的:
我们定义了多个并发管理器,每次我们的请求都被分配给某个管理器进程来执行。当我们的某个请求在执行时,遭遇了莫名的错误,导致该管理器进程都被 kill -11 了,因此程序报出了信号11的错误。

3. 信号11问题的解决:
信号11问题我目前是采用这样的方法来解决:
首先report 的执行顺序是 before report trigger, 然后query ,对于生成的xml 文件然后 再根据模板文件来生成相应的pdf 或者excel等。

那么 xml 文件无疑可以作为一个重要的指标,通过它,我们来判断信号11问题出现在哪个环节上。
a.如果before report 报错,那么xml 是空的
b。如果query 中间报错,那么xml 应该只有 标签的前半部分,没有后半部分
c.如果query 没有报错,而是模板文件生成具体显示文件的时候报错,那么应该xml 文件是OK的,完整的, EXCEL,PDF 等显示文件是不完整的。


举个例子吧。
最近遇到一个信号11的错误,报表是从一个环境迁移到另一个环境,在旧环境运行不会报错,但是在新环境一运行会报信号11错。
因为前面可以正常运行,说明程序是正常的,那么在新环境的报错,我们推断是因为数据方面的原因,触发了程序中的某处逻辑,数据无法通过验证而报错。但是,什么样的数据呢?
我们发现在将程序的某行代码修改一下后,程序就可以正常运行。
对比了报错请求的out 和非报错请求的out,发现正常请求的out 是完整的,xml 标签是匹配的( 当然应该是匹配的,否则还怎么叫xml! )。但是 报错请求的out 就是不完整的。
程序中有三个query,当时错误的out 为
<QUERY1> 。。。。</QUERY1>
<QUERY2>。。。。 </QUERY2>
<QUERY3>

输出停在query3处不动了。这样看来是在执行query3的时候出了错。
将query3 的变量用值来替换,在pl/sql dev 中执行的时候,果然报错,报错 时间的格式不匹配。
这个错误,其实就是并发管理器执行时遭遇的错了,当时是在执行query,又不像可以在pl/sql 块中那样可以catch exception,所以 进程执行报错信号11 然后退出了。
这个时间格式的错误也是有点意思,因为满足需要的数据都是满足时间格式的,不可能报错。
呵呵,但是,实际上sql 在执行的时候,当然也会访问到不满足条件的数据啊,将数据抓过来后再用条件去判断,最终得出的结果才是符合要求的数据。
解决其实很简单,结合业务要求,修改某些条件之后,语句就OK了。

分享到:
评论

相关推荐

    图像处理 final report

    本报告探讨了图像处理技术在天文摄影中的应用,特别是针对夜间拍摄时大气层引起的图像失真问题。 ##### 1.2 主要目标 - 减少或消除由大气层引起的图像失真。 - 提高夜间天文图像的质量。 ##### 1.3 目标 - **提取...

    车载电子电器架构 —— 通信&信号数据库开发.docx

    信号数据库(Signal Database, SDB)作为连接不同电子控制单元(ECU)的关键组成部分,在车辆开发过程中扮演着重要角色。它不仅定义了ECU间的通信协议,还包含了必要的参数设置,以确保整个车辆系统的稳定运行。 **...

    MT7621_DVT_Report_PCIe

    3. **DVT流程**:设计验证测试是产品开发过程中的关键步骤,它确保硬件设计满足规格要求。DVT包括一系列测试,如功能验证、稳定性测试、功耗分析、温度范围测试、兼容性测试等。 4. **PCIe功能测试**:报告可能包含...

    Audio_Report(zcl).rar

    5. **错误处理和日志记录**:在调试过程中,有效的错误处理和日志记录是必不可少的。学习如何设置和解读系统日志,以便找出音频问题的根源。 6. **音效处理**:msm8930平台可能支持各种音效增强功能,如环绕声、...

    report of mobile phone dial

    - **问题描述**:在实现过程中遇到了获取用户输入的电话号码的难题。 - **解决方案**: - 优化主界面的输入验证逻辑,确保用户输入的有效性。 - 在代码层面加强对用户输入的处理,确保能够准确获取并传递电话...

    MT7621_DVT Report_Ethernet

    DVT(Design Verification Test)报告是产品开发过程中的一个重要环节,用于验证设计在实际环境中的功能和性能。本报告聚焦于MT7621的以太网部分,这部分是设备连接到有线网络的关键组件。 1. **以太网简介** - ...

    usb开发U盘和硬盘绝佳资料

    本资料《USB Disk Technic Report For DriveDev》是USB开发中的重要参考资料,尤其对开发U盘和硬盘驱动程序的工程师而言,它提供了宝贵的指导和深入理解。 首先,报告可能涵盖了USB协议的基础知识,包括USB的拓扑...

    Final report from the video quality experts group

    这些专家来自 Tektronix、NIST、CRC、NTIA/ITS、Philips、EBU(欧洲广播联盟)等知名组织,他们在视频编码、信号处理、测量技术等方面有着深厚的背景和经验。 报告可能涵盖了以下关键知识点: 1. **视频质量模型...

    SPIFI_report v0.1.rar_微处理器开发_C/C++_

    SPIFI_report v0.1.rar 是一个压缩包文件,它主要关注的是微处理器开发领域,特别是与C/C++编程相关的技术。"SPIFI"通常指的是Serial Peripheral Interface Flash Interface,这是一种高速、低功耗的存储器接口,常...

    reportGenerator:reportGenerator 是一个 matlab 工具,具有在 matlab 中编程时随时生成报告的功能,这仍在进行中,所以新-matlab开发

    MATLAB是一种广泛应用于数值计算、符号计算、数据可视化、图像处理和信号处理等领域的高级编程语言。reportGenerator的出现,旨在弥补MATLAB在报告制作方面的不足,让科研人员和工程师能够更高效地将他们的代码、...

    MT7621_DVT_Report_USB3

    DVT(Design Verification Test)是设计验证测试的简称,它是产品开发过程中的一个重要阶段,旨在确保硬件设计在大规模生产前满足功能和性能要求。这份“MT7621 DVT测试报告 USB3.0部分”着重关注了MT7621芯片在USB ...

    使用SQL*REPORT输出报表程序设计技术.pdf

    因此,SQL*REPORT报表生成工具倍受人们的青睐,是MIS开发中的梦寐以求的输出报表应用开发工具。 SQL*REPORT是由报表格式化程序RPF和报表生成程序RPT组成的,它生成一个报表需要经过三个步骤:首先,编制报表控制...

    MPU_Report_C51_8051_

    在【压缩包子文件的文件名称列表】中,"MPU_Report"可能是这次项目实施的详细报告,包含项目的背景介绍、设计思路、硬件配置、软件实现、调试过程和结果分析等内容。这份报告可能还涵盖了遇到的问题及解决方案,为...

    matlab开发-用于现有启动板的SimulinKembled编码器目标

    在实际开发过程中,首先需要配置Simulink模型以接收来自编码器的输入。这通常涉及到设置适当的输入端口和数据类型,以匹配编码器的输出格式。接下来,可以利用Simulink的内置模块,如计数器、滤波器和解码器,来处理...

    simulink+MBD+开发设计方式引导和说明

    1. **模块库**:Simulink提供了一个庞大的模块库,包含各种数学函数、信号处理模块、控制器设计模块等,用户可以根据需求选择合适的模块构建模型。 2. **数据流模型**:Simulink采用可视化数据流模型,通过连接不同...

    matlab开发-EducationAllAbreport数据获取示例

    "simplefft.m"文件涉及到了快速傅里叶变换(FFT),这是一种在信号处理中非常常用的算法,用于将时域信号转换到频域,从而分析信号的频率成分。这可能表明示例还包括了对采集数据进行频谱分析的步骤。 最后,...

    车载测试Vector工具CANoe——常见问题汇总(上).docx

    在开发过程中,CANoe可以在早期阶段构建仿真模型以评估ECU(电子控制单元)的功能;在ECU开发完成后,利用该仿真模型进一步进行系统级的功能分析、测试以及总线系统与ECU的集成工作。CANoe具备强大的测试功能集,...

    matlab开发-utidUnifiedIdalanalisandPredictionFunctions

    MATLAB提供了强大的工具来处理这类问题,确保在分析过程中保留数据的原始信息。 4. **置信区间**:在统计分析中,置信区间是估计某个参数可能取值的范围,它反映了估计的不确定性和可靠性。在海洋学研究中,计算...

    电子工程师创新设计必备宝典系列之FPGA开发全攻略

    开发过程中需要注意以下几点: - 选择合适的开发工具,如Xilinx ISE、Quartus II等。 - 进行时序分析,确保设计满足时序约束。 - 使用ChipScope等工具进行调试。 4.2 **基于FPGA的SOC设计方法** 基于FPGA的片上...

    全国2007年1月高等教育自学考试管理系统中计算机应用试题答案.pdf

    【全国2007年1月高等教育自学考试管理系统中计算机应用试题答案】 ...以上知识点是根据试卷内容提炼的,涵盖了许多管理信息系统的基础概念和技术,对于理解MIS的运作和开发过程有重要的参考价值。

Global site tag (gtag.js) - Google Analytics