标签: jdbc-postgres

播放框架2,postgres"此连接已关闭"

我正在使用Postgres 9.2-1002-jdbc4和Anorm 2.2.0 API运行Play 2.2.0应用程序.我经常遇到连接问题,如下所示:

2013-11-19 19:45:36,544 [ERROR][a.d.Dispatcher][play-akka.actor.default-dispatcher-17] This connection has been closed.org.postgresql.util.PSQLException: This connection has been closed.
    at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:822) ~[org.postgresql.postgresql-9.2-1002-jdbc4.jar:na]
    at org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:769) ~[org.postgresql.postgresql-9.2-1002-jdbc4.jar:na]
    at com.jolbox.bonecp.ConnectionHandle.setAutoCommit(ConnectionHandle.java:1247) ~[com.jolbox.bonecp-0.8.0-rc1.jar:na]
    at com.jolbox.bonecp.ConnectionHandle.<init>(ConnectionHandle.java:251) ~[com.jolbox.bonecp-0.8.0-rc1.jar:na]
    at com.jolbox.bonecp.ConnectionHandle.recreateConnectionHandle(ConnectionHandle.java:273) ~[com.jolbox.bonecp-0.8.0-rc1.jar:na]
    at com.jolbox.bonecp.ConnectionHandle.close(ConnectionHandle.java:476) ~[com.jolbox.bonecp-0.8.0-rc1.jar:na]
    at play.api.db.AutoCleanConnection.close(DB.scala:485) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at play.api.db.DBApi$class.withConnection(DB.scala:84) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at play.api.db.BoneCPApi.withConnection(DB.scala:276) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at play.api.db.DBApi$class.withTransaction(DB.scala:97) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at play.api.db.BoneCPApi.withTransaction(DB.scala:276) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at play.api.db.DB$$anonfun$withTransaction$4.apply(DB.scala:185) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at play.api.db.DB$$anonfun$withTransaction$4.apply(DB.scala:185) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
    at scala.Option.map(Option.scala:145) ~[org.scala-lang.scala-library-2.10.2.jar:na]
    at play.api.db.DB$.withTransaction(DB.scala:185) ~[com.typesafe.play.play-jdbc_2.10-2.2.0.jar:2.2.0]
Run Code Online (Sandbox Code Playgroud)

我知道没有数据库连接问题; 数据库运行在同一个盒子上.这些连接问题每天间歇性地发生2-3次,并且可以自行恢复.

我尝试了这些荒谬的低连接测试设置:

db.default.idleConnectionTestPeriod=10 seconds
db.default.idleMaxAge=30 seconds
db.default.maxConnectionAge=60 seconds
Run Code Online (Sandbox Code Playgroud)

这些连接设置似乎可以减少它,虽然我想知道是否有更基本的事情发生.postgres日志中没有任何内容.

bonecp playframework-2.0 jdbc-postgres

8
推荐指数
1
解决办法
717
查看次数

从java更改PostgreSQL当前数据库

有什么方法可以从 Java 应用程序更改 postgreSQL 当前数据库?或者有什么等价物\connect report吗?我知道我可以通过更改 JDBC 连接字符串来做到这一点,但有没有更好的选择?

java database-connection jdbc jdbc-postgres

6
推荐指数
0
解决办法
2097
查看次数

如何使用slf4j记录postgres驱动程序消息?

我在我的webapp中使用postgres db.

我添加了以下依赖项pom.xml:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.7.5</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

在IntelliJ Idea控制台日志中,我看到以下文本(深色,这意味着它是stdout-ed):

Nov 17, 2013 12:32:40 PM org.apache.naming.NamingContext lookup
WARNING: Unexpected exception resolving reference
org.postgresql.util.PSQLException: ???????????????: ???????????????????????????????????? "traffic" ?????? ?????????????????? ???????????????????????? ????????????????????????????????? (?????? ??????????????????)
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:291)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
    at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
    at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
    at org.postgresql.Driver.makeConnection(Driver.java:393)
    at org.postgresql.Driver.connect(Driver.java:267)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:267)

    [...skipped...]

 javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at …
Run Code Online (Sandbox Code Playgroud)

java jdbc logback slf4j jdbc-postgres

6
推荐指数
2
解决办法
3660
查看次数

启动包中没有指定postgresql用户名

public class HelloPostgreSQLActivity extends Activity {
    TextView resultArea;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        resultArea = new TextView(this);
        resultArea.setText("Please wait.");
        setContentView(resultArea);
        new FetchSQL().execute();

    }
    private class FetchSQL extends AsyncTask <Void,Void,String> {


        @Override

        protected String doInBackground(Void... params) {
            //TextView tv=(TextView)findViewById(R.id.text);
            String retval = "";
           // String msg="connected";
            try {
                Class.forName("org.postgresql.Driver");
               // tv.setText(msg);  

            }  
             catch (ClassNotFoundException e) {
                e.printStackTrace();
                retval = e.toString();
            }
            String url = "jdbc:postgresql://192.168.1.92/postgres? user = postgres & password = admin";
            Connection conn;
            try {
                DriverManager.setLoginTimeout(25);
                conn = …
Run Code Online (Sandbox Code Playgroud)

java authentication android jdbc jdbc-postgres

5
推荐指数
0
解决办法
1万
查看次数

为什么Hibernate偶尔会执行select currval in persist?

有时,Hibernate 在持久操作期间似乎随机执行这样的查询:

select currval('MY_TABLE_NAME_id_seq');
Run Code Online (Sandbox Code Playgroud)

实体:

@Entity
@Table(name = "MY_TABLE_NAME")
public class MyEntity {

   @Id
   @Column(name = "ID", unique = true, nullable = false)
   @GeneratedValue(strategy=GenerationType.IDENTITY)
   private Long id;

}
Run Code Online (Sandbox Code Playgroud)

代码:

@Transactional
public void persistMyEntity(String name) {
   MyEntity entity= new MyEntity (name);
   sessionFactory.getCurrentSession().persist(entity);
}
Run Code Online (Sandbox Code Playgroud)

生成的sql:

insert into MY_TABLE_NAME(name) values ('xyz');

select currval('MY_TABLE_NAME_id_seq');
Run Code Online (Sandbox Code Playgroud)

但通常select currval不会被执行。对此有什么解释吗?

顺便说一句,我的问题与此非常相似,但问题中的解决方案对我不起作用。

笔记:

My_TABLE_NAME ddl sql:

CREATE TABLE my_table_name (
   id bigserial NOT NULL,
   name character varying(256) NOT NULL,
   CONSTRAINT my_table_name_id PRIMARY KEY (id)
);
Run Code Online (Sandbox Code Playgroud)

休眠特性: …

hibernate jpa jdbc-postgres

3
推荐指数
1
解决办法
1304
查看次数

将 PostgreSQL text/bytea 列迁移到大对象?

我有一个表(10k 行),在text列中存储大值。当前最大的未压缩大小为 417 MB(烘烤后为 85 MB)。此设计中的缺陷是无法传输这些值(例如通过 JDBC) - 使用此列的任何内容都必须将整个内容读入内存。

是否有任何工具或快捷方式可用于将此列迁移到大型对象?最大限度地减少所需的工作磁盘和内存。

lo_compat_privileges如果这有什么区别的话我会使用。

postgresql blob psql jdbc-postgres

1
推荐指数
1
解决办法
1466
查看次数