我试图用Java 1.8在CentOS 7上安装Pentaho BA 我下载了Community Edition 6.1.0.1-196。我运行./start-pentaho.sh并在纠正了一些错误后,一切正常。
然后我决定使用Oracle作为存储库并遵循本指南:https://help.pentaho.com/Documentation/5.4/0F0/0K0/040/0C0#title 我改变了一些文件。
当我改变Hibernate和Quartz时,一切都很好。然后我修改了Jackrabbit(repository.xml)和context.xml,出现了错误:
ERROR [org.pentaho.platform.util.logging.Logger] misc-org.pentaho.platform.engine.core.system.PentahoSystem: org.pentaho.platform.api.engine.PentahoSystemException: PentahoSystem.ERROR_0014 - Error while trying to execute startup sequence for org.pentaho.platform.engine.services.connection.datasource.dbcp.DynamicallyPooledDatasourceSystemListener
org.pentaho.platform.api.engine.PentahoSystemException:org.pentaho.platform.api.engine.PentahoSystemException:PentahoSystem.ERROR_0014 - 尝试执行org.pentaho.platform.engine.services.connection的启动顺序时出错.datasource.dbcp.DynamicallyPooledDatasourceSystemListener
现在它甚至没有启动,页面看起来像图像。
我在存储库中放了什么,或者更改了我更改的是密码和网址。 我将URL从 jdbc:oracle:thin:@localhost:1521 / XE 更改为 jdbc:oracle:thin:@hostname:port / servername 或 jdbc: oracle:thin:@hostname:port:servernam e但它们都没有工作。
在此之前,我按照指南中的说明创建了存储库和3用户:
--THIS USER IS SPECIFIC TO THE DATABASE WHERE THIS SCRIPT IS TO BE RUN AND
--IT SHOULD BE A USER WITH DBA PRIVS.
--AND ALSO @pentaho should be replaced with the correct instance name
--
--NOTE: run create_repository_ora.sql before running this script, which
-- creates the pentaho_tablespace
-- conn admin/password@pentaho
drop user quartz cascade;
create tablespace pentaho_tablespace
logging
datafile 'ptho_ts.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
create user quartz identified by "password" default tablespace pentaho_tablespace quota unlimited on pentaho_tablespace temporary tablespace temp quota 5M on system;
grant create session, create procedure, create table to quartz;
--CREATE QUARTZ TABLES
CONN quartz/password
CREATE TABLE QRTZ5_JOB_DETAILS
(
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
DESCRIPTION VARCHAR2(250) NULL,
JOB_CLASS_NAME VARCHAR2(250) NOT NULL,
IS_DURABLE VARCHAR2(1) NOT NULL,
IS_VOLATILE VARCHAR2(1) NOT NULL,
IS_STATEFUL VARCHAR2(1) NOT NULL,
REQUESTS_RECOVERY VARCHAR2(1) NOT NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (JOB_NAME,JOB_GROUP)
);
CREATE TABLE QRTZ5_JOB_LISTENERS
(
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
JOB_LISTENER VARCHAR2(200) NOT NULL,
PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
FOREIGN KEY (JOB_NAME,JOB_GROUP)
REFERENCES QRTZ5_JOB_DETAILS(JOB_NAME,JOB_GROUP)
);
CREATE TABLE QRTZ5_TRIGGERS
(
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
IS_VOLATILE VARCHAR2(1) NOT NULL,
DESCRIPTION VARCHAR2(250) NULL,
NEXT_FIRE_TIME number(13) NULL,
PREV_FIRE_TIME number(13) NULL,
PRIORITY NUMBER(13) NULL,
TRIGGER_STATE varchar2(16) NOT NULL,
TRIGGER_TYPE varchar2(8) NOT NULL,
START_TIME number(13) NOT NULL,
END_TIME number(13) NULL,
CALENDAR_NAME VARCHAR2(200) NULL,
MISFIRE_INSTR number(2) NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (JOB_NAME,JOB_GROUP)
REFERENCES QRTZ5_JOB_DETAILS(JOB_NAME,JOB_GROUP)
);
CREATE TABLE QRTZ5_SIMPLE_TRIGGERS
(
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
REPEAT_COUNT number(7) NOT NULL,
REPEAT_INTERVAL number(12) NOT NULL,
TIMES_TRIGGERED NUMBER(10) NOT NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ5_CRON_TRIGGERS
(
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
CRON_EXPRESSION VARCHAR2(120) NOT NULL,
TIME_ZONE_ID varchar2(80),
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ5_BLOB_TRIGGERS
(
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
BLOB_DATA BLOB NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ5_TRIGGER_LISTENERS
(
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
TRIGGER_LISTENER VARCHAR2(200) NOT NULL,
PRIMARY KEY(TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ5_CALENDARS
(
CALENDAR_NAME VARCHAR2(200) NOT NULL,
CALENDAR BLOB NOT NULL,
PRIMARY KEY (CALENDAR_NAME)
);
CREATE TABLE QRTZ5_PAUSED_TRIGGER_GRPS
(
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
PRIMARY KEY (TRIGGER_GROUP)
);
CREATE TABLE QRTZ5_FIRED_TRIGGERS
(
ENTRY_ID varchar2(95) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
IS_VOLATILE varchar2(1) NOT NULL,
INSTANCE_NAME VARCHAR2(200) NOT NULL,
FIRED_TIME number(13) NOT NULL,
PRIORITY NUMBER(13) NOT NULL,
STATE varchar2(16) NOT NULL,
JOB_NAME VARCHAR2(200) NULL,
JOB_GROUP VARCHAR2(200) NULL,
IS_STATEFUL varchar2(1) NULL,
REQUESTS_RECOVERY varchar2(1) NULL,
PRIMARY KEY (ENTRY_ID)
);
CREATE TABLE QRTZ5_SCHEDULER_STATE
(
INSTANCE_NAME VARCHAR2(200) NOT NULL,
LAST_CHECKIN_TIME number(13) NOT NULL,
CHECKIN_INTERVAL number(13) NOT NULL,
PRIMARY KEY (INSTANCE_NAME)
);
CREATE TABLE QRTZ5_LOCKS
(
LOCK_NAME varchar2(40) NOT NULL,
PRIMARY KEY (LOCK_NAME)
);
INSERT INTO QRTZ5_LOCKS values('TRIGGER_ACCESS');
INSERT INTO QRTZ5_LOCKS values('JOB_ACCESS');
INSERT INTO QRTZ5_LOCKS values('CALENDAR_ACCESS');
INSERT INTO QRTZ5_LOCKS values('STATE_ACCESS');
INSERT INTO QRTZ5_LOCKS values('MISFIRE_ACCESS');
create index idx_QRTZ5_j_req_recovery on QRTZ5_job_details(REQUESTS_RECOVERY);
create index idx_QRTZ5_t_next_fire_time on QRTZ5_triggers(NEXT_FIRE_TIME);
create index idx_QRTZ5_t_state on QRTZ5_triggers(TRIGGER_STATE);
create index idx_QRTZ5_t_nft_st on QRTZ5_triggers(NEXT_FIRE_TIME,TRIGGER_STATE);
create index idx_QRTZ5_t_volatile on QRTZ5_triggers(IS_VOLATILE);
create index idx_QRTZ5_ft_trig_name on QRTZ5_fired_triggers(TRIGGER_NAME);
create index idx_QRTZ5_ft_trig_group on QRTZ5_fired_triggers(TRIGGER_GROUP);
create index idx_QRTZ5_ft_trig_nm_gp on QRTZ5_fired_triggers(TRIGGER_NAME,TRIGGER_GROUP);
create index idx_QRTZ5_ft_trig_volatile on QRTZ5_fired_triggers(IS_VOLATILE);
create index idx_QRTZ5_ft_trig_inst_name on QRTZ5_fired_triggers(INSTANCE_NAME);
create index idx_QRTZ5_ft_job_name on QRTZ5_fired_triggers(JOB_NAME);
create index idx_QRTZ5_ft_job_group on QRTZ5_fired_triggers(JOB_GROUP);
create index idx_QRTZ5_ft_job_stateful on QRTZ5_fired_triggers(IS_STATEFUL);
create index idx_QRTZ5_ft_job_req_recovery on QRTZ5_fired_triggers(REQUESTS_RECOVERY);
commit;
答案 0 :(得分:0)
当您将存储库目标从默认目标编辑为新目标时,请确保将用于连接到数据库的用户能够执行创建表或视图等DDL指令。
启动平台尝试在配置更改后第一次从头开始创建存储库时。如果它无法连接/创建存储库 - 它将无法启动,就像您在屏幕截图中看到的那样。没有存储库,它就无法工作。
所有oracle连接字符串语法都描述为here,就像Oracle jdbc驱动程序一样 - 将在幕后使用。当然,你必须在class-path中有jdbc驱动程序jar。
答案 1 :(得分:0)
Pentaho 7.1仍然遇到了这个问题。
经过一番挖掘后,看起来真实的错误记录在tomcat / logs / pentaho.log中(每次启动时都被截断)和不是 catalina.out。
org.apache.jackrabbit.core.config.ConfigurationException: Duplicate configuration element DataStore in Repository.
解决方案是确保在pentaho-solutions / system / jackrabbit / repository.xml中只有1个DataStore类实例,1个PersistanceManger类实例等。
确保注释掉以下类的所有实例(默认情况下都是这样):
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">