MIM Event Broker Forum

Welcome to the community forum for MIM Event Broker.

Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

0
Published

Service cannot be started. System.TypeLoadException: Could not load type Unify.Product.EventBroker.MIMReferenceRepository

Bob Bradley 5 years ago updated by Matthew Davis (Technical Product Manager) 4 years ago 1

The UNIYFNow service had failed to completely uninstall some months ago in a DEV environment.  On rebooting the service uninstall seems to have finally completed, leaving only the extensibility files in place and a few config files.  What I hadn't noticed was the presence of some old patches.  On removing these the service was finally able to restart - I recognised these files only by file date.

I am raising this purely for future reference for anyone else spinning their wheels on this sort of thing - and in the hope that there might be a KB article created to help out when this sort of thing happens and they don't have the necessary familiarity to work it out for themselves.

Log Name:      Application
Source:        UNIFYNow
Date:          22/08/2019 3:45:13 PM
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      D-OCCCP-IM303.dbb.local
Description:
Service cannot be started. System.TypeLoadException: Could not load type 'Unify.Product.EventBroker.MIMReferenceRepository' from assembly 'Unify.EventBroker.Agents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84b9288cb2633de4'.
   at Unify.Product.EventBroker.AgentEngine..ctor(IConfigurationEngine configurationEngine, ILicensingEngine licensingEngine, INotificationMessageService messageService, IIsolatedStoredValuesEngine storedValuesEngine, IScheduleComposite scheduler, IEventBrokerBranding branding, IUnifyEnginePlugInKey plugInKey)
   at Unify.Product.EventBroker.AgentEnginePlugInFactory.CreateComponent(IUnifyEnginePlugInFactoryInformation`1 factoryInformation)
   at Unify.Framework.DependencyPlugInGenerator`4..ctor(ICollection`1 plugInGenerator, IPlugInFactory`2 factoryInformationFactory)
   at Unify.Framework.UnifyEngine`1..ctor(TBranding branding, IEnumerable`1 additionalPlugInFactories, DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation)
   at Unify.Product.EventBroker.EventBrokerSer...
Event Xml:
<event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <system>
    <provider name="UNIFYNow">
    <eventid qualifiers="0">0</eventid>
    <level>2</level>
    <task>0</task>
    <keywords>0x80000000000000</keywords>
    <timecreated systemtime="2019-08-22T05:45:13.639360700Z">
    <eventrecordid>535918</eventrecordid>
    <channel>Application</channel>
    <computer>D-OCCCP-IM303.dbb.local</computer>
    <security>
  </security></timecreated></provider></system>
  <eventdata>
    <data>Service cannot be started. System.TypeLoadException: Could not load type 'Unify.Product.EventBroker.MIMReferenceRepository' from assembly 'Unify.EventBroker.Agents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84b9288cb2633de4'.
   at Unify.Product.EventBroker.AgentEngine..ctor(IConfigurationEngine configurationEngine, ILicensingEngine licensingEngine, INotificationMessageService messageService, IIsolatedStoredValuesEngine storedValuesEngine, IScheduleComposite scheduler, IEventBrokerBranding branding, IUnifyEnginePlugInKey plugInKey)
   at Unify.Product.EventBroker.AgentEnginePlugInFactory.CreateComponent(IUnifyEnginePlugInFactoryInformation`1 factoryInformation)
   at Unify.Framework.DependencyPlugInGenerator`4..ctor(ICollection`1 plugInGenerator, IPlugInFactory`2 factoryInformationFactory)
   at Unify.Framework.UnifyEngine`1..ctor(TBranding branding, IEnumerable`1 additionalPlugInFactories, DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation)
   at Unify.Product.EventBroker.EventBrokerSer...</data>
  </eventdata>
</event>

Log Name:      Application
Source:        UNIFYNow
Date:          22/08/2019 3:45:13 PM
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      D-OCCCP-IM303.dbb.local
Description:
Error - The following occurred in module: General server error: Could not load type 'Unify.Product.EventBroker.MIMReferenceRepository' from assembly 'Unify.EventBroker.Agents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84b9288cb2633de4'.

