Scipio with Postgresql Install Troubles


#1

Hi there,

I’m Kiran, and I’m new here and new to ERP systems. After much searching I found the ERP i would like to use, but I am having trouble configuring it to work with Postgresql.

I tried following the documentation and even ofbiz tutorials on the web to no avail. My database knowledge is very limited - but I won’t give up on Scipio just yet.

So far I have tried the derby database and it works. I believe I have authentication issues (I get this error in the browser - HTTP Status 500 - Servlet.init() for servlet ControlServlet threw exception) with Postgres. I have installed and uninstalled both postgres and Scipio many times to try to get my settings to work, but I think I may not be configuring the entityengine file correctly, even though I follow the documentation.

I have Java SDK and Ant installed, and they are set in the system variables. I have again uninstalled Postgres and Scipio and I will re-download using the Git command.

I’m using a Windows 10 64 bit PC and I want to run the database as localhost. All programs relating to the installation are the latest versions from their respective websites/github.

Please would you direct me on how to install and configure the system.

Thanks so much!

Kiran


#2

Hey Kiran,

and welcome to the community. No worries, we will get you started in no time.

Have you checked our instructions:

https://www.scipioerp.com/community/developer/installation-configuration/configuration/ (the item labelled “Database Configuration” explains it all in a fairly detailed manner)

If you can, make sure you follow the step-by-step guide there and then check the logs for error messages during boot.

Most likely you forgot to put the appropriate database driver in the /framework/entity/lib/jdbc/ - so if you can, check the folder and post the content here. There should be 2 files there and a subfolder, if you followed our instructions right - if there is only 1 file, you will need to download the Postgres JDBC-driver again. Alternatively you can try the ones that we included under framework\entity\lib\jdbc\unused\postgresql\1.8 (for Java 8, or the one found under 1.7 for java 7). Copy it to the /framework/entity/lib/jdbc/ directory and restart.

If this doesn’t work, then you know that your configuration is wrong (ie: you either haven’t created the database locally, or haven’t edited the /framework/entity/config/entityengine.xml file as explained in our documentation).


#3

Hi,

Wow! I didn’t expect a reply so quickly - thank you very much!

Yes, I did install the JDBC driver.

When installing Postgresql, it asks for a password for the database superuser (postgres) - lets assume the password is 1234. Port to listen on is 5432

In pgadmin, it will ask for the password 1234 to access the server named “PostgreSQL 10” there is a database in that server called “psotgres”

As far as Scipio goes, I did the following:

  1. git clone https://github.com/ilscipio/scipio-erp.git
  2. git clone cd scipio-erp
  3. git checkout scipioce-1.14
  4. install.bat

Please would you guide me further from here. I think my confusion is the actual editing of the entityengine.xml file. I do not understand what to change in it (and what to change it to) despite the instructions in the documentation.

Kiran


#4

ok, then you are definately missing all of the configuration steps outlined in https://www.scipioerp.com/community/developer/installation-configuration/configuration/ > Database configuration.

In particular you must edit /framework/entity/config/entityengine.xml set this:

<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
 <group-map group-name="org.ofbiz" datasource-name="localpostnew"/>
 <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
 <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/>
 </delegator>
 <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
 <group-map group-name="org.ofbiz" datasource-name="localpostnew"/>
 <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
 <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/>
 </delegator>

 <!-- be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "ant load-demo" before running "ant run-tests" -->
 <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
 <group-map group-name="org.ofbiz" datasource-name="localpostnew"/>
 <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
 <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/>
 </delegator>

(Note that i set localpostnew here). Afterwards you will have to set the connection under localpostnew, such as:

