public class NodeManagementServiceHandler extends ServiceHandler
This base class adds a small layer of abstraction by handling the OPC UA request messages and dispatched responses. It delegates the operation to virtual methods, which by default only return "Not implemented" service results.
You can normally use the standard implementation, NodeManagerUaNode, which provides a
basic implementation of actual node management.
If you wish to create a completely customized node manager, you can override this class and override the public methods that you wish to implement.
stringTable| Constructor and Description |
|---|
NodeManagementServiceHandler(SessionManager sessionManager,
NodeManagerTable nodeManagerTable)
Create the NodeManagementServiceSetHandler.
|
checkRequestLength, createServiceContext, fireRequestResponse, getEncoderContext, getMaxOperationsPerRequest, getNode, getNodeManagerTable, getOperationLimits, getServer, getSessionManager, handleServiceResultException, hasNode, localizationHintsForServiceContext, setMaxOperationsPerRequest, setRequestResponseListener, toExtensionObject, validateEncoding, validateEncoding, validateOperationalDiagnostics, validateRequest, validateRequest, validateResponse, validateResponse, validateServiceDiagnosticspublic NodeManagementServiceHandler(SessionManager sessionManager, NodeManagerTable nodeManagerTable)
sessionManager - The serviceContext manager that handles the sessionsgetNodeManagerTable - ()rootManager - The root node manager that handles the OPCUA namespacepublic int getMaxNodesPerBrowse()
setMaxNodesPerBrowse(int),
getMaxNodesPerBrowse()public int getMaxNodesPerMethodCall()
setMaxNodesPerMethodCall(int)public int getMaxNodesPerNodeManagement()
setMaxNodesPerNodeManagement(int)public int getMaxNodesPerRegisterNodes()
setMaxNodesPerRegisterNodes(int)public int getMaxNodesPerTranslateBrowsePathsToNodeIds()
setMaxNodesPerTranslateBrowsePathsToNodeIds(int)public int getMaxReferencesPerNode()
setMaxReferencesPerNode(int),
getMaxNodesPerBrowse()public final void onAddNodes(EndpointServiceRequest<AddNodesRequest,AddNodesResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onAddReferences(EndpointServiceRequest<AddReferencesRequest,AddReferencesResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onBrowse(EndpointServiceRequest<BrowseRequest,BrowseResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onBrowseNext(EndpointServiceRequest<BrowseNextRequest,BrowseNextResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onCall(EndpointServiceRequest<CallRequest,CallResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onDeleteNodes(EndpointServiceRequest<DeleteNodesRequest,DeleteNodesResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onDeleteReferences(EndpointServiceRequest<DeleteReferencesRequest,DeleteReferencesResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onQueryFirst(EndpointServiceRequest<QueryFirstRequest,QueryFirstResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onQueryNext(EndpointServiceRequest<QueryNextRequest,QueryNextResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onRegisterNodes(EndpointServiceRequest<RegisterNodesRequest,RegisterNodesResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onTranslateBrowsePathsToNodeIds(EndpointServiceRequest<TranslateBrowsePathsToNodeIdsRequest,TranslateBrowsePathsToNodeIdsResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic final void onUnregisterNodes(EndpointServiceRequest<UnregisterNodesRequest,UnregisterNodesResponse> req) throws ServiceFaultException
ServiceFaultExceptionpublic void setMaxNodesPerBrowse(int maxNodesPerBrowse)
If the value is 0 or negative, the limit is not used. In this case, the
ServiceHandler#setMaxOperationsPerRequest() is used to limit the request size.
The value is reflected to ServerCapabilities/OperationLimits.
maxNodesPerBrowse - the maxNodesPerBrowse to setsetMaxReferencesPerNode(int)public void setMaxNodesPerMethodCall(int maxNodesPerMethodCall)
If the value is 0 or negative, the limit is not used. In this case, the
ServiceHandler#setMaxOperationsPerRequest() is used to limit the request size.
The value is reflected to ServerCapabilities/OperationLimits.
maxNodesPerMethodCall - the maxNodesPerMethodCall to setpublic void setMaxNodesPerNodeManagement(int maxNodesPerNodeManagement)
If the value is 0 or negative, the limit is not used. In this case, the
ServiceHandler#setMaxOperationsPerRequest() is used to limit the request size.
The value is reflected to ServerCapabilities/OperationLimits.
maxNodesPerNodeManagement - the maxNodesPerNodeManagement to setpublic void setMaxNodesPerRegisterNodes(int maxNodesPerRegisterNodes)
If the value is 0 or negative, the limit is not used. In this case, the
ServiceHandler#setMaxOperationsPerRequest() is used to limit the request size.
The value is reflected to ServerCapabilities/OperationLimits.
maxNodesPerRegisterNodes - the maxNodesPerRegisterNodes to setpublic void setMaxNodesPerTranslateBrowsePathsToNodeIds(int maxNodesPerTranslateBrowsePathsToNodeIds)
If the value is 0 or negative, the limit is not used. In this case, the
ServiceHandler#setMaxOperationsPerRequest() is used to limit the request size.
The value is reflected to ServerCapabilities/OperationLimits.
maxNodesPerTranslateBrowsePathsToNodeIds - the maxNodesPerTranslateBrowsePathsToNodeIds to
setpublic void setMaxReferencesPerNode(int maxReferencesPerNode)
Default: 10000
maxReferencesPerNode - the maxReferencesPerNode to setpublic void start()
throws StatusException,
UaNodeFactoryException
protected NodeId addNode(ServiceContext serviceContext, AddNodesItem nodeToAdd) throws StatusException, ServiceException, UaNodeFactoryException
protected void addNodes(ServiceContext serviceContext, AddNodesRequest request, AddNodesResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected void addReference(ServiceContext serviceContext, AddReferencesItem addReferencesItem) throws StatusException, ServiceException
serviceContext - addReferencesItem - ServiceExceptionStatusExceptionprotected void addReferences(ServiceContext serviceContext, AddReferencesRequest request, AddReferencesResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected void browse(ServiceContext serviceContext, BrowseRequest request, BrowseResponse response) throws ServiceException
serviceContext - viewDescription - browseDescriptions - maxReferencesPerNodeToReturn - d - ServiceExceptionprotected void browseNext(ServiceContext serviceContext, BrowseNextRequest request, BrowseNextResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected BrowseContinuationPoint browseNode(ServiceContext serviceContext, List<ReferenceDescription> referenceDescriptions, NodeId nodeId, int maxReferences, BrowseDirection browseDirection, NodeId referenceTypeId, Boolean includeSubTypes, EnumSet<NodeClass> nodeClassSet, EnumSet<BrowseResultMask> resultSet, ViewDescription view, int startIndex) throws ServiceException, StatusException
serviceContext - The serviceContext under which the operation is performed.nodeId - maxReferences - resultSet - nodeClassSet - includeSubTypes - referenceTypeId - browseDirection - view - startIndex - ServiceExceptionStatusExceptionprotected void call(ServiceContext serviceContext, CallRequest request, CallResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected Variant[] callMethod(ServiceContext serviceContext, NodeId objectId, NodeId methodId, Variant[] inputArguments, StatusCode[] inputArgumentResults, DiagnosticInfo[] inputArgumentDiagnosticInfos) throws StatusException
serviceContext - objectId - methodId - inputArguments - inputArgumentDiagnosticInfos - inputArgumentResults - StatusExceptionprotected void deleteNode(ServiceContext serviceContext, DeleteNodesItem deleteNodesItem) throws StatusException
serviceContext - deleteNodesItem - StatusExceptionprotected void deleteNodes(ServiceContext serviceContext, DeleteNodesRequest request, DeleteNodesResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected void deleteReference(ServiceContext serviceContext, DeleteReferencesItem deleteReferencesItem) throws StatusException
serviceContext - deleteReferencesItem - StatusExceptionprotected void deleteReferences(ServiceContext serviceContext, DeleteReferencesRequest request, DeleteReferencesResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected org.slf4j.Logger getLogger()
getLogger in class ServiceHandlerprotected UaView getView(NodeId viewId, UnsignedInteger viewVersion, DateTime timestamp) throws ServiceException
Override the method in your own implementation to support custom views.
viewId - The NodeId of the requested view. This is never Null - in such cases the method
is not even called.timestamp - timestamp of the viewviewVersion - version of the viewServiceException - StatusCodes.Bad_ViewIdUnknown if the defined view does not exist;
Bad_ViewVersionInvalid if the version is not validprotected void init()
throws StatusException,
UaNodeFactoryException
protected void queryFirst(ServiceContext serviceContext, QueryFirstRequest request, QueryFirstResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected void queryNext(ServiceContext serviceContext, QueryNextRequest request, QueryNextResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected NodeId registerNode(ServiceContext serviceContext, NodeId nodeId) throws StatusException
serviceContext - nodeId - StatusExceptionprotected void registerNodes(ServiceContext serviceContext, RegisterNodesRequest request, RegisterNodesResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected BrowsePathTarget[] translateBrowsePath(ServiceContext serviceContext, NodeId startingNode, RelativePath relativePath) throws StatusException
serviceContext - startingNode - relativePath - StatusExceptionprotected void translateBrowsePathsToNodeIds(ServiceContext serviceContext, TranslateBrowsePathsToNodeIdsRequest request, TranslateBrowsePathsToNodeIdsResponse response) throws ServiceException
serviceContext - request - response - ServiceExceptionprotected void unregisterNode(ServiceContext serviceContext, NodeId nodeId) throws StatusException
serviceContext - nodeId - StatusExceptionprotected void unregisterNodes(ServiceContext serviceContext, UnregisterNodesRequest request, UnregisterNodesResponse response) throws ServiceException
nodeIds - ServiceExceptionCopyright © 2026. All rights reserved.