The following general server error occured:
System.TypeLoadException: Could not load type 'Unify.Product.EventBroker.MIMReferenceRepository' from assembly 'Unify.EventBroker.Agents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84b9288cb2633de4'.
   at Unify.Product.EventBroker.AgentEngine..ctor(IConfigurationEngine configurationEngine, ILicensingEngine licensingEngine, INotificationMessageService messageService, IIsolatedStoredValuesEngine storedValuesEngine, IScheduleComposite scheduler, IEventBrokerBranding branding, IUnifyEnginePlugInKey plugInKey)
   at Unify.Product.EventBroker.AgentEnginePlugInFactory.CreateComponent(IUnifyEnginePlugInFactoryInformation`1 factoryInformation)
   at Unify.Framework.DependencyPlugInGenerator`4..ctor(ICollection`1 plugInGenerator, IPlugInFactory`2 factoryInformationFactory)
   at Unify.Framework.UnifyEngine`1..ctor(TBranding branding, IEnumerable`1 additionalPlugInFactories, DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation)
   at Unify.Product.EventBroker.EventBrokerServiceEngine..ctor(DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation, IEventBrokerBranding branding)
   at Unify.Product.EventBroker.EventBrokerService.OnStart(String[] args)
Event Xml:
<event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <system>
    <provider name="UNIFYNow">
    <eventid qualifiers="0">0</eventid>
    <level>2</level>
    <task>0</task>
    <keywords>0x80000000000000</keywords>
    <timecreated systemtime="2019-08-22T05:45:13.639360700Z">
    <eventrecordid>535917</eventrecordid>
    <channel>Application</channel>
    <computer>D-OCCCP-IM303.dbb.local</computer>
    <security>
  </security></timecreated></provider></system>
  <eventdata>
    <data>Error - The following occurred in module: General server error: Could not load type 'Unify.Product.EventBroker.MIMReferenceRepository' from assembly 'Unify.EventBroker.Agents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84b9288cb2633de4'.

The following general server error occured:
System.TypeLoadException: Could not load type 'Unify.Product.EventBroker.MIMReferenceRepository' from assembly 'Unify.EventBroker.Agents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84b9288cb2633de4'.
   at Unify.Product.EventBroker.AgentEngine..ctor(IConfigurationEngine configurationEngine, ILicensingEngine licensingEngine, INotificationMessageService messageService, IIsolatedStoredValuesEngine storedValuesEngine, IScheduleComposite scheduler, IEventBrokerBranding branding, IUnifyEnginePlugInKey plugInKey)
   at Unify.Product.EventBroker.AgentEnginePlugInFactory.CreateComponent(IUnifyEnginePlugInFactoryInformation`1 factoryInformation)
   at Unify.Framework.DependencyPlugInGenerator`4..ctor(ICollection`1 plugInGenerator, IPlugInFactory`2 factoryInformationFactory)
   at Unify.Framework.UnifyEngine`1..ctor(TBranding branding, IEnumerable`1 additionalPlugInFactories, DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation)
   at Unify.Product.EventBroker.EventBrokerServiceEngine..ctor(DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation, IEventBrokerBranding branding)
   at Unify.Product.EventBroker.EventBrokerService.OnStart(String[] args)</data>
  </eventdata>
</event>
0
Answered

Can you please elaborate on the requirement of the service...

Daniel Walters 5 years ago updated by Beau Harrison (Senior Product Software Engineer) 5 years ago 3

Converted to topic from comment left on UNIFYNow Installation Prerequisites

Can you please elaborate on the requirement of the service account to have permission to create a WCF endpoint. Where would this be configured?

0
Planned

Move up menu missing after new operation added

Bob Bradley 5 years ago updated by Beau Harrison (Senior Product Software Engineer) 5 years ago 2

After an operation is demoted, an additional "New Operation" menu appears below the demoted operation.  After using this menu to add a new operation below the demoted operation (sibling), I was expecting to be able to move it up one position above the initially demoted operation - but there is no menu to do this.  For the moment I can, however, select the Move Down menu from the initially demoted item.

0
Completed

IIS requirements

Bob Bradley 5 years ago updated by Matthew Davis (Technical Product Manager) 5 years ago 2

Converted to topic from comment on https://voice.unifysolutions.net/knowledge-bases/8/articles/2724-unifynow-installation-prerequisites#comment-20240

When following https://voice.unifysolutions.net/knowledge-bases/8/articles/2722-configuring-unifynow-for-use-with-iis on a new Win2016 host I discovered the ASP.Net 4.6 ISAPI filters were missing.  On this same page there is mention of the (optional) Windows Authentication feature being required with the IIS role installation, but nothing about ASP.Net 4.6.

Circling back to this prerequisites page I can see that the IIS prerequisite is not discussed at all … and this may explain why I am still finding sites running under Cassini, particularly in PRODUCTION.  I believe that the IIS install should be the default for any Enterprise installation of either UNIFYNow or UNIFYBroker, and have had this stance for some time.  However I can see that the documentation could assist in guiding the installer to this model by listing the IIS (including ASP.Net 4.6 and Windows Authentication) prerequisites on this page and encouraging this configuration over Cassini.

0
Fixed

Documentation inconsistency - installing UNIFYBroker/Plus

Adrian Corston 5 years ago updated by Beau Harrison (Senior Product Software Engineer) 5 years ago 2

Image 5172

The documentation says to select 'Attempt New Install' but the screen shows 'Attempt upgrade'.  Upgrade and new install are two completely opposite concepts, so this is quite confusing.

0

Scripted deployment of UNIFYNow extensibility

Bob Bradley 5 years ago 0

