Двойные платежи в отчётах после обновления до 007

Технические вопросы по UTM 5.0
Ответить
shoorickello
Сообщения: 134
Зарегистрирован: Ср июн 29, 2005 13:08

Двойные платежи в отчётах после обновления до 007

Сообщение shoorickello »

Может, кому будет полезно.

Обновил биллинг до 5-2.1.007, после чего в отчётах по платежам все платежи были указаны по два раза. Проблема была в таблице archives.

Было:

Код: Выделить всё

mysql> SELECT * FROM `archives`;
+----+------------+------------+------------------------------------------+------------+------------+
| id | archive_id | table_type | table_name                               | start_date | end_date   |
+----+------------+------------+------------------------------------------+------------+------------+
|  1 |          1 |          2 | discount_transactions_iptraffic_all_old  |          0 | 1214855999 |
|  2 |          2 |          1 | discount_transactions_all_old            |          0 | 1214855999 |
|  3 |          3 |          2 | discount_transactions_iptraffic_all_0708 | 1214856000 | 1217534399 |
|  4 |          4 |          1 | discount_transactions_all_0708           | 1214856000 | 1217534399 |
|  5 |          5 |          1 | discount_transactions_all_0808           | 1217534400 | 1220212799 |
|  6 |          6 |          2 | discount_transactions_iptraffic_all_0808 | 1217534400 | 1220212799 |
Стало после устранения проблемы:

Код: Выделить всё

mysql> SELECT * FROM `archives`;
+----+------------+------------+------------------------------------------+------------+------------+
| id | archive_id | table_type | table_name                               | start_date | end_date   |
+----+------------+------------+------------------------------------------+------------+------------+
|  1 |          1 |          2 | discount_transactions_iptraffic_all_old  |          0 | 1214855999 |
|  2 |          1 |          1 | discount_transactions_all_old            |          0 | 1214855999 |
|  3 |          3 |          2 | discount_transactions_iptraffic_all_0708 | 1214856000 | 1217534399 |
|  4 |          3 |          1 | discount_transactions_all_0708           | 1214856000 | 1217534399 |
|  5 |          5 |          1 | discount_transactions_all_0808           | 1217534400 | 1220212799 |
|  6 |          5 |          2 | discount_transactions_iptraffic_all_0808 | 1217534400 | 1220212799 |
Обратите внимание: для каждого интервала дат поле `archive_id` должно быть одинаковым.

dwemer
Сообщения: 276
Зарегистрирован: Чт янв 25, 2007 05:59

Сообщение dwemer »

Спасибо!

А почему разработчики об этом не знают ? На мой багрепорт ответили, что проблему диагностировать невозможно, пока я дамп всей базы им не предоставлю.

И в документации вот что пишут:
archive_id - идентификатор архива, не может быть равен 0, должен быть уникален для каждого типа архивных таблиц;
Разработчики, ку ку.

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

dwemer писал(а):Спасибо!

А почему разработчики об этом не знают ? На мой багрепорт ответили, что проблему диагностировать невозможно, пока я дамп всей базы им не предоставлю.

И в документации вот что пишут:
archive_id - идентификатор архива, не может быть равен 0, должен быть уникален для каждого типа архивных таблиц;
Разработчики, ку ку.
Ну почему же знают, мне именно так и посоветовали поступить, правда там проблема глубже на саммом деле и еще необходимо чтобы у всех таблиц а одинаковым archive_id были одинаковые границы дат, и еще одно требование: если решили использовать архивирование то архивировать нужно все таблицы заложенные в функционал архивирования, при частичном архивировании трабла не решается, потому как довольно отчетливо виден баг:

Выборка из дебага:

Код: Выделить всё

SELECT archive_id,start_date,end_date FROM archives ORDER BY id

?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <36> case&#58; start >= per_start && start <= per_end && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <37> case&#58; start >= per_start && start <= per_end && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <38> case&#58; start <= per_start && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <39> case&#58; start <= per_start && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <40> case&#58; start <= per_start && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <41> case&#58; start <= per_start && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <42> case&#58; start <= per_start && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <43> case&#58; start <= per_start && end >= per_end
?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; archive ID <44> case&#58; start <= per_start && end >= per_end

?Debug &#58; Sep 24 11&#58;01&#58;23 UTM5 DBA&#58; start&#40;1230746400&#41; < r&#40;1251741599&#41; < end&#40;1262282400&#41;, adding non-archive table into report

