Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Спрошу на всякий случай, может кто использует драйвера для nodejs отсюда:

https://github.com/asfernandes/node-firebird-drivers

Постоянно сталкиваемся с проблемами. Node падает вместе с драйвером с кодами выхода 3221225477 и 3221226505. Это access violation и stack overflow. Разработчик пока не сильно помогает. Похоже, что никто интенсивно этот драйвер не использует.

PS: может кто сталкивался, насколько трудоемок будет процесс самому установить MS Visual Studio, перекомпилировать драйвер, подключить его в Node и проверить что к чему?
31 дек 18, 18:03    [21777183]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
sysdba22,

ну ты время нашёл к разработчику обращаться. Через 3-4 дня обратись
31 дек 18, 18:09    [21777188]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

sysdba22
Похоже, что никто интенсивно этот драйвер не использует.

Никто интенсивно не использует nodejs. Назачем было выбирать такую экзотику? Решили
сэкономить на программистах, набрав школьников, поднаторевших в JavaScript? Так школьники
с PHP не дороже.

Posted via ActualForum NNTP Server 1.5

31 дек 18, 18:13    [21777194]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Коваленко Дмитрий
Member

Откуда: Липецк
Сообщений: 539
Симонов Денис
sysdba22,

ну ты время нашёл к разработчику обращаться. Через 3-4 дня обратись


Нормальное время.
31 дек 18, 18:44    [21777204]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6147
sysdba22
Спрошу на всякий случай, может кто использует драйвера для nodejs отсюда:

https://github.com/asfernandes/node-firebird-drivers

Постоянно сталкиваемся с проблемами. Node падает вместе с драйвером с кодами выхода 3221225477 и 3221226505. Это access violation и stack overflow. Разработчик пока не сильно помогает. Похоже, что никто интенсивно этот драйвер не использует.

PS: может кто сталкивался, насколько трудоемок будет процесс самому установить MS Visual Studio, перекомпилировать драйвер, подключить его в Node и проверить что к чему?
Зачем студия? Драйвер на TypeScript написан
31 дек 18, 21:02    [21777228]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6147
Там есть модульные тесты - надо их прогнать и посмотреть результат
31 дек 18, 21:05    [21777229]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Пока вроде подправили у себя, ошибки пока нет. Дальше будем смотреть. На nodejs остановились по следующим причинам:

За спиной 25 лет опыта Pascal - Delphi - Firebird. Платформа на 1.6 млн строк исходного кода + сотни прикладных решений на её базе.

Но, естественно, сейчас всё это слегка устаревает. Люди хотят работать в браузерах с любого устройства, из любой точки мира и под любой операционной системой. Да и программиста на Делфи сейчас уже найти днём с огнём... Старые на пенсию уходят, а молодеж и слышать о таком не хочет. Особенно в Минске, где все избалованы работой на офшорных конторах.

Почему решили смотреть на nodejs:

1. Изоморфный код. Т.е. один и тот же код может крутиться как в браузере, так и на сервере. Это важно, так
как остается свобода выбора -- можно выполнять некоторую задачу на сервере, можно на клиенте. Код один,
компоненты одни и т.п.

2. Удобно для небольшого колектива разработчиков так как не надо делить на фронтов и бэков.

3. В нашей платформе пользователь имеет возможность настраивать алгоритмы/вычисления под себя. Мы стараемся максимально включить декларативное описание и блок схемы, но все равно придется и просто код писать. Возникает вопрос на чём?
В нашей существующей платформе мы используем VBScript, который удобен своим примитивизмом. Т.е. даже далёкий от
серьезного программирования человек способен быстро усвоить пару простых понятий и начать программировать
алгоритмы. Но VBScript встроен в Windows, а на остальных платформах его нет... Возникает вопрос, что использовать?
И тут Java Script всегда под рукой. Мы ведь работаем в браузере, где он есть всегда, а nodejs позволяет его использовать и на
сервере.

Но, я сейчас провожу обширные тесты и честно говоря не в восторге от nodejs.

