[20160604]浅谈出错提示.txt

[20160604]浅谈出错提示.txt

--这个问题主要由于上个礼拜正常上班时间遇到的问题,导致整个业务停顿10分钟上下,出错提示"解析URL错误",实际上这个问题我遇到过
--一次,当时不是我解决的,我提交软件组,我记得对方提到1台服务器服务出现问题,重启服务就ok了.但是我不知道那台服务器IP地址.

--这个问题是我想到错误提示,这个提示明显不明确,导致"浪费了许多时间".有同事定位dns问题,要求检查dns服务.

1.首先-举一个oracle的错误提示:http://blog.itpub.net/267265/viewspace-750075/

Errors in file /opt/oracle/admin/conner/udump/conner_ora_31607.trc:
ORA-00600: internal error code, arguments: [2662], [0], [897694446], [0], [897695488], [8388697], [], []

ORA-600 [2662] "Block SCN is ahead of Current SCN",说明当前数据库的数据块的SCN早于当前的SCN,主要是和存储在UGA变量中的
dependent SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。这个错误一共有五个参数,分别代表不
同的含义

ORA-600 [2662] [a] [b] {c} [d] [e]
Arg [a] Current SCN WRAP
Arg [b] Current SCN BASE
Arg {c} dependent SCN WRAP
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from.
注:897694446<897695488

--oracle 的错误提示 只要google或者metalink账户,查询到相关信息.

2.很明显上面的信息很难定位那台服务器出了问题.再来看看另外的错误提示:
--错误提示内容如下:
病区药品医嘱与医生医嘱首日次数不一致.

--这个提示看上去还可以,如果给你看出错界面,你就知道这个写有多么的不好.这个设计到具体的应用问题,就是护士工作站停止医嘱时遇
到的问题,不知道是否能讲清楚?

--//首先出错界面上有许多医嘱,如果操作员打电话给维护人员请求解决问题,一般维护人员会要求操作人员先缩小范围,也就是先操作部分
--//医嘱,最后剩下有问题的医嘱.再来解决问题,操作人员往往觉得很烦,有时候事情一多,撂下一句话"我现在手头许多事情,你先给我看
--//看吧". 严重一点,xxx都上来...当然可以通过后台找到sql语句,写出找到问题的问题的"病区药品医嘱",修改两者保持一致.

--//真正的提示应该如下写呢?以这个为例子我自己写一个:

病人ID: AAAA 住院号:BBBB 姓名:CCCC 医生医嘱本号:EEEEE 病区药品医嘱名称:GGGGGG
病区药品医嘱本首日次数XX与医生医嘱本首日次数YY两者不一致.

--//这样写多么清晰明确.我真不知道为什么开发不这样做.首先这些信息已经存在,这样即使许多新加入的运维人员也很容易知道修改定
--//位问题,修改涉及那些表?这很难吗? 以前我还就这个问题跟一个项目经理讲,在他看来这样做无形在增加许多"负担".而且不通用,真
--//不知道他理解的"通用"就是写给开发吗?这些细节能浪费多少时间.

--//在我的系统存在大量这些无用的提示? 我很想问一下开发就是这样写代码的,懒也不能这么懒法.

--//再说一些细节:上面提到的住院号:XXXX,实际上在应用界面上无法看到这个号码的,界面上仅仅显示病人ID或者叫病人卡号.
--//运维在解决问题的时候,我看到不止一次通过查询病人卡号找到住院号,再通过住院号查询相关表.这样天天重复难道不烦吗?
--//而这样不到10分钟完成的修改代码,以后定位问题不是变得很简单吗?

3.再继续探究问题:
--//为什么会出现上述问题?医生开了医嘱,护士转抄医嘱,两者的首日次数应该一样,护士不可能改转抄的这部分信息?
--//到底哪里出了问题呢?以下完全基于我的猜测:

--//医生开了医嘱,应该一般有一个状态字段表示"新开",而在没有提交之前,护士站转抄是看不见的.
--//而只有在医生提交之后,护士站转抄界面才能看到.这个时候的状态"提交"

--//有一种可能就是护士站转抄界面看到后,护士并没有及时操作提交到病区医嘱本,比如一些事情接个电话或者干别的事情,这个时候是
--//否医生可以修改,如果能修改首日次数,问题产生.

