I'm starting some automation server instances of ML:
for ix = 1:4 servH(ix) = actxserver('Matlab.Application.Single'); servH(ix).Visible = 0; % More code... end
I do some stuff in each session, controlling each session with some PutWorkspaceData(), GetWorkspaceData(), and Execute() methods, and when I'm done, I tried to kill these instances in a couple of different ways, e.g.:
for ix = 1:4 servH(ix).Quit; end
The above seem to work when I attempt them from the command window (launching and killing from command window), but I can't seem to kill them from within my real program. The only thing that I could reliably use was (yes, it's ugly):
try servH(ix).Execute('exit'); catch me % Killed server, and we get Error: RPC-server is unavailable end
Am I missing something obvious here?
64-bit R2011b on Win7 by the way...
Does servH(ix).Quit pass for ix=1 and fail thereafter? If yes, I wonder if you're calling the Quit method in a loop too quickly. You could try putting in a PAUSE command and see if that helps.