PSQL 8.6 (8.7) и ODBC по iApplicationKind+ApplicationKey (+)
5 (3)
PSQL 8.6 (8.7) и ODBC по iApplicationKind+ApplicationKey (+) ( григ 14.10.2005 13:04 )
3(2)Перешли на PSQL 8.6 - в принципе RS-Bank работает нормально. Но вот IBank, юзающий запросы типа select * from "arhdoc_dbt" where iApplicationKind=2 and ApplicationKey='200509010919450001500104' тормозит капитально. И не только он - в контрол-центре Первазива аналогично происходит. Самое смешное - на тестовой базе убрали флаг "N" из ключа, пересоздали arhdoc.dbt, без изменения ddf. Залетало.
Кто, что может сказать по этому поводу?
>> ОтветитьНу это наверное все-же вопросы к БИФИТу, чего он так тормозит (+) ( Шарак Андрей 14.10.2005 15:11 )
5(1)InterBank летает и на всех билдах восьмерки, хотя тут конечно все проще, транзакционное ядро работает.
Но и новые продукты типа "Экспресс-Кредитование", использующие реляционный доступ к Pervasive (кстати, тоже по JDBC), в том числе и восьмой версии, не тормозит не смотря на все существенные изменения реалиционной части ядра СУБД.
Может они там чего у себя в коде "накрутили"?
>> ОтветитьВряд ли, я же говорю, что обычный запрос в Pervasive Control Center (+) ( григ 17.10.2005 07:36 )
5(1)тоже тормозит - такое впечатление что сам первазив не понимает, что ключ надо брать по указанным в запросе полям, видимо из-за того что ключ с флагом NULL, поэтому перебирает все подряд. Если же пересоздать arhdoc.dbt без флага NULL - все летает.
Затык видимо в самом первазиве, а не в I-Bank-e и RS-Bank-е.
Вопрос: как в запросе принудительно заставить 8.6 (8.7) использовать ключ по iApplicationKind + ApplicationKey?
>> Ответить
Все верно - не пашет ( Lav 26.10.2005 18:07 )
5(1)Мы несколько месяцев с поддержкой бодались, а те, в свою очередь - с Pervasive'овцами. Pervasive не хочет понимать 6 ключ на arhdoc.dbt по непонятным причинам. Индекс действительно не используется. И у программистов в Bifit (они отчаялись решить проблему), и у поддержки RS (они тоже не нашли общий язык с Pervasive, которые затребовали денег для консультации такого уровня! :)))). Так что могу в некоторой степени официально заявить, что рекламируемый на всех углах SQL-доступ к базе RS в общем случае не работает. Тем более, малину портит неиспользование центрового индекса на самой большой таблице.
Алилуйя.
>> Ответитьт.е. денег на консультацию не нашлось и на этом все заглохло? ( Шмаков Алексей 27.10.2005 06:46 )
5(1)Not specified
>> ОтветитьМы на днях проблему решили (+) ( григ 27.10.2005 08:02 )
5(1)Елементарно снесли флаги NULL с ключей document.dbt, index2.dbt, arhdoc.dbt (надеюсь, Р-Стайл не будет нас обвинять в нарушении авторских прав на структуры, просто иначе - никак). Переконвертили (arhdoc - по ночам за неделю управились). Вчера запустили - летает как и раньше. Так что - спасение утопающих, дело рук самих утопающих.
>> ОтветитьКстати, интересно зачем меня выше отсылали к Бифиту, если проблема была известна (-) ( григ 27.10.2005 08:03 )
5(1)Not specified
>> ОтветитьКоню понятно - снесли флаги... ( Lav 27.10.2005 10:06 )
5(1)Не вопрос ключи перекорежить или сделать новый так, чтобы заработало. Подобрать, так сказать :)
Так потом придется каждый раз колупаться при обновлении RS-Bank.. Хотя мы тоже не нашли иного решения. А что делать?! Банк клиент-то через JDBC работает...
А насчет самой проблемы - это, конечно, ни в какие рамки не лезет! Pervasive отказывается решать проблему, да еще когда о помощи просит (крупный?) дистрибьютор их продуктов. А R-Style! слов даже нет.. Денег попросили? Хрен им! Клиенты? работали - и дальше сами перекантуются. Чувствуете всю глубину наших глубин???
>> ОтветитьИнтересно, а под PSQL9 такая же проблема или нет? ( григ 27.10.2005 11:58 )
5(1)Not specified
>> ОтветитьДа, во всяком случае без конвертации баз. ( Lav 27.10.2005 12:02 )
5(1)
PSQL sp3 ( Lav 27.10.2005 17:28 )
5(1)Немного не по теме.. А вы на 8.7 перешли? Если да, то каковы успехи?
>> ОтветитьНа рабочей версии 8.6, на тестовой 8.7 - то же самое (-) ( григ 28.10.2005 07:54 )
5(1)Not specified
>> Ответить
Не было проблем с РС-Банком после такого хака? ( sokols 15.01.2013 10:13 )
5(1)Not specified
>> Ответить8 лет как никак уже прошло, наврядли кто и вспомнит :D ( Ulan 15.01.2013 15:15 )
5(1)Not specified
>> ОтветитьДык наоборот (+) ( sokols 15.01.2013 15:22 )
5(1)Если за 8 лет ни у кого ничего не сломалось - то ОК :-)
До сих пор ведь такая ерунда творится, хотя Первазив уже 10.30, да и тот уже не поддерживается.
Мне вот кажется, что всё норм должно быть, потому что без аппликейшенов в архдоке только 2 записи - TOP и BOT, а к ним по ключу обращаться глупо и бессмысленно.
>> ОтветитьКому интересно - вот ответ саппорта ( Safronoff 23.01.2013 13:57 )
5(1)http://support.softlab.ru/Portal/InterSupport/topic.asp?Id=260346&Page=&System=&SubSystem=&Status=
слов нет....
>> ОтветитьТема с ID 260346 не найдена. Возможно, она непублична или была удалена администратором. ( sokols 23.01.2013 14:52 )
5(1)Not specified
>> ОтветитьУважаемый Вячеслав! ( Панкратьева Анна 23.01.2013 16:45 )
5(1)Данная тема не является публичной, поэтому размещая ее в отрытом доступе, Вы нарушаете соглашение о конфиденциальности.
В настоящий момент Ваш пост удален мной как модератором форума.
Прошу вас в будущем быть более внимательным.
С уважением, Панкратьева Анна
Начальник отдела сопровождения
Департамента банковского ПО RS-Bank
>> Ответитьа почему сразу нельзя было это написать? ( Safronoff 23.01.2013 16:51 )
5(1)и к соглашению: я делал тему публичной, неизвестно по каким причинам консультант ее скрыл и я не могу проверить признак публичности никак, а тема по моему (и не только) мнению очень важна, так как связка из указанных в теме продуктов - очень распространена среди кредитных организаций.
>> ОтветитьДа, давайте разберемся ( AltynbaevIK 23.01.2013 17:32 )
5(1)Очень многие темы, которые я помечаю публичными, остаются закрытым от глаз пользователей поддержки. Почему?
Почему вы так делаете?
Почему клиент не видит Вашего мнения на вопрос публичности темы и в подписи так и остается "Публична по мнению клиента"?
Бывает вот так найдешь ошибку и хочешь предупредить филиал, и даже ссылку на тему не отправишь - закрыто.
>> ОтветитьХм... Интересно-интересно! ( Волшебник 30.01.2013 08:40 )
5(1)А давайте-ка тему на форуме создадим?
И пусть Р-стайл отпишет :)
А то ведь тему в поддержке то можно и не публичной сделать :)
>> ОтветитьОсторожно! Выявляя недостатки системы вы нарушаете политику конфиденциальности ( AltynbaevIK 30.01.2013 09:07 )
5(1)Тему про "двойное дно" публичности тем я создал в i-suppotr и попросил сделать тему обоюдо публичной. Осталось дождаться ответов.
>> Ответитьhttp://support.softlab.ru/Portal/InterSupport/topic.asp?Id=263945 ( AltynbaevIK 30.01.2013 11:22 )
5(1)http://support.softlab.ru/Portal/InterSupport/topic.asp?Id=263945
>> ОтветитьЖертвую собой ( AltynbaevIK 30.01.2013 11:26 )
5(1)Хоть эта тема и не подходит под критерии в ней же описанные, а именно:
"отсутствие в теме клиентских данных " (в теме идет не обезличенное обращение ко мне, Ильгиз Хайдарович),
чтож, пожертвую собой, ради знаний не жалко
>> ОтветитьИнтерпретация "клиентских данных" (+) ( Машкова Юлия 30.01.2013 11:56 )
5(1)несколько иная: здесь подразумеваются данные клиентов банков - физ. и юр. лиц (счета, ФИО, ИНН, паспорта и т.п.).
Если мы будем возможность публичности определять по личным обращениям, публиковать будет нечего ;)
>> Ответить
Проблема не решается без организационных мер со стороны R-Style ( Lav 30.01.2013 13:34 )
5(2)Сразу оговорюсь: приведенные ниже решения найдены на просторах интернета, и я не несу никакой ответственности за последствия их применения.
Суть проблемы: поля в рассматриваемом индексе (iApplicationKind, ApplicationKey) помечены как Nullable. В теории реляционных СУБД null-значения указывают на отсутствие чего бы то ни было, поэтому Brtieve'овские null-ключи не проецируются на PSQL-движок. Таким образом, если бы Pervasive SQL использовал такой индекс при построении плана выполнения запроса, то строки с null в этих полях никогда не попали бы в выборку.
Предлагаемое разработчиками PervasiveSQL решение не документировано, и его поддержка не декларирована для будущих версий СУБД. Чтобы задействовать "Btrieve null key" SQL-движком, нужно сделать настройку в реестре:
[HKEY_LOCAL_MACHINE\SOFTWARE\Pervasive Software\SQL Relational Engine]
"UseBtrieveExcludeNullKey"="YES"
Но нужно помнить, что настройка влияет на весь PSQL-движок и может привести к описанной выше проблеме (исчезнувшим из выборки строкам).
Чит проверен на версии 9.5 - индекс используется.
И раз уж пошла речь о читах горячо любимого PervasiveSQL, вброшу еще один:
"HKLM\Software\Pervasive Software\Utilities Interface\Settings\Restricted Access on WTS Client
Change the value from 1 (Restricted) to 0 (unrestricted), and ANYONE accessing the server via RP will be able to administer the database."
(кому нужно, тот поймет)
Теперь про организационные меры. На мой взгляд, R-Style должен был догадаться о необходимости первичного ключа на таблицах много лет назад. Особенно это касается arhdoc%. Нужно планово простимулировать клиентов, у которых в этих таблицах бардак, разгрести завалы и сделать нормальный PK на столбце ApplicationKey. iApplicationKind убрать из этого индекса, поскольку селективность этого поля настолько мала, что участие его в индексе, а тем более впереди ApplicationKey, не имеет смысла, плюс очень прилично портит многим людям жизнь.
А по-хорошему - сделать все индексы подлежащими использованию в PSQL и исправить все значения полей, которые не способны оказаться в выборке с помощью PSQL (некорректные даты и т.п.).
>> ОтветитьНасколько я понимаю, включение данной настройки конкретно для работы РС-Банка ничем не чревато? ( Волшебник 18.02.2013 10:39 )
5(1)Вроде бы он не использует реляционное ядро? Или я ошибаюсь?
>> Ответитьк RS-Bank'у эта ветка имеет косвенное отношение ( Lav 18.02.2013 11:02 )
5(1)Если используется только RS-Bank, то эта ветка неактуальна.
А если в базу пишут "со стороны" через ODBC/JDBC и т.п., то эффект зависит от содержимого таблиц.
>> Ответитьну кроме бифита больше никто через odbc/jdbc в базу не лезет точно ( Волшебник 18.02.2013 11:05 )
5(1)лезет ( Lav 18.02.2013 11:17 )
5(1)Кроме бифита многие лезут точно. Правда, из-за суровой корявости psql ждать от него больше, чем простую выборку, не приходится,
но MS SQL + linked server к PervasiveSQL позволяют в течение нескольких минут производить довольно сложный анализ и получать всевозможные отчеты,
на реализацию которых с помощью RSL ушло бы многократно больше времени (а многие подобные задачи вообще одноразовые).
ЗЫ 10.10 не тестировали
>> Ответитьну у нас не лезет ничего, это точно :) ( Волшебник 18.02.2013 11:26 )
5(1)не настолько велика у нас база, чтобы заморачиваться с внешними программами.
Скорости хватает и на RSL.
Да и для всевозможных отчетов уже накоплена достаточная база стандартных процедур из которых можно достаточно быстро собрать любой отчет или выборку данных.
Да и все постоянно требующиеся отчеты уже реализованы :)
Ну в общем ладно, сейчас попробуем на тесте включить настройку на десятке.
по результатам отпишусь - вдруг кому пригодится :)
>> Ответитьна десятке работает ( Волшебник 18.02.2013 11:44 )
5(1)полет нормальный :)
>> ОтветитьУ нас нет такой настройки в реестре 10.10.125.000 ( kon13sta 26.09.2013 09:49 )
5(1)У нас нет такой настройки в реестре 10.10.125.000
[HKEY_LOCAL_MACHINE\SOFTWARE\Pervasive Software\SQL Relational Engine]
"UseBtrieveExcludeNullKey"="YES"
у нас в этой ветке только 3-и параметра:
У нас нет такой настройки в реестре 10.10.125.000
- (Default)
- CurrentDateBasedDSTConversion
- OptimizeInnerJoin
>> ОтветитьТам же написано - добавьте настройку. ( Ltybc 26.09.2013 10:06 )
5(1)Правда, нам проще оказалось словарь переделать.
>> ОтветитьСловарь переделать - это ж до первого серьёзного обновления :-) ( sokols 26.09.2013 10:21 )
5(1)Я, правда, тоже по этой скользкой дорожке пошёл
>> Ответить
нас БИФИТ тоже сюда перенаправил ( p2p 07.02.2014 15:29 )
5(1)типа отзыв в БИФИТ у нас убивает мощный сервак потому что у нас рсбанк не правильный.
только вот вопрос - нахрена отзыву платежки клиента лезть в архдок?
БИФИТу озвучиваю - а им что в лоб что по лбу.
ну ладно - если их не переубедить - попробую по этой инструкции сделать.
значит что нужно сделать?
1) включить в первасиве "UseBtrieveExcludeNullKey"="YES", ладно включим. раньше у меня без бифита вообще "Pervasive.SQL (relational)" как сервис был выключен.
2) (кому нужно, тот поймет) - не понял, ну да ладно
3) про организационные вопросы рсбанка, не понял как нужно организоваться клиентам?
п. 2 и 3 - обязательны?
>> ОтветитьБифит не за отзывом лезет, а за синхронизацией. ( Ltybc 07.02.2014 17:10 )
5(1)Для каждого поручения у себя в базе - залазит в RS и смотрим, что там с ним.
А раз у вас глубина синхронизации дней десять, то и лезть в архивные приходится.
>> Ответитьсмысл лезть в архив??+ ( p2p 04.04.2014 12:33 )
5(1)все равно отложить и удалить не сможет.
достаточно если в postdoc нету - выдать сообщение что не могу отозвать так как уже платеж проведен.
>> Ответитьура, мы сделали это - рс поддержка все таки лучшие ( p2p 07.04.2014 17:55 )
5(1)всем спасибо. с помощью этой ветки и поддержки рс.
бифиту - позор, с его поддержкой по емайлу.
и так не получили внятного ответа - зачем бифиту для отзыва лезть в архив!!
>> ОтветитьХочу уточнить ( Vado 08.04.2014 11:01 )
5(1)Вы победили только отзыв документа или вставку УИН в ofkntinf.dbt при выгрузки платежки тоже?
Если и УИН выгружается то как победили?
>> Ответитьда, УИН тоже ( p2p 08.04.2014 11:32 )
5(1)бифит от балды генерит поле Identifier, но в таблицу ofkntinf.dbt запись вставляет.
я потом зашел в рс, на тестовой платежке, которую сделал через бифит - руками завел тот же УИН и сравнил две записи - по полю Identifier - сделал чтоб бифит генерил по шаблону рс - добавил еще один нуль.
теперь УИНы выгружаются. правда у нас все с нулями пока идут.
>> ОтветитьПравильно понимаю ( Vado 08.04.2014 11:37 )
5(1)что пересоздание arhdoc.dbt без ключа N помогло и в выгрузке УИН или для этого еще что-то докручивали в RS-е?
И еще приведите плиз ваш кусок payment.bsh по заполнению ApplicationKey.
>> Ответитьне знаю как помогло пересоздание архдока выгрузке УИНов - связи не вижу ( p2p 08.04.2014 12:56 )
5(1)хотя она есть видимо - потому как включал когда выгрузку УИН на дистрибутивном архдоке - рс вешался.
пересоздали архдок - заработал отзыв и заработали УИНы.
ничо сверестесвенного в моих bsh нету:
//Заполнение ApplicationKey и iApplicationKind SimpleDateFormat sdfk = new SimpleDateFormat("yyyyMMddHHmmss"); String s = sdfk.format (new Date()); String zero="00000000000000000000"; Long absDocID=lib.getABSDocId(); int ind = zero.length()-(s+absDocID).length(); String key=s + zero.substring(0, ind) + absDocID; payment.setField("ApplicationKey",key); payment.setField("iApplicationKind","8"); String PayerAcc = content.getValueByName("PAYER_ACCOUNT"); if (PayerAcc.substring(9, 12) == "036") { payment.setField("Number_Pack", "884"); } else { payment.setField("Number_Pack", "883"); }
и вот от ok...dbt
RSDocumentContent transform() { RSDocumentContent payment = new RSDocumentContent(); DocumentContent content = document.getContent(); payment.setField("UIN", content.getValueByName("CODE")); String idPrefix = "000000000010000000"; String id = idPrefix + bshAppContainer.getiApplicationKind() + bshAppContainer.getApplicationKey(); payment.setField("Identifier", id); return payment; }
>> ОтветитьЭх, чуда не случилось (( ( Vado 08.04.2014 18:58 )
5(1)Убрал N из ключа в arhdoc, пересоздал его, пересоздал ddf-ы.
Попробовал выгрузить тестовую платежку с УИН-ом из Ibank и первасив умер, а в лог-е unload.log
2014-04-08 18:51:32,368 [main] DEBUG - Запрос сформирован 2014-04-08 18:51:32,378 [main] DEBUG - Начало сбора мета информации о таблице ofkntinf 2014-04-08 18:51:32,417 [main] INFO - Тело запроса пусто 2014-04-08 18:51:34,276 [main] ERROR - Ошибка при выгрузке документов java.sql.SQLException: java.io.IOException: LNA session closed at com.pervasive.jdbc.lna.LNAConnection.setConnOpt(Unknown Source) at com.pervasive.jdbc.lna.ConnectionOptions.setAutoCommit(Unknown Source) at com.pervasive.jdbc.v2.Connection.setAutoCommit(Unknown Source) at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317) at com.bifit.converter.rsbank.core.NRSLibrary.closeTransaction(NRSLibrary.java:244) at com.bifit.converter.rsbank.NUnloader.saveDocumentToRsBank(NUnloader.java:443) at com.bifit.converter.rsbank.NUnloader.unloadDocs(NUnloader.java:248) at com.bifit.converter.rsbank.NUnloader.doWork(NUnloader.java:147) at com.bifit.converter.rsbank.NUnloader.main(NUnloader.java:619)
>> ОтветитьТакая же х...ня... ( Волшебник 09.04.2014 01:42 )
5(1)правда еще не ковырялись с пересозданием архдока
>> ОтветитьЭх, чуда не случилось (( ( nlws 09.04.2014 09:31 )
5(1)Вот еще что сказал бифит сделать.
В tables.xml
Добавить или заменить.
<document type="payment" rstable="postdoc_dbt"> <tables> <table columns="UIN:12, Identifier:12">ofkntinf_dbt</table> </tables> </document>
Попросили еще переименовать файл для уинов(bsh) в payment_ofkntinf_dbt.bsh
И сделать его таким. Маску бифит сказал сделать вот такой "00000000001000000";, но p2p определил, что надо больше нулей(после "1") и правильнее так "000000000010000000";
DocumentContent transform() { RSDocumentContent payment = new RSDocumentContent(); DocumentContent content = document.getContent(); payment.setField("UIN", content.getValueByName("CODE")); String idPrefix = "000000000010000000"; String id = idPrefix + bshAppContainer.getiApplicationKind() + bshAppContainer.getApplicationKey(); payment.setField("Identifier", id); return payment; }
>> ОтветитьИ заработало? ( Волшебник 09.04.2014 09:45 )
5(1)Not specified
>> Ответитьда, работает. вот ща накапало кучи доков с УИНами. они кстати бывают еще и буквенные УИНы? + ( p2p 09.04.2014 10:49 )
5(1)а то нападало с буквами посредине.
ща в рейс будем формировать - посмотрим как уйдет.
БИФИТовцы правда говорили что у нас ЦБ не пропустит если мы таким способом вставляли поле Identifier. Но это они бредят
>> ОтветитьИ заработало? ( nlws 09.04.2014 11:39 )
5(1)Да. УИНы выгружает. Отзыв стал наконец работать!
>> Ответить
Гениально ( Vado 09.04.2014 11:30 )
5(1)Спасибо огромное! Теперь все пошло. Странно, что Вам удалось от них получить эту инфу, т.к. мне они до сих пор ничего толкового не ответили.
Теперь осталось попросить Bifit сделать так, что если УИН пустое, то его не выгружать вообще, но это уже мелочи.
>> Ответить
Нас тоже интересует, так как у нас шлюз тупо вешается при попытке что-то записать в базу УИН-ов ( Волшебник 08.04.2014 11:40 )
5(1)Причем вешается вместе с первазивом.
>> Ответитьответил выше ( p2p 08.04.2014 12:57 )
5(1)Not specified
>> Ответитькстате, а вы пересоздали arhdoc.dbt? еще нужно выгрузить словари bank.def и EL_EXCHN.DEF в DDF - ( p2p 08.04.2014 12:58 )
5(1)Not specified
>> ОтветитьАрхдок то пересоздавать зачем? ( Волшебник 08.04.2014 13:03 )
5(1)У нас давно связка с Бифитом по fpplKey+applKind настроена.
Насчет словарей не знаю. Занимался не я. Уточню.
Но подозреваю, что не было сделано это.
>> Ответить