2010年7月9日~11日工作札记


-----------------------------------------------------------------------------
1.中兴Corba接口程序在Windows下正常运行,但在Linux通过get方式取数据无问题,交互式却无返回数据信息(即由客户端push一个请求后由服务端主动将数据发送到给客户端的方式)。
期间中兴公司强势,仅提供了程序运行环境,不愿意配合调试,使问题的定位遇到了很大困难。

还好最终解决并找到了问题的原因,中兴Corbal程序会通过Linux客户端的hosts文件第一行返回的主机名和IP记录反解析后通过主机名回连客户端,但Linux的hosts文件默认第一行是127.0.0.1,解决办法是将127.0.0.1记录下移,而将133地址主机记录上移到第一行即可;

心得:当数据传输存在问题时,在排除了网络问题后,尽量思考程序的工作原理,从程序本身找原因。
-----------------------------------------------------------------------------
2.开发人员误操作,将原有的共20多张Oracle表空间物理数据文件直接用rm命令删除了,使得数据库在关闭后,就再无法启动。

最终解决办法:鉴于删除的表空间文件中的数据都不重要,因此重建整个数据库表空间结构,将已经删除的表空间文件所在结构删除,使数据库能够正常启动。 具体解决办法可参考以下资料:
http://hi.baidu.com/_linzi_/blog/item/d73855c48d3b85ce38db4959.html
http://zhoulifa.bokee.com/3286710.html

心得:通过几次出现的对Oracle直接删除数据文件、归档日志、REDO日志等问题来看,将基本的数据库维护注意事项要告之开发人员以及维护人员,是相当有必要的。
另外,在条件允许的情况下,尽量不要让开发人员与普通维护人员具有直接操作生产环境的权限。
-----------------------------------------------------------------------------
3.系统中的MapInfo地图无法显示,使平台的重要功能完全不能使用,前期所有开发人员都怀疑是操作系统字符集编码问题,因为地图程序在Windows上运行正常,在Linux就无法显示,且后台日志没有任何错误提示。

最后在通过各种方法尝试处理操作系统的字符集编码时,找到了软件上的一个漏洞,即地图文件存在与否都没有告警信息日志产生,借由这个漏洞配合程序员找到了代码中的问题,代码中针对操作系统的不同有不同的地图路径返回值,Linux默认返回值有问题,而该段代码又是没有日志抛出的,造成问题很难查找,最后通过修改代码后解决了问题。

心得:Java是跨平台的,但是代码不一定是跨平台的,因此在面临平台迁移后的问题时,不要首先排除代码的问题,而把目光聚焦在操作系统层面。
在重要的程序代码处,一定要将错误与告警信息抛出到日志中,便于在出现问题时进行跟踪。
-----------------------------------------------------------------------------

  1. No comments yet.
(will not be published)
*