Скорость! Эта штука крайне медленная. Я сравниваю доступ к БД Firebird с Делфи и позже выложу сюда результаты.
Они удручают, сразу скажу.

Длительные вычисления необходимо выносить в child_process со всеми вытекающими проблемами.


Может кто-то из присутствующих здесь имеет опыт решения подобных задач в современных реалиях? Я с большой признательностью выслушаю советы. Возможно, есть удобное и признанное решение, которое я просто не знаю.
13 янв 19, 17:22    [21784088]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
sysdba22
Удобно для небольшого колектива разработчиков так как не надо делить на фронтов и бэков.


преимущество сомнительное. Тем более что всё равно на клиентской стороне приходится знать дополнительно CSS и html.
Язык то вроде один, но вот уровни владения разные. В браузерах надо думать о том, а будет ли сия возможность поддерживаться, ибо уровни соответствия ECMA 6 везде разные, некоторые и дальше 5 не ушли. В ноде вы там можете очень широко развернуться.
13 янв 19, 17:35    [21784091]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
а вот и тесты. во сколько раз nodejs медленнее делфи при последовательном выполненнии задач, во столько же раз быстрее при параллельном...

https://docs.google.com/spreadsheets/d/1YEFv_O_-QiMHbHgBUNwe7yJuyFPui54OUXzXLyjQywQ/edit?usp=sharing
13 янв 19, 19:26    [21784152]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Vlad F
Member

Откуда:
Сообщений: 779
sysdba22,

Оно, конечно же, еще как именно там внутри у вас организовано. Но что то я, однако, сомневаюсь про отставание Delphi в параллельном. Ибо я его и на C++ с кодом, в принципе один-в-один никак не догоню.
13 янв 19, 19:40    [21784161]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
Vlad F,

он в дельфи без пулов делал. Поэтому не удивительно
13 янв 19, 19:43    [21784167]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Нить на делфи выглядит так:

type
  TDBThread = class(TThread)
  public
    tr: TIBTransaction;
    SL: TStringList;

    constructor Create;
    destructor Destroy; override;

    procedure Execute; override;
  end;

constructor TDBThread.Create;
begin
  inherited Create(True);
  SL := TSTRingList.Create;
end;

destructor TDBThread.Destroy;
begin
  SL.Free;
  inherited;
end;

procedure TDBThread.Execute;
var
  q: TIBSQL;
  J: Integer;
begin
  q := TIBSQL.Create(nil);
  try
    q.Transaction := Tr;
    q.SQL.Text := 'SELECT FIRST 1 * FROM GD_CONTACT';
    q.ExecQuery;
    if not q.EOF then
    begin
      SL.Add(q.FieldByName('name').AsString);
    end;
    q.Close;
  finally
    q.Free;
  end;
end;


код теста так:

procedure TfrmGedeminMain.TBItem32Click(Sender: TObject);
var
  db: TIBDatabase;
  Tr: TIBTransaction;
  I, T, J: Integer;
  OL: TObjectList;
  Thread: TDBThread;
begin
  db := TIBDatabase.Create(nil);
  Tr := TIBTransaction.Create(nil);
  OL := TObjectList.Create(True);
  try
    db.LoginPrompt := False;
    db.SQLDialect := 3;
    db.Params.Clear;
    db.Params.Add('user_name=SYSDBA');
    db.Params.Add('password=***');
    db.DatabaseName := '*****';
    db.Connected := True;

    Tr.DefaultDatabase := db;
    Tr.StartTransaction;

    for I := 1 to cnt do
    begin
      Thread := TDBThread.Create;
      Thread.tr := tr;
      OL.Add(Thread);
    end;

    T := GetTickCount;

    for I := 0 to cnt - 1 do
    begin
      (OL.Items[I] as TDBThread).Resume;
    end;

    for I := 0 to cnt - 1 do
    begin
      (OL.Items[I] as TDBThread).WaitFor;
    end;

    MessageBox(0,
      PChar(IntToStr(Round(cnt / (GetTickCount - T) * 1000)) + ' req/sec'),
      'Внимание',
      MB_OK or MB_ICONINFORMATION or MB_TASKMODAL);

    Tr.Commit;
  finally
    OL.Free;
    Tr.Free;
    db.Free;
  end;
end;


код теста на nodejs:

const  { Factory } = require("gdmn-db");
const { performance } = require('perf_hooks');

async function test() {
  const connection = Factory.FBDriver.newConnection();
  await connection.connect({
    server: {
      host: "***",
      port: 3053
    },
    username: "SYSDBA",
    password: "***",
    path: "***"
  });

  const arr = [];
  const res = [];
  const cnt = 750;
  const transaction = await connection.startTransaction();
  const startTime = performance.now();

  for (let i = 0; i < cnt; i++) {
    arr.push(
      async () => {
        const q = await connection.executeQuery(transaction, `SELECT FIRST 1 * FROM GD_CONTACT`);
        if (await q.next()) {
          res.push(q.getString("NAME"));
        }
        return q.close();
      }
    )
  }

  await Promise.all(arr.map( f => f() ));

  const endTime = performance.now();
  await transaction.commit();
  console.log(res);
  console.log(`${Math.round(cnt / (endTime - startTime) * 1000)} req/sec`);
  console.log(process.memoryUsage());

  await connection.disconnect();
}

test();
13 янв 19, 19:47    [21784176]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
честно говоря, в драйвере для нода настоящий ад с преобразованием типов из буфера фб. и оно очень затратное. это хорошо видно на тесте. там где много (записей * полей) сразу огромное отставание в последовательном тесте или умеренное преимущество в параллельном. но, как только уменьшается количество и мы работаем с конкретной записью/полем так сразу разрыв начинает увеличиваться.

и для справедливости, надо сказать что класс в nodejs для работы с набором данных скорее похож на TDataSet в делфи. а я для теста использую в делфи TIBSQL, который ЗНАЧИТЕЛЬНО быстрее чем TDataSet так как держит внутри себя просто буфер, переданный из Firebird и преобразовывает данные только в момент обращения.

Т.е. в тесте, где мы открываем запрос, затем бежим 1000 записей, затем считываем поле NAME. Код nodejs выполнит где-то 95 000 преобразований из буфера Firebird в родные типы Java Script, а код на Delphi только одно -- кода будет считываться поле name.

Посмотрю, может заменю TIBSQL на TIBDATASET чтобы сравнимые вещи сравнивать.
13 янв 19, 19:56    [21784191]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Vlad F
Member

Откуда:
Сообщений: 779
sysdba22,

Ваш тест в части Delphi полная туфта. Ожидал большего профессионализма от специалистов Гедымина,
но теперь начинаю догадываться о причинах поиска других платформ. На Delphi же в настоящее время в
многопоточном режиме одним из самых узких мест являются обращения к менеджеру памяти, коих я в вашем
.Execute(), не считая .ExecQuery, насчитал целых пять штук. В то время как в альтернативном варианте все
аналоги вынесены за пределы цикла. Вы не находите, что по меньшей мере не солидно транслировать
сделанные на основани всех этих "недочетов"выводы на все союзное государство?))
13 янв 19, 20:24    [21784219]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
ох, чем мне нравятся русскоязычные форумы это их доброжелательностью ))

приведен простой код на делфи без мега оптимизаций и ухищрений и такой же простой код на node.

оба кода выполняют одну и ту же задачу, на одной и той же машине, с одной и той же базой данных.

в чем проблема? у делфи менеджер памяти не такой как надо? зато у node 888 слоев преобразования
данных между c++ и javascript. да еще и параллельно работающий gc.
13 янв 19, 20:33    [21784228]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

Vlad F
На Delphi же в настоящее время в
многопоточном режиме одним из самых узких мест являются обращения к менеджеру памяти

Брось, не такое уж он и узкое место. И прокололись они в этом тесте совсем не на нём. 750
настоящих потоков против 750 запросов к пулу из четырёх потоков - вот где собака порылась.

Posted via ActualForum NNTP Server 1.5

13 янв 19, 21:07    [21784245]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Vlad F
Member

