<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	    <channel>
        <title>Prosys Forum - Forum: OPC UA SDK for Java</title>
        <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/</link>
        <description><![CDATA[Prosys OPC &#038; OPC UA related discussion]]></description>
        <generator>Simple:Press Version 6.11.14</generator>
        <atom:link href="https://forum.prosysopc.com/forum/opc-ua-java-sdk/rss/" rel="self" type="application/rss+xml"/>
		                <item>
                    <title>rocket science on org.bouncycastle.util.encoders.DecoderException when trying to create UserIdenty with .der and .pem file</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/org-bouncycastle-util-encoders-decoderexception-when-trying-to-create-useridenty-with-der-and-pem-file/#p7601</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/org-bouncycastle-util-encoders-decoderexception-when-trying-to-create-useridenty-with-der-and-pem-file/#p7601</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>basically the creation of a UserIdentity using a .der and .pem file works.</p>
<p>But now I have a specific case, where the .der and .pem file is provided by the EQ vendor to be able to connect to the OpcUA server and it seems that the .pem file can not be loaded correctly.</p>
<p>The code to create the user identy (with SDK version 4.10.2-62) is following:</p>
<p>UserIdentity userIdentity = new UserIdentity(new File("UserCert.der"), new File("UserCert.pem"), "pwd");</p>
<p>The exception is:</p>
<p>org.bouncycastle.util.encoders.DecoderException: unable to decode base64 string: invalid characters encountered in base64 data<br />
	at org.bouncycastle.util.encoders.Base64.decode(Unknown Source)<br />
	at com.prosysopc.ua.stack.transport.security.BcCryptoProvider.base64Decode(SourceFile:78)<br />
	at com.prosysopc.ua.stack.utils.CryptoUtil.base64Decode(SourceFile:122)<br />
	at com.prosysopc.ua.stack.transport.security.PrivKey.load(SourceFile:117)<br />
	at com.prosysopc.ua.stack.transport.security.PrivKey.load(SourceFile:191)<br />
	at com.prosysopc.ua.SecureIdentity.a(SourceFile:473)<br />
	at com.prosysopc.ua.SecureIdentity.(SourceFile:235)<br />
	at com.prosysopc.ua.UserIdentity.(SourceFile:123)</p>
<p>The .der file looks like this (I've removed th middle part for better readability)</p>
<p>UserCert.der</p>
<p>0‚Ê0‚² ®É¢r®Vá,^0å}C¸n:Oê0<br />
	*†H†÷<br />
....<br />
5²fØadË¾ò»‡º ×–_</p>
<p>The .pem file contains a 'BEGIN/END CERTIFICATE' section and a 'BEGIN/END PRIVATE KEY' section like shown here:</p>
<p>-----BEGIN CERTIFICATE-----<br />
MIIGyjCCBLKgAwIBAgIUD67JonKuVuEsHV4w5X1DuG46T+owDQYJKoZIhvcNAQEL<br />
....<br />
ZMu+8rsDh7oaANeWAV8=<br />
-----END CERTIFICATE-----<br />
-----BEGIN PRIVATE KEY-----<br />
MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCcDX0o7ADB8gJb<br />
....<br />
bstj/beIj9MfXzAsgd84KMZCKK3m<br />
-----END PRIVATE KEY-----</p>
<p>When I remove the 'BEGIN/END CERTIFICATE' section, the UserIdenty can be created.</p>
<p>So it seems that the .pem file shall contain only the 'BEGIN/END PRIVATE KEY' section, but not the CERTIFICATE, right?</p>
<p>Is there any specification that it should be like this?</p>
<p>Or is there any way to load the UserIdentity with a .der and .pem file which contains CERTIFICATE and PRIVATE KEY'</p>
<p>P.S. The UaExpert can load the UserIdentity using the .der and .pem (including CERTIFICATE and PRIVATE KEY) without problems.</p>
<p>Thank you for you help!</p>
]]></description>
					                    <pubDate>Mon, 22 Jun 2026 15:23:00 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on PubSub: Only a Single DataSet per PubSubUdpUadpConnectionNetworkMessage</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-only-a-single-dataset-per-pubsubudpuadpconnectionnetworkmessage/#p7600</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-only-a-single-dataset-per-pubsubudpuadpconnectionnetworkmessage/#p7600</guid>
					                        <description><![CDATA[<p>Good day,</p>
<p>I have configured 2 DataSetWriters in a single WriterGroup (using the same publishingInterval). The UadpNetworkMessageContentMask does NOT contain the DataSetClassId (i.e. it is null). The DataSets only comprise 2 and 3 double values, respectively, which should fit well into the maxMessageSize of 4096 bytes.</p>
<p>What could be the reason for sending multiple networkmessages with one dataSet each instead of one networkMessage containing the dataSets from both dataSetWriters?</p>
<p>Some shortened log messages below. My expectation would be that a single networkmessage would transport both dataSets (dataSetWriterIds=[1,2]). Could this be related to the issue of the dataSet seqNos counting across all dataSetMessages? (see previous forum entry)</p>
<p></p>
<div class="sfcode" id="sfcode6213">
INFO  XXXXXService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=346, publisherId=String:yyyy::1/1, writerGroupId=1, dataSetClassId=null, dataSetWriterIds=[2], dataSetMessageCount=1<br />
INFO  XXXXXService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=347, publisherId=String:yyyy::1/1, writerGroupId=1, dataSetClassId=null, dataSetWriterIds=[1], dataSetMessageCount=1
</div>
]]></description>
					                    <pubDate>Thu, 18 Jun 2026 18:32:33 +0300</pubDate>
                </item>
				                <item>
                    <title>Lusetti on Clarification on deprecation of opc.https transport in OPC UA SDK 5.7.0-248</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/clarification-on-deprecation-of-opc-https-transport-in-opc-ua-sdk-5-7-0-248/#p7594</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/clarification-on-deprecation-of-opc-https-transport-in-opc-ua-sdk-5-7-0-248/#p7594</guid>
					                        <description><![CDATA[<p>Hi srkum,</p>
<p>Use of opc.https is not recommended in products developed with our SDK. We recommend using opc.tcp endpoints instead. Support for opc.https is deprecated, so new integrations should not rely on it.</p>
]]></description>
					                    <pubDate>Wed, 10 Jun 2026 13:49:11 +0300</pubDate>
                </item>
				                <item>
                    <title>Lusetti on PubSub: SDK warns about old sequenceNumbers across multiple WriterGroups</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-sdk-warns-about-old-sequencenumbers-across-multiple-writergroups/#p7593</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-sdk-warns-about-old-sequencenumbers-across-multiple-writergroups/#p7593</guid>
					                        <description><![CDATA[<p>Hi hbrackel,</p>
<p>You seem to be correct. Looking at the code, the DataSetReader implementation currently holds only one lastDataSetSequenceNumber, which is used when producing that warning log. Consequently, if multiple DataSetWriters are received by the same DataSetReader, the implementation does not distinguish the source of the sequence number.</p>
<p>Based on this, the sequence number validation should likely be tracked at least per DataSetWriter, even when the DataSetReader is the same.</p>
<p>I’ll create an issue for this. Thanks for the report.</p>
]]></description>
					                    <pubDate>Wed, 10 Jun 2026 13:25:11 +0300</pubDate>
                </item>
				                <item>
                    <title>srkum on Clarification on deprecation of opc.https transport in OPC UA SDK 5.7.0-248</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/clarification-on-deprecation-of-opc-https-transport-in-opc-ua-sdk-5-7-0-248/#p7592</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/clarification-on-deprecation-of-opc-https-transport-in-opc-ua-sdk-5-7-0-248/#p7592</guid>
					                        <description><![CDATA[<p>In the latest version of the OPC UA SDK for Java (5.7.0-248), the changelog states that “support for the alternative opc.https transport protocol option has been deprecated.”<br />
Does this mean that we should no longer advertise an opc.https endpoint on our OPC UA server? Consequently, is it correct to assume that any related logic in our implementation can be safely removed?</p>
]]></description>
					                    <pubDate>Wed, 10 Jun 2026 12:00:07 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on PubSub: SDK warns about old sequenceNumbers across multiple WriterGroups</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-sdk-warns-about-old-sequencenumbers-across-multiple-writergroups/#p7591</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-sdk-warns-about-old-sequencenumbers-across-multiple-writergroups/#p7591</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>I have a UDP publisher publishing 2 DataSets in 2 different DataSetWriterGroups at different publishingIntervals (1000ms and 2000ms).</p>
