1 2 Previous Next 15 Replies Latest reply: Jul 12, 2012 12:59 PM by spyderdyne RSS

    Postgres Datasource

    Jens Mander Newbie

      Hi,

       

      I am trying to get my datasource running for a postgreSQL backend. Although it seems to be well documented I can't get it running. These are the messages at startup:

       

       

      11:08:48,267 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) Bound data source [java:jboss/datasources/ExampleDS]
      11:08:48,638 INFO  [org.jboss.as.deployment] (MSC service thread 1-3) Started FileSystemDeploymentService for directory /opt/jboss7/standalone/deployments
      11:08:48,840 INFO  [org.jboss.as.controller] (Controller Boot Thread) Service status report
         New missing/unsatisfied dependencies:
            service jboss.jdbc-driver.postgresql (missing)
      

       

      I set up the driver by creating the directory $JBOSS_HOME/modules/org/postgresql/main and put in the postgresql-9.0-801.jdbc4.jar. Additionally I created the module.xml as followed

       

       

      <?xml version="1.0" encoding="UTF-8"?>
      <module xmlns="urn:jboss:module:1.0" name="org.postgresql">
         <resources>
            <resource-root path="postgresql-9.0-801.jdbc4.jar"/>
         </resources>
         <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
         </dependencies>
      </module>
      

       

      Now I configured the datasource in $JBOSS_HOME/standalone/configuration/standalone.xml like this:

       

       

      <datasource jndi-name="java:/CatDS" pool-name="CatDS" enabled="true" jta="true" use-java-context="true" use-ccm="true">
         <connection-url>jdbc:postgresql://host/db</connection-url>
         <driver>org.postgresql</driver>
         <pool>
             <min-pool-size>1</min-pool-size>
             <max-pool-size>4</max-pool-size>
             <prefill>false</prefill>
             <use-strict-min>false</use-strict-min>
            <flush-strategy>FailingConnectionOnly</flush-strategy>
         </pool>
             <security>
                   <user-name>...</user-name>
                   <password>...</password>
             </security>
             <validation>
                <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
                <validate-on-match>false</validate-on-match>
                <background-validation>false</background-validation>
                <useFastFail>false</useFastFail>
             </validation>
       </datasource>
       <drivers>
         ...
         <driver name="org.postgresql" module="org.postgresql">
             <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
          </driver>
                      </drivers>
      

       

      May anybody tell me what is wrong with my setup?

       

      Best regards

       

      Sascha

        • 1. Re: Postgres Datasource
          Jens Mander Newbie

          Wow...very strange. A blank at the beginning of module.xml crashes the datasource deployment.... ;(

          • 2. Re: Postgres Datasource
            Prasad Deshpande Expert

            I ran into some other problem, but later it turned out to be jndi naming problem. Instead of

             

            jndi-name="java:/CatDS"
            Could you try

            jndi-name="java:jboss/datasources/CatDS"

            as AS7 supports "comp", "app", "module", "global" & "jboss" namespace.

             

            Worth giving try.

            • 3. Re: Postgres Datasource
              Jens Mander Newbie

              Good morning,

               

              it is definitly the blank on the beginning of the file. I cleared it and it works perfectly with "java:/CatDS".

               

              Best regards

               

              Sascha

              • 4. Re: Postgres Datasource
                jaikiran pai Master

                Jens Mander wrote:

                 

                Good morning,

                 

                it is definitly the blank on the beginning of the file.

                You mean a blank before:

                 

                <?xml version="1.0" encoding="UTF-8"?>

                 


                • 5. Re: Postgres Datasource
                  Jens Mander Newbie

                  Yeah right a blank before the first < sign kills it

                  • 6. Re: Postgres Datasource
                    Swarnajith Fernando Newbie

                    Hey, can you publish your persistence.xml file as well. It'll be a greate help.

                    • 7. Re: Postgres Datasource
                      Swarnajith Fernando Newbie

                      what is the location for module.xml?

                      • 8. Re: Postgres Datasource
                        Jens Mander Newbie

                        Hi,

                         

                        I won't be at the office this week but nevertheless I'll try to publish a sample in the next days

                         

                        Best regards

                         

                        Sascha

                        • 9. Re: Postgres Datasource
                          janekz Newbie

                          module.xml should in the same directory as postgresql-9.0-801.jdbc4.jar

                           

                          jboss 7 + postgresql 9

                           

                          There should be two files in the main folder now.

                          <JBoss7>/modules/org/postgresql/main/postgresql-9.0-801.jdbc4.jar
                          <JBoss7>/modules/org/postgresql/main/module.xml

                          • 10. Re: Postgres Datasource
                            Jens Mander Newbie

                            Hi,

                             

                            sorry for answering that late, but here comes my persistence.xml now

                             

                            <?xml version="1.0" encoding="UTF-8"?>

                            <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

                              <persistence-unit name="CatPU">

                                <jta-data-source>java:/CatDS</jta-data-source>

                                <properties>

                                  <property name="hibernate.hbm2ddl.auto" value="validate"/>

                                  <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>

                                  <property name="hibernate.show_sql" value="false"/>

                                  <property name="hibernate.format_sql" value="false"/>

                                  <property name="hibernate.use_sql_comments" value="false"/>

                                </properties>

                              </persistence-unit>

                            </persistence>

                             

                            Best regards

                             

                            Sascha

                            • 12. Re: Postgres Datasource
                              alabrou Newbie

                              I had the exact same problem with PostgreSQL 9.1-901.  It took almost day to figure what it was until I downloaded PostgreSQL 9.0-802.  I just replaced the jar in the modules folder, changed the module.xml file and it works like a charm on Jboss 7.1.  So because I'm stuborn, I re-downloaded 9.1-901, moved it in the module folder, changed back the xml file, re-started Jboss and... believe it or not but it worked.  I just don't understand!

                              • 13. Re: Postgres Datasource
                                Phanor Coll Newbie

                                Im having the same problem trying with PostgreSQL 9.1-901, but I dont have the blank on the beginning of the file, before <?xml version="1.0" encoding="UTF-8"?> ..what could it be???

                                • 14. Re: Postgres Datasource
                                  spyderdyne Newbie

                                  persistance.xml File Not Found

                                   

                                  Where is this file supposed to be located?

                                   

                                  JBoss AS 7.1 with postgresql-9.1-902.jdbc4.jar

                                   

                                  Here is my module.xml:

                                   

                                  <module xmlns="urn:jboss:module:1.1" name="org.postgresql">

                                     <!-- Load with jboss-cli command:

                                          /subsystem=datasources/jdbc-driver=postgresql-driver:add(driver-name=postgresql-driver, driver-class-name=org.postgresql.Driver, driver-module-name=org.postgresql)

                                     -->

                                     <resources>

                                       <resource-root path="postgresql-9.1-902-1.jdbc4.jar"/>

                                     </resources>

                                     <dependencies>

                                       <module name="javax.api"/>

                                       <module name="javax.transaction.api"/>

                                     </dependencies>

                                  </module>

                                   

                                  From standalone.xml:

                                   

                                   

                                  <datasources>

                                  <!-- Start PostgresSQL datasource definitions using our deployed module -->

                                   

                                   

                                              <%- node['jboss-as']['datasource'].each do |jndi_name, jndi_data| -%>

                                   

                                   

                                                  <datasource jndi-name="java:jboss/datasources/<%= jndi_name %>" pool-name="<%= jndi_name %>">

                                                      <connection-url>jdbc:postgresql://<%= jndi_data['url'] %></connection-url>

                                                      <driver-class>org.postgresql.Driver</driver-class>

                                                      <driver>postgresql-jdbc4</driver>

                                                      <pool>

                                                          <min-pool-size><%= jndi_data['min_size'] %></min-pool-size>

                                                          <max-pool-size><%= jndi_data['max_size'] %></max-pool-size>

                                                          <prefill><%= jndi_data['prefill'] %></prefill>

                                                      </pool>

                                                      <security>

                                                          <user-name><%= jndi_data['user'] %></user-name>

                                                          <password><%= jndi_data['password'] %></password>

                                                      </security>

                                                      <validation>

                                                          <check-valid-connection-sql>SELECT current_timestamp</check-valid-connection-sql>

                                                      </validation>

                                                  </datasource>

                                   

                                   

                                  <%- end -%>

                                   

                                  <drivers>

                                   

                                   

                                                      <driver name="postgresql-jdbc4" module="org.postgresql"/>

                                   

                                   

                                                      <!--driver name="h2" module="com.h2database.h2">

                                                          <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

                                                      </driver-->

                                                  </drivers>

                                              </datasources>

                                   

                                  The Ruby code is from my deployer template file where I have set this up in a for each loop to define connections to multiple databases/datasources as defined in an attributes file in the deployment system.  I can edit them out if necessary for clarity.

                                   

                                  I am able to see the postgres datasource in the managment console but there is somethign wrong with the JNDI string and the driver cannot be activated/enabled from the portal.

                                   

                                  I would be open to just executing cli cmmands on deployment to create the datasouce definition as well but everything I have found on the subject is somewhat mangled or difficult to parse and execute.  This is a roadblock to our adoption of this container.

                                  1 2 Previous Next