none
Error while executing HPC2008R2.SampleCode\SOA\HelloWorldR2 Sample RRS feed

  • Question

  • I have a Windows HPC 2008 R2 setup with a head node and 2 compute nodes on Windows Server 2008 R2 64 bit and client workstation on Windows Server 2003 32 bit.

    I am trying to run the sample HPC2008R2.SampleCode\SOA\HelloWorldR2 which basically spans EchoRequest from the client application.

    I can able to successfully run the application when the number of requests is set upto 4 , when i increase beyond that , it throws me the following exception, Please let me know if have any clues...

    {"System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: There is already a listener on IP endpoint 0.0.0.0:808.  Make sure that you are not trying to use this endpoint multiple times in your application and that there are no other applications listening on this endpoint. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:\nSystem.ServiceModel.AddressAlreadyInUseException: There is already a listener on IP endpoint 0.0.0.0:808.  Make sure that you are not trying to use this endpoint multiple times in your application and that there are no other applications listening on this endpoint. ----> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted\n   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)\r\n   at System.Net.Sockets.Socket.Bind(EndPoint localEP)\r\n   at System.ServiceModel.Channels.SocketConnectionListener.Listen()\n   --- End of inner ExceptionDetail stack trace ---\n   at System.ServiceModel.Channels.SocketConnectionListener.Listen()\r\n   at System.ServiceModel.Channels.BufferedConnectionListener.Listen()\r\n   at System.ServiceModel.Channels.ExclusiveTcpTransportManager.OnOpen()\r\n   at System.ServiceModel.Channels.Transp...)."}


    Aravindakumar.V
    Tuesday, August 23, 2011 1:58 PM