Откуда:
Сообщений: 779
sysdba22,

Возможно, мы здесь и не ласковы, но, видимо, в иноязычных тоже ничему путному не научили.
И я не про мегаоптимизации, а всего лишь, про грамотное построение многопоточного конвеера.
Проблемы в менеджере памяти Delphi в том, что он блокировочный. Помести в паскалевский .Execute
цикл на десяток миллионов ExecQuery, а результат в том же цикле цикле забирай через .Fields[nn].
Аналогичный цикл, не сочти за труд, соорудить внутри, а не снаружи потоковой функции
альтернативного языка и только тогда можно будет о чем то аргументированно говорить.
Иначе к озвученным результатам нет и не может быть никакого доверия, ибо они получены
в совершенно неравных условиях.
13 янв 19, 21:17    [21784248]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Vlad F
Member

Откуда:
Сообщений: 779
Dimitry Sibiryakov,

А вот посмотрим, если смелый экспериментатор внемлется к советам.))
13 янв 19, 21:20    [21784250]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Задача стояла проверить на коротком примере ШТАТНЫЕ средства организации параллельных вычислений ноды и дельфи. Она выполнена.

То что предлагаете Вы звучит так: взять на ноде простенький пример на 20 строчек и сравнивать его со специально написанной оптимизированной программой, по сути эмулирующей основную идею нода. у меня не было задачи сравнивать производительность нода с производительностью нода, написанного на делфи.

и вот почему: повторение архитектуры ноды повторит не только ее плюсы, но и ее минусы. Чего мне как раз таки и не надо.

Потоки в Гедымине конечно же не выглядят так просто. Вот базовый класс потока, управляемого сообщениями:

https://github.com/GoldenSoftwareLtd/gedemin/blob/b78c077d4d6018d6cded76894d8e6365b82deddf/Gedemin/Component/gdMessagedThread.pas

а вот один из классов нити, на базе TgdMessagedThread:

https://github.com/GoldenSoftwareLtd/gedemin/blob/b78c077d4d6018d6cded76894d8e6365b82deddf/Gedemin/Component/gd_WebClientControl_unit.pas#L59
13 янв 19, 22:10    [21784275]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
sysdba22
Задача стояла проверить на коротком примере ШТАТНЫЕ средства...

А смысл?
13 янв 19, 22:13    [21784279]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
sysdba22,

действительно какой смысл? так можно и на C++ без оптимизаций написать, а потом сделать вывод что потоки С++ не оптимальны
13 янв 19, 22:28    [21784288]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Сергей Фролов
Member

Откуда:
Сообщений: 1328
Предлагаю забить на веб, который модно-молодежный.
И сделать так, чтобы Гедымин просто работал через Интернет. 99.9% хотелок пользователей это решение закроет. Те, инвалиды, которые хотят браузер, пусть в ВК и ОК работают.
13 янв 19, 22:35    [21784301]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Сергей Фролов,

это именно то, что я думаю о текущей ситуации... но есть такая неприятная вещь, как тендеры. где в последнее время поголовно начали включать требования в виде "веб интерфейса", "работы под операционной системой с открытым исходным кодом" и т.п.
13 янв 19, 22:50    [21784313]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

sysdba22
Задача стояла проверить на коротком примере ШТАТНЫЕ средства организации параллельных
вычислений ноды и дельфи. Она выполнена.

Прэлестно, но у меня для тебя есть плохая новость: в пределах одного коннекта Firebird
параллельной работы быть не может, вызовы API жёстко сериализуются.

Posted via ActualForum NNTP Server 1.5

13 янв 19, 23:03    [21784321]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6147
sysdba22
Пока вроде подправили у себя, ошибки пока нет.....

В чем проблема то была ?
14 янв 19, 00:56    [21784395]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Dimitry Sibiryakov
Прэлестно, но у меня для тебя есть плохая новость: в пределах одного коннекта Firebird
параллельной работы быть не может, вызовы API жёстко сериализуются.


