RPC_E_DISCONNECTED (0x80010108) error

来源:互联网 发布:数据挖掘常用分析方法 编辑:程序博客网 时间:2024/06/07 17:34

Posted: Fri Oct 20, 2006 11:05 am    Post subject: RPC_E_DISCONNECTED (0x80010108) error   

--------------------------------------------------------------------------------
 
Hi gentlemen,

There are several posts on the Forums, etc. relating to the following problem described in: http://support.microsoft.com/default.aspx?scid=KB;en-us;q293631 (DCOM Application Fails with RPC_E_DISCONNECTED).

We are experiencing this critical issue with our software that strongly affects the production of our customers.

Our OPC servers are running on Windows 2000 SP4 or Windows 2003 Server (with no service pack) system. The remote OPC clients are running on Windows 2000 system.

A few hours to a few days after connection, some OPC clients on one or more computers connected to OPC servers over DCOM will stop updating. The client still successfully "pings" the server with calls to GetStatus() and DCOM never cleans up any of the established connections, so to our clients it just looks like all the DA items have stopped changing. Quitting the applications and running them again always corrects the problem.

It sounds like this known DCOM bug in Windows 2000.

Our question is: how can we fix this issue either on Windows 2000 and Windows 2003 Server (which service pack or hotfix must we apply on theses operating systems) ?

