I'm using Alchemi Executor as an application. It seems to work correctly but sometimes the executor gives up getting threads from the manager. If i disconnect and then connect this manager (pressing "Disconnect" and "Connect" button) it receives threads again.
Any ideas why this can be happening? (This happens after working correctly for some hours).
Is Executor service more suitable than the application?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What version of Alchemi are you using? I've come across a few problems when using 1.0.6, so, you may want to give a shot at using 1.0.5 and see what happens.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
System.InvalidOperationException: Colección modificada; puede que no se ejecute la operación de enumeración.
Server stack trace:
en System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
en Alchemi.Manager.Storage.InMemoryManagerStorage.UpdateThread(ThreadStorageView updatedThread)
en Alchemi.Manager.MThread.set_State(ThreadState value)
en Alchemi.Manager.GManager.Executor_GetThread(SecurityCredentials sc, ThreadIdentifier ti)
en System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
en System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
en System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
en Alchemi.Core.IManager.Executor_GetThread(SecurityCredentials sc, ThreadIdentifier ti)
en Alchemi.Executor.Sandbox.ExecutorWorker.ExecuteThreadInAppDomain()
2009-03-12 20:58:49,265 [ExecutorWorker-83832b09-344d-4569-ab29-c64c21f01899.2] WARN Alchemi.ExecutorExec.ExecutorMainForm [(null)] [{log4net:HostName=Marcos_portatil}] [:LogHandler:0] - Error trying to set failed thread for App: 83832b09-344d-4569-ab29-c64c21f01899, thread=2. Original Exception =
System.InvalidOperationException: Colección modificada; puede que no se ejecute la operación de enumeración.
After these logs is pinged by the manager, but until the application is finished and a new one is created, this executor doesn't get new threads to execute.
I'm using 1.0.6 version. I suppose the problem is in the Manager, so i'll try using 1.0.5 as you suggested.
Thanks a lot.
Marcos.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm using Alchemi Executor as an application. It seems to work correctly but sometimes the executor gives up getting threads from the manager. If i disconnect and then connect this manager (pressing "Disconnect" and "Connect" button) it receives threads again.
Any ideas why this can be happening? (This happens after working correctly for some hours).
Is Executor service more suitable than the application?
What do your logs have to say?
What version of Alchemi are you using? I've come across a few problems when using 1.0.6, so, you may want to give a shot at using 1.0.5 and see what happens.
Executor logs shows these messages (it doesn't happen always, only sometimes):
2009-03-12 20:58:49,250 [ExecutorWorker-83832b09-344d-4569-ab29-c64c21f01899.2] INFO Alchemi.ExecutorExec.ExecutorMainForm [(null)] [{log4net:HostName=Marcos_portatil}] [:LogHandler:0] - Started ExecuteThreadInAppDomain...
2009-03-12 20:58:49,250 [ExecutorWorker-83832b09-344d-4569-ab29-c64c21f01899.2] INFO Alchemi.ExecutorExec.ExecutorMainForm [(null)] [{log4net:HostName=Marcos_portatil}] [:LogHandler:0] - executing grid thread # 83832b09-344d-4569-ab29-c64c21f01899.2
2009-03-12 20:58:49,265 [ExecutorWorker-83832b09-344d-4569-ab29-c64c21f01899.2] WARN Alchemi.ExecutorExec.ExecutorMainForm [(null)] [{log4net:HostName=Marcos_portatil}] [:LogHandler:0] - grid thread # 83832b09-344d-4569-ab29-c64c21f01899.2 failed (System.InvalidOperationException)
System.InvalidOperationException: Colección modificada; puede que no se ejecute la operación de enumeración.
Server stack trace:
en System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
en Alchemi.Manager.Storage.InMemoryManagerStorage.UpdateThread(ThreadStorageView updatedThread)
en Alchemi.Manager.MThread.set_State(ThreadState value)
en Alchemi.Manager.GManager.Executor_GetThread(SecurityCredentials sc, ThreadIdentifier ti)
en System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
en System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
en System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
en Alchemi.Core.IManager.Executor_GetThread(SecurityCredentials sc, ThreadIdentifier ti)
en Alchemi.Executor.Sandbox.ExecutorWorker.ExecuteThreadInAppDomain()
2009-03-12 20:58:49,265 [ExecutorWorker-83832b09-344d-4569-ab29-c64c21f01899.2] WARN Alchemi.ExecutorExec.ExecutorMainForm [(null)] [{log4net:HostName=Marcos_portatil}] [:LogHandler:0] - Error trying to set failed thread for App: 83832b09-344d-4569-ab29-c64c21f01899, thread=2. Original Exception =
System.InvalidOperationException: Colección modificada; puede que no se ejecute la operación de enumeración.
After these logs is pinged by the manager, but until the application is finished and a new one is created, this executor doesn't get new threads to execute.
I'm using 1.0.6 version. I suppose the problem is in the Manager, so i'll try using 1.0.5 as you suggested.
Thanks a lot.
Marcos.