Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Bad_TooManyPublishRequests
April 1, 2016
18:26, EEST
Avatar
jun
Member
Members
Forum Posts: 7
Member Since:
June 18, 2015
sp_UserOfflineSmall Offline

Hello,

we are using the client Java SDK 2.2.2 and we have the following use case:

The application creates 60+ OPCUA clients, each having exactly 1 subscription with <10 nodes connecting to one commercial OPCUA server.

We see these WARN-level entries in our log:

org.opcfoundation.ua.common.ServiceFaultException: ServiceFault: Bad_TooManyPublishRequests (0x80780000) "The server has reached the maximum number of queued publish requests."
Diagnostic Info:
at org.opcfoundation.ua.transport.tcp.io.SecureChannelTcp.onMessage(Unknown Source) ~[xxx.jar:na]
at org.opcfoundation.ua.transport.tcp.io.TcpConnection$ReadThread.run(Unknown Source) ~[xxx.jar:na]

I know that the last version of the SDK had issues around the topic of public requests. Hence, I would like to ask the following questions:
– Is this still related to these issues?
– Could this actually mean that data could get lost, because the server’s cache of publish requests is full with requests from some clients and if the requests of other clients are used up, the new data cannot be send?
– Can we prevent this by changing the clients’ configuration? Currently, we don’t set the publish request factor setting, meaning that the standard value of 2 is used by the SDK.
– Can we do anything at all on client side or does the server operator needs to adapt the server’s settings to prevent subscription data loss in our use case?

Thanks a lot in advance!

Kind regards,
Jun

April 1, 2016
20:26, EEST
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

This specific aspect of the SDK wasn’t changed in the latest revisions. Although the publish request timeouts, which may have an effect. Except that in 2.2.2 the default PublishRequestTimeout of UaClient was returned back to “Max Value”, meaning that it is no longer used in practice, unless you define a value for it. This might be able to cause the problem, if the server is not managing the timeout, whereas the client is and is sending more and more requests to the server. So, please check that you haven’t changed that from the default.

If that is not the case, it does sound strange, since the server should have a separate limit for publish requests per session – and 2 requests is not a lot per session (since you only have one subscription per session).

Most probably the only way to get rid of the problem is to modify the server configuration if possible. Or if you can somehow monitor the server behaviour.

The error does not usually cause loss of data, unless this is a symptom of some other problem in the server. When the server responds with these errors it means that the request queue in the server is full and the request just bounces back immediately because of that. So the server should have enough requests in the queue (since it’s full), which it can use to report notifications normally.

April 4, 2016
13:36, EEST
Avatar
jun
Member
Members
Forum Posts: 7
Member Since:
June 18, 2015
sp_UserOfflineSmall Offline

Thank you for your answer!

This specific aspect of the SDK wasn’t changed in the latest revisions. Although the publish request timeouts, which may have an effect. Except that in 2.2.2 the default PublishRequestTimeout of UaClient was returned back to “Max Value”, meaning that it is no longer used in practice, unless you define a value for it. This might be able to cause the problem, if the server is not managing the timeout, whereas the client is and is sending more and more requests to the server. So, please check that you haven’t changed that from the default.

I checked, but we are not setting the PublishRequestTimeout. The PublishRequestFactor is set to 2 (which should be the same as the standard value).

If that is not the case, it does sound strange, since the server should have a separate limit for publish requests per session – and 2 requests is not a lot per session (since you only have one subscription per session).

Most probably the only way to get rid of the problem is to modify the server configuration if possible. Or if you can somehow monitor the server behaviour.

We cannot modify or monitor the server directly. However, we can ask the server operator to do some specific steps. In this case, it would help us a lot is you could point us to what to tell the server operator more specifically.

Thanks a lot in advance!

April 4, 2016
13:54, EEST
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

Try to find out why the server is limiting the number of publish requests or if you can find out the actual length of the publish request queue, when it starts reporting these problems.

Forum Timezone: Europe/Helsinki

Most Users Ever Online: 1919

Currently Online:
15 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: 738

Moderators: 7

Admins: 1

Forum Stats:

Groups: 3

Forums: 15

Topics: 1524

Posts: 6450

Newest Members:

jonathonmcintyre, fannielima, kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger

Moderators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0

Administrators: admin: 1