我正在尝试为Glassfish服务器中的PostgreSQL数据库创建连接池。 我做了以下几个步骤:
我在完整路径中复制了postgresql jdbc jar的jar
C:\Program Files\glassfish-3.1.1\glassfish\domains\domain1\lib\ext
我在glassfish服务器管理控制台中指定了jar的完整路径:
池名称: post-gre-sql_CommonPush_postgresPool
资源类型: javax.sql.XADataSource
数据源类名: org.postgresql.ds.PGSimpleDataSource
如果我指定了其他属性:
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获取更多详细信息。
我无法弄清楚这个问题,有人可以帮忙吗?
答案 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";"