Моя служба развернута на нескольких IIS, и они выполняют значительное количество экземпляров (100-200) из 3-4 различных хранимых процедур одновременно. SP выполняются через "executetescalar".
Все SP возвращают разные типы значений. Я понял, что значения были заменены для вызовов SP, которые выполняются одновременно. Я уверен в этом, потому что я получил недопустимое исключение приведения для всех вызовов, и логирование SP было правильным.
Может кто-нибудь сказать мне, что пошло не так !!!
-Спасибо
CREATE PROCEDURE [DBO].[SPO_DATABASESERVER_GET_CONTEXT_FROMNWACCOUNTID_1.0.5]
@NwAccountId BIGINT = NULL,
@ActionFlag VARCHAR(20) = 'NONE'
AS
BEGIN
DECLARE @DBID BIGINT
DECLARE @ConnectionString VARCHAR(250)
IF COALESCE(@NWACCOUNTID,'') != ''
BEGIN
SELECT @DBID = DATABASEID
FROM NWACCOUNTMASTER
WHERE NWACCOUNTMASTERID = @NWACCOUNTID
END
IF (COALESCE(@DBID,'') = '')
BEGIN
RAISERROR ('No DB is assigned for NwAccountId %I64d.',16,1,@NwAccountId)
RETURN
END
IF EXISTS (SELECT 'X'
FROM ACDATABASESERVER
WHERE DATABASEID = @DBID)
BEGIN
SELECT
@ConnectionString = CONNECTIONSTRING
FROM ACDATABASESERVER
WHERE DATABASEID = @DBID
END
IF (COALESCE(@ConnectionString,'') = '')
BEGIN
RAISERROR ('SP failed to fetch ConnectionString for NwAccountId %I64d.',16,1,@NwAccountId)
RETURN
END
SELECT @ConnectionString AS CONNECTIONSTRING
END