KNOWN ISSUE: spDeployment_GetCompDetailsFromName variable is too short and cuts off long FQDNs.

book

Article ID: 158964

calendar_today

Updated On:

Products

Deployment Solution

Issue/Introduction

When a client is attempting to boot into an automation environment, it will halt and the PECTAgent process will terminate, stating that the call to GetNearestPackageServerInfo.aspx failed or returned no results.

Cause

When I client machine is attempting to boot via PXE, it makes a call to the GetNearestPackageServerInfo.aspx web service. As part of this web service's database query, it runs the stored procedure spDeployment_GetCompDetailsFromName, passing it the fully-qualified domain name (FQDN) of the Package Server(s). The length of the variable string that this stored procedure will accept is limited to 50 characters, as specified in the text of the stored procedure. If the FQDN is longer than 50 characters, anything characters past 50 will be dropped.

The stored procedure compares the passed variable to two locations - Inv_AeX_AC_Indentification.[FQDN] and Inv_AeX_AC_TCPIP.[Host Name] - both of which can be longer than 50 characters. If the FQDN was trimmed short to fit the character limit and is compared to the un-trimmed value in one of the above tables, they will not match and thus will not be returned as such.

Resolution

The length of the allowed variable passed to the stored procedure needs to be lengthened to at least 256, the length of the longer of the two fields to which it is compared.

This can be modified by running the following SQL query to modify the stored procedure (please note your version):

Pre-HF4:

ALTER PROCEDURE [spDeployment_GetCompDetailsFromName]
 @compName varchar(256)
 AS

BEGIN

SELECT AI._ResourceGuid as Guid, AI.FQDN as Name, [IP Address] as IP
 from Inv_AeX_AC_TCPIP as TCIP
  inner join Inv_AeX_AC_Identification AI
   on TCIP._ResourceGuid=AI._ResourceGuid
 where LOWER(AI.FQDN) = LOWER(@compName)
  or
 LOWER([Host Name]) = LOWER(@compName)

END

Post-HF4:

ALTER PROCEDURE [spDeployment_GetCompDetailsFromName]
 @compName varchar(256)
 AS

 BEGIN

DECLARE @rcount INT
DECLARE @ResultSet TABLE ( 
   [ResourceGuid] uniqueidentifier,
   [Name] nvarchar(256),
   [IP] nvarchar(64) )

INSERT INTO @ResultSet(ResourceGuid, Name, IP)
 SELECT AI._ResourceGuid as Guid, AI.FQDN as Name, [IP Address] as IP
  from Inv_AeX_AC_TCPIP as TCIP
   inner join Inv_AeX_AC_Identification AI
    on TCIP._ResourceGuid=AI._ResourceGuid
  where LOWER(AI.FQDN) = LOWER(@compName)
   or
  LOWER([Host Name]) = LOWER(@compName)

 SELECT @rcount = COUNT(ResourceGuid) FROM @ResultSet

 IF(@rcount=0)
  BEGIN
   SELECT TCIP._ResourceGuid as Guid , @compName as Name, [IP Address] as IP
    FROM Inv_AeX_AC_TCPIP as TCIP
     inner join ServerSettingGuids ss
      ON TCIP._ResourceGuid = ss.Value
    WHERE ss.Name =  'NSResourceGuid'
  END
  ELSE
 BEGIN
       select * from @ResultSet
 END

END


Applies To

Deployment Solution 7.5 GA

Deployment Solution 7.5 HF1

Deployment Solution 7.5 HF2

Deployment Solution 7.5 HF3

Deployment Solution 7.5 HF4