Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TransactionScope
|
|||
|---|---|---|---|
|
#18+
клиент - ос = Microsoft Windows Server 2003 Enterprise Edition Service Pack 1 1-ый сервер - ос = руссифицированный Microsoft Windows 2000 server с sp4 и бд = Microsoft SQL Server Enterprise Edition Version 9.00.1399.06 2-й ос = и бд = Microsoft SQL Server Enterprise Edition Version 8.00.760 в рамках TransactionScope пытаюсь выполнить запросы на select к этим двум бд 1-ый на 1-ый сервер 2-ой на 2-ой сервер на втором запросе возникает ошибка как ее ликвидировать ? описание ошибки: System.Transactions.TransactionManagerCommunicationException was caught Message="Communication with the underlying transaction manager has failed." Source="System.Transactions" StackTrace: at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx) at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx) at System.Transactions.EnlistableStates.Promote(InternalTransaction tx) at System.Transactions.Transaction.Promote() at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts) at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 12:53 |
|
||
|
TransactionScope
|
|||
|---|---|---|---|
|
#18+
а у тебя эти сервера прилинкованы? т.е. ты должен использовать одно соединение в рамках одной транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 13:33 |
|
||
|
TransactionScope
|
|||
|---|---|---|---|
|
#18+
а как узнать прилинкованы они или нет и как их прилинковать, если нет а если нужны два разных соеденинения в рамках одной транзакции, то как быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 15:31 |
|
||
|
TransactionScope
|
|||
|---|---|---|---|
|
#18+
удалось выполнить распределенный запрос с 1-ого сервера на 2-ой а вот точно такой же запрос с 3-го на 2-ой не удалось в чем может быть проблема private void LoadBD_(SqlConnection cn, string scn, string s) { //SqlConnection cn = new SqlConnection(scn); SqlCommand command = new SqlCommand(s, cn); SqlDataAdapter da = new SqlDataAdapter(command); //cn.Open(); int count = command.ExecuteNonQuery(); //cn.Close(); } private void button1_Click(object sender, EventArgs e) { try { TimeSpan scopeTimeOut = new TimeSpan(0, 10, 0); string s1 = "Server=srv1;Integrated Security=SSPI;password=psw123;User ID=user123;"; //string s2 = "Server=srv3;Integrated Security=SSPI;password=psw123;User ID=user123;"; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, scopeTimeOut)) { SqlConnection cn = new SqlConnection(s1); cn.Open(); LoadBD_(cn, s1, "Select top 1 * from testdb.dbo.Test"); LoadBD_(cn, s1, " select top 1 * from [srv2].testdb.dbo.test"); scope.Complete(); } } catch (Exception exc) { MessageBox.Show(exc.Message + Environment.NewLine + exc.StackTrace); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 15:21 |
|
||
|
|

start [/forum/topic.php?fid=18&tid=1388386]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 366ms |

| 0 / 0 |
