Проблемы в клиринг
Atom
22.12.2011


Раньше вроде нормально клиринг проходили, вернее мы там код меняли, чтобы куча ошибок не вылетала на клиринге, а сейчас вот опять то же самое? (см. картинку)

Теги:


Спасибо:


1 2 3  > >>
Alexander

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


frontman как раз прохождением клиринга и занимается сейчас фактически.
можете ему помочь в этом

и надо не заглушки чтоб ошибки не лезли вставлять, а ошибки лучше исправлять :)
Спасибо:

FiNick

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


Помогу, конечно)
Спасибо:

frontman

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


)))) Урааа)))
FiNich если что у меня есть отложенные изменения frontman_cp)) Велком)))
Спасибо:

Alexander

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


frontman Перейти
)))) Урааа)))
FiNich если что у меня есть отложенные изменения frontman_cp)) Велком)))


Так вроде вы уже всё сделали и вам оставалось лишь протестировать изменения.
Что-то изменилось?
Спасибо:

frontman

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


Нет. Так и есть.
Просто если человек хочет помочь почему бы и нет...
Может он придумает способ сделать то же самое проще...
Спасибо:

FiNick

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


Протестировал, на клиринге вылетают те же ошибки. (Может я не на то смотрю и ошибки вообще не связаны с тем что frontman менял?)
Первая ошибка это "P2ERR_SERV_NO_SERVICE". На сколько я помню она вылетает потому что на клиринге потоки закрываются, и мы тогда решили что это нормальния ситуация и надо эту ошибку просто игнорить, написали соответствующий код. Что изменилось с тех пор, почему решили вернуть её обратно?

Вторая ошибка: "Инструменты GAZR28@RTS и GASP@RTS имеют одинаковый идентификатор инструмента 167736 торговой системы (тот самый IsinID??)". Странная ошибка, что за инструмент GAZR28, или USDRUB23?

Далее вопрос frontman'y по коду:
Код
private void OnSessionContentsDerivativeStreamInserted(PlazaRecord record, PlazaSessionContentsDerivativeColumns metadata, Action<Security> initHandler, Action<Security> updateHandler)
		{
			ProcessEvents(() =>
			{
				var isinId = record.Get<int>(metadata.IsinId);
				var secCode = record.Get<string>(metadata.ShortIsin);

				GetSecurity(CreateSecurityId(secCode, "RTS"), security =>
				{
					if (_secCodeAndIsinIds.TryAdd(secCode, isinId))
					{
						InitSecurityInfo(security, record, metadata);

						security.Code = secCode;
						initHandler(security);
					}
					else
					{
						_newAndOldIsinIds.TryAdd(isinId, _secCodeAndIsinIds[secCode]);
					}

					UpdateSecurityInfo(security, record, metadata);
					updateHandler(security);
				}, isinId.ToString());
			});
		}

Я так понял это событие обрабатывает приход новых инструментов. Сначала мы сохраняем в словарь пары ShortIsin-IsinId, а затем если инструмент с такимже ShortIsin пришел второй раз сохраняем пару "новый IsinId-старый IsinId"?
Код
private void ProcessPlazaStream(PlazaRecord record, PlazaColumn isinIdColumn, bool ignoreIfNotExist, Action<Security> action)
		{
			var newIsinId = record.Get<int>(isinIdColumn);
			var oldIsinId = _newAndOldIsinIds.TryGetValue(newIsinId);
			var isinId = (oldIsinId == 0 ? newIsinId : oldIsinId).ToString();
			ProcessEvents(() => ProcessSecurityAction(isinId, action, ignoreIfNotExist));
		}

Здесь в ProcessSecurityAction мы пытаемся подсунуть тот isinId который был до клиринга, ищем его в словаре _newAndOldIsinIds. Я так понимаю метод ProcessPlazaStream вызывается очень часто, и такая вот конструкция с поиском в словаре будет сильно все замедлять. Но вопрос оптимизации это уже второй вопрос, главное сейчас чтоб хоть как-то заработало=)
Спасибо:

frontman

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


Так же тестил. Ошибка так же вылетела... Ничего не понял) Продолжу сегодня...
Спасибо:

frontman

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


FiNick Перейти
Но вопрос оптимизации это уже второй вопрос, главное сейчас чтоб хоть как-то заработало=)


Рад что вы понимаете это)
Честно скажу как это сделать по другому я пока не знаю... Подменять isinId надо, т.к. данные по инструменту закреплены за одним isinId(дневным как правило), а у нас их 2 одновременно существует...
Словарь по моему это самая быстрая конструкция для поиска... Так что...
Спасибо:

FiNick

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


frontman Перейти
Так же тестил. Ошибка так же вылетела... Ничего не понял) Продолжу сегодня...

А какие у тебя ошибки вылетают? Такие же как у меня?
Спасибо:

frontman

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


Первой не было. На второй все упало...
Причем ранее я что то этого не наблюдал...
Спасибо:
1 2 3  > >>

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

loading
clippy