Windows slaves fail to start via DCOM

If you chose "Let Hudson control this Windows slave as a Windows service" for connecting to slave, you may get an error message like this:

Access is denied. [0x00000005]
	at org.jinterop.dcom.core.JIComServer.init(JIComServer.java:542)
	at org.jinterop.dcom.core.JIComServer.initialise(JIComServer.java:458)
	at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:427)
	at org.jvnet.hudson.wmi.WMI.connect(WMI.java:41)
	at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:107)
	at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:170)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: rpc.FaultException: Received fault. (unknown)
	at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:142)
	at rpc.Stub.call(Stub.java:112)
	at org.jinterop.dcom.core.JIComServer.init(JIComServer.java:538)
	... 10 more

If so, check the following settings on Windows:

Local "Administrator" group membership

Make sure that the user name you have entered is a member of the local "Administrators" group. In the default Windows installation, this group membership is required for Hudson to remotely copy files and install a service.

Firewall

By default, Windows Firewall prevents the TCP connections necessary to make this mechanism work. The firewall on the slave must allow the following exceptions (see List of TCP&UDP port numbers):

  • TCP Port 135 (DCE/RPC Locator service)
  • TCP Port 139 (NetBIOS Session Service)
  • TCP Port 445 (Windows shares)
  • C:\WINDOWS\system32\dllhost.exe (dllhost.exe seems to use a random port number)
  • C:\WINDOWS\system32\javaw.exe (Hudson also uses a random port number)
  • File and Printer sharing (TCP 139, TCP 445, UDP 137, UDP 138 (possibly only a subset of these is required))

The easiest way to track down firewall issues is to use tcpdump. Just run the following command on the Hudson server, which is trying to connect to the slave:

Linux/UNIX:

tcpdump -n -i <IF> -s 1500 port not 22 and host <HOST-IP>

<IF>       the network interface name, e.g. eth1
<HOST-IP>  the IP address of the slave

Ports 139 and 445

When the Ports 139 (NetBIOS Session Service) and 445 (Windows Shares) are not available, the following error message appears:

ERROR: Message not found for errorCode: 0xC0000001
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC0000001
 at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:121)
 at org.jinterop.dcom.core.JIComServer.initialise(JIComServer.java:479)
 at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:427)
 at org.jvnet.hudson.wmi.WMI.connect(WMI.java:41)
 at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:137)
 at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 at java.lang.Thread.run(Thread.java:619)
Caused by: jcifs.smb.SmbException:
Connection timeout jcifs.util.transport.TransportException: Connection timeout
 at jcifs.util.transport.Transport.connect(Transport.java:178)
 at jcifs.smb.SmbTransport.connect(SmbTransport.java:294)
 at jcifs.smb.SmbTree.treeConnect(SmbTree.java:141)
 at jcifs.smb.SmbFile.doConnect(SmbFile.java:858)
 at jcifs.smb.SmbFile.connect(SmbFile.java:901)
 at jcifs.smb.SmbFile.connect0(SmbFile.java:827)
 at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:76)
 at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:65)
 at jcifs.smb.SmbFile.getInputStream(SmbFile.java:2784)
 at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:90)
 at rpc.Stub.attach(Stub.java:105)
 at rpc.Stub.call(Stub.java:109)
 at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:119)
 at org.jinterop.dcom.core.JIComServer.initialise(JIComServer.java:479)
 at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:427)
 at org.jvnet.hudson.wmi.WMI.connect(WMI.java:41)
 at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:137)
 at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 at java.lang.Thread.run(Thread.java:619)
 at jcifs.smb.SmbTransport.connect(SmbTransport.java:296)
 at jcifs.smb.SmbTree.treeConnect(SmbTree.java:141)
 at jcifs.smb.SmbFile.doConnect(SmbFile.java:858)
 at jcifs.smb.SmbFile.connect(SmbFile.java:901)
 at jcifs.smb.SmbFile.connect0(SmbFile.java:827)
 at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:76)
 at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:65)
 at jcifs.smb.SmbFile.getInputStream(SmbFile.java:2784)
 at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:90)
 at rpc.Stub.attach(Stub.java:105)
 at rpc.Stub.call(Stub.java:109)
 at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:119)
 ... 10 more