We have heard about a Post-Service Pack 4 COM+ 1.0 Hotfix Rollup Package 31 (http://support.microsoft.com/kb/888000/en-us). Do you think it will fix the issue for Windows 2000 and do you have any experience using this hotfix ?

Regards
 
Back to top      
 
 
Randy

 

Joined: 27 Feb 2003
Posts: 3553
Location: OPC Foundation
 Posted: Fri Oct 20, 2006 11:16 am    Post subject:   

--------------------------------------------------------------------------------
 
This is problem has been confirmed to be a bug in DCOM by Microsoft. There is apparently a fix available but I heard it is only available but I don't know which one it is. I will investigate further.
 
Back to top       
 
 
AlexanderK

 

Joined: 08 Nov 2006
Posts: 2
Location: Russia
 Posted: Wed Nov 08, 2006 1:02 pm    Post subject: changes made in client software, waiting for result   

--------------------------------------------------------------------------------
 
Hi, thd, and everyone interested,
The eror RPC _E_DISCONNECTED began to appear on the client workstations, for which I provide support, about two months ago. Though
for two years before it didn't. I don't know the exact reasons why it didn't appear earlier, may be some changes were made in LAN configuration, don't know, but the same way as "thd" writes it badly affected the work of our users, to the point of refusal from the newly installed SCADA system. The error appeared exactly with the same frequency "A few hours to a few days after connection". I have tried many things to get rid of it, all useless. in the article
http://support.microsoft.com/kb/293631 Microsoft declares that the problem was fixed in Windows 2000 SP3, but on my client's computers it was installed, so it couldn't help. Then I read again the Microsoft explanation of the bug origin in the same article and tried to change client software in order to create different working logic for DCOM client software. Now, after yesterday's corrections I do not have this error on all three workstations where I updated client software. May be it will still appear, I am not 100% sure, but untill now, near 20 hours of work it didn't. I will not go in details and explain the measures taken, better wait a day or two more, then if the changes will prove to be helping I will post here another message explaining what I did with client software. One thing still I have to tell now, the client software is developed by myself, so I have a full source code and freedom of modifications. My DCOM server which is called by clients is not actually OPC server, but it doesn't matter.
May be it is a bit too early for me to post a message on the subject, but, at least it gives some info on the given subject, giving the thread author a feeling that he is not "all alone" facing this sort of problem.

Alexander
 
Back to top       
 
 
AlexanderK

 

Joined: 08 Nov 2006
Posts: 2
Location: Russia
 Posted: Mon Nov 13, 2006 2:56 pm    Post subject: RPC _E_DISCONNECTED   

--------------------------------------------------------------------------------
 
As promised, I inform here, that what I did, resolved the problem,
in fact major thing was to initialize a COM library to work in multithreaded apartment.
I used CoInitializeEx(NULL,COINIT_APARTMENTTHREADED );
//COINIT_MULTITHREADED );
I didn't manage to use the parameter COINIT_MULTITHREADED,
as you may see from the code snippet, but with parameter
COINIT_APARTMENTTHREADED, it somehow did help anyway. Though after 6 days of work I still had the same error, but only once and on one station. Well, that is all for now. I didn't apply the above mentioned Microsoft HotFix, since it was difficult to get.

Alexander
 
Posted: Mon Oct 13, 2003 12:20 pm    Post subject: RPC_E_DISCONNECTED (0x80010108) error   

--------------------------------------------------------------------------------
 
Hello all,

We are having problems with an OPC server in a customer's system that I hope someone might be able to shed some light on.

The problem we experience is that after the connection between an OPC client and server has been up for a week or so, the OPC server appears to stop sending updates to the client. We ran a TCP sniffer to see what was happening at the packet level, and the packet trace reveals that all of a sudden, requests issued from the server to the client fail with error code 0x80010108 (RPC_E_DISCONNECTED). However, requests from the client to the server work fine, so updates performed by the client are received ok by the server (but are not reflected back to the client until the connection is reset). Once the error occurs, we are also unable to connect to the OPC server with another OPC client until we have disconnected the original client (before we disconnect, any new clients attempting a connection fail with an 'RPC server unavailable' error).

The problem appears similar to the bug described in http://support.microsoft.com/default.aspx?scid=KB;en-us;q293631, but both the client and server machines in our case are running Win2000 SP4 (the problem also occurs with SP3, we upgraded to see if that would fix the problem).

Additionally, the OPC client is connected to quite a number of OPC servers, but only one particular server fails in this way (and it's always the same server), all the others do not have any problems. Incidentally, the operating system on the other OPC server machines is Windows NT, not 2000.

Has anyone else seen this happen with Win2K before and been able to get around it somehow?

Thanks a lot for any help!

Thomas Hansen
TRAFSYS as
 
Back to top      
 
 
Randy

 

Joined: 27 Feb 2003
Posts: 3553
Location: OPC Foundation
 Posted: Mon Oct 13, 2003 7:39 pm    Post subject:   

--------------------------------------------------------------------------------
 
What SP is running on the NT server machines?

Regards
 
Back to top        
 
 

Guest

 

 

 Posted: Tue Oct 14, 2003 7:07 am    Post subject: Re:   

--------------------------------------------------------------------------------
 
Randy wrote:
What SP is running on the NT server machines?


They run NT4 SP6. I also just discovered that one of the OPC server machines is Win2K SP2, but like all the NT machines it has never exhibited any problems like the one I describe above.

I also noticed that the machine running the OPC server that fails has an English version of Win2K, while the machine with the OPC client runs a Norwegian version of Win2K (both SP4). Although language settings should be orthogonal to DCOM problems, previous experience has shown that different languages tend to introduce subtly different behaviour (and bugs) in the same circumstances...

Thanks again for taking the time to look at this.

Thomas Hansen
TRAFSYS as
 
Back to top    
 
 
Randy

 

Joined: 27 Feb 2003
Posts: 3553
Location: OPC Foundation
 Posted: Tue Oct 14, 2003 6:08 pm    Post subject:   

--------------------------------------------------------------------------------
 
Quote:
requests issued from the server to the client fail with error code 0x80010108 (RPC_E_DISCONNECTED). 

This could indicate that a there is a bug in the client application that either: releases all references to the object the server is attempting to use or the client explicitly calls CoDisconnectObject() on that object.

You might see this error if the callback object in the client is running in a single threaded appartment and that thread terminates (the DCOM infrastructure in the client would likely call CoDisconnectObject()).

Regards