All replies

  • Solved when I set MiniumUnits value to 1

    SessionStartInfo

     

    info = new SessionStartInfo(headnode, serviceName);

    info.MinimumUnits = 1;


    Aravindakumar.V
    Tuesday, August 23, 2011 2:34 PM
  • By default, HPC SOA doesn't use port 808 at all. Can you take a look at the configuration file and see if there is any modification related to port 808? Also, if you can paste the full error, it'll be great.
    Monday, August 29, 2011 5:46 AM
  • I see the same error with the SOA samples. I was able to run the HelloWorldR2Console sample once, and then the second and subsequent calls produce the error. A netstat -ano on the client shows no processes listening on TCP:808, but on the HPC head node HpcBrokerWorker is listening on TCP:808

    I tried setting MinimumUnits as suggested above, but that didn't help. Other than that the sample code and config are unchanged.

    What's going on here?



    • Edited by wbradney Wednesday, May 30, 2012 2:00 PM
    Wednesday, May 30, 2012 1:51 PM
  • if your broker worker listens on port 808, it seems that you have modified the service registration file. Can you take a look at the service registration file and upload it here so that I can take a look?

    (808 is the default port net.tcp binding, however, SOA broker will not use this port and the port number has been specified in the service registration file. That's why I'm asking for the content of the file.)

    Friday, June 1, 2012 8:41 AM
  • Here's my EchoService config:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>

        <configSections>

            <!--Register service's custom configruation sections and group-->
            <sectionGroup name="microsoft.Hpc.Session.ServiceRegistration"
                          type="Microsoft.Hpc.Scheduler.Session.Configuration.ServiceRegistration, Microsoft.Hpc.Scheduler.Session, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <section name="service"
                         type="Microsoft.Hpc.Scheduler.Session.Configuration.ServiceConfiguration, Microsoft.Hpc.Scheduler.Session, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                         allowDefinition="Everywhere"
                         allowExeDefinition="MachineToApplication"
                   />
            </sectionGroup>

            <sectionGroup name="microsoft.Hpc.Broker"
                          type="Microsoft.Hpc.Scheduler.Session.Configuration.BrokerConfigurations, Microsoft.Hpc.Scheduler.Session, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <section name="monitor"
                         type="Microsoft.Hpc.Scheduler.Session.Configuration.BrokerMonitorConfiguration, Microsoft.Hpc.Scheduler.Session, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                         allowDefinition="Everywhere"
                         allowExeDefinition="MachineToApplication"
                   />
                <section name="services"
                         type="Microsoft.Hpc.Scheduler.Session.Configuration.BrokerServicesConfiguration, Microsoft.Hpc.Scheduler.Session, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                         allowDefinition="Everywhere"
                         allowExeDefinition="MachineToApplication"
                   />
                <section name="loadBalancing"
                         type="Microsoft.Hpc.Scheduler.Session.Configuration.LoadBalancingConfiguration, Microsoft.Hpc.Scheduler.Session, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                         allowDefinition="Everywhere"
                         allowExeDefinition="MachineToApplication"
                   />
            </sectionGroup>

        </configSections>

        <microsoft.Hpc.Session.ServiceRegistration>
            <service assembly="C:\ServicesR2\EchoService.dll"
                     includeExceptionDetailInFaults="true"
                     maxConcurrentCalls="0"
                     >
                <!--Below is a sample for adding environment variables to the service-->
                <environmentVariables>
                    <add name="myname1" value="myvalue1"/>
                    <add name="myname2" value="myvalue2"/>
                </environmentVariables>
            </service>
        </microsoft.Hpc.Session.ServiceRegistration>

        <!--Service broker's configuration-->
        <microsoft.Hpc.Broker>
            <!--configuration to control broker's monitoring behavior-->
            <monitor messageThrottleStartThreshold="4096"
                     messageThrottleStopThreshold="3072"
                     loadSamplingInterval="1000"
                     allocationAdjustInterval="30000"
                     clientIdleTimeout="300000"
                     clientConnectionTimeout="300000"
                     sessionIdleTimeout="0"
                     statusUpdateInterval="15000"/>
            <services>
                <!--Address templates used for Broker service-->
                <brokerServiceAddresses>
                    <!--
                Two configuration is done to enable broker listen on this URI:
                1. Port 9087 is added to firewall exceptions
                2. Users group is allowed to register with NetTcp port sharing service
            -->
                    <add baseAddress="net.tcp://localhost/Broker"/>
                    <!--Before using HTTP transport, make sure:
                    1. The HTTP URI is correctly reserved for the user who is going to starts the session 
                       (using "netsh http add urlacl")and evaluate risk of allowing the user to listen on that URL
                    2. Open the port in firewall
            -->
                    <add baseAddress="http://localhost/Broker"/>
                    <!--Before using HTTPS transport, make sure 
                    1. The HTTPS URI is correctly reserved for the user who is going to starts the session 
                       (using "netsh http add urlacl") and evaluate risk of allowing the user to listen on that URL
                    2. Open the port in firewall
                    3. Valid certificate is installed for the machine
                    4. the certificate is registered with HTTP listener ("netsh http add sslcert")
            -->
                    <add baseAddress="https://localhost/Broker"/>
                </brokerServiceAddresses>
            </services>
            <loadBalancing messageResendLimit="3"
                           serviceOperationTimeout="86400000"
                           endpointNotFoundRetryCountLimit="10"
                           endpointNotFoundRetryPeriod="5000"/>
        </microsoft.Hpc.Broker>

        <system.serviceModel>
            <bindings>
                <netTcpBinding>
                    <!--binding used by broker's front end service with security-->
                    <binding name="Microsoft.Hpc.SecureNetTcpBrokerBinding">
                        <security mode="Transport"/>
                    </binding>

                    <!--binding used by broker's front end service with no security-->
                    <binding name="Microsoft.Hpc.UnsecureNetTcpBrokerBinding">
                        <security mode="None"/>
                    </binding>

                    <!--binding used by broker's backend-->
                    <binding name="Microsoft.Hpc.BackEndBinding">
                        <security mode="Transport">
                            <transport clientCredentialType="Windows" protectionLevel="None"/>
                        </security>
                    </binding>
                </netTcpBinding>

                <basicHttpBinding>
                    <!--binding used by broker's front end service with security-->
                    <binding name="Microsoft.Hpc.SecureHttpBrokerBinding">
                        <security mode="TransportWithMessageCredential">
                            <message clientCredentialType="UserName"/>
                            <transport clientCredentialType="None"/>
                        </security>
                    </binding>

                    <!--binding used by broker's front end service with no security-->
                    <binding name="Microsoft.Hpc.UnsecureHttpBrokerBinding">
                        <security mode="None"/>
                    </binding>
                </basicHttpBinding>
            </bindings>
        </system.serviceModel>
    </configuration>


    Friday, June 1, 2012 12:09 PM
  • My solution to the same issue (There is already a listener on IP endpoint ......) :

    1. Set HPC "Do not manage firewall settings" on HPC Cluster Manager's Network Configuration.

    2. Set windows firewall disabled.

    Done.


    Friday, August 1, 2014 12:57 AM