beduin01 вы пытаетесь выполнить одну update-транзакцию параллельно с другой. С FB не работал, не знаю насколько гранулярны там блокировки, возможно что блокируется вся таблица. Что с этим делать, вам лучше почитать в доках по Firebird (я имею в виду, как правильно осуществлять параллельные транзакции). Но сначала сделайте Dispose транзакции - коммита, возможно, только закрепляет транзакцию, но не снимает блокировки, или, например, автоматом начинает новую транзакцию, из-за чего у вас эта новая транзакция остается открытой и держит таблицу/запись в базе заблокированной. Всему, что реализует IDisposable, в том числе через базовые классы, нужно делать Dispose. Чтобы не забыть это делать, и дополнительно структурировать код, ознакомьтесь с оператором using: https://msdn.microsoft.com/ru-ru/library/yh598w02.aspx
Дмитрий ну на рассылки подпишитесь. Конфы смотрите, Build тот же. Хабр в конце-концов. Мне вот этого всего с головой хватает, чтобы "следить". Или вам конкретно реальные примеры в реальных компаниях?
apasen я под "бэком" и имею в виду API. И именно этот случай я и рассматриваю.
Я так и не понял в чем ваша проблема/задача. Что или кого вы собираетесь _авторизовать_ - юзера или ваш код? Что или кто и какой токен будет уводить? Кто есть злоумышленник, кто есть жертва и что есть предмет воровства, можете четко объяснить?
apasen не вполне понятно, почему стоит такая цель. Хорошее REST API - такое, к которому что из официального клиента (в том числе из веб-приложения), что по curl-у - одинаково и по сути дело конкретного пользователя. У вас выходит, что вы имеете какую-то доверенную логику в КЛИЕНТЕ, и вам нужно быть уверенным, что именно ваш клиент отправил запрос. Т.е. вам надо авторизовать клиентский КОД, а не пользователя. Вопрос - зачем вам так надо? Нет возможности эту доверенную логику перенести на сервер?
Александр Александров чтобы вас не запутать, предупреждаю, что под RPC я имею в виду не конкретную реализацию, а архитектурный подход в целом, основанный на правиле "мало сущностей, много действий" в отличие от REST, базирующемся на "много сущностей, мало действий".
Александр Александров но вообще да, еще раз подумайте над вопросом игрового состояния. Тут дело не в высокой нагруженности. REST это паттерн, который удобно применять, когда состояния (т.е. некоей игровой сессии) в общем-то нет, и от этого паттерна можно получить преимущества. Когда состояние есть, и нет смысла от него "убегать", попытка натянуть задачу на REST-архитектуру только потратит ваше время. RPC-подход будет гораздо более логичным выбором.
Александр Александров да сейчас его можно на чём угодно написать. Хотите попробовать C# в этой роли - посмотрите ASP.NET WebAPI или даже Nancy ( nancyfx.org ). Хотите попробовать JS - берите Ноду ( https://nodejs.org/en/ ). Язык подойдет любой из упомянутых вами, разве что не стоит брать тяжелый фреймворк с MVC, если нужен только веб-сервис, а не классический сайт с генерацией HTML-контента. Выберите сначала язык, с которым хотите работать на сервере, а потом сами поищите или задайте вопрос о выборе фреймворка для веб-сервиса на конкретном языке, если вам нужно будет больше информации.
Роман да, и правда, там пока только Redis. Ну EF 7 еще в 2014 году был заявлен (потом правда переименован в EF Core), так что с учётом стандартного правила "технологию лучше изучать, пока она в бете или RC", можно уже начить знакомиться)
Хотя я, честно говоря, перестал работать с EF уже давно, полностью ушел на NHibernate.
korsamc
> а остальные две вызвали у меня сложность
с такой информацией о проблеме мы не сможем вам помочь. Неужели вы не понимаете, что вашу проблему нужно описывать подробно? На вас компилятор ругался, или вы не смогли найти документацию?
furyon для вашей тривиальной задачи нет простого решения, потому что ваша задача не такая уж тривиальная. Вернее, она тривиальная, но никак не простая. Я не случайно сказал "рискну предположить" про WGS84. Например, если бы вы получали данные от ГЛОНАСС, то (вы не поверите), там используется другая система координат с другими (!) параметрами земного эллипсоида.
Т.к. людям обычно нужна определенная точность в расчетах, очевидно, никто не посчитал нужным "захардкодить" в постгрес одну-единственную систему координат, чтобы ей пользоваться. Поэтому вам и нужно считать самостоятельно. Вот в PostGIS достаточно функций для работы с географическими координатами, но большинство из них так или иначе учитывают систему координат.
furyon если радиус в метрах - то и координаты в метрах. Если радиус в сантиметрах, то и координаты в сантиметрах.
"xy это географические координаты"
Ну рискну предположить, что под "географическими координатами" вы имеете в виду WGS84. Вот формула для нахождения расстояния между двумя точками на сфере (раз вам высокая точность не нужна, достаточно будет предположить, что Земля - это сфера): https://en.wikipedia.org/wiki/Haversine_formula Радиус Земли возьмите равным 6 371 000 м.
Noself Любой проц за 15к и более вам не придется менять лет 5, а то и 7. В начале 2014-го, еще по старым ценам собирали машину с i7-4771, закупились DDR3 оперативы на 32 гига (максимум, что поддерживал проц, и соответственно, материнка), мать ASUS DELUXE-DUAL или как-то так называлась. Человек работает и играет в средние по графике игры (GW2 например), и не собирается ничего менять еще года 4 точно, т.к. с тех пор единственное принципиальное технологическое улучшение - появившийся в продаже 4-й DDR. По тогдашним ценам без жесткого диска (т.е. проц+мать+оператива) вышло около 40к. Я считаю что на тот момент это был топовый комп ДЛЯ РАБОТЫ, т.е. такой, где НЕ НУЖЕН оверклокинг и соответствующий проц/разгоняемая память/поддерживающая материнка.
> Да и остальные кристаллы гонятся на 0.4-0.5Ghz
Если мне для работы - то я ничего в принципе гнать не буду, т.к. стабильность важнее. Не может проц, который начал выпускать 1-2 года назад не тянуть без разгона современный софт для работы - никто просто не будет такой софт релизить, кому он нужен такой тормозной.
писали б сразу в ответ)
https://docs.oracle.com/cd/B19306_01/server.102/b1...
> If you give a shorter value, then the value is blank-padded to the fixed length.