求解Io 异常: Socket closed
我用hibernate连接数据库,在hibernate.cfg.xml文件中有映射文件的配置如下:
<!-- 数据库URL -->
<property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:xe</property>
<!-- Hibernate需要的数据库方言 -->
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!-- 数据库名 -->
<property name="connection.username">gwap</property>
<!-- 建立数据链接的密码 -->
<property name="connection.password">gwap</property>
<!-- 数据库驱动程序名称 -->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- 为true表示将Hibernate发送给数据库的sql显示出来 -->
<property name="show_sql">true</property>
<!-- 对SQL语句进行格式化 -->
<property name="format_sql">true</property>
<!-- 数据库表格映像文件 -->
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.query.substitutions">true 1,false 1</property>
<property name="hibernate.jdbc.batch_size">50</property>
<property name="hibernate.jdbc.use_streams_for_binary">true</property>
<property name="hibernate.max_fetch_depth">4</property>
<property name="hibernate.jdbc.fetch_size">50</property>
<mapping resource="cn/proscn/ecport/domain/Category.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/ContactInfo.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/Country.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/OrderLine.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/Orders.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/OrderStatus.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/PayWay.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/Product.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/Province.hbm.xml" />
<mapping resource="cn/proscn/ecport/domain/User.hbm.xml" />
我在测试程序中就写了一句:System.out.println(new Configuration().configure().buildSessionFactory());
地一次运行是没有问题的,一旦运行之后数据库中的表就创建好了,再运行时就出现异常,当把表删除之后运行又不会有异常,当表创建好之后又会出现此异常,请高手指点,异常如下:
2010-04-25 18:45:44,449 WARN (org.hibernate.connection.DriverManagerConnectionProvider:155) - problem closing pooled connection
java.sql.SQLException: Io 异常: Socket closed
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:274)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:393)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1036)
at org.hibernate.connection.DriverManagerConnectionProvider.close(DriverManagerConnectionProvider.java:152)
at org.hibernate.connection.DriverManagerConnectionProvider.finalize(DriverManagerConnectionProvider.java:142)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
2010-04-25 18:45:44,463 INFO (org.hibernate.connection.DriverManagerConnectionProvider:147) - cleaning up connection pool: jdbc:oracle:thin:@127.0.0.1:1521:xe
2010-04-25 18:45:44,464 WARN (org.hibernate.connection.DriverManagerConnectionProvider:155) - problem closing pooled connection
java.sql.SQLException: Io 异常: Socket closed