首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB程序老是自己崩掉,如何避免

2013-07-16 
VB程序老是自己崩掉,如何处理我这里一个vb6写的解析银行报文的程序,当银行发过来的报文同时连接数过多时,v

VB程序老是自己崩掉,如何处理
我这里一个vb6写的解析银行报文的程序,当银行发过来的报文同时连接数过多时,vb程序就会蹦掉,自己关了。
请问一下各位大侠,如果才能让这个vb程序不自己关掉.现在一天蹦2次 必须手动把这个程序启动 真是死的心都有了,服务器是ibm 3650 2G内存 配置应该是够的 。我估计还是程序的问题
[解决办法]
猜测这是一个类似 FTP通讯+数据处理 的程序。

既然怀疑是业务量大引起的问题,推荐更改一下程序框架:
将整个程序拆分成 接受、处理、发送 三个独立的 exe。
相互之间的通讯通过文件传递(一个报文两个文件,.msg 是数据文件,空白的 .end 表示数据已写完)。

这样的设计耦合度很低。
即使一个模块崩溃了也不影响其他模块。
而且数据存在在文件中,程序崩溃了也不丢失,再启动程序可以继续处理。
并且三大模块都可以多实例运行来均衡负载。
[解决办法]

很可能有内存漏洞,造成内存耗尽。

[解决办法]
内存洩漏的可能性比较高,建议你在程序运行时在任务管理器里查看一下程序的物理内存与虚拟内存占用,是不是一直在升高.

另外报文的接收是以WINSOCK数组的形式么?还有处理报文的方式等.

这些过程中如果没有正确回收所使用过的内存,那就洩漏了.
[解决办法]
可能是内存漏洞或中断过多。可以写一测试程序。试试你的内存使用情况。
[解决办法]
解析报文的话, 你可以在IDE下解释执行试试看, 或许只是某个Integer类型的计数器溢出而已. 这种情况最好还是拿实际运行环境调试才能让潜在的问题浮起来.
[解决办法]

引用:
放弃VB吧,那只是一个建立在一堆黑盒上的玩具。如果异常根本就不是你的代码的问题,你有什么办法呢。如果你实在不是写程序的料儿,那就像3L说的那样,编写“即便出错也没什么大碍”的东西,将就将就吧。

又来玩随心所欲总结中心思想的把戏了!
我绝对不是这个意思,请不要越俎代庖地替我归纳中心思想。

绝对无错的程序谁都喜欢,但实际情况错误是无法避免的。
楼主开放环境调试无错、现场运行有错,这是一种典型的难度很高的错误。
按照死理论派 caozhy 的想法:因为 VB 不好,所以应该推倒重来换 .Net,完美的语言开发出完美的产品,问题自然消失了。
实际上如果谁真这样做的话,不是自己被炒就是项目终止。
记住一点:比你的程序重要千百倍的,是客户的数据。特别本例是银行客户,再强调都不为过。

在错误无法立即解决的情况下(本例甚至是无法定位错误),首要原则就是隔离错误。
按照我的划分方案:
1)假如是接收模块崩溃,本身业务流程没有启动,和没划分前一样,没有产生错误数据,但是至少缩小了错误范围。
2)假如是处理或发送模块崩溃,不仅是缩小了错误范围,而且前面的模块可以继续正常运行,中间数据(文件)也有保留。更正错误后再运行,可以从错误发生点继续执行流程,做到了数据不丢失。

这类没代码的问题,更多需要的是方式方法上的指导。理论派不适用。

热点排行