Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MqSql + hibernate +Spring, Нехватка connection 
:(
    Опции темы
PovAnd
Дата 21.7.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 20.8.2007

Репутация: нет
Всего: нет



Есть приложение работающие с БД в отдельные моменты интенсивно. Вот в такие моменты раз за разом получаю нижеидущий эксепшен. Как его побороть?


12:33:00,072 WARN  JDBCExceptionReporter:77 | SQL Error: 0, SQLState: 08S01
12:33:00,072 ERROR JDBCExceptionReporter:78 | The driver was unable to create a connection due to an inability to establish the client portion of a socket.

This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. 

For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.

For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
12:33:00,072 WARN  JDBCExceptionReporter:77 | SQL Error: 0, SQLState: 08S01
12:33:00,087 ERROR JDBCExceptionReporter:78 | The driver was unable to create a connection due to an inability to establish the client portion of a socket.

This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. 

For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.

For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
12:33:00,087 WARN  MatchEventsReader:171 | org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open connection

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open connection
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:599)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:377)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy9.insert(Unknown Source)



--------------
Конфиг sessionFactory в Spring для hibernate:


Код

...
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mappingResources">
            <list>
...
            </list>
        </property>

        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                </prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>
...


Как нужно (если можно) ее сконфигурить, так чтобы проблемы не было?


PM MAIL   Вверх
AntonSaburov
Дата 21.7.2008, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Попробоавть поставить свойство hibernate.connection.pool_size побольше
PM MAIL WWW ICQ   Вверх
chief39
Дата 22.7.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 11
Всего: 77



Пробовал?
http://support.microsoft.com/kb/196271
Ты под какой осью?

Добавлено через 1 минуту и 17 секунд
Антон, тут 
12:33:00,072 ERROR JDBCExceptionReporter:78 | The driver was unable to create a connection due to an inability to establish the client portion of a socket.
Имхо, проблема с сокетами - это не уровень хибернейта.
Оно прямым текстом намякиваеть на узкое горлышко оси


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
dejavu
  Дата 10.1.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.1.2009
Где: Харьков

Репутация: нет
Всего: нет



Вопрос на тему Нехватка connections MqSql + hibernate +Spring,  .

Ситуация Hоst Provider  установил max кол-во активных конектов к MySQL      = 30
и предположим увеличивать не хочет.

Веб приложение на основе MqSql + hibernate +Spring требует от 10 - до 40 конектов и это без нагрузки в режиме теста 2-3 пользователя (при тесте на другом сервере где количество активных конектов установлено 100)

Думаю возможная причина в настройке пула

В моем случае пробую вот так , все равно создает больше конектов чем 30

  <property name="hibernateProperties">
            <props>
      ..............

                    <!-- configuration pool via c3p0-->
                <prop key="hibernate.c3p0.min_size">5</prop>
                <prop key="hibernate.c3p0.max_size">20</prop>
                <prop key="hibernate.c3p0.initial_pool_size">20</prop>
                <prop key="hibernate.c3p0.timeout">5000</prop>
                <prop key="hibernate.c3p0.acquire_increment">1</prop>
        ..................         
          </props>
  </property>            


 
Если у кого нибудь мысли как настроить пул чтобы вписаться в 30 и при этом по возможности повысить производительность

Был бы благодарен за рекомендации в  идеологии  настройке пула , так как простое описание свойств в общем ничего не говорит
В поиске на эту тему,  складывается впечатление что каждый как хочет так и др.....т

PM MAIL   Вверх
skhilkov
Дата 11.1.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



dejavu,  не знаю какая у Вас функциональность, но мне кажется что 40 соединений для 2-3х пользователей - это многовато...
думаю что стоит еще раз пересмотреть все места где устанавливабтся соединения...
Хотя при всем при этом пул не должен вроде как позволять создавать больше подключений.... В общем по поводу c3p0 ничего не могу сказать... я пробовал его год назад, но у меня столько запарок вышло с его настройками, что я пересел на dbcp и с тех пор не знаю проблем...


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
barracuda477
Дата 11.1.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



Цитата

Пробовал?
http://support.microsoft.com/kb/196271
Ты под какой осью?


там указано про порты больше чем 5000, в то время как для мускуля по дефолту 3306

глянь http://dev.mysql.com/doc/refman/5.1/en/too...onnections.html
причиной может быть то, что все 30 коннекшенов реально юзаются и мускуль не может тебе выделить больше.

я в хибернейте не силён, разбираюсь как раз. 
но предположу такие выходы:
1) увеличивать лимит коннекшинов в мускуле, например, с 30 до 100 (если хостер согласится)
2) закрывать коннекшены если они не юзаются, возможно твоё приложение всё время создаёт коннекшены вместо того, чтобы реюзать уже те, которые есть в пуле
3) заоптимайзить запросы (если выполняются долго. Кстати, индексы верно проставлены и юзаются? Сколько записей в самых больших таблицах? Насколько сложные запросы ?) Кстати, можно зайти на сервак мускуля и посмотреть что он делает через "showprocesslist".

Цитата

но мне кажется что 40 соединений для 2-3х пользователей - это многовато...


+1



PM MAIL   Вверх
dejavu
Дата 19.1.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.1.2009
Где: Харьков

Репутация: нет
Всего: нет



Спасибо всем кто ответил, действительно проблема была не в настройке пула (хотя я считаю разобраться с ним стоило, считаю важная тема при разворачивании на реалном сервере ) а в не зарытых конектах, которые произошли от собственной не внимательности, кому интересно
чтобы не наступали на грабли как я - проверьте закрывает гибернат сессии - здесь почти прямая зависимость сессия- конект в самом общем случае, если правильно настроили транзакт менеджера который и делает в в спринге это за вас все будет работать правильно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1419 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.