Closed GoogleCodeExporter closed 9 years ago
Удивительно вчера сам с такой проблемой
столкнулся, решается просто в команде
запуска
выдели больше памяти, у меня для
справочника товара в 10000 наименований
установлено
значение выделено для java -Xmx256m.
Original comment by svinin...@gmail.com
on 30 Apr 2009 at 9:46
Проблема еще в том что на кассовых машинах
это максимум памяти.
Original comment by svinin...@gmail.com
on 30 Apr 2009 at 9:46
Тогда только организовывать терминальную
сессию. Проблема при большом количестве
будет и с распечаткой этикеток на все
товары сразу и с справочником товаров.
Ещё вопрос на какой ОС запускаете Openbravo POS?
Original comment by svinin...@gmail.com
on 30 Apr 2009 at 9:50
Чтобы было понятно о чем речь
Openbravo POS выбрал на замену работающей 1С.
На кассовых машинах стоит лицензионная
Винда.
Кассовые машины работают только в режиме
продажи товара для других целей они не
предназначаются. По этому проблемы с
распечаткой этикеток нет.
Номенклатурная база огромная до 6000
наименований.
Количественный оборот товара высокий по
этому необходим партионный учет.
Определение товара производится через
стандартные штрих коды.
Кроме всего имеются именные дисконты
которые тоже анализируются через штрих код.
Отличие в том что на дисконте не
используется стандарт EAN13.
Original comment by wor...@mail.ru
on 30 Apr 2009 at 10:19
По дисконтным картам вам пока ничего не
отвечу, сам над этой проблемой работаю,
недельки через две что-то смогу конкретное
сказать.
По поводу работы с такой номенклатурой
могу предложить увеличить память или
запустить
терминальный сервер к которому будут
подключаться кассы, т.е. принцип тонких
клиентов. Но я так понимаю Вы используете
драйверы оборудование под Windows, по этому
вряд-ли в вашем случае это реализуемо.
По поводу партионного учёта у меня есть
несколько вопрос, ознакомьтесь с ними в Issue 7
Original comment by svinin...@gmail.com
on 30 Apr 2009 at 10:59
Частичное решение проблемы с большим
количеством записей
Ищем строчку в файле JCatalog.java
tnbbutton = new ThumbNailBuilder(width, height,
"com/openbravo/images/package.png");
и изменяем ее на
tnbbutton = new ThumbNailBuilder(500, 12, "com/openbravo/images/package1.png" );
При этом надо добавить прикрепленный фай в
каталог com/openbravo/images
При кол-ве 1800 наименований OpenBravoPOS Съел на 40
метров памяти меньше
Original comment by wor...@mail.ru
on 4 May 2009 at 6:54
Attachments:
В принципе можно вообще попробовать убрать
картинки предпросмотра. Другой вопрос если
они нужны, что делать?
Original comment by svinin...@gmail.com
on 4 May 2009 at 9:01
нужен флаг в настройках который и будет
отвечать за вывод иконок
Original comment by wor...@mail.ru
on 4 May 2009 at 9:31
> При загрузке большого количества
наименований у меня было 5600.
Поделитесь секретом как грузили такое
кол-во в бд?
Original comment by StalinPo...@gmail.com
on 5 May 2009 at 8:49
Генерировал в Pentaho Data Integration, а затем
обновлял записи в базе.
Original comment by svinin...@gmail.com
on 6 May 2009 at 3:21
Выложил схему. Проверти настройки для
Вашего сервера БД, в моём случае
предполагается
использование MySQL
Original comment by svinin...@gmail.com
on 6 May 2009 at 4:02
Attachments:
Я грузил через шлюз в виде Аксеса т.к. у меня
источник данных 1С грузиться очень
быстро хотя база очень большая.
Схематично выглядит так 1c-Access-mysql использую
источник ODBC MySQL & FoxODBC
Original comment by wor...@mail.ru
on 6 May 2009 at 7:23
Я использую PDI вместо MS Access, из-за его
кросплатформенности и свободности. Вместо
ODBC я использую JDBC, а так в принципе решение
аналогичное. Кроме этого в
предлагаемом алгоритме Generate Products.ktr в
качестве эксперимента по порядку
генерируются коды товаров, а в случайном
порядке названия товаров и цены закупки.
Но возникли некоторые проблемы при
заполнении БД, связанные с скоростью
добавления
записей в таблицу товаров БД Openbravo POS, при
заполнении средняя скорость 15-20
строк/с, т.е. для 100 тысяч записей это около 1
часа. Необходимая скорость около
30-40 строк/с, т.е. около 30 минут на
заполнение/обновление.
Вопрос, отчего зависит скорость
обновления/добавления записей в БД MySQL?
Какие оптимальные настройки параметров
сервера MySQL необходимы для увеличения
показателя скорости?
Какое железо необходимо для повышения
скорости до требуемого уровня?
Original comment by svinin...@gmail.com
on 6 May 2009 at 1:55
Надо проанализировать 2 момента
1) Какова скорость чтения из базы источника
т.е. с какой скоростью вы получаете эти
данные. Ошибки в основном в запросах к базе
их оптимизация. Если у Вас используются
циклы при выборке то будет очень долго.
2) Попробуйте заменить драйвер JDBC на тот-же
ODBC и посмотрите изменение скорости
Original comment by wor...@mail.ru
on 6 May 2009 at 3:40
Продолжаем эксперимент.
Загружаем 100.000 товаров в базу через PDI
занимает это около 8 часов.
Заменяем картинку.
Запускаем с выделением 1 Гбайта памяти
-Xmx1024m, всего на машине где запускается
клиент 2Гбайта памяти.
Ждём около 5 минут, панель Продаж работает,
панель Товаров тоже, при работе всё быстро.
Выходим и снова пытаемся запустить, памяти
опять не хватает.
Похоже всё таки для такого объёма товаров
программа всё таки не оптимизирована, а
соответственно не предназначена. Буду
переписываться с разработчиками может,
что-то
подскажут и помогут
[http://forge.openbravo.com/plugins/espforum/view.php?group_id=101&forumid=43492
1&topicid=6994638#6994638].
Original comment by svinin...@gmail.com
on 8 May 2009 at 6:14
Получил ответ от разработчиков.
Оказывается проблема известна
https://issues.openbravo.com/view.php?id=7624 с февраля 2009 года,
планировали
устранить в версии 2.30, но перенесли решение
на версию 2.40. Так что будем ждать.
Для нетерпеливых могу рекомендовать
закоментировать следующие строки в JCatalog.java:
java.util.List<ProductInfoExt> products = m_dlSales.getProductCatalog(catid);
for (ProductInfoExt prod : products) {
jcurrTab.addButton(new ImageIcon(tnbbutton.getThumbNailText(prod.getImage(),
getProductLabel(prod))), new SelectedAction(prod));
}
Но в этом случае пользователи смогут
искать товары только по штрих коду.
Данное решение не касается работы с окном
Товары и различных диалогов поиска по
товару без применения масок в фильтре.
Работа с данными функциями при 100k записей
товаров работает медленно, но при задании
параметра -Xmx512m, иначе всё равно
программа выходит на "OutOfMemoryError".
Original comment by svinin...@gmail.com
on 8 May 2009 at 9:16
Есть еще предложение как уменьшить
нагрузку на компьютер в запросе который
делает
выборку товара надо установить лимит для
вывода на экран в виде top 100. Уменьшение
нагрузки поможет сделать подчинение
товара к каталогу. в этом случае выборка
будет
делаться уже узко направленно. Как пример
Когда делаете загрузку создавайте группы
хотя-бы используя алфавитный указатель.
Original comment by wor...@mail.ru
on 17 Jul 2009 at 2:08
Попробовал внести усовершенствование в
исходный код введя параметр отвечающий за
вывод каталога по товарам внизу панели в
окне Продажи, это позволит избавится от
проблемы загрузки большого количества при
продаже.
Необходимые изменения исходного кода
находятся в r204.
Для применения необходимо в ресурсе
Ticket.Buttons снять комментарий с строки:
<catvisible value="false" />
Original comment by svinin...@gmail.com
on 24 Sep 2009 at 8:22
Для выбора товара из списка может быть
использовано окно Список товаров.
Original comment by svinin...@gmail.com
on 24 Sep 2009 at 8:39
Attachments:
Также сейчас в окне Список товаров стало
доступен поиск на русском языке. Issue 111
Original comment by svinin...@gmail.com
on 13 Apr 2011 at 9:17
Original comment by svinin...@gmail.com
on 13 Apr 2011 at 9:17
Original comment by svinin...@gmail.com
on 18 Apr 2011 at 2:11
Добрый день,
А где можно скачать эту версию?
Original comment by setsen_b...@yahoo.com
on 15 Sep 2012 at 6:36
В Downloads Новогодняя версия 2012 содержит эти
изменения
Original comment by svinin...@gmail.com
on 15 Sep 2012 at 5:02
Original issue reported on code.google.com by
svinin...@gmail.com
on 30 Apr 2009 at 9:45