<p>The subscriber uses a single DataSetReader/group without preconfigured writer/publisher/.. ids to receive all possible messages on that multicast socket.</p>
<p>When logging the subscriber side, the SDK warns about old sequenceNumbers, comparing the sequenceNumbers from both received DataSetWriters. It is my  understanding from the Standard Part 14, 7.2.4.5.4 DataSetMessage header, that the SequenceNumber is related to the DataSet and not to a publisher. Is the SDK sequence number evaluation possibly incorrect here?</p>
<p></p>
<div class="sfcode" id="sfcode3876">
  WARN  com.prosysopc.ua.pubsub.ao - Sequence number (17) indicates that the received message is older than the previous one (33).<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=17, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=34, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=35, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 WARN  com.prosysopc.ua.pubsub.ao - Sequence number (18) indicates that the received message is older than the previous one (35).<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=18, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=36, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=37, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 WARN  com.prosysopc.ua.pubsub.ao - Sequence number (19) indicates that the received message is older than the previous one (37).<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=19, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=38, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 WARN  com.prosysopc.ua.pubsub.ao - Sequence number (20) indicates that the received message is older than the previous one (38).<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=20, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=39, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=40, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 INFO  MyService - PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=41, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1<br />
 WARN  com.prosysopc.ua.pubsub.ao - Sequence number (21) indicates that the received message is older than the previous one (41).
