|
|
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
На пальцах это выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. DataDirect ADO Sybase Provider ErrorCode: -2147217900 Native Error code: 2762 The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'tempdb' database. Лядно - дал allow DDL in tran для tempdb DataDirect ADO Sybase Provider ErrorCode: -2147217900 Native Error code: 277 There was a transaction active when exiting the stored procedure 'spMain'. The temporary table '#tmpTable' was dropped in this transaction either explicitly or implicitly. This transaction has been aborted to prevent database corruption. Native Error code: 266 Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRAN is missing. Previous count = 1, Current count = 0. Native Error code: 3624 Truncation error occurred. Native Error code: 3621 Command has been aborted. Ну и как по-людськи разрулить сие? P.S. select @@version Adaptive Server Enterprise/15.0.2/EBF 14332/P/NT (IX86)/Windows 2000/ase1502/2486/32-bit/OPT/Thu May 24 04:10:36 2007 _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2009, 14:30 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
Ex_Soft, а на tempdb стоит флаг "ddl in tran" ? ЗЫЖ тапками типа "так делать нехорошо" не кидать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2009, 21:37 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
0rc а на tempdb стоит флаг "ddl in tran" ? Ex_Soft дал allow DDL in tran для tempdb 0rc "так делать нехорошо" почему? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 08:50 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
0rc "так делать нехорошо" Ex_Soft почему? ....Эти команды блокируют системные таблицы, такие как sysobjects . Поэтому транзакции, в которых есть эти команды, нужно делать короткими. В частности, следует избегать использования этих команд в транзакциях, работающих с временной базой данных tempdb , чтобы система полностью не остановилась. Поэтому опция ddl in tran всегда должна быть в состоянии false в базе данных tempdb . _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 10:12 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
Ну и как теперь выкрутиться? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 10:17 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
Ex_soft, мы у себя в PowerBuilder-приложениях выкручиваемся сл.образом: <метод beforeretrieve () > SQLCA.AutoCommit=True .... <retrieve> <метод afterretrieve ()> SQLCA.AutoCommit=False ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 11:13 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
Ex_Soft Ну и как теперь выкрутиться? _________________ "Helo, word!" - 17 errors 56 warnings создавать временные объекты перед вызовом, а не в самих процедурах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 14:43 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
komrad создавать временные объекты перед вызовом, а не в самих процедурах Гм... Как бы хотелось, чтобы все носило целостный характер, а не "...здесь играем, а здесь рыбу заворачивали..." Других таблеток - нЭт? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2009, 07:34 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
если позволяет место - можно посмотреть на отдельнаю user created tempdb, create temporary database my_tempdb on ... sp_tempdb 'bind'... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2009, 13:56 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
Ex_Soft wrote: > В свою очередь в spMain делается выборка в #tmpTable, и потом курсором в > цикле по ней дергаются еще две SP'шки. Сама по себе spMain отрабатывает > без проблем. Но стоило только ее дернуть из приложения, как показано > выше - внутри транзакции > There was a transaction active when exiting the stored procedure > 'spMain'. The temporary table '#tmpTable' was dropped in this > transaction either explicitly or implicitly. This transaction has been > aborted to prevent database corruption. > Native Error code: 266 > Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRAN > is missing. Previous count = 1, Current count = 0. > Native Error code: 3624 > Truncation error occurred. > Native Error code: 3621 > Command has been aborted. > > > Ну и как по-людськи разрулить сие? Это ты нарушаеш старое негласное правило работы в процедурах под транзакцией с временными таблицами. Негласное -- потому что оно нигде не написано. Звучит так: [fix] Если процедура создаёт временную таблицу внутри многооператорной транзакции, то она должна сама реально начинать эту транзакцию, т.е. содержать оператор BEGIN TRANSACTION который приводит к изменению @@trancount из значения 0 в значение 1. [/fix] Следствие из этого такое: [fix] Если у вас есть процедура, использующая временную таблицу, созданную внутри многооператорной транзакции, её НЕЛЬЗЯ вызывать из охватывающих её транзакций. [/fix] Выходов из ситуации много, главная идея -- не использовать временные таблицы (использовать псевдовременные или постоянные, в главной БД или в tempdb) или не создавать их в этой процедуре, а создавать в главной вызывающей. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2009, 12:35 |
|
||
|
Множество телодвижений в транзакции && tempdb
|
|||
|---|---|---|---|
|
#18+
Да уже разрулил путем, таки, рихтовки клиента с упаковыванием всего-всего в SP, в коей явно и стартуется транзакция... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2009, 12:51 |
|
||
|
|

start [/forum/topic.php?fid=55&tid=2010992]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 359ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...