Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > hibernate и derby


Автор: ig78 11.7.2007, 13:02
Пытаюсь работать с СУБД derby 10.1.3 через hibernate 3.2. Не получается даже подключиться, т.е. ругается, что проблемы с сессией. Параметры такие:
Код

<session-factory>
    
    <property name="connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
    <property name="connection.url">jdbc:derby:c:/00/my_database</property>
        
    <property name="connection.username">sa</property>
    <property name="connection.password"></property>
        
    <property name="connection.pool_size">1</property>
    <property name="current_session_context_class">thread</property>
        
    <property name="dialect">hibernate.dialect=org.hibernate.dialect.DerbyDialect</property>
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

    <property name="show_sql">true</property><!--TODO: temporary!-->

    <mapping resource="rdbms/Object.hbm.xml"/>
        
</session-factory>

Кроме этого подключаю "derby.jar" и hibernate-библиотеки из его дистрибутива.

Вообще тема hibernate для меня не нова, с MySQL и hibernate работал немало, но с этой СУБД какие-то непонятные проблемы. Причем не получается подключиться даже через hts-редактор для hibernate (https://hts.dev.java.net), т.е. моя программа похоже здесь явно не причем, а проблема с параметрами, настройками или совмещением библиотек derby. 

Кто-нибудь может посоветовать что-нибудь умное? Спасибо.

Автор: LSD 11.7.2007, 14:47
А так:
Код
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection connection = DriverManager.getConnection("jdbc:derby:c:/00/my_database", "sa", "");

соединяется?

Автор: ig78 11.7.2007, 15:36
да

Автор: LSD 11.7.2007, 16:02
ОК, а что за ошибку пишет Hibernate?

Автор: ig78 11.7.2007, 16:12
16:11:10,125  INFO Environment:514 - Hibernate 3.2.4.sp1
16:11:10,187  INFO Environment:547 - hibernate.properties not found
16:11:10,218  INFO Environment:681 - Bytecode provider name : cglib
16:11:10,250  INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling
16:11:10,609  INFO Configuration:1426 - configuring from resource: /hibernate.cfg.xml
16:11:10,609  INFO Configuration:1403 - Configuration resource: /hibernate.cfg.xml
16:11:10,875 DEBUG DTDEntityResolver:38 - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd]
16:11:10,875 DEBUG DTDEntityResolver:40 - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
16:11:10,890 DEBUG DTDEntityResolver:50 - located [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd] in classpath
16:11:11,000 DEBUG Configuration:1387 - connection.driver_class=org.apache.derby.jdbc.EmbeddedDriver
16:11:11,000 DEBUG Configuration:1387 - connection.url=jdbc:derby:c:/00/database1;create=true
16:11:11,000 DEBUG Configuration:1387 - connection.username=sa
16:11:11,000 DEBUG Configuration:1387 - connection.password=
16:11:11,000 DEBUG Configuration:1387 - connection.pool_size=1
16:11:11,000 DEBUG Configuration:1387 - current_session_context_class=thread
16:11:11,000 DEBUG Configuration:1387 - dialect=hibernate.dialect=org.hibernate.dialect.DerbyDialect
16:11:11,000 DEBUG Configuration:1387 - cache.provider_class=org.hibernate.cache.NoCacheProvider
16:11:11,015 DEBUG Configuration:1387 - show_sql=true
16:11:11,015 DEBUG Configuration:1586 - null<-org.dom4j.tree.DefaultAttribute@1764be1 [Attribute: name resource value "rdbms/Object.hbm.xml"]
16:11:11,015  INFO Configuration:553 - Reading mappings from resource : rdbms/Object.hbm.xml
16:11:11,015 DEBUG DTDEntityResolver:38 - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd]
16:11:11,015 DEBUG DTDEntityResolver:40 - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
16:11:11,015 DEBUG DTDEntityResolver:50 - located [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd] in classpath
16:11:11,359  INFO HbmBinder:300 - Mapping class: rdbms.Object -> tObjects
16:11:11,390 DEBUG HbmBinder:1270 - Mapped property: id -> OBJECT_ID
16:11:11,468 DEBUG HbmBinder:1270 - Mapped property: name -> name
16:11:11,468  INFO Configuration:1541 - Configured SessionFactory: null
16:11:11,468 DEBUG Configuration:1542 - properties: {hibernate.connection.password=, java.runtime.name=Java™ SE Runtime Environment, hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider, sun.boot.library.path=C:\Program Files\Java\jre1.6.0_01\bin, java.vm.version=1.6.0_01-b06, hibernate.connection.username=sa, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot™ Client VM, file.encoding.pkg=sun.io, user.country=UA, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=D:\java.workspace\muzza.backup, java.runtime.version=1.6.0_01-b06, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, hibernate.current_session_context_class=thread, java.endorsed.dirs=C:\Program Files\Java\jre1.6.0_01\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\ishe\LOCALS~1\Temp\, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., cache.provider_class=org.hibernate.cache.NoCacheProvider, user.variant=, os.name=Windows XP, sun.jnu.encoding=Cp1251, java.library.path=C:\Program Files\Java\jre1.6.0_01\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\System32;C:\WINDOWS;C:\Program Files\Java\jre1.6.0_01\bin\client;C:\Program Files\Java\jre1.6.0_01\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Java\jdk1.6.0_01\BIN;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Common Files\GTK\2.0\bin;c:\java\apache-ant-1.7.0\BIN;C:\Java, java.specification.name=Java Platform API Specification, java.class.version=50.0, hibernate.connection.pool_size=1, sun.management.compiler=HotSpot Client Compiler, os.version=5.1, connection.password=, user.home=C:\Documents and Settings\ishe, user.timezone=Europe/Helsinki, connection.username=sa, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=Cp1251, java.specification.version=1.6, hibernate.connection.driver_class=org.apache.derby.jdbc.EmbeddedDriver, show_sql=true, user.name=ishe, java.class.path=D:\java.workspace\muzza.backup\build;D:\java.workspace\muzza.backup\lib\dom4j-1.6.1.jar;D:\java.workspace\muzza.backup\lib\hsqldb.jar;D:\java.workspace\muzza.backup\lib\junit-4.3.1.jar;D:\java.workspace\muzza.backup\lib\log4j-1.2.14.jar;D:\java.workspace\muzza.backup\lib\swt.jar;D:\java.workspace\muzza.backup\lib\hibernate\antlr-2.7.6.jar;D:\java.workspace\muzza.backup\lib\hibernate\asm.jar;D:\java.workspace\muzza.backup\lib\hibernate\asm-attrs.jar;D:\java.workspace\muzza.backup\lib\hibernate\cglib-2.1.3.jar;D:\java.workspace\muzza.backup\lib\hibernate\commons-collections-2.1.1.jar;D:\java.workspace\muzza.backup\lib\hibernate\commons-logging-1.0.4.jar;D:\java.workspace\muzza.backup\lib\hibernate\hibernate3.jar;D:\java.workspace\muzza.backup\lib\hibernate\jta.jar;D:\java.workspace\muzza.backup\lib\derby.jar;/C:/eclipse/configuration/org.eclipse.osgi/bundles/86/1/.cp/;/C:/eclipse/configuration/org.eclipse.osgi/bundles/87/1/.cp/;/C:/eclipse/configuration/org.eclipse.osgi/bundles/85/1/.cp/, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, current_session_context_class=thread, java.vm.specification.version=1.0, java.home=C:\Program Files\Java\jre1.6.0_01, sun.arch.data.model=32, hibernate.dialect=hibernate.dialect=org.hibernate.dialect.DerbyDialect, hibernate.connection.url=jdbc:derby:c:/00/database1;create=true, connection.pool_size=1, user.language=uk, java.specification.vendor=Sun Microsystems Inc., awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, sharing, java.version=1.6.0_01, java.ext.dirs=C:\Program Files\Java\jre1.6.0_01\lib\ext;C:\WINDOWS\Sun\Java\lib\ext, sun.boot.class.path=C:\Program Files\Java\jre1.6.0_01\lib\resources.jar;C:\Program Files\Java\jre1.6.0_01\lib\rt.jar;C:\Program Files\Java\jre1.6.0_01\lib\sunrsasign.jar;C:\Program Files\Java\jre1.6.0_01\lib\jsse.jar;C:\Program Files\Java\jre1.6.0_01\lib\jce.jar;C:\Program Files\Java\jre1.6.0_01\lib\charsets.jar;C:\Program Files\Java\jre1.6.0_01\classes, java.vendor=Sun Microsystems Inc., connection.driver_class=org.apache.derby.jdbc.EmbeddedDriver, file.separator=\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, connection.url=jdbc:derby:c:/00/database1;create=true, dialect=hibernate.dialect=org.hibernate.dialect.DerbyDialect, sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}
16:11:11,468 DEBUG Configuration:1285 - Preparing to build session factory with filters : {}
16:11:11,468 DEBUG Configuration:1120 - processing extends queue
16:11:11,468 DEBUG Configuration:1124 - processing collection mappings
16:11:11,484 DEBUG Configuration:1135 - processing native query and ResultSetMapping mappings
16:11:11,484 DEBUG Configuration:1143 - processing association property references
16:11:11,484 DEBUG Configuration:1165 - processing foreign key constraints
16:11:13,000  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
16:11:13,000  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 1
16:11:13,015  INFO DriverManagerConnectionProvider:45 - autocommit mode: false
16:11:13,953  INFO DriverManagerConnectionProvider:80 - using driver: org.apache.derby.jdbc.EmbeddedDriver at URL: jdbc:derby:c:/00/database1;create=true
16:11:13,968  INFO DriverManagerConnectionProvider:83 - connection properties: {user=sa, password=}
16:11:13,968 DEBUG DriverManagerConnectionProvider:93 - total checked-out connections: 0
16:11:13,968 DEBUG DriverManagerConnectionProvider:109 - opening new JDBC connection
16:11:15,281 DEBUG DriverManagerConnectionProvider:115 - created connection to: jdbc:derby:c:/00/database1;create=true, Isolation Level: 2
16:11:15,296  INFO SettingsFactory:89 - RDBMS: Apache Derby, version: 10.1.3.1
16:11:15,312  INFO SettingsFactory:90 - JDBC driver: Apache Derby Embedded JDBC Driver, version: 10.1.3.1
16:11:15,312 DEBUG DriverManagerConnectionProvider:129 - returning connection to pool, pool size: 1

Автор: LSD 11.7.2007, 16:52
И где здесь ошибка?

Автор: ig78 11.7.2007, 17:19
в том то весь и прикол.

я писал в первом сообщении:

"... причем не получается подключиться даже через hts-редактор для hibernate (https://hts.dev.java.net), т.е. моя программа похоже здесь явно не причем, а проблема с параметрами, настройками или совмещением библиотек derby". 

Наглядно это выглядит в этом hts-редакторе. Он отлично работает с mysql и hsql, но когда начинаешь пробовать делать аналогичное с derby, то ругань на сессию (выдает исключение переполнения стека) и все.

Добавлено через 2 минуты и 47 секунд
(в дополнение к предыдущему)

т.е. в редакторе опять же вроде бы как подключилось, но начинаешь выполнять простейшие запросы - и тогда происходит эта неприятность.


Автор: LSD 11.7.2007, 18:04
Цитата(ig78 @  11.7.2007,  18:19 Найти цитируемый пост)
т.е. в редакторе опять же вроде бы как подключилось, но начинаешь выполнять простейшие запросы - и тогда происходит эта неприятность.

Но ошибку то он в лог пишет?

Автор: ig78 12.7.2007, 14:25
пишет - исключение "переполнение стека"

Автор: LSD 12.7.2007, 16:03
Выложи StackTrace.

Автор: baph 30.10.2009, 17:31
Люди разъясните как настроить пул соединений для работы с бд. Вот конфиг hibernate.cfg.xml 
Код

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

              <property name="hibernate.connection.url">jdbc:postgresql://***.***.*.*:****</property>
              <property name="hibernate.connection.username">***</property>
              <property name="hibernate.connection.password">***</property>
                     <!-- DB schema will be updated if needed -->
              <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
              <property name="current_session_context_class">thread</property>
              <property name="connection.pool_size">50</property>

        <property name="connection.datasource">java:comp/env/jdbc/quickstart</property>
        <property name="show_sql">false</property>

      <!--  <property name="dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property> -->

        <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>


        <!-- Mapping files -->
        <mapping resource="Cat.hbm.xml"/>

    </session-factory>

</hibernate-configuration>


Есть даже рабочие классы, но изменений при запуске никаких, видимо не видит бд. Что сделать? Читал даже про proxool-0.9.1, но ничего не запускается?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)