Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

SubscribeMultipleItems sometimes blocks indefinitely

More
13 May 2021 06:59 #9672 by support
Hello.

The QuickOPC behavior you described "should never happen"; if the target server is generally working, even if things go wrong temporarily (and in your case that may not even be the case), QuickOPC should keep reconnecting without your involvement, and start delivering data again. So, unless there is something weird in your code that causes it, it would be a bug in QuickOPC. And, because it is probably a kind of a deadlock in the shared objects (and EasyDAClient objects, by default, reuse the same internal connection objects even from difference instances), the problem will "replicate" itself to any other EasyDAClient instances, which is what you are observing as well.

Unfortunately we cannot fix it without having a reproducible scenario, plus we do would not fix the old 2018.3 version.

Here is what I think your options are:

1. Set the Isolated property of each created EasyDAInstance to 'true', right after creating it. This will make the objects to *not* share the common connection objects. Unfortunately, even if this works, it would basically mean a memory leak, because the unused EasyDAInstances will stay there.

2. Try with recent version of QuickOPC (can be trial version, or we can give you evaluation license free of charge with the 30-minute runtime limit removed, and instead limited to e.g. 30 days of license validity).

3. If simply upgrading to recent QuickOPC does not help: Still with the recent version, add the following after creation of EasyDAClient:
client.InstanceParameters.EnableNativeClient = false;
This will tell QuickOPC to use a different internal implementation which should not have the problem.

If either 2 or 3 resolves the issue, we will give you additional discount on version upgrade, if needed.

Best regards

Please Log in or Create an account to join the conversation.

More
12 May 2021 16:10 #9671 by spicerno
Hi,

we're using version 5.54.1151.1 / 2018.3 of EasyOpcClassic to acquire a thousand values from an OPCDA server using mostly subscriptions.
Everything works properly for some days, but then for no apparent reason, ItemChanged events stop coming...

When we detect this scenario, we try to recover by calling UnsubscribeAllItems on the EasyOPCDA instance, and then we dispose it, hoping to cleanup.

Then we create a new EasyOPCDA instance, and try to subscribe again all the signals.
However, the call to clientOPCDA.SubscribeMultipleItems(short_item_list) sometimes blocks indefinitely, locking our thread.

The only way we found to restore data acquisition is to completely restart the app/service.

Is there any parameter that we can use to tweak EasyOPCDA behavior to overcome this problem?
Is it the correct way to force the creation of a new connection to the OPCDA server?

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.052 seconds