Использование SQL-запросов в Apache Ignite без базы данных - PullRequest
0 голосов
/ 01 марта 2019

Я использую Apache Ignite в качестве распределенного кэша, конфигурацию которого я создал на основе существующей базы данных с помощью веб-консоли Ignite - это сквозной кэш, который будет периодически сохранять кэшированные данные в базе данных Postgres.Однако я хочу написать модульные тесты на Java для своего проекта, и у меня нет надежной тестовой базы данных для использования.

Частью того, что я хочу протестировать, являются запросы кеша, на которых я иногда выполняюмой кеш Ignite - я хотел использовать sql запросы для этого.Однако я не могу понять, как сохранить queryEntities из моей конфигурации кеша, не имея при этом базы данных.Я попытался создать новый xml-файл для целей тестирования, который настраивает только те кеши, которые мне нужны, и устанавливает только объекты запроса (не хранилище данных или какую-либо информацию БД), но когда я запускаю тест, я получаю «Не удалось инициализировать соединение с БД»ошибка - даже если в моей конфигурации не определена БД.

Есть ли способ использовать эти объекты запроса без фактического подключения кеша к базе данных?Если нет, есть ли хороший способ раскрутить базу данных postgres как часть модульного теста?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

cacheCfg.setWriteThrough(false).setReadThrough(false) должен сделать трюк при определении кеша (обратите внимание, что после запуска кеша нельзя изменить cfg)

0 голосов
/ 01 марта 2019

Вам необходимо проверить конфигурацию хранилища и отключить ее сначала, чтобы все было в памяти.
Затем убедитесь, что вы не инициализируете соединение с БД, пока у вас есть тестовая конфигурация кэша (вы уже сказали, что позаботились об этом факте),

...