Отмена кэширования в Pentaho Report
Option1: You can navigate to \biserver-ee\tomcat\webapps\pentaho\WEB-INF\classes and change the configuration file «ehcache.xml»
<cache name="report-dataset-cache"
maxElementsInMemory="50"
eternal="false"
overflowToDisk="false"
timeToIdleSeconds="1"
timeToLiveSeconds="2"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="1"
/>
If you have done that and still no positive answer, I think you have not restarted the BA server. If the issue still exists comment below.
caching — How to clear cache in Pentaho — Stack Overflow
Option2: I have had the same problem — I get data from a report via a mondrian cube but when the data in DB changes, it is not reflected in the report unless i logout and login again. (i have also set report-cache to false and also in the cube definition cache is set to false).
Here is how i fixed it.
1) in pentaho-solutions\system\mondrian\mondrian.properties» — set «mondrian.rolap.star.disableCaching=» to true
2) in tomcat\tomcat\webapps\pentaho\WEB-INF\classes\classic-engine.properties add the line — org.pentaho.reporting.engine.classic.core.cache.DataCache=
3) in tomcat\tomcat\webapps\pentaho\WEB-INF\classes\ehcache.xml for cache name «mondrian-catalog-cache» set timeToIdleSeconds and timeToLiveSeconds to a small value, say 5
What is interesting is that if i do steps 1 and 2 it works for some reports, and for some reports just step 3 suffices. So for now i have done all three steps.
I am not sure if this will work for you since this approach is based on trial and error rather an understanding of how ehcache works in in the pentaho+mondrian setup.
So while it works for me , there is not a good feeling of comfort that this is the way to do it. Hopefully someone from the pentaho team can throw some light on this.
regards
-anish
Java Decompiler
The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions.
JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.
JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display all the Java sources during your debugging process, even if you do not have them all.
JD-Core is a library that reconstructs Java source code from one or more “.class” files. JD-Core may be used to recover lost source code and explore the source of Java runtime libraries. New features of Java 5, such as annotations, generics or type “enum”, are supported. JD-GUI and JD-Eclipse include JD-Core library.
JD-Core, JD-GUI & JD-Eclipse are open source projects released under the GPLv3 License.
Добавление aar библиотеки в Android Studio
В главном меню выбираем File -> New->New Module. В открывшемся окне выбираем Import .JAR/.AAR Package
Читать далее «Добавление aar библиотеки в Android Studio»Очистка логов journalctl в Ubuntu
Для очистки логов по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб) можно использовать встроенные команды:
journalctl --vacuum-size=128M journalctl --vacuum-time=1d
Записки ученика iOS программиста
Все знания полученные здесь взяты из книги «Swift разработка приложений в среде Xcode для iPhone и iPad».
Исходный код можно получить с сайта GitHub https://github.com/Apress/beg-iphone-dev-w-swift-3
- для изменения иконки приложения лучше воспользоваться сервисом https://appicon.co Находим изображение размером 1024х1024 и передаем этому сервису? он сам вернет архив с нужными иконками.
- Создание кода при помощи которого можно форматировать текст через swift:
Блокировка ipv6 запросов к vsftpd
При настройке vsftpd и включении ufw происходит блокировка.
Если в файле vsftpd.conf установлены следующие параметры
- listen=NO
- listen_ipv6=YES
и еще включен firewall и у Вас не работает подключение к ftp, то можно попробовать следующее.
В файле vsftpd.conf установить следующие параметры:
- listen=YES
- а listen_ipv6=YES закомментировать.
Оптимизация запросов из базы данных для мобильного приложения
- Основным механизмом этого процесса является trigger в PostgreSql.Создается функция которая обновляет информацию о том, в каком состоянии находиться таблица. Состояние — это переменная в которой храниться время с типом данных double precision.
INSERT INTO core.sd_table_change (c_table_name, n_change) VALUES (_c_table_name, (SELECT EXTRACT(EPOCH FROM now()))) ON CONFLICT (c_table_name) DO UPDATE SET c_table_name = _c_table_name, n_change = (SELECT EXTRACT(EPOCH FROM now()));
- Далее создается триггер, который изменяет «состояние таблицы»
CREATE OR REPLACE FUNCTION core.cft_change_version() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN
select core.sf_table_change_update(t.c_table_name_ref) from (select TG_TABLE_NAME as c_table_name_ref UNION select c_table_name_ref from core.sd_table_change_ref where c_table_name = TG_TABLE_NAME) as t; END IF; RETURN NEW;
END
$$;
ALTER FUNCTION core.cft_change_version() OWNER TO mobnius;
COMMENT ON FUNCTION core.cft_change_version() IS 'Триггер. Обновление справочной версии';
- Для хранения информации о состоянии, создается 2 таблицы:
- Состояние таблиц — имя таблицы и её числовое состояние
- Таблицы зависимых состояний
CREATE TABLE core.sd_table_change ( c_table_name text NOT NULL, n_change double precision NOT NULL ); ALTER TABLE core.sd_table_change OWNER TO mobnius; COMMENT ON TABLE core.sd_table_change IS 'Изменение состояния таблицы'; COMMENT ON COLUMN core.sd_table_change.c_table_name IS 'Имя таблицы'; COMMENT ON COLUMN core.sd_table_change.n_change IS 'Версия изменения'; ALTER TABLE core.sd_table_change ADD CONSTRAINT sd_table_change_pkey PRIMARY KEY (c_table_name);
CREATE TABLE core.sd_table_change_ref ( id smallint DEFAULT nextval('core.sd_table_change_ref_id_seq'::regclass) NOT NULL, c_table_name text NOT NULL, c_table_name_ref text NOT NULL ); ALTER TABLE core.sd_table_change_ref OWNER TO mobnius; COMMENT ON TABLE core.sd_table_change_ref IS 'Зависимость таблиц состояний'; COMMENT ON COLUMN core.sd_table_change_ref.c_table_name IS 'Таблица'; COMMENT ON COLUMN core.sd_table_change_ref.c_table_name_ref IS 'Зависимая таблица'; ALTER TABLE core.sd_table_change_ref ADD CONSTRAINT sd_table_change_ref_pkey PRIMARY KEY (id); ALTER TABLE core.sd_table_change_ref ADD CONSTRAINT sd_table_change_ref_c_table_name_fkey FOREIGN KEY (c_table_name) REFERENCES core.sd_table_change(c_table_name) NOT VALID; ALTER TABLE core.sd_table_change_ref ADD CONSTRAINT "sd_table_change_ref_cTable_name_ref_fkey" FOREIGN KEY (c_table_name_ref) REFERENCES core.sd_table_change(c_table_name) NOT VALID;
Установка pgAdmin4 in Ubuntu
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
Установка pgAdmin4
sudo apt install pgadmin4Читать далее «Установка pgAdmin4 in Ubuntu»
PostgreSQL: преобразование строки в число
В базе данных доступны следующие строки:
Требуется в колонке c_house_number, которая является типом text, найти число и сохранить преобразованное значение в новой колонке:
Читать далее «PostgreSQL: преобразование строки в число»