Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 28/03/2013 22:12:31

pabloa
Guest
Registered: 28/03/2013
Posts: 17

Ametys installation

Hi

We are evaluating ametys for our site. We want to deploy ametys on a linux server using jetty 9, postgresql 9.1.
I have some questions regarding the installation process.

a) I found under ametys/webapp/cms/WEB-INF/scripts/postgresql several scripts for the user table. I am not sure which I need to use. Why Ametys has jdbc_users.sql and jdbc_users_auth.sql with different columns?

b) for the JackRabbit part, Ametys uses Derby as the repository. I am not sure if that is ok for a production deploy. Do I need to use postgresql for the JackRabbit repository too?

c) are there more SQL tables I need to take care of?

d) Could you recommend me a book for ametys CMS?

Regards.

Offline

#2 29/03/2013 11:07:08

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: Ametys installation

Hello,

Currently we are supporting different databases : mysql, oracle, derby and postgre.
However please note that postgre is currenlty the less tested implementation in Ametys (especially it has never been tested in production as far as I know) : so, maybe mysql is a better choice for the moment ; even if we will take care of any bug you could find using postgre.

a) The differences between the two scripts is that the first one does not handle credentials and so is to be used with a SSO credential provider (such as CAS or NTLM). The second one does handle passwords and is to be used when Ametys handle the login process by itself. If you did not get my point, please use the jdbc_users_auth.sql as it will work in both cases.

b) You can configure Jackrabbit to use postgre or another sql db, but we do currently always use derby in production : using derby allows to avoid the net layer during transmission and so is very fast. We are using it on websites with quite high traffic : but note that with our 2 level cache architecture, JCR is not so requested...
How many hits does your website have ? How many contributors will you have ? How many times a day a content (article, news...) will be plublished (and so the cache cleared) ?

c) All SQL tables you need are in the directory you did find. Some extra plugins may requires more tables. But, as JCR is holding the main data, the SQL part is quite small.

d) There is currently no book for Ametys, but we will answer to any questions you have.
The english doc you can find here https://wiki.ametys.org/display/AMETYS34/Home is not complete.
We are currently finishing to rewrite all the doc, in french in the first time and it will be translated later.

FYI the incomming versions (3.4.2 and 3.5) will contain significant performance enhancements. Thoses versions will be finilized in a few weeks.

Regards


Raphael Franchet
Expert Ametys

Offline

#3 29/03/2013 11:13:32

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Ametys installation

Additionally, you should be aware that we currently use jetty for development and testing purposes only, not in a production environment. We usually recommend using tomcat (version 6 or 7).

Offline

#4 30/03/2013 03:16:20

pabloa
Guest
Registered: 28/03/2013
Posts: 17

Re: Ametys installation

Thank you both for the advices. I finally could finish the installation.

I would like to share with any reader the selected stack and the reasons for that so they are available for another readers:

  • java 7 (version 1.7.0.17), I was using java 6 for everything but Oracle will stop to support it soon, so I better move on.

  • postgresql 9.1, I love postgresql. It is an excellent open source database and it scales very well. I was dealing with 1+tb databases using postgresql so I am very sure it will deal with this task. The site will not be big though. It deals with concurrency far better than mysql IMHO.

  • JCR uses postgresql too, I did because I read later about your advice about using Derby because Ametys caches will deal with the load  big_smile . I suspect that I can deal easier with my backups if I use one database for everything though so I kept the modified configuration. JackRabbit works ok with postgresql (from their documentation).
    I replaced in repository.xml the Derby persistenceManager entries for:

            <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
                <param name="url" value="jdbc:postgresql:ametys"/>
                <param name="user" value="sqluser"/>
                <param name="password" value="xxxxxxx"/>
                <param name="schemaObjectPrefix" value="jcr_default"/>

                <param name="externalBLOBs" value="true"/>
                <param name="consistencyCheck" value="true"/>
                <param name="consistencyFix" value="true"/>
           </PersistenceManager>

    and

            <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
                <param name="url" value="jdbc:postgresql:ametys"/>
                <param name="user" value="sqluser"/>
                <param name="password" value="xxxx"/>
                <param name="schemaObjectPrefix" value="jcr_version"/>

                <param name="externalBLOBs" value="true"/>
                <param name="consistencyCheck" value="true"/>
                <param name="consistencyFix" value="true"/>
           </PersistenceManager>

  • I did the same with the Storage. I replaced it with a posgresql entry like:
        <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
            <param name="url" value="jdbc:postgresql:ametys"/>
            <param name="user" value="sqluser"/>
            <param name="password" value="xxxxxx"/>
            <param name="databaseType" value="postgresql"/>
            <param name="driver" value="org.postgresql.Driver"/>
            <param name="minRecordLength" value="1024"/>
            <param name="maxConnections" value="3"/>
            <param name="copyWhenReading" value="true"/>
            <param name="tablePrefix" value="jcr"/>
            <param name="schemaObjectPrefix" value=""/>
        </DataStore>

  • We selected jetty 9 because we used it in several projects in the past. One of them serves 200000 pages every day. That jetty server runs a web application not related with ametys. Anyway, we know that it will do it perfectly fine running our site.

    So we copied the cms/ directory in the $JETTY_HOME/webapps directory, deleted the demo apps, deleted $JETTY_HOME/start.d/*.ini and launched jetty.

Ametys is running fine. We followed the basic configuration steps described in https://wiki.ametys.org/display/AMETYS34/Home

Please feel you free to add alternative in the documentation wiki if you like it.

Offline

Board footer

Powered by FluxBB