web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics GP (Archived)

Service Based Architecture - No Hosts Available

(0) ShareShare
ReportReport
Posted on by

I've been trying to get the Service Based Architecture running on my development machine after the RTM of Dynamics GP 2015 shipped and I think I've gotten most of the way there, but I keep getting an error ithat says, "No hosts were available to process the request for tenant 'DefaultTenant'." I can't seem to find any more detail on why that would be the case in any of the other logs. Isn't it supposed to spin up a new host if one can't be found? Where would that process be logged?

*This post is locked for comments

I have the same question (0)
  • Rob Bernhardt Profile Picture
    on at

    Paul,

    Please try the following url to aide in troubleshooting this issue.  It will provide the hosts, tenants, etc that describe your environment and help you understand what is happening.

    <Machine  Name and Port>/GPService/Management/Diagnostics

    Thanks

    Rob

  • Community Member Profile Picture
    on at

    Is there something specific I'm looking for in that diagnostic information? Nothing immediately jumps out to me as a particular problem.

    Below is what it returned (I changed account / machine names):

    {
      "EnvironmentInfo": {
        "ProcessUser": "MYDOMAIN\\myuser",
        "Machine": "MYMACHINE",
        "ServerTimeZone": "(UTC-05:00) Eastern Time (US & Canada)",
        "ServerTime": "2014-12-12T15:54:57.3552519-05:00",
        "ServiceUptime": "1.23:11:55"
      },
      "AppConfiguration": {
        "AuthenticationMode": "Windows",
        "AzureAppIdUri": null,
        "AzureDomain": null,
        "AzureTenantListRefreshFrequency": "00:01:00",
        "CorsAllowedOriginRefreshFrequency": "00:01:00",
        "DesktopHeapKB": 5120,
        "GPServiceHostAndPort": "https://mymachine:48654",
        "HostDefinitionRefreshFrequency": "00:00:30",
        "HostStatusRefreshFrequency": "00:00:05",
        "InstanceStatusHeartbeat": "00:00:05",
        "InternalCallers": [
          "MYDOMAIN\\myuser"
        ],
        "IsGzipAllowed": true,
        "LogFileRetentionDays": 30,
        "ManagementCallers": [
          "MYDOMAIN\\myuser",
          "MYMACHINE\\Administrators"
        ],
        "MaxConcurrentCalls": 1000,
        "ProcessIdleTimeout": "00:30:00",
        "ProcessRebalanceFrequency": "00:01:30",
        "SecurityGroupCacheRefreshFrequency": "00:01:00",
        "SendTimeout": "00:05:00",
        "ShutdownTimeout": "00:00:00",
        "TenantListRefreshFrequency": "00:00:30",
        "TenantRepositorySource": "http://mymachine:48630/TenantDiscoveryService",
        "TenantUserCacheRefreshFrequency": "00:00:30"
      },
      "HostDefinitions": {
        "Stats": {
          "Timestamp": "2014-12-12T15:54:51.6912268-05:00",
          "Age": "00:00:05"
        },
        "Hosts": [
          {
            "HostId": "MYMACHINE",
            "IsActive": true,
            "MaxConcurrentProcesses": 30,
            "ServiceControlAddress": "http://mymachine:48655/Control"
          }
        ]
      },
      "Tenants": {
        "Stats": {
          "Timestamp": "2014-12-12T15:54:28.1301838-05:00",
          "Age": "00:00:29"
        },
        "Tenants": [
          {
            "Name": "Test",
            "IsActive": true,
            "ApplicationInstance": "",
            "GPVersion": "14",
            "Revision": "504e4d23a661d4e5d723d09c7df252765684f379"
          }
        ]
      },
      "AllowedCORSOrigins": {
        "Stats": {
          "Timestamp": "2014-12-12T15:54:06.9252113-05:00",
          "Age": "00:00:50"
        },
        "Entries": []
      },
      "HostStatusMessages": [
        {
          "Timestamp": "2014-12-12T15:54:57.3582531-05:00",
          "HostId": "MYMACHINE",
          "FullMachineName": "mymachine.mydomain.local",
          "MemoryUtilizationPercent": 73,
          "InstanceMessages": [
            {
              "Instance": "DEFAULT",
              "GPVersion": "14",
              "DexterityServiceFileVersion": "1.0.91.0",
              "DexterityRuntimeFileVersion": "14.00.0072.000 ",
              "Status": "Running",
              "HttpRequestAddress": "http://mymachine:48655/DS/DEFAULT_14/",
              "HttpManagementAddress": "http://mymachine:48655/DS/DEFAULT_14/Management",
              "TenantMessages": []
            }
          ]
        }
      ],
      "RoutingTable": [],
      "LoadedAssemblyInfo": [
        {
          "FullName": "Microsoft.Dexterity.Svc.Foundation, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
          "FileVersion": "14.00.0039.000",
          "Timestamp": "2014-09-16T15:00:17"
        },
        {
          "FullName": "Microsoft.Dynamics.GP.Svc.Foundation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
          "FileVersion": "1.0.91.0",
          "Timestamp": "2014-11-19T13:52:28"
        },
        {
          "FullName": "Microsoft.Dynamics.GP.Svc.GPService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
          "FileVersion": "1.0.91.0",
          "Timestamp": "2014-11-19T13:53:23"
        },
        {
          "FullName": "Microsoft.Dynamics.MultitenantServices.ServicesInterface, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
          "FileVersion": "14.00.0510.000",
          "Timestamp": "2014-11-13T03:35:56"
        }
      ]
    }

  • Rob Bernhardt Profile Picture
    on at

    Paul, the routing table doesn't look right.  I'm guessing that you have a service named something like the following:  GP Dexterity Service - DefaultInstance - 14 (it should have this name unless you changed it during install).  Please make sure that this service is running.  

    Thanks

    Rob

  • Community Member Profile Picture
    on at

    Mine is actually called, "GP Dexterity Service - DEFAULT - 14." Does the name matter? At any rate, it is running now and was when I originally posted this question.

    Other services I have verified are running:

    • GP Dexterity Service Control
    • GP Service
    • GP Session Control Service
    • GP Session Services
    • Microsoft Dynamics GP Tenant Discovery Service
    • Microsoft Dynamics GP Tenant Management Service

  • Chris Rudolph Profile Picture
    20 on at

    Paul,

    Your diagnostic output shows that your tenant is not mapped to any application instance (line 62). In a single tenant deployment, this information is defined in the TenantConfiguration.xml file in the GPService folder of your web components install.

    Your Dexterity Service is reporting in fine and has an instance name of DEFAULT (line 83). If you update the tenant metadata, this should work.

    You will need to wait a minute after making the change or restart your GP Service for the change to be picked up.

    Conceptually, this mapping is saying, "When a request comes in for tenant 'Test', it must be routed to a Dexterity Service for application instance 'DEFAULT'. At present, it doesn't know how to route.

  • Community Member Profile Picture
    on at

    My install is configured for multiple tenants. How do I add a mapping between my Test tenant and an application instance in that scenario? I didn't see any way to configure that mapping through the web management console, but maybe I'm just missing it. Also, what is an Application Instance? Nothing in the web management console uses that term.

    I noticed that I don't have anything in the SessionHostTenantAssignment table in the configuration database, but inserting a row to link my session host to my tenant didn't fix the issue (even after restarting all services, got the same error and the RoutingTable is still empty in the management diagnostics response).

  • Chris Rudolph Profile Picture
    20 on at

    Multiple tenant deployments have their metadata managed through the tenant snapin. It's a separate plugin that is part of the management console.

    The SessionHostTenantAssignment table is specific to the web client and thus won't apply.

    The application instance is the name given to the GP instance at install time. Yours (per the diagnostic input) is DEFAULT.

    So in your case, the answer involves the following steps:

    1. Make sure you've added the service-based architecture application to your tenant via the snapin

    2. Once added, make sure you fill out the required config settings. The application instance is one of these.

    Finally...quick tip. For a development environment, a single tenant install is much easier to deploy & manage. You can still support multiple 'tenants' this way (for testing different versions or sets of dictionaries) by adding them as elements in your local TenantConfiguration.xml file. The only limitation is that you won't be able to setup user -> tenant security mappings. The security aspect isn't a big deal while developing.

  • Community Member Profile Picture
    on at

    I get the point about a dev environment and what not, but part of this exercise was making sure we could install it in a "real world" scenario and also understand what happens in that same scenario if security is incorrect.

    I must still be missing something, though, because it's still not working. Here's what I did, so let me know if this was in the wrong place:

    1. Navigated to web management console (https:mymachine:8089/WebManagementConsole/).
    2. Clicked on Tenant Manager (I believe this is the Tenants snap-in you were referring to above).
    3. Double-clicked my only tenant to edit it.
    4. Clicked on GP Services in the Application Settings list of applications.
    5. Set the following values (are the correct values for this documented anywhere? the RTM TSInstallAdminGuide.pdf only has values for the Web Client and Web Services):
      • DynamicssetLocation: C:\Dynamics\GP2015\Dynamics.set
      • DexiniLocation: C:\Dynamics\GP2015\Data\Dex.ini
      • SQLUserName: Not really sure what's supposed to be here, but to remove any complication on security, I entered sa.
      • SQLPassword: sa user's password
      • GPVersion: initially, I put nothing, but changed it to 14.
      • GPInstanceName: initially, I put nothing (since it's the default instance and doesn't have a name), but thinking this might be the application instance and just poorly labeled, I also tried entering DEFAULT.
      • RequestLoggingEnabled: true
      • OperationTimeOut: left blank

    There isn't one labeled ApplicationInstance or something like that, so I'm not sure what to try next.

  • Community Member Profile Picture
    on at

    Update to this: I changed the SQLUserName and SQLPassword to the SQL username and password I think at some point I had to enter during the install and my RoutingTable value now has a route!

    "RoutingTable": [
        {
          "HostId": "PHAAG",
          "TenantName": "Test",
          "Instance": "DEFAULT",
          "GPVersion": "14",
          "ForwardingBaseAddress": "http://mymachine:48655/DS/DEFAULT_14/",
          "ProcessLoad": 1.0
        }
      ]

    Unfortunately, my ping request (https://mymachine:48654/GPService/Tenants(Test)/Companies(Fabrikam,%20Inc.)/Utility/Ping) still returns "No hosts were available to process the request for tenant 'Test'."

  • Chris Rudolph Profile Picture
    20 on at

    In the event of an error at forwarding time (host turns out to be unavailable for some reason), the service will fall back to other routes. If a route exists but a 'no hosts' error is still returned, it's likely there was some kind of internal exception while trying to forward the request on to the GP instance for processing.

    If true, additional helpful context should be available in the GPService_Error.log and/or _Info.log files (%ProgramData%\Microsoft Dynamics\GPSvc\Logs\GPService).

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics GP (Archived)

#1
mtabor Profile Picture

mtabor 1

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans