powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / loopback server + The server failed to resume the transaction
40 сообщений из 40, показаны все 2 страниц
loopback server + The server failed to resume the transaction
    #36711602
Доброго дня, уважаемые коллеги.
У меня тема, похоже, больше для демагогии, но уже задолбался несколько.

Помнится разного рода проблемы loopback linked server периодически появлялись и фиксились чуть ли не с 7-го сервера. В 2000-м точно был не один фикс по этой теме. Вот уж 2008 пользуется, а сообщения наподобие такого
Код: plaintext
The server failed to resume the transaction. Desc:430000001e
при линковании сервера самого на себя периодически получаю.

Вопрос :
Это я не умею линкованные сервера готовить, MSDTC у меня какой не такой или при тестировании связанных серверов без двух разных машин не обойтись никак?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711631
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loopback linked server не использует MSDTC
Потому что нет никакой распределенной транзакции
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711648
Gloryloopback linked server не использует MSDTC
Потому что нет никакой распределенной транзакцииДо драки я, конечно, спорить не буду, но если координатора остановить и сделать запрос к линкованному на самого себя серверу, то Вы получите примерно такое :
Мой серверMSDTC on server 'pararam' is unavailable.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711653
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель линкованных серверовGloryloopback linked server не использует MSDTC
Потому что нет никакой распределенной транзакцииДо драки я, конечно, спорить не буду, но если координатора остановить и сделать запрос к линкованному на самого себя серверу, то Вы получите примерно такое :
Мой серверMSDTC on server 'pararam' is unavailable.
BOL 2005 - Linked Server Considerations in a Clustered SQL Server

Loopback linked servers cannot be used in a distributed transaction. Trying a distributed query against a loopback linked server from within a distributed transaction causes an error, such as error 3910: "[Microsoft][ODBC SQL Server Driver][SQL Server]Transaction context in use by another session."
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711662
GloryBOL 2005 - Linked Server Considerations in a Clustered SQL Server

Loopback linked servers cannot be used in a distributed transaction. Trying a distributed query against a loopback linked server from within a distributed transaction causes an error, such as error 3910: "[Microsoft][ODBC SQL Server Driver][SQL Server]Transaction context in use by another session."Про этот финт ушами (Transaction context in use by another session) я скромно умолчал, хотя он тоже сильно раздражает. У меня, например, сейчас на относительно ровном месте ошибка вот такая :
Код: plaintext
The server failed to resume the transaction. Desc:430000001e
Причем при нормальных условиях (два разных сервера) ошибки нет. На тестовой машине при loopback-сервере - пожалуйста.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711666
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель линкованных серверов
Причем при нормальных условиях (два разных сервера) ошибки нет. На тестовой машине при loopback-сервере - пожалуйста.
Ну так не используйте loopback server как linked server
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711678
Gloryлюбитель линкованных серверов
Причем при нормальных условиях (два разных сервера) ошибки нет. На тестовой машине при loopback-сервере - пожалуйста.
Ну так не используйте loopback server как linked serverТо есть мой первый постпри тестировании связанных серверов без двух разных машин не обойтись никак?

???
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711681
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quot любитель линкованных серверGloryлюбитель линкованных серверов
Причем при нормальных условиях (два разных сервера) ошибки нет. На тестовой машине при loopback-сервере - пожалуйста.
Ну так не используйте loopback server как linked serverТо есть мой первый постпри тестировании связанных серверов без двух разных машин не обойтись никак?

???
Т.е. делайте полноценный linked server, а не имитируйте 2 сервера на одном
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711685
Причем как интересно получается.
Вот так работает :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
begin tran
	select * from SERVER.BAZA.dbo.Tablichka where AC_id =  677 
	exec dbo.p_AC_Export @Action =  4 , @OuterSystem_Id =  1 , @AC_id =  677 
	print @@TRANCOUNT
	print 'xact_state()'
	print cast(xact_state() as varchar( 4 ))
	--select * from SERVER.BAZA.dbo.Tablichka where AC_id = 677
	select  677 
rollback
а вот так уже падает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
begin tran
	select * from SERVER.BAZA.dbo.Tablichka where AC_id =  677 
	exec dbo.p_AC_Export @Action =  4 , @OuterSystem_Id =  1 , @AC_id =  677 
	print @@TRANCOUNT
	print 'xact_state()'
	print cast(xact_state() as varchar( 4 ))
	select * from SERVER.BAZA.dbo.Tablichka where AC_id =  677 
	select  677 
rollback
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711694
GloryТ.е. делайте полноценный linked server, а не имитируйте 2 сервера на одномGlory, конечно, то что Вы говорите и правильнее и лучше. Но это означает задействование ещё одного сервера под нужды тестирования. А в идеале четырёх серверов - два 32-бит и два 64-бит для перекрестной и совместной их работы.
Расточительно - это раз. Непонятно почему так - это два.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711706
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виртуальные машины даже не год назад придумали. Позволяет хоть 20 серверов иметь на одной физической машине. Это если инстансами не разрулиться никак.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711716
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель линкованных серверовРасточительно - это раз. Непонятно почему так - это два.
Расточительно для теста поставить на одной физической машине 2 экземпляра mssql ?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711735
Гавриленко Сергей АлексеевичВиртуальные машины даже не год назад придумали. Позволяет хоть 20 серверов иметь на одной физической машине. Это если инстансами не разрулиться никак.Виртуалки, к сожалению для нас исключены. Так уж исторически сложилось.
Несколько инстансов - в принципе нормальное решение.
У нас есть определенная бюрократическая пакость - на все и везде должны быть лицензии. Даже если у меня несколько developer edition по несколько тыр каждая - каждая должна быть куплена.

Поэтому в моём случае loopback - самое удобное решение. Ничего не надо ни устанавливать, ни выделять.
Ну, в общем, позиция понятна, за совет про несколько экземпляров - спасибо, как то из головы вылетел такой вариант. :)
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711749
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель линкованных серверовУ нас есть определенная бюрократическая пакость - на все и везде должны быть лицензии. Даже если у меня несколько developer edition по несколько тыр каждая - каждая должна быть куплена.

Есть express edition/evaluation edition
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36711756
GloryЕсть express edition/evaluation editionЭкспресс не потянет размеры баз. Evaluation - надо ставить - следить за сроком - сносить. Лучше и проще купить пару developer'ов :)
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36712473
Фотография Кое-кто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай спрошу - select @@version для сервера что возвращает?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #36712517
Кое-кто,
Вот'с :
Microsoft SQL Server 2005 - 9.00.4285.00 (X64) Feb 8 2010 23:31:46 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

:)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
loopback server + The server failed to resume the transaction
    #40106098
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я создала процедуру в SQL Server, которая очищает таблицу, потом вставляет в нее данные. Когда я вызываю процедуру в MSMS, отрабатывает без ошибок. Если я вызываю из пользовательского приложения, то в ответ приходит ошибка The server failed to resume the transaction. Решение я нашла. Заменила в процедуре TRUNCATE на DELETE. И ошибка ушла. Что такого в операторе TRUNCATE?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106100
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел
Что такого в операторе TRUNCATE?

Для этой операции нужны права ALTER.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106103
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL2008
Диана Орел
Что такого в операторе TRUNCATE?

Для этой операции нужны права ALTER.


Может действительно дело в правах, потому что разными пользователями тестировала вызов.

Еще дополню: отдельно операция TRUNCATE в процедуре вызывается из пользовательского приложения без ошибки.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106109
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел,

выполните проверку базы на всякий случай.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106121
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел
Что такого в операторе TRUNCATE?

указанная команда не вызывает триггер на удаление
учитывая ошибку "The server failed to resume the transaction", то, по моему мнению, при удалении отрабатывал триггер на удаление, который и генерил ошибку (ошибка возможно возникала из-за прав пользователя)
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106125
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел
Я создала процедуру в SQL Server, которая очищает таблицу, потом вставляет в нее данные. Когда я вызываю процедуру в MSMS, отрабатывает без ошибок. Если я вызываю из пользовательского приложения, то в ответ приходит ошибка The server failed to resume the transaction. Решение я нашла. Заменила в процедуре TRUNCATE на DELETE. И ошибка ушла. Что такого в операторе TRUNCATE?


Поле чудес.

1. процедуру покажите
2. структура таблицы, PK FK, ее триггеры
3. что такое "MSMS" ? как в "этом" вызываете процедуру?под каким юзером?
4. как вызвается процедура в приложении? под каким юзером?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106136
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел

Еще дополню: отдельно операция TRUNCATE в процедуре вызывается из пользовательского приложения без ошибки.

Отдельно от чего?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106138
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Truncate может быть и не при чём. В процедуре возникает необработанное исключение, а к консоли все ОК.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106172
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MSMS - Microsoft Server Managment Studio.
aleks222
Диана Орел

Еще дополню: отдельно операция TRUNCATE в процедуре вызывается из пользовательского приложения без ошибки.

Отдельно от чего?
Если убрать операцию INSERT, то процедура отрабатывает.
Описание: Ведется лог работы процедуры. 1) фиксируется начало работы 2) сама работа 3)фиксируется результат работы
Код процедуры.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
ALTER proc [dbo].[SALES_WRITEBACK_INVEST_COUNT_ALL]
 @HIERARCHY_CC_ID TINYINT,
 @PROC_ID BIGINT
 AS
SET XACT_ABORT ON;
BEGIN TRANSACTION
DECLARE @SESS_NO INT, @STEP_ID TINYINT, @INSERT_NUMBER_ROWS INT = 0, @RESULT_STRING NVARCHAR(MAX),  @REZ INT

exec [dbo].[REGISTRY_NEW_STEP] N'Transform Opening plan.SALES', @PROC_ID, @SESS_NO OUTPUT, @STEP_ID OUTPUT /*1*/

SET XACT_ABORT OFF;

begin try /*2*/
--TRUNCATE TABLE ODI_OUT.dbo.T_INVEST_COUNT_ALL 
DELETE FROM ODI_OUT.dbo.T_INVEST_COUNT_ALL

INSERT 
  INTO ODI_OUT.dbo.T_INVEST_COUNT_ALL
  (
    MONTH_ID ,
    MVZ_ID ,
    CFO_ID ,
    FRMT_ID ,
    SUBFRMT_ID ,
    ACCOUNT_ID ,
    HYPE_VERSION_ID ,
    DATA ,
    SESSION_ID 
  ) 
SELECT 1,1,1,1,1,1,1,1,@SESS_NO
  
SET @INSERT_NUMBER_ROWS = @@ROWCOUNT

select  @REZ = case 
	  when  T1.SUM_TARGET +  T2.SUM_SOURCE>0 then ROUND(T1.SUM_TARGET-T2.SUM_SOURCE, 0, 1)
	  else -1  
	  end 
FROM
(SELECT SUM(DATA) as SUM_TARGET from ODI_OUT.dbo.T_INVEST_COUNT_ALL where session_id = @SESS_NO ) T1,
(SELECT SUM(DATA) as SUM_SOURCE from dbo.T_SALES_OUT_STAGE where session_id = @SESS_NO) T2



IF  @REZ <> 0  
THROW 51000, N'Transform with errors. Summs did not match', 1;


end try
begin catch
 select @RESULT_STRING = cast(ERROR_LINE() as nvarchar(20)) + ': ' + ERROR_MESSAGE()   
end catch

SET XACT_ABORT ON;

EXEC DBO.UPDATE_STEP_DETAILS @SESS_NO, @STEP_ID, @INSERT_NUMBER_ROWS, @RESULT_STRING /*3*/

COMMIT TRANSACTION
GO




Права у пользователя, который запускал процедуру в MSMS
orel_da; create table; CREATE PROCEDURE; EXECUTE (только процедуры)
Права у пользователя, который запускал процедуру через Приложение посмотреть не могу, я не админ. Выходит сообщение
авторCannot execute as the database principal because the principal "guest" does not exist, this type of principal cannot be impersonated, or you do not have permission.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106175
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана - единственный юзер в этом странном мире, который называет SSMS -> MSMS
Вы лудшая"! Все у вас по лучиться, не сдавайтесь
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106177
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел,

приведите полное сообщение об ошибке, в обработчике есть номер строки процедуры.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106180
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
Диана Орел,

приведите полное сообщение об ошибке, в обработчике есть номер строки процедуры.


Ошибка возникает при запуске процедуры из пользовательского приложения. Поэтому, не наю, поможет ли

Traceback (most recent call last):
File "E:\Users\orel_da\workspace\FirstJythonProj\IntegOpt.py", line 21, in <module>
fdmAPI.executePLSQL(sqlTxt, [80, proc_id], True)
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258)

at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)

at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)

at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:28)

at com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(SQLServerConnection.java:2519)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(SQLServerConnection.java:2524)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.commit(SQLServerConnection.java:2683)

at com.hyperion.aif.scripting.API.executePLSQL(API.java:196)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException: The server failed to resume the transaction. Desc:7d00000001.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106185
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел
Владислав Колосов
Диана Орел,

приведите полное сообщение об ошибке, в обработчике есть номер строки процедуры.


Ошибка возникает при запуске процедуры из пользовательского приложения. Поэтому, не наю, поможет ли

Traceback (most recent call last):
File "E:\Users\orel_da\workspace\FirstJythonProj\IntegOpt.py", line 21, in <module>
fdmAPI.executePLSQL(sqlTxt, [80, proc_id], True)
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258)

at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)

at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)

at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:28)

at com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(SQLServerConnection.java:2519)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(SQLServerConnection.java:2524)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.commit(SQLServerConnection.java:2683)

at com.hyperion.aif.scripting.API.executePLSQL(API.java:196)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException: The server failed to resume the transaction. Desc:7d00000001.


Дианка жжот, мы тоже не наем, но тут и java, Python и х.з. что, адвансед среда прямо
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106186
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел, проверьте тип пользователя guest в БД ODI_OUT
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106188
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана, отзовитесь!

Мы начинающие "сиквэльщики" и "мастдайщики", но вот терзают смутные сомнения, что этот вызов "fdmAPI.executePLSQL" - Ораклом отдает,а как вы думаете?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106191
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел
Если убрать операцию INSERT, то процедура отрабатывает.

Это бред.
Один sql-стейтмент не может влиять на допустимость другого sql-стейтмента.

Как вам уже докладывали

truncate table

требует повышенных полномочий и "простому" пользователю недоступен.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106192
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел,

не совсем то, это ошибка JDBC.
Должна быть строка, отформатированная как "cast(ERROR_LINE() as nvarchar(20)) + ': ' + ERROR_MESSAGE()"

например: "23:случилось страшное". Если код написан с учетом этой особенности, что ошибка возвращается селектом, а не исключением, то ее можно увидеть в логе.

Возможно, на truncate нет прав у пользователя.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106193
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел,

авторЕсли убрать операцию INSERT, то процедура отрабатывает
это потому, что транзакция сломана уже перед этим insert.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106545
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
Диана Орел,

авторЕсли убрать операцию INSERT, то процедура отрабатывает

это потому, что транзакция сломана уже перед этим insert. Если один оператор, то ошибка на верх не пробрасывается, не успевает что-ли проброситься. А если 2 оператора подряд, то тогда можно ошибку отловить. Так? А как узнать причину поломки транзакции? Или это все-таки права?
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106546
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
Диана, отзовитесь!

Мы начинающие "сиквэльщики" и "мастдайщики", но вот терзают смутные сомнения, что этот вызов "fdmAPI.executePLSQL" - Ораклом отдает,а как вы думаете?
Это просто библиотека java написана компанией Oracle, а использовать ее можно с СУБД SQL Server тоже.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106552
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

догадалась под пользователем, у которого ошибка запустить процедуру в SSMS. Вот ошибка:



Msg 3930, Level 16, State 1, Procedure UPDATE_STEP_DETAILS, Line 11 [Batch Start Line 0]
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ALTER PROC [dbo].[REGISTRY_NEW_STEP] --создание нового шага (записи)  в таблице лога
@STEP_NAME NVARCHAR(100),
@PROC_ID BIGINT,
@SESS_NO BIGINT OUTPUT,
@STEP_ID TINYINT OUTPUT
AS
BEGIN
DECLARE @LAST_PROC_ID BIGINT
SELECT @LAST_PROC_ID = MAX(PROC_ID) FROM [dbo].[T_SESSION_REGISTRY]
SET @LAST_PROC_ID = COALESCE(@PROC_ID, @LAST_PROC_ID)
SELECT @SESS_NO = MAX(SESSION_ID) FROM [dbo].[T_SESSION_REGISTRY] WHERE PROC_ID = @LAST_PROC_ID
SELECT @STEP_ID = coalesce(MAX(STEP_ID),0)+1 FROM  DBO.T_SESSION_DETAILS WHERE SESSION_ID = @SESS_NO
INSERT INTO DBO.T_SESSION_DETAILS(SESSION_ID, STEP_ID, STEP_NAME, STEP_START, PROC_ID)VALUES(@SESS_NO, @STEP_ID, @STEP_NAME, GETDATE(), @LAST_PROC_ID)
END
GO



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ALTER PROC [dbo].[UPDATE_STEP_DETAILS] -- обновление инфы по шагу
@SESS_NO BIGINT,
@STEP_ID TINYINT,
@CNT_ROWS INT,
@ER_MSG NVARCHAR(MAX)
AS
BEGIN
--UPDATE LAST STEP 
UPDATE  DBO.T_SESSION_DETAILS
SET STEP_END = GETDATE(), NUMBER_ROWS = @CNT_ROWS, ERROR_MSG = @ER_MSG
WHERE SESSION_ID = @SESS_NO AND STEP_ID = @STEP_ID
END
GO


не пойму, где тут может быть ошибка? я сначала создаю запись шага в таблице DBO.T_SESSION_DETAILS в начале работы процедуры. В конце работы работы процедуры делаю Update этой записи. Я должна была делать commit этой записи прежде чем update делать?

...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106555
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел,

если имеется возможность правки процедур, то поставьте, где возможно print xact_state(), увидите, после какой строки ломается транзакция.
...
Рейтинг: 0 / 0
loopback server + The server failed to resume the transaction
    #40106558
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
Диана Орел,

если имеется возможность правки процедур, то поставьте, где возможно print xact_state(), увидите, после какой строки ломается транзакция.


Код: sql
1.
2.
TRUNCATE TABLE ODI_OUT.dbo.T_SALES_PLAN
print xact_state()



после этой строки выдало -1.
Если на DELETE заменяю, то все 1 получаются. Под мои пользователем с TRUNCATE тоже все 1 в состоянии. Значит дело в правах. Спасибо большое за помощь
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / loopback server + The server failed to resume the transaction
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]