While there is an existing process of migrating config (https://voice.unifysolutions.net/knowledge-bases/8/articles/2719-migrating-unifynow-between-environment) it is far from ideal - essentially because of the challenges posed by the 5 bullet points at the bottom of the article.

Furthermore, the configuration itself is incredibly tedious, even in the simplest of environments, especially since we're now implementing the Safety Catch mechanism as a "best practice".  This is even after having used the Auto Config wizard, which these days gets us perhaps 50% of the way there.  Problems include

  1. needing to replace global operations list for each MA with a single global operation list for all MAs in the right sequence with the FIM MA first;
  2. needing to configure the Safety Catch mechanism manually for inbound, outbound and global operation lists;
  3. having to set up exclusion groups manually; and
  4. on occasion (perhaps only with earlier versions) the MA guids have become corrupted (e.g. UNIFYNow startup when the FIMSynchronizationService is not running), and this can cost hours in manually rebuilding the config (Refresh MAs button doesn't ever seem to work in this scenario).

By moving from a manual to a scripted model we could kill 2 birds with one stone and significantly reduce design and deployment time, while improving consistency and reliability of UNIFYNow deployments (I am seeing evidence of misconfigured sites now).

I've spoken to Matt about this idea and I believe some prototype work was being done in a related area … hopefully this can be something worth progressing while the topic is hot.  What needs to be done to get traction with this one please?

0
Answered

UNIFY Now - Memory leak in internet explorer

Hayden Gray 5 years ago updated by Matthew Davis (Technical Product Manager) 5 years ago 4

Hi Guys,

Towards the end of last year we upgraded to UNIFY Now v4.0.4 and have noticed that if an internet explorer window (with the UNIFY Now client open) is running for a few days. The memory of the internet explorer process grows to >1.5 gig.

This usually isn't too much of an issue as the environment is monitored regularly, however if the browser window is left open in a user's unattended session for a few days, the high memory usage will begin to impact the sync service.

I found the below ticket referring to possibly the same issue in an older version of Event Broker, and from what I could tell the solution was to upgrade the browser to a later version:

https://voice.unifysolutions.net/communities/5/topics/2817-unify-mim-event-broker-memory-leak-on-ie8

The current browser version we have is IE 10.0.9200.22032, which is well inside the prerequisite information listed in the install information (which recommends IE v8+).

I am wondering if this is still a known issue or whether an upgrade to a later version (IE v11) is what fixed the issue in this other ticket?

Thanks,

Hayden

0
Under review

Feature Request: Event Broker plug-in for Identity Broker Changes to defer TRUE result

Bob Bradley 5 years ago updated by Matthew Davis (Technical Product Manager) 5 years ago 1

UNIFYNow has been observed to invoke operations as soon as UNIFYBroker changes are detected, rather than waiting until UNIFYBroker has completed generating changes.  In a bulk change scenario, this can result in small batches of changes being imported via a MIM run profile (for example), and in the case of changes that may breach a configured change threshold (e.g. UNIFYNow Safety Catch feature), it is possible that the catch won't be tripped because individual batches themselves fall below the threshold.  For example, when 1000 changes are made in HR, and the import threshold is 500, 4 batches of 250 identity import changes could still get through to MIM.

Instead of change detection returning TRUE as it currently does as SOON as there are changes present in the adapter, is there a way of holding these up (queueing them internally within UNIFYBroker) while reflection is still going on.  This way in the above example, change detection would return TRUE only after the 1000th change had been surfaced to the adapter.

There may be multiple ways of looking at this … for example, a result of BUSY could signal to UNIFYNow that changes have been detected but there could be MORE COMING.  Not sure which option would be best, nor the degree of configuration that may be required to throttle this.  Looking for the most elegant solution to achieve the desired result - and suspect this would be best isolated to within Broker rather than surfacing the decision to UNIFYNow.

0
Fixed

UNIFYNow IdB Agent (Rest) timing out

Hayden Gray 5 years ago updated by Matthew Davis (Technical Product Manager) 5 years ago 4

After recently updating to the latest version of UNIFYBroker (5.3.1) and UNIFYNow (4.0.4), I have noticed that some UNIFYNow operations appears to be reporting errors when errors are not being thrown on the corresponding UNIFYBroker job. 

To explain this a little better an example of this is an operation list "IDB- Scheduled - SMS Enrolments - Import All". Each night this operation list is scheduled to run with two steps :

  1. Import Files
  2. Run UNIFY Broker Rest API Operation (Import all)

This operation list runs fora while and then throws an error:

Operation Identity Broker Rest API Operation with id 00ad3527-87cb-4826-9ecc-a134f5007fd5 failed in the operation list IDB - Scheduled - SMS Enrolments - Import All with id d7b24af6-c394-4d8d-9336-9e9339be5b94 for the following reason. This is retry number 0: Unify.Product.EventBroker.RestAPIAgentSendRequestFailedException: The sending of the request failed. See the inner exception for more information. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Unify.Product.EventBroker.RestAPIAgent.<SendRequestAsync>d__18.MoveNext()
--- End of inner exception stack trace ---
at Unify.Product.EventBroker.RestAPIPlugIn.Execute()
at Unify.EventBroker.PlugIn.Audit.OperationAuditingDecorator.Execute()
at Unify.Product.EventBroker.OperationListExecutorBase.RunNextOperations(IEnumerator`1 operationEnumerator)

Both operations in the list continue to run successfully, however it just appears to time out.

All errors of this type appear to be occurring on operation lists that take more than an hour to run. Please let me know if you need any further information and please also find attached the extensibility folder for UNIFYNow.

Thanks,

Hayden

Answer

Hi Hayden, check your timeout setting on the rest api agent in Now. Make sure it greater than the length of time the longest connector import takes to complete.

0
Answered

Migrating UnifyNow Configuration

Daniel Walters 5 years ago updated by Adam van Vliet 5 years ago 1

I've read this https://voice.unifysolutions.net/knowledge-bases/8/articles/2719-migrating-unifynow-between-environments.

I think I've read in some deployment guides that MAs need to be reselected in each of the operations after a migration. I want to delete 2 operation lists and add 2 and change 1 in a list of about 15 operation lists. If I have to reselect each MA the migration might be better done manually. Do you still need to re-select the MAs in operation lists when migrating configuration?

Answer
Adam van Vliet 5 years ago

The re-select is not required. UNIFYNow can recalculate based on name if there are new MA and run profile id's.