</div>
]]></description>
					                    <pubDate>Tue, 09 Jun 2026 18:57:29 +0300</pubDate>
                </item>
				                <item>
                    <title>Lusetti on PubSub: Multiple PubSubSystems with 1 ea. connection vs.1 PubSubSystem with multiple connections</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7590</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7590</guid>
					                        <description><![CDATA[<p>Hi hbrackel,</p>
<p>One PubSubSystem with multiple connections appears to support adding connections on the fly without stopping existing ones. Multiple PubSubSystems are not required just to avoid interruption when adding another multicast subscriber, based on the implementation. Additionally the docs show that the configuration updates are applied live meaning start/stop shouldnt be required when adding connections:</p>
<p><a href="https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/pubsub/PubSubSystem.html#updateConfiguration-com.prosysopc.ua.pubsub.PubSubFunction-" rel="nofollow" target="_blank"><a href="https://documentation.prosysop" rel="nofollow">https://documentation.prosysop</a>.....bFunction-</a></p>
<p>Of course, multiple PubSubSystems could provide better Application-level isolation (e.g. if you want separate life cycles/listeners for each connection) but based on your question, a single one should be suitable.</p>
]]></description>
					                    <pubDate>Tue, 09 Jun 2026 17:01:03 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on PubSub: Multiple PubSubSystems with 1 ea. connection vs.1 PubSubSystem with multiple connections</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7589</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7589</guid>
					                        <description><![CDATA[<p>Hi 'Lusetti',</p>
<p>thanks for your reply.<br />
We need to add connections (subscribers on additional multicast addresses) on the fly, while the subscriber/s on the first connection is/are already active. It is my understanding that the PubSubSystem configuration is, once created, mostly immutable. Adding a second connection would probably mean to stop the first PubSubSystem, update the configuration (or even create a new one if an update is not possible) and then start the new configuration with the added connection. Having multiple PubSubSystems would avoid that interruption.</p>
]]></description>
					                    <pubDate>Tue, 09 Jun 2026 15:40:55 +0300</pubDate>
                </item>
				                <item>
                    <title>Lusetti on PubSub: Multiple PubSubSystems with 1 ea. connection vs.1 PubSubSystem with multiple connections</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7588</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7588</guid>
					                        <description><![CDATA[<p>Hi hbrackel,</p>
<p>My educated guess is that a singular PubSubSystem is the cleaner option since that supports your stated requirement of handling multiple connections. Do you have more requirements left unstated in the message? If you have something specific to point out, I could try to take a look and see if I can something more specific related to that.</p>
<p>P.S.<br />
If you wish to wait, you'll likely get a more nuanced and direct answer once relevant people return from vacation 🙂</p>
]]></description>
					                    <pubDate>Tue, 09 Jun 2026 14:03:22 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on PubSub: Multiple PubSubSystems with 1 ea. connection vs.1 PubSubSystem with multiple connections</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7587</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-multiple-pubsubsystems-with-1-ea-connection-vs-1-pubsubsystem-with-multiple-connections/#p7587</guid>
					                        <description><![CDATA[<p>When an application requires multiple connections (e.g. publishing on multiple UDP multicast addresses or subscribing from multiple multicast addresses) options would be to create either a single PubSubSystem with multiple connections or multiple PubSubSystems with one connection each.</p>
<p>Are there any benefits of one over the other option apart from the possibility to start/stop each individually or together?</p>
]]></description>
					                    <pubDate>Fri, 05 Jun 2026 17:51:02 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on PubSub - Adding and retrieving meta-data to/from udpuadp datasets</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7586</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7586</guid>
					                        <description><![CDATA[<p>Super cool! </p>
<p>The updated SDK is now able to transmit the desired meta-data. As a quick trial I sent the EngineeringUnits as an EUInformation structure and it is easily retrievable from the metadata.</p>
<p>Thank you very much for providing the SDK update so quickly.</p>
<p>Have an enjoyable holiday time.<br />
-HU</p>
]]></description>
					                    <pubDate>Thu, 04 Jun 2026 16:21:33 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on PubSub - Adding and retrieving meta-data to/from udpuadp datasets</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7585</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7585</guid>
					                        <description><![CDATA[<p>If you want to try, we now have a beta build that fixes the PubSubPublishedVariableConf metadata issue, ask via <a href="mailto:jsdk-support@prosysopc.com" target="_blank">jsdk-support@prosysopc.com</a></p>
<p>Now in the Publisher in com.prosysopc.ua.samples.pubsub.SamplePubSubConfiguration.addPublishedVariableDataSet(Builder, UaNodeId) you can add e.g.<br />
variableConfBuilder.putMetaDataPropertyMap(UaQualifiedName.standard("Test"), "TestValue");<br />
Tested via in Subscriber side in com.prosysopc.ua.pubsub.PubSubSystem.addEventListener if you print the event/metadata.</p>
<p>Note that the SDK doesn't support 'metadata versioning' and it is only created when the PubSubSystem starts. Thus only constant values work. Depending how things go, maybe at some point there could be some "selector" configuration similar to how EventFilter works in opc.tcp events that would select sub-node values from a node being published (and maybe even monitor those ..), but that is possible future exploration. </p>
<p>Also, use namespaces for the UaQualifiedName(s) that are known for both sides. We sort of did a bit of a mistake in the design that both sides are assumed to know the types, but for a generic Subscriber it would instead need a separate "type realm" for each PublisherId+WriterId combination. The DataSetMetaData inherits from DataTypeSchemaHeader (from which also UABinaryFileDataType inherits) that is intended to list types used by the Publisher (though, in a case where the data would get pushed to a node on the server, then it must also follow that the server must know the type, or there wouldn't be much sense as far as I can think of use-cases).</p>
]]></description>
					                    <pubDate>Wed, 03 Jun 2026 15:53:31 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on PubSub - Adding and retrieving meta-data to/from udpuadp datasets</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7584</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7584</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>Basically there is almost no information modelling in the PubSub side.</p>
<p>The metadata SamplePubSubConfiguration is related to which MQTT Broker topic the DataSetMetaData is published. You might be referring to the FieldMetaData <a href="https://reference.opcfoundation.org/specs/OPC-10000-14/6.2.3.2.4" rel="nofollow" target="_blank"><a href="https://reference.opcfoundatio" rel="nofollow">https://reference.opcfoundatio</a>...../6.2.3.2.4</a> that is contained in the DataSetMetaData. Currently there is no way in the SDK to cause anything be sent in the 'Properties' field related to it.</p>
<p>In UDP the Subscriber must ask for the metadata via the multicast network, the Publisher would then send a message that contains the DataSetMetaData. It would seem the spec also nowadays allows cyclic publishing (we could implement this in the future).</p>
<p>The only info our SDK Subscriber side would currently look from the DataSetMetaData are the field names. Custom types are not supported (but will probably work, if the Subscriber side already knows them) nor is the RAWDATA mode. Our Subscriber side will invent Field#### style names for fields of datasets for which it doesn't know the metadata. It will also send the "discovery request" messages for which our Publisher side will respond with the DataSetMetaData messages.</p>
<p>The received metadatas will cause SDK to update the PubSubSystemConf of the PubSubSystem. They can also be manually set via PubSubSystemConf.Builder.addDataSetMetaDatas(PubSubDataSetMetaDataConf). This only works for the Subscriber side, not for the Publisher side. The idea at least was that the SDK calculates the metadata from the nodes, as they already contain the information.</p>
<p>The com.prosysopc.ua.samples.pubsub.SampleUtils.addPubSubSystemListeners(PubSubSystem) shows how to listen for DataSet and DataSetMetaData messages. The metadata can be obtained also from PubSubDataSetMessage.getDataSetMetaData(), assuming it is known.</p>
<p>P.S.<br />
The PubSubSystemConf PubSubDataSetMetaDataConf is only used in the Subscriber side. </p>
<p>PubSubPublishedVariableConf.getMetaDataPropertyMap() I believe at the moment does nothing. Probably should be categorized as a missing feature or bug, some of the thing were originally added 1:1 mirroring the spec configuration. It probably should go to com.prosysopc.ua.pubsub.PubSubFieldMetaDataConf.getProperties(), then I think it might get sent. </p>
<p>P.S.2<br />
Vacation season starts soon, thus it might take after summer to do much</p>
<p>P.S.3<br />
If a Subscriber would need instead a .uabinaryfile for the publisher configuration (this used to be common), there is a prototype implementation via PubSubSystem.commands().execute(PubSubSystemCommands.INTERNAL_PUB_SUB_SYSTEM_CONF_TO_UABINARYFILE, command) and give PubSubSystemConfToUaBinaryFileCommand as the command. Then com.prosysopc.ua.UaBinaryFile.toBinary() and write the ByteString.getValue byte[] to a file.</p>
]]></description>
					                    <pubDate>Wed, 03 Jun 2026 14:27:29 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on PubSub - Adding and retrieving meta-data to/from udpuadp datasets</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7583</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-adding-and-retrieving-meta-data-to-from-udpuadp-datasets/#p7583</guid>
					                        <description><![CDATA[<p>I'd like to add meta-data to variable based datasets / PublishedDataSets, such as the engineeringUnits for individual variables or EURanges.. In the SDK samples I only saw meta data for broker based communication.</p>
<p>Could you please provide a short example of adding meta-data on the publisher side and retrieving it on the subscriber side? Both sides would be servers as well.</p>
<p>Many thanks</p>
<p>PS: I tried using PubSubPublishedVariableConf.putMetaDataPropertyMap` and `PubSubSystemConf.addDataSetMetaData'. But neither seems to serialize the meta data on the wire</p>
]]></description>
					                    <pubDate>Wed, 03 Jun 2026 00:19:18 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on PubSub Server AddressSpace - how to "synchronize" with actual pubsub configuration</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-server-addressspace-how-to-synchronize-with-actual-pubsub-configuration/#p7582</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/pubsub-server-addressspace-how-to-synchronize-with-actual-pubsub-configuration/#p7582</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>Sorry, not supported by the SDK.</p>
<p>It might be implementable in the application level. However, some notes might be of use. To begin with, it would need to be differentiated do we talk about the ...  "complicated hierarchical version" or "single FileType node version" of the address space. Also the use-case would need more details.</p>
<p>Seems nowadays the spec actually has an official "single FileType way" <a href="https://reference.opcfoundation.org/specs/OPC-10000-14/9.1.3.7" rel="nofollow" target="_blank"><a href="https://reference.opcfoundatio" rel="nofollow">https://reference.opcfoundatio</a>.....14/9.1.3.7</a>. Something like this was typically seen as a custom solution when PubSub came out. Implementing the original information model is complicated, not sure has anyone done that. And if has, then does anything actually use it. For example, UaExpert back then had PubSub configuration view just writing a UABinaryFile to a custom FileType node. Lets just say PubSub is more "work-in-progress" than 'opc.tcp'  (in general and our SDK-wise).</p>
<p>Probably the FileType way (PubSubConfigurationType) is a lot easier to implement in an application and since it is also atomic swap it probably would be the way to go for tools. Though, it is harder to visualize, as it needs to be read first.</p>
<p>PubSubConfigurationType might be implementable using SDK 5.7.0 by implementing custom FileTypeNode.FileWrapper + FileTypeNode.RandomAccessFileWrapper. You will also need to set an implementation of the com.prosysopc.ua.types.opcua.server.PubSubConfigurationTypeNodeBase.setCloseAndUpdateMethodImplementation(PubSubConfigurationTypeCloseAndUpdateMethod) as the PubSubConfigurationType methods are not implemented in the SDK. This could be something we could maybe implement in the SDK itself, though unlikely to happen "exactly now", maybe after summer.</p>
<p>For the "complicated hierarchical version" I can mention that UaServer.setPubSubConfigurator(PubSubConfigurator) was originally created as a hook for all the Method calls related to PubSub (<a href="https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/server/PubSubConfigurator.html" rel="nofollow" target="_blank"><a href="https://documentation.prosysop" rel="nofollow">https://documentation.prosysop</a>.....rator.html</a>, there is a lot, Codegen creates code that handles the routing to this interface). Though, in addition one would need to handle other services as well such as some Writes. Maybe this model could better serve as a read-only variation and possibly for e.g. restarting a failed Writer or something like that (as that is not a configuration change, sort of). </p>
<p>One of the downsides of us going with our own configuration style com.prosysopc.ua.pubsub.PubSubSystemConf, is that you need to convert it to com.prosysopc.ua.stack.core.PubSubConfiguration2DataType and back. SDK does not yet offer a method for this. Skipping details.</p>
<p>com.prosysopc.ua.UaBinaryFile offers some support for com.prosysopc.ua.stack.core.UABinaryFileDataType. Skipping a lot of details about custom types.</p>
]]></description>
					                    <pubDate>Tue, 02 Jun 2026 16:42:35 +0300</pubDate>
                </item>
				    </channel>
	</rss>
