Origam scheduler service installation

How to actually install Origam Scheduler service? I cannot find the .exe file of Scheduler in Architect or HTML5 of current Master (2021.2.0.2195).

The newest version of Origam Scheduler is added to the 2021.1.0 version as part of the origam-client.zip file.

Can I use this 2021.1.0 version when I’m on master 2021.2.0.xxx ?

No, you can’t. I’ll add client build for 2021.2.

And it’s there: Release 2021.2-beta.2 · origam/origam-source · GitHub

Thank you! I’ll test it.

I tried to run it Scheduler, but when I’m using config files from Flash modified along with working architect, I can see error in log file. Did I missed something to config?

2021-09-01 23:49:00,078 [4] FATAL OrigamScheduler.SchedulerService [(null)] <(null)> - Scheduler failed to start
System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at System.Span`1..ctor(T[] array, Int32 start, Int32 length)
   at ProtoBuf.ProtoWriter.StreamProtoWriter.ImplWriteFixed64(State& state, UInt64 value)
   at ProtoBuf.ProtoWriter.State.WriteUInt64(UInt64 value)
   at ProtoBuf.Internal.PrimaryTypeProvider.ProtoBuf.Serializers.ISerializer<System.Guid>.Write(State& state, Guid value)
   at ProtoBuf.ProtoWriter.WriteMessage[T](State& state, T value, ISerializer`1 serializer, PrefixStyle style, Boolean recursionCheck)
   at ProtoBuf.ProtoWriter.State.WriteAny[T](Int32 fieldNumber, SerializerFeatures features, T value, ISerializer`1 serializer)
   at ProtoBuf.Internal.KeyValuePairSerializer`2.Write(State& state, KeyValuePair`2 value)
   at ProtoBuf.ProtoWriter.WriteMessage[T](State& state, T value, ISerializer`1 serializer, PrefixStyle style, Boolean recursionCheck)
   at ProtoBuf.Serializers.MapSerializer`3.Write[TEnumerator](State& state, Int32 fieldNumber, WireType wireType, TEnumerator& enumerator, KeyValuePairSerializer`2& pairSerializer)
   at ProtoBuf.Serializers.DictionarySerializer`3.Write(State& state, Int32 fieldNumber, WireType wireType, TCollection values, KeyValuePairSerializer`2& pairSerializer)
   at ProtoBuf.Serializers.MapSerializer`3.WriteMap(State& state, Int32 fieldNumber, SerializerFeatures features, TCollection values, SerializerFeatures keyFeatures, SerializerFeatures valueFeatures, ISerializer`1 keySerializer, ISerializer`1 valueSerializer)
   at proto_9(State& , AutoIncrementedIntIndex`1 )
   at ProtoBuf.Internal.Serializers.SimpleCompiledSerializer`1.ProtoBuf.Serializers.ISerializer<T>.Write(State& state, T value)
   at ProtoBuf.ProtoWriter.WriteMessage[T](State& state, T value, ISerializer`1 serializer, PrefixStyle style, Boolean recursionCheck)
   at ProtoBuf.ProtoWriter.State.WriteMessage[T](Int32 fieldNumber, SerializerFeatures features, T value, ISerializer`1 serializer)
   at proto_1(State& , TrackerSerializationData )
   at ProtoBuf.Internal.Serializers.SimpleCompiledSerializer`1.ProtoBuf.Serializers.ISerializer<T>.Write(State& state, T value)
   at ProtoBuf.ProtoWriter.State.WriteAsRoot[T](T value, ISerializer`1 serializer)
   at ProtoBuf.ProtoWriter.State.SerializeRoot[T](T value, ISerializer`1 serializer)
   at ProtoBuf.Meta.TypeModel.SerializeImpl[T](State& state, T value)
   at ProtoBuf.Serializer.Serialize[T](Stream destination, T instance, Object userState)
   at Origam.DA.Service.BinFileLoader.Persist(ItemTracker itemTracker)
   at Origam.DA.Service.FilePersistenceIndex.<>c__DisplayClass31_0.<InitItemTracker>b__0()
   at Origam.Extensions.ReaderWriterLockSlimExtensions.RunWriter(ReaderWriterLockSlim rwLock, Action action)
   at Origam.DA.Service.FilePersistenceIndex.InitItemTracker(TrackerLoaderFactory trackerLoaderFactory, MetaModelUpgradeMode mode)
   at Origam.Workbench.Services.FilePersistenceService..ctor(IMetaModelUpgradeService metaModelUpgradeService, IList`1 defaultFolders, String pathToRuntimeModelConfig, String basePath, Boolean watchFileChanges, Boolean useBinFile, Boolean checkRules, MetaModelUpgradeMode mode)
   at Origam.OrigamEngine.FilePersistenceBuilder.CreateNewPersistenceService(Boolean watchFileChanges, Boolean checkRules, Boolean useBinFile)
   at Origam.OrigamEngine.FilePersistenceBuilder.GetPersistenceService()
   at Origam.OrigamEngine.RuntimeServiceFactory.InitializeServices()
   at Origam.OrigamEngine.OrigamEngine.ConnectRuntime(String configName, Boolean runRestartTimer, Boolean loadDeploymentScripts, IRuntimeServiceFactory customServiceFactory)
   at OrigamScheduler.SchedulerService.OnStart(String[] args) in D:\a\1\s\origam-source\OrigamScheduler\SchedulerService.cs:line 123

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Do you have any template config files for Scheduler?

Seems to me System.Runtime.CompilerServices.dll is missing?

EDIT: Or maybe we have to properly configure the assembly binding in the app config

The System.Runtime.CompilerServices.dll is missing in the downloaded zip file.

image

The config files are OrigamScheduler.exe.config, OrigamSettings.config, securityconfiguration.config. Is it correct? Or should be there any more app config files?

Please check OrigamScheduler.exe.config. It should have the same entries as your OrigamArchitect.exe.config under the /configuration/runtime/AssemblyBinding.

Thank you. That was the main issue.
Another issue was <LocalizationFolder>.\l10n</LocalizationFolder>. It works in Architect, but throws an error in Scheduler. Absolute path solved this.

2021-09-02 15:52:30,950 [4] ERROR Origam.DA.ObjectPersistence.LocalizationCache [(null)] <(null)> - Localization folder specified in OrigamSettings not found.
2021-09-02 15:52:30,981 [4] FATAL OrigamScheduler.SchedulerService [(null)] <(null)> - Scheduler failed to start
System.ArgumentOutOfRangeException: Localization folder specified in OrigamSettings not found.
Parameter name: LocalizationFolder
Actual value was .\l10n.
   at Origam.DA.ObjectPersistence.LocalizationCache.LoadFromLocalizationFolder()
   at Origam.Extensions.ReaderWriterLockSlimExtensions.RunWriter(ReaderWriterLockSlim rwLock, Action action)
   at Origam.DA.ObjectPersistence.LocalizationCache..ctor()
   at Origam.DA.Service.FilePersistenceProvider..ctor(DirectoryInfo topDirectory, FileEventQueue fileEventQueue, FileFilter ignoredFileFilter, TrackerLoaderFactory trackerLoaderFactory, OrigamFileFactory origamFileFactory, FilePersistenceIndex index, OrigamFileManager origamFileManager, Boolean checkRules, IRuntimeModelConfig runtimeModelConfig)
   at Origam.Workbench.Services.FilePersistenceService..ctor(IMetaModelUpgradeService metaModelUpgradeService, IList`1 defaultFolders, String pathToRuntimeModelConfig, String basePath, Boolean watchFileChanges, Boolean useBinFile, Boolean checkRules, MetaModelUpgradeMode mode)
   at Origam.OrigamEngine.FilePersistenceBuilder.CreateNewPersistenceService(Boolean watchFileChanges, Boolean checkRules, Boolean useBinFile)
   at Origam.OrigamEngine.FilePersistenceBuilder.GetPersistenceService()
   at Origam.OrigamEngine.RuntimeServiceFactory.InitializeServices()
   at Origam.OrigamEngine.OrigamEngine.ConnectRuntime(String configName, Boolean runRestartTimer, Boolean loadDeploymentScripts, IRuntimeServiceFactory customServiceFactory)
   at OrigamScheduler.SchedulerService.OnStart(String[] args) in D:\a\1\s\origam-source\OrigamScheduler\SchedulerService.cs:line 123