NO PAINS,NO GAINS

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

现象:开始初步确定系统是三层结构,使用WINSOCKET协议录制脚本。发现在访问数据库的1251端口后,服务器返回了一个动态端口,导致脚本再次运行时出现错误。 

分析:其实这里面有个错误,如果是标准的三层结构,录制的脚本是不会直接访问1251端口的,所以客户端应该有直接访问数据库的部分,此时不应该采取单个WINSOCKET协议,但由于没有经验,所以就努力地解决动态端口的问题。 

后来解决了动态端口问题后,重新回放脚本,发现一些BUFFER发送了几百字节,但接收回来的为0,并且是很多连续的Mismatch,发送的和接收的相关很大。 

如:vuser_init.c(84): lrs_receive(socket1, buf31)

vuser_init.c(84): Mismatch (expected 290 bytes, 0 bytes actually received) 

查找附近的脚本,发现接收的buffer中很多都会出现:“ORA-01403: 未找到数据”的错误。 

最后结论:可以协议选择不正确。后面采取了winsocket+oracle(2-tier)协议解决。并且也没有了返回动态端口的问题。

posted on 2007-05-08 15:59  JazzieZhang  阅读(226)  评论(0编辑  收藏  举报