[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Closing a result set you left open!, MySQL
MarcusDidiusFalco
do-not-reply at jboss.com
Fri Sep 28 09:04:47 EDT 2007
Hi, I am just beginning to experiment with JPA.
I have jboss-4.2.1.GA and MySQL 5.0.45 community installed and I am using mysql-connector-java-5.0.6 as JDBC driver.
With
@Stateless
| public class TestBean implements TestRemote {
|
| @PersistenceContext(unitName="ejbbuch")
| EntityManager entityManager;
|
|
| @TransactionAttribute(TransactionAttributeType.REQUIRED)
| public Product addProduct(Product product) {
| entityManager.persist(product);
| return product;
| }
|
| .....
| ---------------------------------------------------------------------------------
| @Entity
| public class Product implements Serializable {
|
| @Id
| @GeneratedValue(strategy=GenerationType.IDENTITY)
| private long id;
| ........
|
| -------------------------------------------------------------------------------
| <?xml version="1.0" encoding="UTF-8"?>
| <persistence>
| <persistence-unit name="ejbbuch">
| <jta-data-source>java:/MySqlDS</jta-data-source>
| </persistence-unit>
| </persistence>
|
| ---------------------------------------------------------------------------------
| <datasources>
| <local-tx-datasource>
| <jndi-name>MySqlDS</jndi-name>
| <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url>
| <driver-class>com.mysql.jdbc.Driver</driver-class>
| <user-name>root</user-name>
| <password>ritak1</password>
| <min-pool-size>6</min-pool-size>
| <max-pool-size>20</max-pool-size>
| <blocking-timeout-millis>5000</blocking-timeout-millis>
| <idle-timeout-minutes>0</idle-timeout-minutes>
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
| <!-- should only be used on drivers after 3.22.1 with "ping" support
| -->
| <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
| <new-connection-sql>SELECT count(*) FROM product</new-connection-sql>
| <check-valid-connection-sql>SELECT count(*) FROM product</check-valid-connection-sql>
| <share-prepared-statements>true</share-prepared-statements>
| <prepared-statement-cache-size>10</prepared-statement-cache-size>
| <track-statements>true</track-statements>
| <metadata>
| <type-mapping>mySQL</type-mapping>
| </metadata>
| </local-tx-datasource>
| </datasources>
|
|
|
I get the following exceptions in the log file:
| 2007-09-28 13:41:04,265 WARN [org.jboss.resource.adapter.jdbc.WrappedConnection] Closing a result set you left open! Please close it yourself.
| java.lang.Throwable: STACKTRACE
| at org.jboss.resource.adapter.jdbc.WrappedStatement.registerResultSet(WrappedStatement.java:617)
| at org.jboss.resource.adapter.jdbc.WrappedStatement.getGeneratedKeys(WrappedStatement.java:533)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
When I switch back to the DefaultDS (HSQL) this disappears.
Otherwise the code works as expected with the MySQL database. But of course in a production environment you would not want to force JBoss to handle unclosed statements or resultsets.
Is this some problem with the JDBC driver or do I have some bug in my code?
Thanks,
Hans
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4089683#4089683
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4089683
More information about the jboss-user
mailing list