«Невозможно подключиться к транзакции» с сервером Oracle, связанным с MS SQL Server
У нас есть установка, где мы используем MS SQL Server со связанным сервером Oracle. Наша база данных имеет представления о базе данных Oracle. У нас есть собственное программное обеспечение (я ведущий разработчик), которое использует эту настройку.
У нас была эта установка в течение 5 лет, и она отлично работает на производстве, на бета-сервере и на всех наших блоках разработки, кроме моей.
Я недавно перестроил свою машину с помощью Windows 10 (я впервые использую Windows 10 для этого). Я использую клиент Oracle Database 12c Release 1 (12.1.0.2.0) (ранее мы использовали 11g, но для Windows 10 требуется 12c).
Когда я пытаюсь выполнить обновление для представления на сервере Oracle, в транзакции происходит сбой. Это прекрасно работает на любом из наших других серверов, так что я уверен, что это проблема Windows 10, проблема клиента Oracle 12c, или я как-то испортил настройку.
Я выполнил все настройки в прошлом (производственные, бета-версии и все настройки машин-разработчиков), поэтому у меня есть довольно большой опыт, чтобы делать это на протяжении многих лет. Проблема только с транзакцией. Нетранзакционные запросы и обновления работают просто отлично. Вот пример, который потерпит неудачу.
begin tran SET XACT_ABORT ON; update CLIENT set SUPERVISOR_FLAG = 'Y' where CLIENT_CODE = 'XYZ123' commit tran
Я получаю ошибку:
OLE DB provider "OraOLEDB.Oracle" for linked server "REMOTESERVER" returned message "Unable to enlist in the transaction.". Msg 7391, Level 16, State 2, Line 2 The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "REMOTESERVER" was unable to begin a distributed transaction.
Несколько SQL-серверов связываются с одним и тем же внутренним сервером Oracle, и у них нет проблем с этим, поэтому я могу исключить проблему конфигурации на сервере Oracle.
Это мои настройки DTC, и они такие же, как и другие машины, которые работают:
Для моих настроек Oracle Provider for Ole DB (OraOLEDB.Oracle) у меня включены «Динамические параметры», «Вложенные запросы», «Разрешить входящий процесс» и «Поддерживается оператор« Мне нравится »». Это также как и другие машины.
Под опциями сервера настройки:
- Совместимость сопоставления - False
- Доступ к данным - True
- RPC- Правда
- RPC Out - True
- Использовать удаленную сортировку - правда
- Имя сопоставления - [пусто]
- Тайм-аут соединения - 0
- Тайм-аут запроса - 0
- Дистрибьютор - Ложь
- Издатель - Ложь
- Подписчик - Ложь
- Ленивая проверка схемы - неверно
- Включить продвижение распределенных транзакций - True
Опять же, они соответствуют настройкам на других рабочих серверах.
Я в тупике. Буду очень признателен за любую помощь, которую кто-либо может предложить по этому вопросу.
Обновить:
Не уверен, поможет ли это, но это трассировка DTC:
pid=10580 ;tid=10624 ;time=07/19/2018-13:02:06.767 ;seq=1 ;eventid=TRANSACTION_MANAGER_STARTED_2 ;;"TM Identifier='(null) '" ;"MS DTC started with the following settings: Security Configuration (OFF = 0 and ON = 1): Network Administration of Transactions = 1, Network Clients = 1, Inbound Transactions = 1, Outbound Transactions = 1, Transaction Internet Protocol (TIP) = 0, XA Transactions = 1, MSDTC RPC Security = Mutual Authentication Required, Account = NT AUTHORITY\NetworkService, Firewall Exclusion = 0, Transaction Bridge Installed = 0, Filtering duplicate events = 1." pid=10580 ;tid=10624 ;time=07/19/2018-13:02:06.767 ;seq=2 ;eventid=TRACE_SETTINGS ;;"TM Identifier='(null) '" ;"Trace Configuration (OFF = 0 and ON = 1): Tracing Of DTC = 1, Tracing Of Transactions = 1, Tracing Of Aborted Transactions = 1, Tracing Of Long-Lived Transactions = 1, Tracing Of All Transactions = 0, Max Limit on Memory Buffers = 0." pid=10580 ;tid=17072 ;time=07/19/2018-13:02:35.182 ;seq=3 ;eventid=TRANSACTION_BEGUN ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"transaction has begun, description :'user_transaction'" pid=10580 ;tid=17072 ;time=07/19/2018-13:02:35.182 ;seq=4 ;eventid=RM_ENLISTED_IN_TRANSACTION ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"resource manager #1003 enlisted as transaction enlistment #1. RM guid = '452dc8f8-8bbd-4da4-b3e2-e1e29d417a15'" pid=10580 ;tid=17072 ;time=07/19/2018-13:02:36.104 ;seq=5 ;eventid=RECEIVED_ABORT_REQUEST_FROM_BEGINNER ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"received request to abort the transaction from beginner" pid=10580 ;tid=17072 ;time=07/19/2018-13:02:36.104 ;seq=6 ;eventid=TRANSACTION_ABORTING ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"transaction is aborting" pid=10580 ;tid=17072 ;time=07/19/2018-13:02:36.104 ;seq=7 ;eventid=RM_ISSUED_ABORT ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"abort request issued to resource manager #1003 for transaction enlistment #1" pid=10580 ;tid=17072 ;time=07/19/2018-13:02:36.104 ;seq=8 ;eventid=RM_ACKNOWLEDGED_ABORT ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"received acknowledgement of abort request from the resource manager #1003 for transaction enlistment #1" pid=10580 ;tid=17072 ;time=07/19/2018-13:02:36.104 ;seq=9 ;eventid=TRANSACTION_ABORTED ;tx_guid=98d30080-f9d4-46cb-a35c-af47629b377c ;"TM Identifier='(null) '" ;"transaction has been aborted" pid=10580 ;tid=18812 ;time=07/19/2018-13:02:57.188 ;seq=10 ;eventid=CHECKPOINTING_STOPPED ;;"TM Identifier='(null) '" ;"MSDTC is suspending the checkpointing of transactions due to lack of activity" pid=10580 ;tid=18812 ;time=07/19/2018-13:02:57.188 ;seq=11 ;eventid=TRACING_STOPPED ;;"TM Identifier='(null) '" ;"MSDTC is suspending the tracing of long - lived transactions due to lack of activity" pid=10580 ;tid=17072 ;time=07/19/2018-13:04:46.678 ;seq=12 ;eventid=TRACING_STARTED ;;"TM Identifier='(null) '" ;"MSDTC is resuming the tracing of long - lived transactions"
0 ответов на вопрос
Похожие вопросы
-
13
Почему подключение к SQL Management Studio занимает так много времени?
-
11
Менее устрашающий интерфейс для SQL Server
-
3
Почему Windows 7 не устанавливает мой загруженный .NET 3.5 SP1?
-
-
1
Тест подключения к SQL Server
-
1
Можно ли удалить файлы в папке «C: \ Program Files \ Microsoft SQL Server \ 90 \ Setup Bootstrap \ L...
-
4
Запуск от имени администратора необходим для обхода IE8, но пользователь находится в группе админист...
-
4
Какие порты открыть для Microsoft SQL Server?
-
2
Проблемы со входом в SQL Server
-
1
На какие записи реестра опирается SQL 2005 и какую информацию в них хранит?
-
4
Что означает термин CXPACKET?