In theory, the system should eventually "realize" and clean up. But it won't be quick and, depending on how many of these are running, the resulting "orphaned" watches could put significant drain on Server resources.
As I always tell my students in a situation like this... "Don't behave like a teenager and expect your parents to pick up after you. Put your own laundry in the basket..." Since the time taken and coding effort needed to tidy up and release resources correctly is negligable, the real question is "why wouldn't you"?
Just my 10 cents
------------------------------
Paul Simpson
Senior Technical Instructor
------------------------------
Original Message:
Sent: 03-28-2019 13:58
From: Donald Hamel
Subject: iceLib : Roles & Workgroups lists assigned to a user always empty
Do you think it is an issue if the application terminates without calling StopWatching() ?
------------------------------
Donald Hamel
Bell Canada
Original Message:
Sent: 03-28-2019 12:36
From: Ivan Sazonov
Subject: iceLib : Roles & Workgroups lists assigned to a user always empty
Also, don't forget to stop your watches:
try
{
...
userConfigurationList.StartCaching(watchSettings);
...
}
catch
{
...
}
finally
{
if (userConfigurationList.IsWatching())
{
userConfigurationList.StopWatching();
}
}
------------------------------
Ivan Sazonov
UMA Education, Inc.
Original Message:
Sent: 03-27-2019 17:24
From: Donald Hamel
Subject: iceLib : Roles & Workgroups lists assigned to a user always empty
Hi,
I am trying to manage Roles and Workgroups associated to users with iceLib. I am able to assign Roles and Workgroups but I am not able to get currently assigned Roles and Workgroups for a user. The list is always empty when I read a user.
Here is the code:
using ININ.IceLib.Configuration;using ININ.IceLib.Connection;using System;using System.Collections.Generic;namespace TestIceLib{ class Program { Session session; void connect() { session = new Session(); SessionSettings sessionSettings = new SessionSettings(); sessionSettings.ClassOfService = ClassOfService.General; sessionSettings.IsoLanguage = "en-US"; sessionSettings.ApplicationName = "testApplication"; HostSettings hostSettings = new HostSettings(); hostSettings.HostEndpoint = new HostEndpoint("localhost", HostEndpoint.DefaultPort); var UserName = ""; var Password = ""; AuthSettings authSettings; if (String.IsNullOrEmpty(UserName) || Password == null) { authSettings = new WindowsAuthSettings(); } else { authSettings = new ICAuthSettings(UserName, Password); } StationSettings stationSettings = new StationlessSettings(); session.Connect(sessionSettings, hostSettings, authSettings, stationSettings); } UserConfiguration getUser(string id) { ConfigurationManager manager = ConfigurationManager.GetInstance(session); UserConfigurationList userConfigurationList = new UserConfigurationList(manager); List<FilterDefinition<UserConfiguration, UserConfiguration.Property>> filterDefinitions = new List<FilterDefinition<UserConfiguration, UserConfiguration.Property>>(); if (id != null) { filterDefinitions.Add( new BasicFilterDefinition<UserConfiguration, UserConfiguration.Property>( UserConfiguration.Property.Id, id, FilterMatchType.Exact)); } QuerySettings<UserConfiguration, UserConfiguration.Property> watchSettings = userConfigurationList.CreateQuerySettings(); watchSettings.SetFilterDefinition( new GroupFilterDefinition<UserConfiguration, UserConfiguration.Property>(filterDefinitions)); userConfigurationList.StartCaching(watchSettings); foreach (UserConfiguration user in userConfigurationList.GetConfigurationList()) { return user; } return null; } void disconnect() { session.Disconnect(); } static void Main(string[] args) { var app = new Program(); app.connect(); var user = app.getUser("donald.hamel"); if (user != null) { Console.WriteLine("nb workgroup: " + user.Workgroups.Value.Count); } app.disconnect(); } }}
Does anyone knows what is my issue?
Thanks,
#Unsure/Other
------------------------------
Donald
------------------------------