<datasource name="localpostnew"
 helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
 schema-name="public"
 field-type-name="postgres"
 check-on-start="true"
 add-missing-on-start="true"
 use-fk-initially-deferred="false"
 alias-view-columns="false"
 join-style="ansi"
 use-binary-type-for-blob="true"
 use-order-by-nulls="true"
 result-fetch-size="50"> <!-- Comment out the result-fetch-size attribute for jdbc driver versions older than 8.0.
 Not recommended to use those though. They are archived unsupported versions: http://jdbc.postgresql.org/download.html -->
 
 <read-data reader-name="tenant"/>
 <read-data reader-name="seed"/>
 <read-data reader-name="seed-initial"/>
 <read-data reader-name="demo"/>
 <read-data reader-name="ext"/>
 <read-data reader-name="ext-test"/>
 <read-data reader-name="ext-demo"/>
 <inline-jdbc
 jdbc-driver="org.postgresql.Driver"
 jdbc-uri="jdbc:postgresql://127.0.0.1/yourdatabase"
 jdbc-username="yourdbuser"
 jdbc-password="1234"
 isolation-level="ReadCommitted"
 pool-minsize="2"
 pool-maxsize="250"
 time-between-eviction-runs-millis="600000"/><!-- Be warned that at this date (2009-09-20) the max_connections parameters in postgresql.conf
 is set by default to 100 by the initdb process see http://www.postgresql.org/docs/8.4/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS-->

 <!-- <jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/localpostgres" isolation-level="ReadCommitted"/>-->
 <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localpostgres" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
 <!-- <jndi-jdbc jndi-server-name="localweblogic" jndi-name="PostgresDataSource"/> --> <!-- Weblogic Style JNDI name -->
 <!-- <jndi-jdbc jndi-server-name="default" jndi-name="jdbc/localpostgres" isolation-level="ReadCommitted"/> --> <!-- JRun4 Style JNDI name -->
 <!-- <tyrex-dataSource dataSource-name="localpostgres" isolation-level="ReadCommitted"/> -->
 </datasource> 

You will also have to properly create a database and user on postgres side…


#5

This is what you’d want to edit on the localpostnew config and modify according to the database you got.


#6

Thank you.

I noticed you left “localderby” inside of the delagator. I assumed that would change to “localpostgres”


#7

If you are referring to:

 <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
 <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/>

Then you won’t really have to change these for now. Those only play a role if you want to run a multi-tenant setup (most likely not), or want to run in-depth business intelligence (most likely not either). So you can ignore both of them for now - they will still run on derby, but that’s not an issue I’d say. Just make sure that for all <group-map group-name="org.ofbiz" datasource-name="localderby"/> entries localpostnew or localpostgres is set and that you modify the localpostnew or localpostgres settings accordingly.

Make sure to reinstall once you are done (since a new database will require the initial data to be reinstalled). You can either use the install script for that (I recommend the install for development mode atm), or you can run “ant load-demo”. Both will install system for you…

During the installation: check your logs - if you see any error pointing to connectional issues, you have done something wrong with these configs.


#8

I should also mention that you must use different databases for olap and tenant, so if you put “localpostgres” in all those entries, you should switch them back to localderbyolap and localderbytenant…


#9

Thank you. I am currently installing Scipio again and will follow your directions.

One question though. At some point I will move my database to an external server. By keeping olap and tenant on Derby, will I still be able to move to an external server?


#10

I think I successfully linked Scipio with the database, but now I get this message in the browser when I go to localhost:8443/admin/control/

ERROR in error page, (infinite loop or error page not found with name [/control/error]), but here is the text just in case it helps you: org.ofbiz.widget.renderer.ScreenRenderException: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.IllegalArgumentException: Template location is empty (Template location is empty)


#11

ok, that means you didn’t reinstall after the database change. so you must still do that :grinning:


#12

And it works!

Thanks for all your help!!

Kiran


#13

You are more than welcome…

oh and to answer your question: yes, you can still migrate. Like i mentioned the olap and tenant databases only come into play when you use some very specific functions. You don’t necessarily have to configure them if you don’t use those functions, but if you feel like it, you can also setup the localpostnewolap and localpostnewtenant databases… :wink:

Let us know what you think about our system and have fun with it. Oh and if you stumble upon any issues, please notify us about them.


#14

Both of these can be set to localpostgres, unless you are really using those features.


#15

Good to see you, Mike. Been a while :slight_smile: