-
Hello Wheeler.
I've added Emmanuel solution to Executor's code and it seemed to work (it's completely explained above):
...
foreach (ThreadIdentifier ti in keys)
{
if (ti.ApplicationId == appid)
{ _ActiveWorkers.Remove(ti);
}
}
I've rebuilt the project and the new Executors solution releases resources when an app is finished.
Hope it helps.
Marcos.
2009-03-30 13:59:23 UTC in Alchemi [.NET Grid Computing Framework]
-
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...
2009-03-18 08:39:52 UTC in Alchemi [.NET Grid Computing Framework]
-
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...
2009-03-10 20:06:54 UTC in Alchemi [.NET Grid Computing Framework]
-
Hi Stefan,
When you add ten threads to your Alchemi application and then start your app, the manager will have a pull of ten threads to distribute over the active executors. Each executor would execute only one thread at each time.
On-The-Fly applications are used when you don't know the threads you will add to your app previously, so first you start the app, and then you add new threads...
2009-03-08 18:31:46 UTC in Alchemi [.NET Grid Computing Framework]
-
This solution doesn't solve the problem of the memory usage from the Alchemi.Executor process. This usage increases as we discussed before. Probably "App.Manager.Executor_DisconnectExecutor" is not the right one for my goal of releasing resources...
2009-03-08 18:19:11 UTC in Alchemi [.NET Grid Computing Framework]
-
I suppose when an Executors disconnects all its resources are released, so, what about disconnecting and connecting the executors when an appFinished event is received???
I know it's not the ideal solution, but it could be a partial one. Of course it would be better to modify Alchemi's code, but i'd like to avoid this at the moment (i've installed the last stable Manager release and the...
2009-03-08 11:38:43 UTC in Alchemi [.NET Grid Computing Framework]
-
I've done both things you told me.
Using the AutoResetEvent my app seems to use less cpu, but this is the client cpu, not the Executor one, where it's the problem, but of course it's a much better way to wait for the event.
I've also registered to the ThreadFailed event, but when the exception appears (it doesn't appear always) this event is not invoked... This is exasperating!!!
2009-03-08 10:33:18 UTC in Alchemi [.NET Grid Computing Framework]
-
Yes, it's a System.NullReferenceException.
I tried tu debug the code, but when the exception appears the debugger stops but doesn't show which line from my code causes it.
The starck trace is:
in Alchemi.Manager.MThread.set_Priority(Int32 value)
in Alchemi.Manager.GManager.Owner_SetThreads(SecurityCredentials sc, ThreadIdentifier[] threadIds, Byte[][] threads)
in...
2009-03-08 08:41:11 UTC in Alchemi [.NET Grid Computing Framework]
-
Thank you very much for your advice.
I'll change it just now and see how it works.
2009-03-08 08:35:44 UTC in Alchemi [.NET Grid Computing Framework]
-
My ApplicationFinished method only change the value of "appFinalizada" to true, so the app continues stoping the Alchemi app (i'm not sure if this is necessary because when you receive this event the app is stopped Automatically).
The reason why i decided to wait with this "while" is because if i don't do this it would be more than one Alchemi application at the same time. I...
2009-03-07 18:37:26 UTC in Alchemi [.NET Grid Computing Framework]