在glassfish服务器管理控制台中为postgresql供应商创建连接池时连接被拒绝

时间:2013-01-23 13:29:15

标签: postgresql jdbc glassfish connection-pooling

我正在尝试为Glassfish服务器中的PostgreSQL数据库创建连接池。 我做了以下几个步骤:

  1. 我在完整路径中复制了postgresql jdbc jar的jar C:\Program Files\glassfish-3.1.1\glassfish\domains\domain1\lib\ext

  2. 我在glassfish服务器管理控制台中指定了jar的完整路径:

    池名称: post-gre-sql_CommonPush_postgresPool

    资源类型: javax.sql.XADataSource

    数据源类名: org.postgresql.ds.PGSimpleDataSource

  3. 如果我指定了其他属性:

    driverClass:org.postgresql.Driver
    
    URL: jdbc:postgresql://10.137.243.1:5432/CommonPush
    portNumber: 5432
    databaseName: CommonPush
    serverName: 10.137.243.1(My system's IP)
    user: postgres
    password: 
    

    当我ping上述设置时,我收到错误:

      

    发生错误

         

    post-gre-sql_CommonPush_postgresPool的Ping连接池是   失败。 Ping失败异常 - 无法分配连接   因为:连接被拒绝了。检查主机名和端口是否正确   正确并且postmaster正在接受TCP / IP连接。   请查看server.log以获取更多详细信息。

         

    Ping失败异常 - 无法分配连接,因为:   拒绝连接。检查主机名和端口是否正确   postmaster正在接受TCP / IP连接。请检查   server.log获取更多详细信息。

    我无法弄清楚这个问题,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您应该使用资源类型javax.sql.DataSource。我不确定这是否导致错误,您也可以尝试将主机名更改为localhost。

您可以通过pgAdmin或psql命令访问PostgreSQL数据库吗?

答案 1 :(得分:0)

原因可能是用户可能没有对db对象的足够权限。
向用户授予所需的特权,例如:

###GRANT USAGE ON service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT USAGE ON SCHEMA "service_schema" TO "admin";"
###GRANT PREVILEGES ON TABLES OF service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT ALL ON TABLES IN SCHEMA "service_schema" TO "admin";"
###GRANT PREVILEGES ON SEQUENCES OF service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT ALL ON SEQUENCES IN SCHEMA "service_schema" TO "admin";"
###GRANT PREVILEGES ON FUNCTIONS OF service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT ALL ON FUNCTIONS IN SCHEMA "service_schema" TO "admin";"