'Declaration
Property SessionConnectTimeout As Integer
'Usage
Dim instance As _UAClientSessionParameters Dim value As Integer instance.SessionConnectTimeout = value value = instance.SessionConnectTimeout
int SessionConnectTimeout {get; set;}
'Declaration
Property SessionConnectTimeout As Integer
'Usage
Dim instance As _UAClientSessionParameters Dim value As Integer instance.SessionConnectTimeout = value value = instance.SessionConnectTimeout
int SessionConnectTimeout {get; set;}
This parameter controls the total time given to the connection process (including endpoint discovery and selection, creating secure channel etc.). If the underlying connection process exceeds the given time, an error occurs and is returned to the caller. Even if this connection process later succeeds, its results will not be used.
In order to obtain or modify this parameter, in the default state (when OpcLabs.EasyOpc.UA.EasyUAClientCore.Isolated equals to false
), access OpcLabs.EasyOpc.UA.Engine.UAClientAdaptableParameters.SessionParameters property of static OpcLabs.EasyOpc.UA.EasyUAClientCore.AdaptableParameters. If you have set OpcLabs.EasyOpc.UA.EasyUAClientCore.Isolated to true
, you need to access OpcLabs.EasyOpc.UA.Engine.UAClientAdaptableParameters.SessionParameters property of OpcLabs.EasyOpc.UA.EasyUAClientCore.IsolatedParameters.
// This example shows how to set fairly short OPC UA timeouts (failures can thus occur). // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.EasyOpc.UA; namespace UADocExamples._UAClientSessionParameters { class Timeouts { public static void Isolated() { UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported) // or "https://opcua.demo-this.com:51212/UA/SampleServer/" // Instantiate the client object and set timeouts var client = new EasyUAClient { Isolated = true, IsolatedParameters = { SessionParameters = { EndpointSelectionTimeout = 1500, SessionConnectTimeout = 3000, SessionTimeout = 3000, SessionTimeoutDebug = 3000 } } }; Console.WriteLine("Subscribing..."); // The callback is a lambda expression the displays the value client.SubscribeDataChange(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853", 1000, (sender, eventArgs) => { if (eventArgs.Succeeded) Console.WriteLine("Value: {0}", eventArgs.AttributeData.Value); else Console.WriteLine("*** Failure: {0}", eventArgs.ErrorMessageBrief); }); Console.WriteLine("Processing data change events for 10 seconds..."); System.Threading.Thread.Sleep(10 * 1000); Console.WriteLine("Unsubscribing..."); client.UnsubscribeAllMonitoredItems(); Console.WriteLine("Waiting for 2 seconds..."); System.Threading.Thread.Sleep(2 * 1000); } } }
# This example shows how to set fairly short OPC UA timeouts (failures can thus occur). # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc import time # Import .NET namespaces. from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.OperationModel import * def dataChangeNotification(sender, eventArgs): # Display value. if eventArgs.Succeeded: print('Value: ', eventArgs.AttributeData.Value, sep='') else: print('*** Failure: ', eventArgs.ErrorMessageBrief, sep='') endpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer') # or 'http://opcua.demo-this.com:51211/UA/SampleServer' (currently not supported) # or 'https://opcua.demo-this.com:51212/UA/SampleServer/' # Instantiate the client object and set timeouts. client = EasyUAClient() client.Isolated = True client.IsolatedParameters.SessionParameters.EndpointSelectionTimeout = 1500 client.IsolatedParameters.SessionParameters.SessionConnectTimeout = 3000 client.IsolatedParameters.SessionParameters.SessionTimeout = 3000 client.IsolatedParameters.SessionParameters.SessionTimeoutDebug = 3000 print('Subscribing...') IEasyUAClientExtension.SubscribeDataChange(client, endpointDescriptor, UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10853'), 1000, EasyUADataChangeNotificationEventHandler(dataChangeNotification)) print('Processing data change events for 10 seconds...') time.sleep(10) print('Unsubscribing...') client.UnsubscribeAllMonitoredItems() print('Waiting for 2 seconds...') time.sleep(2) print('Finished.')
' This example shows how to set fairly short OPC UA timeouts (failures can thus occur). ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.EasyOpc.UA Namespace _UAClientSessionParameters Partial Friend Class Timeouts Public Shared Sub Isolated() ' Define which server we will work with. Dim endpointDescriptor As UAEndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported) ' or "https://opcua.demo-this.com:51212/UA/SampleServer/" ' Instantiate the client object and set timeouts Dim client = New EasyUAClient() With { .Isolated = True, .IsolatedParameters = New Engine.EasyUAAdaptableParameters() With { .SessionParameters = New Engine.UASmartSessionParameters() With { .EndpointSelectionTimeout = 1500, .SessionConnectTimeout = 3000, .SessionTimeout = 3000, .SessionTimeoutDebug = 3000 } } } Console.WriteLine("Subscribing...") ' The callback is a lambda expression the displays the value client.SubscribeDataChange(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853", 1000, Sub(sender, eventArgs) If eventArgs.Succeeded Then Console.WriteLine("Value: {0}", eventArgs.AttributeData.Value) Else Console.WriteLine("*** Failure: {0}", eventArgs.ErrorMessageBrief) End If End Sub) Console.WriteLine("Processing data change events for 10 seconds...") Threading.Thread.Sleep(10 * 1000) Console.WriteLine("Unsubscribing...") client.UnsubscribeAllMonitoredItems() Console.WriteLine("Waiting for 2 seconds...") Threading.Thread.Sleep(2 * 1000) End Sub End Class End Namespace
// Shows an OPC UA data change observable with specified timeouts. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using OpcLabs.EasyOpc.UA.Reactive; using System; using System.Threading; using OpcLabs.EasyOpc.UA; namespace ReactiveDocExamples { namespace _UADataChangeNotificationObservable { partial class Subscribe { public static void Timeouts() { // Define which server we will work with. UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported) // or "https://opcua.demo-this.com:51212/UA/SampleServer/" Console.WriteLine("Creating observable..."); UADataChangeNotificationObservable<float> observable = UADataChangeNotificationObservable.Create<float>( endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853", 1000); // Set fairly short timeouts (failure can thus occur). observable.ClientSelector.Isolated = true; observable.ClientSelector.IsolatedParameters.SessionParameters.EndpointSelectionTimeout = 1500; observable.ClientSelector.IsolatedParameters.SessionParameters.SessionConnectTimeout = 3000; observable.ClientSelector.IsolatedParameters.SessionParameters.SessionTimeout = 3000; observable.ClientSelector.IsolatedParameters.SessionParameters.SessionTimeoutDebug = 3000; Console.WriteLine("Subscribing..."); using (observable.Subscribe(e => Console.WriteLine( (e.Exception is null) ? e.AttributeData.ToString() : e.Exception.GetBaseException().ToString()))) { Console.WriteLine("Waiting for 10 seconds..."); Thread.Sleep(10*1000); Console.WriteLine("Unsubscribing..."); } Console.WriteLine("Waiting for 2 seconds..."); Thread.Sleep(2 * 1000); } } } }