10:48, EEST
February 21, 2018
Hi,
Is it possible through your SDK to create and add messages in the additional Header of service requests? (Specifications OPC-UA 1.04 part 4, table 170 [page 146].
If it were possible, could you give me an example?
I only need to write a basic type of data.
Thanks in advance,
Best regards.
Luke
9:32, EEST
April 3, 2012
Hi,
If possible, could you first give a use-case where this would be needed?
That specification part lists the addtionalHeader as:
“Reserved for future use.
Applications that do not understand the header should ignore it.”
In practice this means you should not use it. A future version of the specification could use it, but using it for other purposes than what the specification would specify is not interoperable and would break if a future version decides to use the header.
If you use the UaClient.serviceRequest or .serviceRequestAsync to send a raw ServiceRequest you can set the header as well, but that would ignore most of the API advantages of the SDK.
12:21, EEST
February 21, 2018
Hello,
Thanks for the reply.
I’m a student and I’m doing a project for my university.
I would like to add information to label service requests with a global monotonic counter (longa Value) to handle them in an orderly manner (in Server side).
But I do not think that you can put in the ‘payload’ because it changes for every type of service request.
I do not know if you can use the RequestHandler because I would like to be a global monotic counter for all clients (or is possible to use it?)
The clients all run on the same host.
In this way I could (in special cases) send the service requests in order.
Unfortunately I don’t know if I explained myself well, but is there a way to do this without change paylod of service request?
Thanks.
Best regards,
Luke
13:02, EEST
December 21, 2011
Yes, the RequestHandle should be a monotonically increasing counter, but it may depend on the client applications how it is used. The Java SDK is using it exactly like that on the client side.
The AdditionalHeader would only work with your own clients, anyway.
Or which client applications do you have in mind?
14:47, EEST
April 3, 2012
If you have only a single client sending request and waiting for a reponse to that before it or any other client does the same again, you can use the same logic I suggested in another thread a while ago: https://forum.prosysopc.com/forum/opc-ua-java-sdk/how-activate-auditing/ (or if order does not matter, then it works without that restriction)
server.getSessionServiceHandler().setRequestResponseListener(listener);
server.getSubscriptionServiceHandler().setRequestResponseListener(listener);
server.getNodeManagementServiceHandler().setRequestResponseListener(listener);
See the rest of the details of that thread, but it mostly should allow you to have e.g. AtomicLong outside of the listener and “tag” requests and responses to e.g. some map with the counter value being the key. The same logic is used by our Simulation Server for the Req/Res Log view (or well the feature was designed for it to exact).
Most Users Ever Online: 1919
Currently Online:
14 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: 737
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1524
Posts: 6450
Newest Members:
fannielima, kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerleyModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1