--//而医生这个时候要操作必须把状态改为别的状态,至少不能是"提交",修改完成后再次"提交",而护士不可能再去刷新界面,而是直接转
--//抄,这样就出现病区医嘱本首日次数与医生医嘱本首日次数不一致.

--//再继续假设,应用程序医生提交后不能再修改医嘱,要修改必须要求护士站执行一个退回操作.
--//但是不要忘记,医生经常喜欢登录并打开多个应用程序,这样1个可以拿来看,另外一个拿来操作,这样一个界面上提交了医嘱,但是另外
--//一个界面上还是"新开"状态,有可能在这个界面上修改,甚至严重的删除一些医嘱,这样护士上操作严重问题.
--//不知道是否会出现护士站已经转抄,而医生一样可以修改的情况.

--//总之就是多个用户多个界面操作,"并发"的问题,你要控制用户的行为相对困难,只能在后台加入更多的检查与控制.

4.有点扯远了,继续回到错误提示的问题:
--//再举一个例子.病人在转科时提示如下:
转科床号与实际床号不符.

--//注:具体显示内容可能有点不同,大概就是这个意思.
--//真不懂为什么不把住院号带出来.写成如下:

病人ID: AAAA 住院号:BBBB 姓名:CCCC 转科床号FF与实际床号GG不符.

--//这样写很难吗?我们的提示几乎都是像上面那样.再具体一点还可以这样写:

病人ID: AAAA 住院号:BBBB 姓名:CCCC 住院病人信息的当前床号FF与住院转科记录的床号GG不符.

--//这样查询范围减少了许多,仅仅需要查询住院病人信息表与住院转科记录就可以定位问题.

--//继续讲讲这个问题的产生,还是多个操作并发的问题,为什么不把问题放在前面,而是等转科来解决,难道你半夜上喜欢爬起来解决问题
--//这样做事很有成就感吗?让运维操作数据库,执行dml,难道不存在风险吗?

--//试问一下,这样提示会泄露秘密吗?纯属无稽之谈.

--//通过例子来说明,这并需要什么高深的数据库知识
.
--假设病人现在在5床,现在要转科,但是还有一些收尾工作没有完成,但是马上就有新病人入住5床,护士的操作就是一般是把病人在转移到
--当前科室某个空床假设是33床,这样住院转科记录有1条记录记录的是5=>33,转科科室前后不变.住院病人信息的当前床号=33床.

--另外一个护士在自己的操作界面上看到的病人还是在5床(因为没有刷新,除非她做刷新操作,或者等几分钟程序自己会刷新,我喜欢给应
--用起另外的名字叫刷屏软件),她做完相关操作,做转科操作,这样操作相当于又修改了住院病人信息的当前床号=5床.而住院转科记录的
--床号是33.

--这样在在转入的科室操作就出现"转科床号FF与实际床号GG不符",实际上在第二个护士做转科时多加入一个条件就ok了:
update 住院病人信息表 set ... where 住院号=:zyh and 病人床号=:brch

--这个时候带入的:brch=5,修改不会成功,调用刷屏,最好能告之病人现在在哪一床,再次执行转科操作就ok了.

--依靠刷屏能解决问题吗? 团队有多少人认真思考这些问题,解决很复杂吗?再这些界面操作时加入床号条件,许多问题很容易解决.

总之:
不从小处根本解决问题,成天干那些重复的事情有意义吗?
但愿开发能看看写的这些,不然做一辈子开发,到头来就是一场空....

时间: 2024-10-22 13:28:32

[20160604]浅谈出错提示.txt的相关文章

[20160519]浅谈行业分工.txt

[20160519]浅谈行业分工.txt --我的博客很少谈及非技术的东西,这个话题只是最近几个月我遇到一些问题的思考. --以前看人家老外分工很细,真的很羡慕,不像我们国内dba就是一个打杂的,什么可能都做,特别是做运维的. --随着公司的人员原来越多,我们内部分工也越来越细,我们分成多个组,硬件,软件,数据库,网络.这本来是一件好事, --作为某个组,可以充分发挥自己的特长,做好自己的本分工作. --不像以前,一个项目,我给从硬件设备采购开始,跟售前谈购买这些设备是否满足需求,买回服务器上架