SELECT table_name FROM archives WHERE archive_id='36' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1230746400' AND payment_enter_date<='1230749997' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='37' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1230746400' AND payment_enter_date<='1233428399' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='38' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1233174411' AND payment_enter_date<='1235847599' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='39' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1235845001' AND payment_enter_date<='1238522399' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='40' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1236163083' AND payment_enter_date<='1241114399' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='41' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1240223127' AND payment_enter_date<='1243792799' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='42' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1242206373' AND payment_enter_date<='1246384797' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='43' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1245876875' AND payment_enter_date<='1249063199' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT table_name FROM archives WHERE archive_id='44' AND table_type='7'

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1247235030' AND payment_enter_date<='1251741599' AND account_id='4515' ORDER BY payment_enter_date DESC

SELECT id, payment_incurrency, currency_id, currency_rate, payment_absolute,actual_date, payment_enter_date, method, who_receive, comments_for_user,comments_for_admins, account_id, payment_ext_number FROM payment_transactions WHERE payment_enter_date>='1251741599' AND payment_enter_date<='1262282400' AND account_id='4515' ORDER BY payment_enter_date DESC

dwemer
Сообщения: 276
Зарегистрирован: Чт янв 25, 2007 05:59

Сообщение dwemer »

Magnum72 писал(а): Ну почему же знают, мне именно так и посоветовали поступить
От меня видимо скрыли :)
Magnum72 писал(а): правда там проблема глубже на саммом деле и еще необходимо чтобы у всех таблиц а одинаковым archive_id были одинаковые границы дат
хотелось бы конечно такие вещи от разработчиков узнавать , да...
Magnum72 писал(а): и еще одно требование: если решили использовать архивирование то архивировать нужно все таблицы заложенные в функционал архивирования, при частичном архивировании трабла не решается, потому как довольно отчетливо виден баг:
Еще одно засекреченное требование? :)
Все - это discount_transactions_all и discount_transactions_iptraffic_all ?
В документации только эти 2 упомянуты. Помнится, где-то упомянались и другие, но не могу найти, не напомните?

Забавно, у меня баг не наблюдается сейчас. Ничего не менял.
видимо многокилометрового лога изучение не избежать

Блин , ощущение что мы в какой то квест играем, причем разработчики не на нашей стороне

Аватара пользователя
MaxDM
Сообщения: 313
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

Странно, у нас в отчетах всё нормально.

Код: Выделить всё

select * from archives;
 id | archive_id | table_type |   table_name    | start_date |  end_date
----+------------+------------+-----------------+------------+------------
  1 |          1 |          1 | dta_2007_12_31  | 1067666400 | 1199134799
  2 |          2 |          2 | dtia_2007_12_31 | 1167598809 | 1199134799
  3 |          3 |          1 | dta_2008_03_31  | 1199134800 | 1206993599
  4 |          4 |          2 | dtia_2008_03_31 | 1199134801 | 1206993599
  5 |          5 |          1 | dta_2008_06_30  | 1206993905 | 1214855999
  6 |          6 |          2 | dtia_2008_06_30 | 1206999563 | 1214855999
  7 |          7 |          1 | dta_2008_09_30  | 1214856109 | 1222804799
  8 |          8 |          2 | dtia_2008_09_30 | 1214856271 | 1222804799
  9 |          9 |          1 | dta_2008_12_31  | 1222804801 | 1230757199
 10 |         10 |          2 | dtia_2008_12_31 | 1222804814 | 1230757199
UTM 5.2.1-006, PostgreSQL 8.2.13

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

В документации только эти 2 упомянуты. Помнится, где-то упомянались и другие, но не могу найти, не напомните?

в новостях на сайте, там в 007 еще 3-4 таблички добавили

Аватара пользователя
Lex
NetUP Team
Сообщения: 623
Зарегистрирован: Ср мар 09, 2005 12:12
Откуда: НетАП
Контактная информация:

Сообщение Lex »

Magnum72 писал(а):В документации только эти 2 упомянуты. Помнится, где-то упомянались и другие, но не могу найти, не напомните?

в новостях на сайте, там в 007 еще 3-4 таблички добавили
В списке изменений для 5.2.1-007-rc2:
http://www.netup.ru/articles.php?n=44
Документацию обновим в ближайшее время.

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

Скажите пожалуйста, по какой дате нужно переносить данные из таблицы tel_sessions_log. Это поле recv_date, по аналогии с discount_transactions или session_start_date?

В debug.log сыпятся запросы на выборку из архивных таблиц по полю session_start_date.

Наверное именно по полю session_start_date и нужно переносить в архив?

Ответить