Local Security Settings

  1. Start the control panel, go to "Administrative Tools", then "Local Security Policy". This will open up the "local security settings" window
  2. Go to "Local Policies" > "Security Options" > "Network access: Sharing and security model for local accounts." Change that to "Classic."
    This only applies to Windows computers that are not a part of a domain (reference)

Remote Registry Service

The Remote Registry service must be running in order to install the Hudson service, but it may be stopped on your computer.  This is especially true for Windows Vista, where it is disabled by default.  If it is not running, you may get an error like this:

Message not found for errorCode: 0xC0000034
 org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC0000034
     at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:121)
     at org.jinterop.dcom.core.JIComServer.initialise(JIComServer.java:479)
     at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:427)
     at org.jvnet.hudson.wmi.WMI.connect(WMI.java:41)
     at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:107)
     at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:178)
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
     at java.util.concurrent.FutureTask.run(FutureTask.java:166)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
     at java.lang.Thread.run(Thread.java:636)
 Caused by: jcifs.smb.SmbException: The system cannot find the file specified.
     at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:542)
     at jcifs.smb.SmbTransport.send(SmbTransport.java:644)
     at jcifs.smb.SmbSession.send(SmbSession.java:242)
     at jcifs.smb.SmbTree.send(SmbTree.java:111)
     at jcifs.smb.SmbFile.send(SmbFile.java:729)
     at jcifs.smb.SmbFile.open0(SmbFile.java:934)
     at jcifs.smb.SmbFile.open(SmbFile.java:951)
     at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
     at jcifs.smb.TransactNamedPipeOutputStream.<init>(TransactNamedPipeOutputStream.java:32)
     at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:187)
     at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:91)
     at rpc.Stub.attach(Stub.java:105)
     at rpc.Stub.call(Stub.java:109)
     at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:119)
     ... 10 more

If so, start the control panel, open "Administrative Tools," then "Services." Locate the Remote Registry service on the list, and click "Start this service."

.NET Framework

On Windows XP / 2003, if you see a message like this:

Installing the Hudson slave service
No more data is available. [0x00000103]
org.jinterop.dcom.common.JIException: No more data is available. [0x00000103]
	at org.jinterop.winreg.smb.JIWinRegStub.winreg_EnumKey(JIWinRegStub.java:390)
	at hudson.util.jna.DotNet.isInstalled(DotNet.java:81)
	at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:117)
	at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:180)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:636)
Caused by: org.jinterop.dcom.common.JIRuntimeException: No more data is available. [0x00000103]
	at org.jinterop.winreg.IJIWinReg$enumKey.read(IJIWinReg.java:762)
	at ndr.NdrObject.decode(NdrObject.java:19)
	at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:138)
	at rpc.Stub.call(Stub.java:112)
	at org.jinterop.winreg.smb.JIWinRegStub.winreg_EnumKey(JIWinRegStub.java:386)
	... 8 more

Then try upgrading .NET framework to ver 3.5SP1.

Taken from http://n4.nabble.com/exception-when-winxp-slaves-launch-No-more-data-is-available-0x00000103-td386006.html

Tip from Florian Vogle (June 2011)

  I'm using Windows Server 2008 R2 Standard (Service Pack 1, 64-bit)  in our environment. Creation of windows slaves with "Let Hudson control this Windows slave as a Windows service" failed.

This is caused by the TrustedInstaller concept of windows.

Solution I found so far:

Hudson requires full access to WBEM Scripting Locator (HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}). Default for administrators group is just read.
Change permissions for administrators group to "Full Control".

  1. Launch 'regedit.exe' as 'Administrator'
  2. Find the following registry key: 'HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}'
  3. Right click and select 'Permissions'
  4. Change owner to administrators group.
  5. Change permissions for administrators group. Grant Full Control.
  6. Change owner back to TrustedInstaller (user is "NT Service\TrustedInstaller")
  7. Restart Remote Registry Service

If all else fails...

Please file an issue about the problem with the stack trace, with information like Windows versions, so that we can take a look.

Labels:

Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Nov 19, 2010

    Jayanth Kumar says:

    Solution for "hudson slave service on local computer started and then stopped" ...

    Solution for "hudson slave service on local computer started and then stopped"

    Clear Event Log (control panel> administrator tools>event viewer)

    Now start the service

    1. Aug 23, 2011

      Thomas Schreiner says:

      I had the same Problem as you did on a Win7 x64 machine. Your solution did not w...

      I had the same Problem as you did on a Win7 x64 machine. Your solution did not work for me.

      After looking into the hudson-slave.xml I saw that javaw.exe needs to be in %path% which it was not. Including javaw.exe in %path% fixed the problem for me.

  2. Jun 10, 2011

    Florian Vogler says:

    Hi all, I'm using Windows Server 2008 R2 Standard (Service Pack 1, 64-bit) ...

    Hi all,

    I'm using Windows Server 2008 R2 Standard (Service Pack 1, 64-bit)  in our environment. Creation of windows slaves with "Let Hudson control this Windows slave as a Windows service" failed.

    This is caused by the TrustedInstaller concept of windows.

    Solution I found so far:

    Hudson requires full access to WBEM Scripting Locator (HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}). Default for administrators group is just read.
    Change permissions for administrators group to "Full Control".

    1. Launch 'regedit.exe' as 'Administrator'
    2. Find the following registry key: 'HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}'
    3. Right click and select 'Permissions'
    4. Change owner to administrators group.
    5. Change permissions for administrators group. Grant Full Control.
    6. Change owner back to TrustedInstaller (user is "NT Service\TrustedInstaller")
    7. Restart Remote Registry Service
    1. Aug 23, 2011

      Thomas Schreiner says:

      I had to apply this also on a Win7 x64 machine. Thanks!

      I had to apply this also on a Win7 x64 machine. Thanks!

  3. Jun 10, 2011

    Winston Prakash says:

    Florian, thanks for the tip. I'll add this the page

    Florian, thanks for the tip. I'll add this the page

  4. Nov 08, 2011

    Ameesh Shah says:

    I am connecting a 64 bit Win 2008 slave server to Jenkins 1.421 and getting this...

    I am connecting a 64 bit Win 2008 slave server to Jenkins 1.421 and getting this error with JDK from Jenkins console when connecting the slave to it.

    Checking if Java exists
    ERROR: Failed to prepare Java
    java.lang.reflect.UndeclaredThrowableException
    at $Proxy48.start(Unknown Source)
    at org.jvnet.hudson.remcom.WindowsRemoteProcessLauncher.launch(WindowsRemoteProcessLauncher.java:133)
    at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:165)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:199)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor10535.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.kohsuke.jinterop.JInteropInvocationHandler.invoke(JInteropInvocationHandler.java:140)
    ... 9 more
    Caused by: org.jinterop.dcom.common.JIException: Unknown Failure
    at org.jvnet.hudson.wmi.Win32Service$Implementation.start(Win32Service.java:149)
    ... 13 more
    Copying slave.jar
    Starting the service

    The JDK is installed in the 2008 server and the PATH is correctly set. Additionally I also added the javaw.exe to the PATH for safety. After all that config i get the above error

    Any ideas ....BTW I have turned off any firewall blocking the slave box

  5. Nov 11, 2011

    Ameesh Shah says:

    Did anyone look at the problem I pasted above .....I would appreciate some repli...

    Did anyone look at the problem I pasted above .....I would appreciate some replies/hints .....thanks

    1. Jan 10

      Jean-Luc Pinardon says:

      We are facing the same issue with Jenkins 1.435 running on a Solaris 10 with Jav...

      We are facing the same issue with Jenkins 1.435 running on a Solaris 10 with Java 1.6.0.24 and a Windows  2003 slave running Java 1.6.0_29-b11.
      Were you able to fix it? and How ?

      Thanks for your help

  6. Jan 10

    jackm says:

    <a href="http://www.marcjacobsbags-sale.com/">Marc Jacobs</a> handba...

    <a href="http://www.marcjacobsbags-sale.com/">Marc Jacobs</a> handbag accessories, the wave pattern of the use of more unique points, handbags point deduction on the three-dimensional wave, a little embellished handbag attention point. Most worthy of showing off your bag: <a href="http://www.marcjacobsbags-sale.com/">Marc Jacobs Handbags</a> and <a href="http://www.marcjacobsbags-sale.com/">Marc Jacobs bags</a>. No matter where you go, you are the sinking of the brightest stars. Beautiful young girl, you are a stylish person? If so, then come! <a href="http://www.marcjacobsbags-sale.com/">Marc by Marc Jacobs</a> of <a href="http://www.marcjacobsbags-sale.com/">Marc by Marc Jacobs Handbags</a> and <a href="http://www.marcjacobsbags-sale.com/">Marc by Marc Jacobs Bags</a> is your choice.http://www.marcjacobsbags-sale.com/

  7. Jan 25

    Ryan Rolland says:

    After breaking the org.jvnet.hudson.remcom.WindowsRemoteProcess code apart (~lin...

    After breaking the org.jvnet.hudson.remcom.WindowsRemoteProcess code apart (~line 114 or so) into a small test client. I discovered that the above stack-trace was being generated because the deployed RemComSVC.exe program on the slave machine was missing a Microsoft.VC90.CRT dependency. I simply installed the following package from microsoft (on the slave) and my XP slave started working (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582).

    Test Client Code:

    import static java.util.logging.Level.FINE;

    import java.io.Closeable;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.UnknownHostException;

    import jcifs.smb.NtlmPasswordAuthentication;
    import jcifs.smb.SmbFile;

    import org.jinterop.dcom.common.IJIAuthInfo;
    import org.jinterop.dcom.common.JIDefaultAuthInfoImpl;
    import org.jinterop.dcom.common.JIException;
    import org.jinterop.dcom.core.JISession;
    import org.jvnet.hudson.wmi.SWbemServices;
    import org.jvnet.hudson.wmi.WMI;
    import org.jvnet.hudson.wmi.Win32Service;
    import static org.jvnet.hudson.wmi.Win32Service.Win32OwnProcess;

    public class RemComClient {

    private static IJIAuthInfo credential;

    /**

    • @param args
    • @throws JIException
    • @throws IOException
    • @throws InterruptedException
      */
      public static void main(String[] args) throws JIException, IOException, InterruptedException {

    credential = new JIDefaultAuthInfoImpl("WORKGROUP", "Administrator", "password");
    String hostName = "192.168.0.5";
    JISession session = JISession.createSession(credential);
    session.setGlobalSocketTimeout(60000);
    SWbemServices services = WMI.connect(session, hostName);

    NtlmPasswordAuthentication smbAuth = createSmbAuth();

    if (true) { // change to false if the server side is under the debugger launched from CLI.
    Win32Service rsvc = services.getService("RemComSVC");
    if (rsvc==null)

    Unknown macro: { System.out.println("Creating a service"); SmbFile remComSvcExe = new SmbFile("smb}

    if (!rsvc.State().equals("Running"))

    Unknown macro: { System.out.println("Starting a service"); rsvc = services.getService("RemComSVC"); rsvc.start(); }

    }
    }

    private static NtlmPasswordAuthentication createSmbAuth() throws IOException

    Unknown macro: { return new NtlmPasswordAuthentication(credential.getDomain(), credential.getUserName(), credential.getPassword()); }

    private static void copyAndClose(InputStream in, OutputStream out) throws IOException {
    try {
    byte[] buf = new byte[4096];
    while (true)

    Unknown macro: { int len = in.read(buf); if (len<0) return; out.write(buf,0,len); }

    } finally

    Unknown macro: { close(in); close(out); }

    }

    private static void close(Closeable c) {
    try

    Unknown macro: { c.close(); }

    catch (IOException e)

    Unknown macro: { System.out.println("Failed to close a stream"+e.toString()); }

    }

    }

  8. Jan 25

    Ryan Rolland says:

    Well.... I thought it was working. Now the slave console is hanging after: Check...

    Well.... I thought it was working. Now the slave console is hanging after:
    Checking if Java exists
    java full version "1.6.0_25-b06"
    Copying slave.jar
    Starting the service

  9. Jan 26

    Ryan Rolland says:

    Verified that I can execute a remote "dir" command against the slave machine usi...

    Verified that I can execute a remote "dir" command against the slave machine using the REMComSVC so the problem seems to be related to the slave.jar service. I get three system events when I attempt to start as in the last comment (using Admin Tools->Event Viewer) from the remote Jenkins Master.

    All happen on same second:

    The Remote Communication Service service was successfully sent a start control. User: Administrator
    The Remote Communication Service service entered the running state. User: N/A
    The Remote Communication Service service entered the stopped state. User: N/A

    The configuration I have is a Ubuntu (Master) talking to a Windows XP (Slave).

    1. Feb 09

      Akilan Paulraj says:

      unable to launch slave agent service i got the folowing error kindly help me   C...

      unable to launch slave agent service
      i got the folowing error kindly help me
       
      Checking if Java exists

      java full version "1.6.0_10-ea-b12"

      Installing the Hudson slave service
      ERROR: No more data is available. [0x00000103]
      org.jinterop.dcom.common.JIException: No more data is available. [0x00000103]
      at org.jinterop.winreg.smb.JIWinRegStub.winreg_EnumKey(JIWinRegStub.java:390)
      at hudson.util.jna.DotNet.isInstalled(DotNet.java:81)
      at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:191)
      at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:194)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: org.jinterop.dcom.common.JIRuntimeException: No more data is available. [0x00000103]
      at org.jinterop.winreg.IJIWinReg$enumKey.read(IJIWinReg.java:762)
      at ndr.NdrObject.decode(NdrObject.java:19)
      at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:138)
      at rpc.Stub.call(Stub.java:112)
      at org.jinterop.winreg.smb.JIWinRegStub.winreg_EnumKey(JIWinRegStub.java:386)
      ... 8 more

  10. Feb 16

    sankarsan padhy says:

    I am using windows XP 64 bit machine for both master and slave m/c. When I click...

    I am using windows XP 64 bit machine for both master and slave m/c.
    When I click on the 'launch slave agent' in the slave m/c I am getting exception.

    Exception Stack Trace:

    Connecting to buildserver
    Checking if Java exists
    ERROR: Failed to prepare Java
    ha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=java.lang.reflect.UndeclaredThrowableException
    at $Proxy97.start(Unknown Source)
    at org.jvnet.hudson.remcom.WindowsRemoteProcessLauncher.launch(WindowsRemoteProcessLauncher.java:133)
    at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:158)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:194)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.kohsuke.jinterop.JInteropInvocationHandler.invoke(JInteropInvocationHandler.java:140)
    ... 9 more
    Caused by: org.jinterop.dcom.common.JIException: Unknown Failure
    at org.jvnet.hudson.wmi.Win32Service$Implementation.start(Win32Service.java:149)
    ... 14 more
    Copying slave.jar
    Starting the service

    Please help.

    Thanks
    Sankarsan