Prosys OPC UA Java SDK 2.2.2
This is a new bug fix release of the SDK.
One of the main changes is in handling timeouts of Publish Requests, which was a new
feature added to version 2.2.0.
On the server side, the request timeout is now properly checked based on the retrieval
time of the request - instead of the send time from client (avoiding the effect of clock
difference).
On the client side the default timeout is reset to UnsignedInteger.MAX_VALUE -
in normal cases the requests will fail if the connection is reset - and only
if the responses are supposed to get lost, it is necessary to use a timeout for the
requests. If the timeout is used, it must not conflict with the keep alive times, so
it should be aligned with the subscription parameters.
Also the encoding and decoding of structures has been improved - especially related to code
generation, so you may need to regenerate the structure types, if you have modeled them yourself.
OPC Foundation Java Stack changes
- Build 1.02.337.8
- New: XMLFactoryCache, caches XML parsing related factories
- Fixed (Github #1): DateTime.parseDateTime typo fixed
- Fixed (Github #2): CloseSecureChannelRequest should be sent with CLOF header
- Fixed (Github #30): Proper shutdown for blocking work executor's rejectionhandler
- New: IEncoder.put() & EncoderUtils.put() overloads with Class argument
- Fixed (Mantis 3149): Private keys encrypted with passwords containing non-ASCII characters cannot be loaded
- Fixed (Mantis 3139): sendPendingMessagesRunnable should not run in parallel
- Changed: TIMEOUT_TOLERANCE (constant 10%) for client side - extra time to wait before defining a request has timed out
- Changed: Generating cert with SUN JCE, to use subject names as plain string instead of CertificateIssuerName object.
Changes to both SDK Client and Server
- New: UaAddress.toString
- New: Subscription.getItem returns MonitoredItem instead of MonitoredItemBase
- Fixed: Removed dependency to log4j that was still present in some classes
Changes to SDK Client
- New: MonitoredItem.getExpandedNodeId() and constructors with ExpandedNodeId instead of NodeId: will be converted on the fly, when the client is connected and needs to use the Ids.
- New: AddressSpace.browse() overloads with ExpandedNodeId
- Fixed: PublishRequest timeout was calculated too early
- Fixed: Possible NPE in Subscription
- Fixed: AddressSpace.addNode must check the operation result
- Fixed: AddressSpace.getType throws now AddressSpaceException instead of ClassCastException if given NodeId is not for an UA type
- Fixed: Maximum RequestHandle was 65535, new is unsigned integer maximum value
- Fixed: Details in the publish response handling
- Changed: UaClient.getSupportedModes does not anymore check endpointUrl
- Changed: PublishRequest default timeout (back) to UnsignedInteger.MAX_VALUE
- Changed: Include StatusCodes.Bad_SessionNotActivated to the communication error list
Changes to SDK Server
- INTERFACE CHANGE: NodeManagerListener.onCreateMonitoredDataItem, added NodeId parameter
- New: ServerNode.addOrganizes
- New: NodeMapUaNode.getNodes()
- New: ServerRedundancySupport value initialized to None instead of Null
- New: Allow user created Session objects by overriding SessionManager.provideSession()
- Fixed: Mandatory InstanceDeclarations not instantiated on Java 8
- Fixed: Possible memory leak related to subscription diagnostics
- Fixed: Possible problemns with keepalive if changing publishinterval
- Fixed: Ua Methods allowed arrays when expecting scalar value
- Fixed: Reject timeouted PublishRequests with Bad_Timeout
- Fixed: Use server side timestamp for publishrequest timeout calculation
- Fixed: Unnecessary keep-alive messages from the server subscriptions
- Fixed: ServiceException instead of StatusException when trying to AddNodes service and it has been disabled from the server
- Fixed: Check byte array length of read values, when using index ranges in IoManager
- Changed: Faster NodeSet XML reading
Code generator
- Version 2.2.2 (Mainly the templates have been updated)
- Fixed: NPE for calling non instantiated Optional Methods
- Fixed: Encoding Structure with Null field
Other
- The tutorial PDFs have now bookmarks
Plus a number of other small fixes
25.02.16