вы рушите мои представления об этом мире )) теперь бы понять почему тогда такие разные цифры получаются.
14 янв 19, 05:00    [21784454]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1551
sysdba22
Задача стояла проверить на коротком примере ШТАТНЫЕ средства организации параллельных вычислений ноды и дельфи. Она выполнена.

нода это все таки не про параллельные вычисления, а про concurrency

sysdba22
Скорость! Эта штука крайне медленная. Я сравниваю доступ к БД Firebird с Делфи и позже выложу сюда результаты.
Они удручают, сразу скажу.

первое: как и сказали, сравнивал ты теплое с мягким

второе: то ли ты измеряешь?
так ли критично для конечного пользователя что данные будут получены из БД за 10мс или 50мс (для примера), когда у него пинг за 100мс? Кроме фетча данных в сервисе будет много другой работы. Вот если сделать прототип хотябы с парой методов на делфи и ноде, который отдает данные из БД в JSON формате, и протестировать их в 1, 5, 10, 20 потоков. Вот тут уже можно делать какие-то выводы.

зы
нода как платформа для веба вполне себе и довольно зрелая
14 янв 19, 08:10    [21784466]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Сергей Фролов
Member

Откуда:
Сообщений: 1328
sysdba22
есть такая неприятная вещь, как тендеры. где в последнее время поголовно начали включать требования в виде "веб интерфейса", "работы под операционной системой с открытым исходным кодом" и т.п.

С требованиями веб-интерфейса действительно ничего не сделать, а вот с работой под Linux есть варианты в виде перевода на FreePascal или использования библиотеки от Крюкова. Сам я ее, правда, не тестировал, ибо не требуется. Но демо вполне рабочее.
14 янв 19, 10:03    [21784505]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
DmSer
Member

Откуда: Пенза
Сообщений: 820
или использования библиотеки от Крюкова


Скорее всего IBX в линуксе использовать не получится.
14 янв 19, 13:33    [21784692]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
DmSer,

под FreePascal давно порт IBX есть
14 янв 19, 13:36    [21784694]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
DmSer
Member

Откуда: Пенза
Сообщений: 820
sysdba22
а вот и тесты. во сколько раз nodejs медленнее делфи при последовательном выполненнии задач, во столько же раз быстрее при параллельном...

https://docs.google.com/spreadsheets/d/1YEFv_O_-QiMHbHgBUNwe7yJuyFPui54OUXzXLyjQywQ/edit?usp=sharing


В Delphi 750 потоков я нашел. А где потоки в js? Вижу только await'ы.
14 янв 19, 13:43    [21784702]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1551
DmSer
А где потоки в js? Вижу только await'ы.

он там один
14 янв 19, 13:45    [21784707]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
DmSer
Member

Откуда: Пенза
Сообщений: 820
Dimitry Sibiryakov
750 запросов к пулу из четырёх потоков - вот где собака порылась.


А где там 4 потока? Откуда информация?
14 янв 19, 14:00    [21784726]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
DmSer,

да похоже тут вообще ни потоков ни пула. Кстати по ноде был пример с пулом коннектов причём для Firebird
14 янв 19, 14:05    [21784731]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

DmSer
А где там 4 потока? Откуда информация?

От балды.

Posted via ActualForum NNTP Server 1.5

14 янв 19, 14:08    [21784733]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27939
DmSer
Скорее всего IBX в линуксе использовать не получится.

есть порт какого-то IBX2 для лазаря.
14 янв 19, 14:18    [21784743]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
sysdba22,

https://habr.com/post/139708/
14 янв 19, 14:29    [21784764]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Быстро спрошу у знающих людей. Под Freepascal 64 есть библиотеки для доступа к ФБ. Они штатные, или надо что то отдельно искать и ставить?
14 янв 19, 23:48    [21785295]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
sysdba22,

что ты понимаешь под словом "штатные"?
15 янв 19, 00:14    [21785308]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
как в Делфи, например, устанавливаешь и там есть IBX.
15 янв 19, 00:54    [21785314]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

Насколько я помню, устанавливаешь его и там есть ibase.pas.

Posted via ActualForum NNTP Server 1.5

