Ошибка в клиринг
Atom
04.10.2011
FiNick


Во время клиринга вылетает огромное колличество ошибок "Ошибка проверки потока репликации. Код -2147184638", описание "P2ERR_SERV_NO_SERVICE", пока не переполнится стек. Источник ошибки:```csharp () => // pollAction { if (Streams.Count == 0 && _streamsToRemove.Count == 0) _sleepInterval.Sleep();

Streams.SyncDo(c =>
{
	foreach (var stream in Streams)
	{
		try
		{
			stream.CheckConnection(_connection);
		}
		catch (COMException e)
		{
			System.Diagnostics.Trace.WriteLine("stream.CheckConnection(_connection) - COMException " + e.ErrorCode.ToString());
			Error.SafeInvoke(new PlazaException("Ошибка проверки потока репликации.", e));
		}
	}
});
В методе stream.CheckConnection(_connection), вызывается DataStream.Open(connection);, что и дает ошибку.

Теги:


Спасибо:


<< < 2 3 4 
Alexander

Фотография
Дата: 07.10.2011
Ответить


Стаканы поправил, в клиринг с 14 до 14:03 проблема со стаканами прошла - пошли дальше как ни в чём не бывало. Посмотрим что будет в вечерний клиринг.

Спасибо:

FiNick

Фотография
Дата: 07.10.2011
Ответить


Alexander Mukhanchikov: Стаканы поправил, в клиринг с 14 до 14:03 проблема со стаканами прошла - пошли дальше как ни в чём не бывало. Посмотрим что будет в вечерний клиринг. А вы на каком сервере смотрите, на игровом? Малый клиринг стаканы нормально проходят, проблема была с клирингом 14.45-15.30 Мск. В понедельник протестирую

Спасибо:

Alexander

Фотография
Дата: 07.10.2011
Ответить


FiNick:

Alexander Mukhanchikov: Стаканы поправил, в клиринг с 14 до 14:03 проблема со стаканами прошла - пошли дальше как ни в чём не бывало. Посмотрим что будет в вечерний клиринг. А вы на каком сервере смотрите, на игровом? Малый клиринг стаканы нормально проходят, проблема была с клирингом 14.45-15.30 Мск. В понедельник протестирую

На боевом, да. Тестовый сегодня не работает в связи с обновлением на 3.8.2. Жду 18:45 :)

Спасибо:

FiNick

Фотография
Дата: 07.10.2011
Ответить


Alexander Mukhanchikov: На боевом, да. Тестовый сегодня не работает в связи с обновлением на 3.8.2. Жду 18:45 :)

На боевом или на игровом всетаки? ведь чтобы открыть счет на боевом сервере надо робота засертифицировать

Спасибо:

Alexander

Фотография
Дата: 07.10.2011
Ответить


FiNick:

Alexander Mukhanchikov: На боевом, да. Тестовый сегодня не работает в связи с обновлением на 3.8.2. Жду 18:45 :)

На боевом или на игровом всетаки? ведь чтобы открыть счет на боевом сервере надо робота засертифицировать

На полноценном боевом сервере.

Спасибо:

Alexander

Фотография
Дата: 07.10.2011
Ответить


Проверил - фикс работает. Стакан обновляется, после клиринга не останавливается. [thumbup]

Но также надо и остальные таблицы обновлять, удаляя ненужные записи. Чтоб потом не поиметь проблем. Как минимум - если в клиринг приходит StreamDatumDeleted для стрима сделок своих - то все активные сделки с ревизиями меньшей пришедшей - снимаются.

Спасибо:

Alexander

Фотография
Дата: 11.10.2011
Ответить


FiNick: Например сделать так: В PlazaTrader'e

public override void StopExport() { lock (_stopExportLock) { _streamManager._stopStreamLock.Reset(); if (!IsExportRunning) return;

	StopStream();
	base.StopExport();

	_streamManager._stopStreamLock.WaitOne();
	System.Diagnostics.Trace.WriteLine("Export stopped");
}

}

> В PlazaStreamManager'e
> ```csharp
internal readonly AutoResetEvent _stopStreamLock = new AutoResetEvent(false);

_streamsToRemove.SyncDo(c =>
{
     foreach (var stream in _streamsToRemove)
     {
          try
          {
               stream.Close();
          }
          catch (COMException e)
          {
               System.Diagnostics.Trace.WriteLine("stream.Close() - COMException " + e.ErrorCode.ToString());
               Error.SafeInvoke(new PlazaException("Ошибка закрытия потока репликации.", e));
          }
     }

     _streamsToRemove.Clear();
     _stopStreamLock.Set();
});

Спасибо. Залил это решение. В 4.0.2 не попало. Необходимо протестировать из исходников.

Спасибо:
<< < 2 3 4 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy