0 votes
1 view

Hello,

I am trying to setup connection between KNOWAGE-Oracle database. I follow the manual installation guide. Here are the following steps 

1. Run Script ORA_create.sql ORA_create_quartz_schema.sql

2. Add .Jar file into CATALINA_HOME/lib

3. Update CATALINA_HOME/conf/server.xml to define connection towards metadata database

4. Edit the TOMCAT_HOME/conf/server.xml and add the information related to the database containing business data 

5. configure each knowage*/META-INF/context.xml

Here is my server.xml file after update:

<!-- Global JNDI resources

       Documentation at /docs/jndi-resources-howto.html

  -->

  <GlobalNamingResources>

    <!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users

    -->

    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

  

<Environment name="resource_path" type="java.lang.String" value="C:\KNOWAGE_1\Knowage-Server-CE\resources"/>

<Environment name="service_url" type="java.lang.String" value="http://localhost:8080/knowage"/>

<Environment name="sso_class" type="java.lang.String" value="it.eng.spagobi.services.common.JWTSsoService"/>

<Environment description="HMAC key" name="hmacKey" type="java.lang.String" value="KhzPyY0M"/>

<Environment description="File for security encryption location" name="password_encryption_secret" type="java.lang.String" value="C:\KNOWAGE_1\Knowage-Server-CE/conf/passwordEncryptionSecret"/>

   

<Resource auth="Container" factory="de.myfoo.commonj.work.FooWorkManagerFactory" maxThreads="5" name="wm/SpagoWorkManager" type="commonj.work.WorkManager"/>

<Resource auth="Container" driverClassName="org.mariadb.jdbc.Driver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" logAbandoned="true" maxActive="20" maxIdle="4" maxWait="-1" minEvictableIdleTimeMillis="60000" name="jdbc/knowage" password="root" removeAbandoned="true" removeAbandonedTimeout="3600" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" type="javax.sql.DataSource" url="jdbc:mariadb://localhost:3303/knowage_ce" username="root"/>

<Resource name="jdbc/knowage" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@opptcbi1:1521:mtsprod" username="knownge_bi_meta" password="XXXX" testOnBorrow="true" validationQuery="select 'a' from dual" initialSize="5" maxActive="50" maxIdle="12" minIdle="8"/>

<Resource name="jdbc/ems" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@opptcbi1:1521:mtsprod" username="XXX" password="tXXX!" testOnBorrow="true" validationQuery="select 'a' from dual" initialSize="5" maxActive="50" maxIdle="12" minIdle="8"/>

<Resource auth="Container" driverClassName="org.mariadb.jdbc.Driver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" logAbandoned="true" maxActive="20" maxIdle="4" maxWait="-1" minEvictableIdleTimeMillis="60000" name="jdbc/ds_cache" password="root" removeAbandoned="true" removeAbandonedTimeout="3600" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" type="javax.sql.DataSource" url="jdbc:mariadb://localhost:3303/ds_cache" username="root"/>

</GlobalNamingResources>

Here is context.xml

<Context path="/knowage">

<CookieProcessor sameSiteCookies="strict"/>

<!-- <Loader delegate="true"/> -->

<ResourceLink global="jdbc/foodmart" name="jdbc/foodmart" type="javax.sql.DataSource"/>

<ResourceLink global="jdbc/foodmart_mysql" name="jdbc/foodmart_mysql" type="javax.sql.DataSource"/>

<ResourceLink global="jdbc/foodmart_demo" name="jdbc/foodmart_demo" type="javax.sql.DataSource"/>

<ResourceLink global="jdbc/knowage" name="jdbc/knowage" type="javax.sql.DataSource"/>

<ResourceLink global="jdbc/ems" name="jdbc/ems" type="javax.sql.DataSource"/>

<ResourceLink global="jdbc/ds_cache" name="jdbc/ds_cache" type="javax.sql.DataSource"/>

<ResourceLink global="resource_path" name="resource_path" type="java.lang.String"/>

<ResourceLink global="sso_class" name="sso_class" type="java.lang.String"/>

<ResourceLink global="hmacKey" name="hmacKey" type="java.lang.String"/>

<ResourceLink global="service_url" name="service_url" type="java.lang.String"/>

<ResourceLink factory="de.myfoo.commonj.work.FooWorkManagerFactory" global="wm/SpagoWorkManager" name="wm/SpagoWorkManager" type="commonj.work.WorkManager"/>

<ResourceLink global="password_encryption_secret" name="password_encryption_secret" type="java.lang.String"/>

<ResourceLink global="jdbc/foodmart" name="jdbc/foodmart" type="javax.sql.DataSource"/>

</Context>

After restart the server, i got "HTTPStatus 404-Not found". And Tomcat log has following error:

19-Aug-2021 12:33:34.215 SEVERE [main] org.apache.tomcat.jdbc.pool.ConnectionPool.init Unable to create initial connections of pool.

java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3303)(type=master) : Connection refused: connect.

I need help to resolve this issue.

Environment Knowage 7.4, Window, Tomcat 8.5.4.3, Google Chrom
asked Aug 19, 2021 in Metadata by muyeen70 (320 points) | 1 view

1 Answer

0 votes

Dear muyeen70,

I see that you have 2 knowage metadata resource connections with name="jdbc/knowage", if you want to use Oracle as metadata DB you should keep only one with Oracle config.

Regards

Matteo

answered Aug 20, 2021 by matmassa (4,870 points)
Thanks  a lot for your help. It works perfectly!!
1,553 questions
1,017 answers
2,037 comments
2,567 users