前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

10005错误,请教专家(我本人也自认是个专家)首页 本类10005错误,请教专家(我本人也自认是个专家)我本人使用PowerBuilder 和SQL Server 已有 7 年历史了,可是今年老专家碰到了新问题:我的一个程序经常会断开数据库连接,程序记录了如下错误:“10005 Select error: DBPROCESS 处于不可用或未启用状态。”为什么?不知谁曾遇到过这个问题?欢迎大家探讨。这个问题常发生在程序一段时间未用(程序没有关闭),过了一定的时间,再去用程序时就出现上面的错误了。错误发生的频率是随机的,有时一连2~3天都没有遇到,有时一天遇到好几次。help me!!!我不是在开发环境,是实际环境,我的好几个客户都告诉我此问题,我自己也清眼见过。现在这个问题已困扰我半年多了,各种办法都试过了,网络环境我都要求客户换过了,始终没有解决。不知大家有没有好的想法和跟踪、分析方法。10005 16 提供程序不支持接口。"DBPROCESS 处于不可用或未启用状态"估计的原因:1.如果是网络环境,可以是网络不稳定,导致连接断开,建议单机环境测试2.sql服务器上有杀进程之类的处理,因为某种原因杀掉你的处理进程http://msdn.microsoft.com/library/default.asp?url=/library/en-us/trblsql/tr_err_dblib_4rp3.asp10005, SQLEDDNE EXINFO, DBPROCESS is dead or not enabled. 楼住一定看了这个MSDN了不知道对这些信息是怎么处理的。谢谢大家,你们的回复使我倍受鼓舞(我本来痛苦的都快疯了),可能是我没有将我的环境将清楚,抱歉。我用的服务器操作系统为Windows 2000 Server sp4,数据库为SQL Server 2000 sp3,程序开发使用的是PowerBuilder 9.0.2 build 7509,程序是运行在实际环境,不是开发环境。我原先推测可能是网络问题,可是后来我让客户将网络从新做过后还有此问题(为此客户把我骂的睁不开眼),而且后来我发现我们的其他用户也出现了此问题。数据库我认为没有坏,因为我从新建过数据库,也是一样。欢迎各位路过的朋友伸把手,帮帮我。我以前也用过PB现在我仍在用PB6因为比较稳定,PB连数据库时最大的特点连接始终不断,只要你不disconnect,我认为首先分清是硬件问题,还是软件问题(包括操作系统)。你应该把经常出现的问题的机器信息收集一下 比如ping大包,程序做什么操做了,与正常机器作对比从中找出毛病,如果你机器按照操作员当时环境试一下也出现上述问题,那程序看来真的有问题。但我遇到这种状态一般是操作过程中,网线断,虚接时出现,(虚接最讨厌,小数据量没问题,大查询就断,ping 小包没问题,一ping 大包就原形毕露了)慢性病就得有耐心实在没办法就用pb中的idle函数只要程序停了一定时间发一些无聊的sql以保持连接的活跃性不过这是下下策你是不是做pos系统的,我可是被害苦了,发誓再也不进入该行业了,这一行我所知道的软件均有这个毛病,原因所有的专家们均没找到!都是pb+sql!比较赞同wyb0026(小小)的建议,有可能是PB本身造成的(数据库接口程序)我用了很长时间PB但是始终没遇到。这可能与我一直用PB6有关pb的稳定性一直都是个问题,感觉稳定性最好的还是6和6.5,现在是越来越不行了PB没有用过,不敢妄言虽然对pb一点都不了解,但是毕竟也是一种比较成熟的语言。------------------------------------------------------这个问题常发生在程序一段时间未用(程序没有关闭),过了一定的时间,再去用程序时就出现上面的错误了。错误发生的频率是随机的,有时一连2~3天都没有遇到,有时一天遇到好几次。help me!!!---------------------------------------------------------------------如果排除了硬件方面的和pb稳定性的问题,代码方面怎么处理的?对pb太陌生实在帮不上忙,扬帆破浪这段时间也常来,你给他发个消息看看他有没有办法!我使用的是native database interfaces 连接数据库,连接代码如下:SQLCA.dbms="MSS"SQLCA.Database = "star_erp"SQLCA.ServerName = "blz_server"SQLCA.LogId = "sa"SQLCA.Logpass = "blz_server_sa"SQLCA.AutoCommit = FalseSQLCA.Lock = "RC"SQLCA.DBParm ="host='"+ls_localhostname+"'"其中ls_localhostname 是我通过api取得的客户端的机器名。我的程序里仅有两个地方用到了游标,我看了程序,发现都正常的关闭了,存储过程大概有100多个,好象也没发现问题。因为用的是D版所以现在无法得到技术服务(其实我以前用Z版时,他们也没给我什么好的服务,microsoft 说 powerbuider 不兼容,PowerBuilder 说 microsoft 的 dll 有问题)。如果条件许可,你可以尝试用sql的事件探察器检测,看看在出故障前,是否有连接关闭之类非正常语句发出.我们也遇到相同问题,也是运行在实际环境,不是开发环境,随机现象。我在其它地方看到有朋友说数据库本身有这样的设置??但没具体给出说明。。一直郁闷中。小小的建议不行,我现在每过2分钟都从数据库读自定义的消息表,可是仍然会出现同样的错误。我现在怀疑是不是过一段时间连接会被路由器断开了?有谁知道宽带路由器进行端口转发时会不会断开连接??为什么不试试把数据库放到用户自己的电脑上呢?把数据库放到经常出现这个故障的用户的电脑上,其他用户以此电脑做数据库服务器.如果这样处理后,出故障的用户没有再出故障了,那说明问题很有可能是在网络上回复人: zjcxc(邹建) (***** )------------------------------专家的话,你是否看到了呢,楼主?up一下FAQ: I am getting a message 'dbprocess dead or not enabled' running my query. Neil PikeInstantDoc #14019John Savill's FAQ for Windows .NET, HTML, ASP, XML get tech jobs ASAPWe speak your language. Get a tech job today with the leader in tech jobs.A. Other messages:I am getting a message 'dbprocess dead' or 'language exec' from SQL Server.I am seeing an 'Exception Access Violation' message in the SQL errorlog. I am getting *.DMP files in the <sql>\log directory. I am getting "symptom dump" messages.Basically SQL is probably internally gpf'ing/AV'ing (same thing) - you should see messages to this effect in the SQL errorlog.There are only three reasons for this to happen (in order of ascending probability) :-1. A database corruption - you should rule this out by running dbcc checkdb, newalloc and checkcatalog commands.2. A hardware problem - usually duff memory. Run vendor supplied diagnostic routines and/or sqlhdtst/sql7iostress utilities to check out the hardware.3. A bug in the SQL Server code (this is the most likely cause - database corruptions rarely cause gpf's, and hardware errors normally show up in other ways). This is the Microsoft C code that makes up SQLSERVR.EXE and dll's, NOT your TSQL code. If you have SQL code that causes an AV it is Microsoft's bug, not yours. There is nothing anyone outside of Microsoft support can do to help you.Assuming it's not a database corruption/hardware fault, then follow the following diagnostic process :-1. Check the Microsoft Kb on Technet (if you don't have Technet then order it now!). Also check the on-line website at http://support.microsoft.com/support which is more up to date than Technet. Search on "kbbug AND AV AND SQL" to find all documented AV bugs - note AV's are a generic symptom of lots of bugs. Many articles contain workarounds but it is usually difficult to match up the stack traces to see if it is relevant to your situation.2. Are you on the latest version of SQL Server and the latest service pack? Microsoft fix a lot of AV errors in every service pack, so it is definitely worth getting current. If you're not on the latest service pack then that is the first thing Microsoft are going to ask you to do if you contact them anyway. If you can't apply it to the production system immediately then apply the latest SP on a test system and see if it fixes the problem.3. Check the SQL errorlog and save away all the messages - especially anything telling you what SQL was being executed at the time.4. Check the \<sql>\LOG directory for SQLxxxx.DMP files that may have been created. These contain information on what SQL Server was doing at the time, module stack traces etc. Save these away for Microsoft support as necessary. (Though there is a PRINTDMP.EXE utility supplied the output of this is still of no use to anyone unless they have the SQLServer C source code)5. Can you re-create the problem at will? If the SQL being run is not shown in the errorlog, then find out what the user/developer was doing at the time. Use SQL Trace/Profiler to capture the actual SQL code being run if you can. If you can't recreate it, it's still worth reporting as long as you have the errorlog(s) and dump file(s).6. If you can re-create the problem, then see if you can create a reproduction script to show the problem. This needs to be capable of running on a brand-new install of SQL Server on a new database. Therefore it needs to contain all tables, user defined data types, triggers, views etc. needed to show the problem. If it needs data then try and keep this to a minimum. (If the script/data is reasonably short then post to one of the newsgroups and one of MVP's can report it to Microsoft for you). Alternatively re-write your query (if possible) to run against the pubs or northwind (v7 only) database as these are always installed with SQL Server and come complete with a variety of tables, foreign keys, indices and data.7. Can you work around the problem by re-writing the SQL? Even with a reproduction script Microsoft are unlikely to turn a fix around quickly - unless you are a multi-million dollar customer. And even then you wouldn't just be applying one small fix, it would be a latest build with lots of other fixes too - it won't have been regression tested, so it could cause more problems than it fixed anyway.8. If SQL Server terminates from the Access Violation and there is no dump file produced then a possible cause of the problem is the use of SQL Trace. There is a bug in this (fixed in 6.5 SP5 and above) that can terminate the SQL Server being monitored. Another cause of this is heavy deadlocking - also fixed in SP5a.9. Report the problem to Microsoft PSS. PLEASE do this even if you can workaround it. Unless Microsoft get these bug reports then they can't fix them. (With a repro script an MVP will do it for you). Your call fee WILL be re-imbursed as all calls about bugs are free. (However, on the "normal" support-line the person answering the phone can't know it's a bug, so they'll need your credit card details anyway). For PSS contacts see http://support.microsoft.com/support/supportnet/default.aspMicrosoft will need you to supply :-SQL Errorlog(s)NT event log(s) - if any NT errors were occuring at the timeTSQL code running at the timeDetails of hardware, version of NT, servicepacks etc. WINMSDP output is good for this.With SQL 7 there is a new utility that will garner most of this information for you automatically. It is called sqldiag - sqldiag -U<login> -P<password> -O<output filename> 你用SQLSERVER 七年了,这篇文章也许对你有一点点用处.我们是装的单机,也会出现这种问题,但出现这种问题的机器比较固定,现在我们怀疑是不是机器本身的问题.或者是硬件,或者是软件..谢谢 j9988,不过我用的是SQL Server 2000sp3,不是7.0,文章里说的sqlhdtst,好象是一个检测硬件的工具,但是我在binn目录下没有找到。收藏楼主试试给你的机器杀杀毒看谢谢你给大家这样的文章!关注中J我昨天在一个客户那里改变了一下网络方式,我现在不通过路由器转发了,直接连接了,下个星期再试试看。查看一下errorlog,和application 及system event,看一下发生这个问题的时候,有没有其它的错误发生