浅谈Excel开发(九) Excel开发中遇到的常见问题及解决方法

相关文章: 浅谈Excel开发(1) Excel开发概述 浅谈Excel开发(二) Excel 菜单系统 浅谈Excel开发(三) Excel 对象模型 Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可能会装有多个版本的.NET运行时,有时候也可能装有多个版本的Visual Studio,本人的开发机器上就安装了3个版本的Visual Studi

浅谈JS原生Ajax,GET和POST_javascript技巧

javascript/js的ajax的GET请求: <script type="text/javascript"> /* 创建 XMLHttpRequest 对象 */ var xmlHttp; function GetXmlHttpObject(){ if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else

浅谈jQuery绑定事件会叠加的解决方法和心得总结_jquery

关于jQuery的学习中我忽略了一个取消绑定事件.unbind()的使用,也不知道绑定事件会累加的情况,结果因为这个原因,让我在项目上栽了坑.只能说自己还太年轻,需要学习掌握的知识还有很多. 我遇到的问题 我在项目中遇到的状况,一个评价页面,简单的来说就是左右两个表格,ajax分别动态加载学生姓名学号信息和不同科目对学生评价内容两部分,两边表格我都每行写了checkbox并对table tbody tr绑定click事件执行行选功能,起初我写的是静态页面html,行选功能完全没有问题,后来换成j

浅谈C++内存分配及变长数组的动态分配_C 语言

第一部分 C++内存分配 一.关于内存 1.内存分配方式 内存分配方式有三种: (1)从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在 例如全局变量,static变量. (2)在栈上创建.在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存 储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限. (3) 从堆上分配,亦称动态内存分配.程序在运行的时候用malloc或new申请任意多少的内存,程序员

浅谈新站上线前要注意的13个基本事项

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一个新网站的上线看起来很简单,然而要做到基本符合搜索引擎的胃口,那么我们需要做的就很多了.可是如何才能做到在网站上线前期就做足网站优化的准备呢,下面笔者就提供14个注意事项吧. 一.域名和空间的准备工作 毋庸置疑,域名.空间的选择是必须的.似乎在这里不提也罢,但是笔者在这里还是想再多提一下,因为一个好的域名给我们网站带来的价值是很大的.所以我们在选择网站域名时,一定要记住这个域名是否容易记.之前是否被人用过.域名解析的功能是否完整.自己是否拥有对域

浅谈ASP.NET MVC 3中如何使用Model

昨天博客发了新文章,讲一下我对如何使用MVC中的Model的看法,不是什么大技术,当是一个技术讨论^^ 原文地址:http://www.youguanbumen.net/Article.aspx?id=79 原文: 前两天写了个文章ASP.NET MVC 3 -- Model远程验证,主要记录了一下ASP.NET MVC 3中新增的RemoteAttribute类的使用,得益于这个类,我们可以在模型中为属性配置客户端远程校验的业务,文章中给了出一个简单的实体类MyUser_Add,举了一个最常见

浅谈PHP语法(四)

语法 上文(<浅谈PHP语法(三)>)的最后提到了Cookie和Session,本文就这两种技术作一些介绍. Cookie我们都常把它念成"库记",也叫它"小甜点".它是一种存储在客户浏览器中的一个小文件.它是为解决HTTP的一次连接而无崐记忆而发展起来的,可用来追踪使用者或是对重返的使用者进行确认.PHP对此提供了setcookie()函数,可以设定Cookie.因为Cookies算是崐HTTP标头的一部分.所以,setcookie()函数必须在网页数

用户体验设计:浅谈可用性测试中沟通的技巧

文章描述:如何快速解除用户防备?--浅谈可用性测试中沟通的技巧.   一般来说,在产品的设计和开发过程中,不同阶段会使用到不同的用户研究方法.比如,在产品正式发布之前,通常会进行可用性测试.可用性测试,是指让一群有代表性的用户尝试对产品进行典型操作,同时观察员和开发人员在一旁观察.聆听.记录.该产品可能是一个网站.软件,或其他任何产品,它可能已经做好,也可能尚未成型. 对于一个典型的可用行测试,我们可以:1. 通过观察用户在使用产品过程中出现的一些问题,发现产品的可用性问题2. 从测试参与者的表