11:32, EET
June 27, 2018
Hi guys!
I get this error when browsing an OPC server (Siemens PLC) with the Prosys Client Java Lib. And only if I parallelize the browsing, that means multiple threads traverse a node path.
I found the following paragraph at the OPC Foundation:
Bad_ContinuationPointInvalid
The continuation point provided is no longer valid.
This status is returned if the continuation point was deleted or the address space was changed between the browse calls.
https://reference.opcfoundation.org/v104/Core/docs/Part4/7.34.2/
In my case I want to browse 10 data blocks/nodes in parallel. As long as I browse only 4 in parallel everything is ok. If I run 5 or more in parallel this error occurs.
I don’t understand the error yet, because nothing happens on the OPC server. In my method the following methods are called on the UaClient:
uaClient.getAddressSpace().browse(…);
uaClient.getAddressSpace().getNamespaceTable().toNodeId(…)
uaClient.getAddressSpace().getNode(…);
((UaVariable)uaClient.getAddressSpace().getNode(…)).getDataType;
Does anyone have any clue what could be the problem?
13:42, EET
Moderators
February 11, 2020
Hello,
When Browsing, Continuation Points are used when all ReferenceDescriptions corresponding to a BrowseDescription can’t be returned with a single BrowseResult entry in a BrowseResponse. The SDK will internally handle these Continuation Points in BrowseNext and return all ReferenceDescriptions as a single List. For more information on Browsing, see https://reference.opcfoundation.org/Core/Part4/v105/docs/5.8
Servers are allowed to limit how many parallel Browse Continuation Points they can support and this information should be provided to Clients as the Value of MaxBrowseContinuationPoints Property (NodeId: i=2735, BrowsePath: /Root/Objects/Server/ServerCapabilities/MaxBrowseContinuationPoints) of ServerCapabilities Object. If this limit is exceeded, the Server will free cached Continuation Points to make room for new ones. And when a Client is attempting to use a Continuation Point that has already been freed, the Server shall return a Bad_ContinuationPointInvalid StatusCode. For more information on ServerCapabilities and Continuation Points see https://reference.opcfoundation.org/Core/Part5/v105/docs/6.3.2 and https://reference.opcfoundation.org/Core/Part4/v105/docs/7.9
Since you’re Browsing in parallel and receiving the Bad_ContinuationPointInvalid StatusCode when increasing the number of parallel operations to five or greater, it is possible that the operation requires more parallel Continuation Points than the Server can handle and it is forced to free some of the Continuation Points before the Client has finished Browsing them.
I would recommend you to check the Value of MaxBrowseContinuationPoints Property of the Server of the Siemens PLC. For example, a Siemens S7-1500 at our office has 5 as the Value of MaxBrowseContinuationPoints Property, so the theoretical maximum number of parallel Continuation Points per Session would be five, but it would still be safer to use less Continuation Points than that.
Depending on the Server, Browsing in parallel might not have any major benefits compared to Browsing sequentially as the Server might be handling the BrowseRequests sequentially any way.
Most Users Ever Online: 1919
Currently Online:
18 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 726
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1527
Posts: 6464
Newest Members:
luelladerry3008, miya2024, kimberlyfitzsimm, columbusgipps36, alma44325005501, georgethomas07, forrestdilke5, ernestoportus31, martin123, rickie5305Moderators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1029, Jimmy Ni: 26, Matti Siponen: 349, Lusetti: 0
Administrators: admin: 1