15 янв 19, 01:21    [21785315]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
DmSer
Member

Откуда: Пенза
Сообщений: 820
sysdba22
как в Делфи, например, устанавливаешь и там есть IBX.


Устанавливаешь и ставишь IBX через OnlinePackageManager. Причем IBX для Лазаруса куда более навороченный, чем для Делфи, для него регулярно выпускают обновления.
15 янв 19, 10:44    [21785429]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8283
sysdba22
Быстро спрошу у знающих людей. Под Freepascal 64 есть библиотеки для доступа к ФБ. Они штатные, или надо что то отдельно искать и ставить?
Ткнул пипку "Установка в 1 клик" на сайте OpenSuse.org, лазарь прилетел (притащил себя и своих либ примерно на 1 гиг), ibx уже есть, ничего более не качал. Набросал свою первую консольную прогу под linux64 бит, вполне себе работает вместо старинного виндового сервиса.
15 янв 19, 14:38    [21785733]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Док
Member

Откуда: Казань
Сообщений: 6131
DmSer
IBX для Лазаруса куда более навороченный

смотря, что считать "наворотами". Клиент все равно грузится статически, аналогично дельфевому предку. Автор предлагает править переменную окружения FBLIB, но не знает, почему это не срабатывает на Windows. Сам он, похоже, пишет компонент под линуксом.

Единственная разумная альтернатива - форк от -Rik-.
15 янв 19, 14:46    [21785748]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 155
Что-то пока никто Firebird.pas из штатной поставки 3ки не предложил.
Оно, вроде бы с небольшими фиксами подо все паскали идёт. :)
17 янв 19, 09:58    [21787517]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
Tonal,

сам-то с ним работаешь?
Там надо вокруг этого API свою обёртку писать иначе замучишься простейшие вещи делать.
17 янв 19, 10:22    [21787550]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29835

17.01.2019 9:58, Tonal пишет:
> Что-то пока никто *Firebird.pas* из штатной поставки 3ки не предложил.
> Оно, вроде бы с небольшими фиксами подо все паскали идёт. :)

запишите меня в ретрограды, но я скажу:
новый АПИ, это как аппендикс - природой зачем-то создан,
но нахрена, этого не знают даже бретанские учОные...

--
Регардсы и прочее

Posted via ActualForum NNTP Server 1.5

17 янв 19, 10:46    [21787578]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
Мимопроходящий,

для UDR и плагинов. А на прикладном уровне и через старый неплохо работается
17 янв 19, 11:31    [21787625]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 6851
Симонов Денис,

еще для новых драйверов и низкоуровневых апи-писателей. Ибо SQLDA это Ад и Израиль (с)
17 янв 19, 11:51    [21787654]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29835

17.01.2019 11:31, Симонов Денис пишет:
> для UDR и плагинов. А на прикладном уровне и через старый неплохо работается

PSQL-функции == благо и добро есть.
UDR имплементированные в PSQL-функции == зло вселенское!
даже как иллюстрация замены UDF.

--
Регардсы и прочее.

Posted via ActualForum NNTP Server 1.5

17 янв 19, 11:55    [21787664]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
Мимопроходящий,

смотря для каких целей. Тупо писать UDF/UDR вместо PSQL функции конечно глупо.
А вот доступ к внешним данным (БД и даже не БД) например через UDR процедуры совсем другое дело.
Ну и ещё кое-какие манипуляции с BLOB. Я пробовал писать split по разделителю. Скорость примерно в 100 раз выше
17 янв 19, 12:05    [21787688]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

dimitr
SQLDA это Ад и Израиль (с)

Вот только (в отличии от) оно позволяет:
1) Легко подменить тип передаваемого значения;
2) Распихать значения в совершенно отдельные буфера.

Posted via ActualForum NNTP Server 1.5

17 янв 19, 13:33    [21787817]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 6851
Dimitry Sibiryakov
1) Легко подменить тип передаваемого значения

metadata->getBuilder()->setType() это так сложно? Или оно не работает?
17 янв 19, 13:45    [21787846]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47382

dimitr
metadata->getBuilder()->setType() это так сложно? Или оно не работает?

Именно в таком виде оно таки не работает, ибо полученный билдер не изменяет старое
metadata, а создаёт новое, под которое надо выделять новый message буфер, заново наливать
в него данные и вообще совершать кучу прыжков в ширину.

Кстати, я уже не говорю о том, что этот буфер имеет фиксированный (весьма дубовый) формат,
а попытка создать свой наследник от IMеssageMetadata со своим форматом буфера обречена на
провал.

Posted via ActualForum NNTP Server 1.5

17 янв 19, 13:59    [21787857]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Коваленко Дмитрий
Member

Откуда: Липецк
Сообщений: 539
dimitr
Симонов Денис,

еще для новых драйверов и низкоуровневых апи-писателей.


USUS (c) моё
17 янв 19, 19:24    [21788273]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6147
Siemargl
sysdba22
Пока вроде подправили у себя, ошибки пока нет.....

В чем проблема то была ?
???
17 янв 19, 23:11    [21788354]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
Кому интересно, вроде как подправили ошибку.

Дело было в следующем, сам нод имеет одну петлю сообщений, но нативные библиотеки могут выполняться параллельно, используя пул нитей.

Драйвер выделял блоки памяти в ноде под параметры конектов, транзакций и т.п., заполнял их и передавал дальше, в нативный код.

При небольшой загрузке, все работало как часы. Но, при большой, возникала очередь на стороне внутреннего пула нитей ноды. Пока там код ждал своей возможности обратиться к драйверу фб, нода успевала запустить сборщик мусора и уничтожить или передвинуть выделенный блок в памяти. После чего, естественно, на стороне драйвера вылетал AV.

Сейчас память выделяется так, чтобы ее не трогал сборщик мусора. Пока вроде работает. Новая версия драйвера в гитхабе.

Спасибо Фернандесу.
9 фев 19, 11:48    [21805128]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Arioch
Member

Откуда:
Сообщений: 10807
sysdba22
Спрошу на всякий случай, может кто использует драйвера для nodejs отсюда:

https://github.com/asfernandes/node-firebird-drivers


А почему не Анри? https://github.com/hgourvest/node-firebird

во всяком случае под delphi и firebird он в своё время много библиотек писал, хотя сам по себе человек... необщительный.
12 фев 19, 14:50    [21807463]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
sysdba22
Member

Откуда:
Сообщений: 188
уже не помню ))

скорее всего выбрали фернандеса так как нам нужен был низкоуровневый доступ.

мы сделали свой высокоуровневый слой доступа к бд, который внизу может подключаться к разным бд.
13 фев 19, 09:50    [21808068]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
RWolf
Member

Откуда: Казань
Сообщений: 425
Куда уж низкоуровневее — драйвер от hgourvest пишет данные прямо в TCP-соединение, без использования fbclient.
13 фев 19, 10:23    [21808106]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1551
это еще не означает что там реализовано все возможности libfbclient, что нет проблем с производительностью, все это надо тестировать
внутрянку тоже посмотреть не помешает, ибо экосистема js уж больно реактивная, сегодня автор есть - завтра нет, надо понимать, что риск лезть туда самум довольно высок

зы
есть ли поддержка евентов?
есть ли там возможность поиграться tpb?
не редкая болезнь драйверописателей - они лучше знают какие параметры мне нужны, а еще commit retaining вместо commit
13 фев 19, 10:41    [21808124]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 6851
Адриано начал свой драйвер в том числе и потому, что Анри подзабил на свой. На тот момент у Анри не было ни поддержки фич ФБ3, ни совместимости с последней нодой. Подтянулся ли он сейчас - не знаю, не слежу.
13 фев 19, 10:49    [21808143]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
RWolf
Member

Откуда: Казань
Сообщений: 425
Я использую пакет node-firebird-dev, это форк hgourvest/node-firebird, из которого фичи периодически (редко) сбрасываются в основной репозиторий. Эвенты есть, commit retaining есть, транзакции принимают произвольный набор isc_tpb_*.
Из недостатков — устаревший протокол обмена (работа с FB 3.0 возможна только через legacy_auth)
13 фев 19, 11:04    [21808159]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1551
RWolf
Эвенты есть

я про евенты FB
RWolf
commit retaining

в топку его
13 фев 19, 11:16    [21808176]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
RWolf
Member

Откуда: Казань
Сообщений: 425
Дегтярев Евгений
я про евенты FB

Так и я про них. Собственно, ради эвентов и использую.

Дегтярев Евгений
в топку его

Ну, это так, к слову пришлось. Есть и нормальный коммит, конечно.
13 фев 19, 11:20    [21808182]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1551
RWolf,

чет в ридми не увидел про евенты
13 фев 19, 11:32    [21808201]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
RWolf
Member

Откуда: Казань
Сообщений: 425
В ридми этого нет.
https://github.com/sdnetwork/node-firebird/blob/master/lib/index.js#L1778
13 фев 19, 11:38    [21808214]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1551
ок

зы
автор
ISOLATION_READ_COMMITED_READ_ONLY = [ISC_TPB.version3, ISC_TPB.read, ISC_TPB.wait, ISC_TPB.read_committed, ISC_TPB.no_rec_version];

а последний параметр не должен быть rec_version?
13 фев 19, 11:49    [21808232]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
RWolf
Member

Откуда: Казань
Сообщений: 425
Дегтярев Евгений,

Должен быть, это автор драйвера перепутал.
13 фев 19, 12:10    [21808260]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
RWolf
Member

Откуда: Казань
Сообщений: 425
Дегтярев Евгений,

Должен быть, это автор драйвера перепутал.
13 фев 19, 12:15    [21808268]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27939
RWolf,

он не перепутал. Это болезнь драйверописателей - они бездумно втыкают дефолтные параметры транзакций.
Та же песня была с BDE (я сообщил как баг, исправили), Firebird ODBC (я настоял, чтобы исправили).
С Firebird .Net не получилось, Иржи упёрся, я даже на него наорал в Люксембурге в 2011 или 12 году, но он так и не понял.
Теперь тут.
13 фев 19, 12:18    [21808277]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29835

это тенденция.
у них там в забугром одни питарасы и папуасы.

Posted via ActualForum NNTP Server 1.5

13 фев 19, 12:34    [21808298]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9469
kdv,

ну и ладно. 4.0 по умолчанию на эти параметры болт кладёт
13 фев 19, 13:09    [21808361]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Arioch
Member

Откуда:
Сообщений: 10807
Дегтярев Евгений
чет в ридми не увидел про евенты


документация у Анри всегда была.... сверхлаконична, вежливо говоря.

конкретно касательно его node-js драйвера, то документацией служат unit-тесты

и, кстати, неплохо служат, если суметь к этому привыкнуть
13 фев 19, 18:59    [21808872]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Arioch
Member

Откуда:
Сообщений: 10807
sysdba22
тендеры. где в последнее время поголовно начали включать требования в виде "веб интерфейса", "работы под операционной системой с открытым исходным кодом" и т.п.


RDP и VNC работают в Web-браузерах.
Причём для VNC уже вместо плагинов начали писать pure-JS парсер потока с WebSockets и HTML5 Canvas


мммм.... ReactOS ? Linux+WinE ?
14 фев 19, 16:21    [21809653]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Arioch
Member

Откуда:
Сообщений: 10807
Док
DmSer
IBX для Лазаруса куда более навороченный
Единственная разумная альтернатива - форк от -Rik-.


А IBX2 ? UIB ?
14 фев 19, 16:24    [21809658]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с node-firebird-drivers  [new]
Док
Member

Откуда: Казань
Сообщений: 6131
Arioch
А IBX2 ? UIB ?

про IBX2 я уже писал в том же посте. Единственное его преимущество пока в том, что им активно занимаются. По поводу UIB сейчас не скажу, но из-за чего-то я от них в свое время отказался.
14 фев 19, 18:47    [21809858]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Firebird, InterBase Ответить