'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). 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). # 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.')
// Shows an OPC UA data change observable with specified timeouts. 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); } } } }