Pentaho JNDI源名称作为参数(Multi-Tennant)

Pentaho JNDI源名称作为参数(Multi-Tennant),pentaho,Pentaho,我在谷歌上搜索了半个小时,找到了pentaho参数等的点击率,但似乎没有任何东西可以问或回答这个问题 我有一组报告,每个客户的报告都相同,但需要连接到不同的数据库,具体取决于运行报告的客户 因此,我的想法是在运行时将JNDI数据源名称作为参数传递给报表,以便客户连接到正确的数据库 这是可能的,还是有更好的方法来管理运行在不同数据库上但在pentaho引擎的同一个实例中的不同客户使用的一组通用报告?好的,我找到了一个更好的解决方案,使用了很少有文档记录的multi-tennant功能 1) 停止P

我在谷歌上搜索了半个小时,找到了pentaho参数等的点击率,但似乎没有任何东西可以问或回答这个问题

我有一组报告,每个客户的报告都相同,但需要连接到不同的数据库,具体取决于运行报告的客户

因此,我的想法是在运行时将JNDI数据源名称作为参数传递给报表,以便客户连接到正确的数据库


这是可能的,还是有更好的方法来管理运行在不同数据库上但在pentaho引擎的同一个实例中的不同客户使用的一组通用报告?

好的,我找到了一个更好的解决方案,使用了很少有文档记录的multi-tennant功能

1) 停止Pentaho

2) 修改(pentaho解决方案/system/pentahoObjects.spring.xml)


3) 为数据源添加后缀(biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml)


4) 删除/tomcat/conf/Catalina/localhost/pentaho.xml

5) 重新启动Pentaho,创建一个用户someone@xxx等等

6) 使用JNDI名称“MYDBSRC”创建报告

7) 登录为someone@xxx您将获得不同于以用户身份登录或user@aaa


塔达

好的,我已经找到了一个更好的解决方案,使用了很少有文档记录的multi-tennant功能

1) 停止Pentaho

2) 修改(pentaho解决方案/system/pentahoObjects.spring.xml)


3) 为数据源添加后缀(biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml)


4) 删除/tomcat/conf/Catalina/localhost/pentaho.xml

5) 重新启动Pentaho,创建一个用户someone@xxx等等

6) 使用JNDI名称“MYDBSRC”创建报告

7) 登录为someone@xxx您将获得不同于以用户身份登录或user@aaa


塔达

好的,我已经找到了一个更好的解决方案,使用了很少有文档记录的multi-tennant功能

1) 停止Pentaho

2) 修改(pentaho解决方案/system/pentahoObjects.spring.xml)


3) 为数据源添加后缀(biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml)


4) 删除/tomcat/conf/Catalina/localhost/pentaho.xml

5) 重新启动Pentaho,创建一个用户someone@xxx等等

6) 使用JNDI名称“MYDBSRC”创建报告

7) 登录为someone@xxx您将获得不同于以用户身份登录或user@aaa


塔达

好的,我已经找到了一个更好的解决方案,使用了很少有文档记录的multi-tennant功能

1) 停止Pentaho

2) 修改(pentaho解决方案/system/pentahoObjects.spring.xml)


3) 为数据源添加后缀(biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml)


4) 删除/tomcat/conf/Catalina/localhost/pentaho.xml

5) 重新启动Pentaho,创建一个用户someone@xxx等等

6) 使用JNDI名称“MYDBSRC”创建报告

7) 登录为someone@xxx您将获得不同于以用户身份登录或user@aaa

塔达

<!-- Original Code
 <bean id="IDBDatasourceService" class="org.pentaho.platform.engine.services.connection.datasource.dbcp.DynamicallyPooledOrJndiDatasourceService" scope="singleton">
   <property name="pooledDatasourceService" ref="pooledOrJndiDatasourceService" />
   <property name="nonPooledDatasourceService" ref="nonPooledOrJndiDatasourceService" />
 </bean>
 -->

 <!--Begin Tenant -->
   <bean id="IDBDatasourceService" class="org.pentaho.platform.engine.services.connection.datasource.dbcp.tenantaware.TenantAwareLoginParsingDatasourceService"
   scope="singleton">
     <property name="requireTenantId" value="false" />
     <property name="datasourceNameFormat" value="{1}-{0}" />
     <property name="tenantSeparator" value="@" />
     <property name="tenantOnLeft" value="false" />
   </bean>
 <!-- End Tenant -->
<Resource
  name="jdbc/MYDBSRC-xxx"
  auth="Container"
  type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory"
  maxActive="20"
  maxIdle="5"
  maxWait="10000"
  username="XXXX"
  password="XXXX"
  driverClassName="net.sourceforge.jtds.jdbc.Driver"
  url="jdbc:jtds:sqlserver://192.168.42.0:1433;DatabaseName=SOMEDB"
/>

<Resource
  name="jdbc/MYDBSRC-aaa"
  auth="Container"
  type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory"
  maxActive="20"
  maxIdle="5"
  maxWait="10000"
  username="XXXX"
  password="XXXX"
  driverClassName="net.sourceforge.jtds.jdbc.Driver"
  url="jdbc:jtds:sqlserver://192.168.42.0:1433;DatabaseName=AOTHERDB"
/>