Будьте в спящем режиме, C3P0, Mysql — поврежденный канал

Вы не можете использовать знак минус (дефис) с естественным именованием, потому что это недопустимый символ в качестве имени переменной Python (group-1 и dataset-1 выглядят как операция вычитания!)
Why-Python-not-allow-дефис

Если у вас есть группы и наборы данных, которые используют это соглашение об именах, вам придется использовать file.get_node() способ доступа к ним. Вот простой фрагмент кода для демонстрации. Первая часть создает 2 группы и таблицы (наборы данных). # 1 использует _, а # 2 использует - в именах групп и таблиц. Вторая часть обращается к набору данных № 1 с помощью Natural Naming, а к набору данных № 2 - с помощью file.get_node()

import tables as tb
import numpy as np

# Create h5 file with 2 groups and datasets:
# '/group_1', 'ds_1' : Natural Naming Supported
# '/group-2', 'ds-2' : Natural Naming NOT Supported
h5f = tb.open_file('SO_55211646.h5', 'w')

h5f.create_group('/', 'group_1')
h5f.create_group('/', 'group-2')

mydtype = np.dtype([('a',float),('b',float),('c',float)])
h5f.create_table('/group_1', 'ds_1', description=mydtype )
h5f.create_table('/group-2', 'ds-2', description=mydtype )

# Close, then Reopen file READ ONLY
h5f.close()

h5f = tb.open_file('SO_55211646.h5', 'r')

testds_1 = h5f.root.group_1.ds_1.read()
print (testds_1.dtype)

# these aren't valid Python statements:
#testds-2 = h5f.root.group-2.ds-2.read()
#print (testds-2.dtype)

testds_2 = h5f.get_node('/group-2','ds-2').read()
print (testds_2.dtype)

h5f.close()

15
задан ROMANIA_engineer 27 November 2015 в 10:18
поделиться

2 ответа

Получается, что мне не хватало ключевой строки, которая включила c3p0 (Параметры c3p0, которые я настраивал, не имели никакого эффекта, потому что Hibernate использовал встроенный пул соединений, который, как он предупреждает, не подходит для работы). В hibernate 2.x установка свойства hibernate.c3p0.max_size включала пул соединений c3p0. Тем не менее, в 3.x вы должны указать следующее свойство -

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

Кроме того, вот мои окончательные параметры конфигурации -

<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.idle_test_period">100</property> <!-- seconds -->

Весьма прискорбно, что и Hibernate, и c3p0 имеют ужасную документацию в этом отношении.

s встроенный пул соединений - который он, соответственно, предупреждает, не подходит для производства). В hibernate 2.x установка свойства hibernate.c3p0.max_size включала пул соединений c3p0. Тем не менее, в 3.x вы должны указать следующее свойство -

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

Кроме того, вот мои окончательные параметры конфигурации -

<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.idle_test_period">100</property> <!-- seconds -->

Весьма прискорбно, что и Hibernate, и c3p0 имеют ужасную документацию в этом отношении.

s встроенный пул соединений - который он, соответственно, предупреждает, не подходит для производства). В hibernate 2.x установка свойства hibernate.c3p0.max_size включала пул соединений c3p0. Тем не менее, в 3.x вы должны указать следующее свойство -

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

Кроме того, вот мои окончательные параметры конфигурации -

<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.idle_test_period">100</property> <!-- seconds -->

Весьма прискорбно, что и Hibernate, и c3p0 имеют ужасную документацию в этом отношении.

23
ответ дан 1 December 2019 в 02:20
поделиться

There are two things going on here. You should read this article for more details, but the take-aways are:

  1. You can adjust the MySQL wait_timeout setting to something larger than 8 hours, if desired.
  2. The Hibernate settings should include "hibernate." before the "c3p0", e.g. hibernate.c3p0.idle_test_period instead of just c3p0.idle_test_period
2
ответ дан 1 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: