Skip to content

Commit 51eadf0

Browse files
authored
Merge pull request #28 from integer-net/disconnect-mysql-configurable
Make the MySQL connection disconnect/reconnect feature configurable (default: off)
2 parents cd4e035 + 03f11e5 commit 51eadf0

File tree

7 files changed

+34
-3
lines changed

7 files changed

+34
-3
lines changed

doc/release-notes.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ IntegerNet_Solr Free for Magento 1
22
===============
33
Release Notes
44

5+
Upcoming
6+
---------------
7+
8+
- Make the MySQL connection disconnect/reconnect feature configurable (default: off)
9+
510
Version 1.7.4 (Jul 17, 2017)
611
---------------
712

src/app/code/community/IntegerNet/Solr/Model/Resource/Db.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,26 @@ class IntegerNet_Solr_Model_Resource_Db
1616
*/
1717
public function disconnectMysql()
1818
{
19+
if (!Mage::getStoreConfigFlag('integernet_solr/indexing/disconnect_mysql_connections')) {
20+
return;
21+
}
22+
23+
/** @var $coreResource Mage_Core_Model_Resource */
24+
$coreResource = Mage::getSingleton('core/resource');
25+
if (!method_exists($coreResource, 'getConnections')) {
26+
return; // method only exists from Magento CE 1.9.1 / EE 1.14.1
27+
}
28+
1929
/** @var Zend_Db_Adapter_Abstract $connection */
20-
foreach (Mage::getSingleton('core/resource')->getConnections() as $name => $connection) {
30+
foreach ($coreResource->getConnections() as $name => $connection) {
2131
if ($connection instanceof Zend_Db_Adapter_Abstract) {
2232
if ($this->isTransactionOpen($connection)) {
2333
continue;
2434
}
2535
$connection->closeConnection();
2636
}
2737
}
38+
2839
// connections (adapter objects) must be fully reinitialized, otherwise initStatements are not executed
2940
Mage::unregister('_singleton/core/resource');
3041
}

src/app/code/community/IntegerNet/Solr/Test/Model/Resource/Db.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
/**
1212
* @loadFixture registry
13+
* @loadFixture config
1314
* @doNotIndexAll
1415
*/
1516
class IntegerNet_Solr_Test_Model_Resource_Db extends EcomDev_PHPUnit_Test_Case

src/app/code/community/IntegerNet/Solr/Test/fixtures/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ config:
1717
default/integernet_solr/server/http_method: curl
1818
default/integernet_solr/server/use_https: 0
1919
default/integernet_solr/server/use_http_basic_auth: 0
20+
default/integernet_solr/indexing/disconnect_mysql_connections: 1
2021
default/integernet_solr/connection_check/is_active: 1
2122
default/integernet_solr/fuzzy/is_active: 0
2223
default/integernet_solr/category/is_active: 1

src/app/code/community/IntegerNet/Solr/etc/config.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@
245245
<indexing>
246246
<pagesize>1000</pagesize>
247247
<delete_documents_before_indexing>1</delete_documents_before_indexing>
248+
<disconnect_mysql_connections>0</disconnect_mysql_connections>
248249
</indexing>
249250
<fuzzy>
250251
<is_active>1</is_active>

src/app/code/community/IntegerNet/Solr/etc/system.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@
193193
<show_in_website>1</show_in_website>
194194
<show_in_store>1</show_in_store>
195195
</swap_cores>
196-
<swap_core translate="label,comment">
196+
<swap_core translate="label">
197197
<label>Name of Core to swap active Core with</label>
198198
<frontend_type>text</frontend_type>
199199
<sort_order>40</sort_order>
@@ -204,6 +204,16 @@
204204
<swap_cores>1</swap_cores>
205205
</depends>
206206
</swap_core>
207+
<disconnect_mysql_connections translate="label,comment">
208+
<label>Disconnect and reconnect MySQL Connections during indexing</label>
209+
<comment>Use this to avoid SQL timeout errors during indexing. Only available since Magento CE 1.9.1 / EE 1.14.1.</comment>
210+
<frontend_type>select</frontend_type>
211+
<source_model>adminhtml/system_config_source_yesno</source_model>
212+
<sort_order>50</sort_order>
213+
<show_in_default>1</show_in_default>
214+
<show_in_website>0</show_in_website>
215+
<show_in_store>0</show_in_store>
216+
</disconnect_mysql_connections>
207217
</fields>
208218
</indexing>
209219

src/app/locale/de_DE/IntegerNet_Solr.csv

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,6 @@
109109
"Show category filter","Kategorie-Filter anzeigen"
110110
"Show products which are out of stock","Produkte anzeigen, die nicht auf Lager sind"
111111
"Solr Priority Multiplier for Products being out of Stock","Solr-Prioritäts-Multiplikator für ausverkaufte Produkte"
112-
"0 = don't show at all, 1 = don't modify, anything between = lower priority","0 = gar nicht anzeigen, 1 = wie Produkte auf Lager, alles dazwischen = niedrigere Priorität"
112+
"0 = don't show at all, 1 = don't modify, anything between = lower priority","0 = gar nicht anzeigen, 1 = wie Produkte auf Lager, alles dazwischen = niedrigere Priorität"
113+
"Disconnect and reconnect MySQL Connections during indexing","MySQL-Verbindungen während der Indizierung trennen und neu aufbauen"
114+
"Use this to avoid SQL timeout errors during indexing. Only available since Magento CE 1.9.1 / EE 1.14.1.","Aktivieren Sie diese Option, wenn Sie Timeout-Fehler während der Indizierung erhalten. Verfügbar erst ab Magento CE 1.9.1 / EE 1.14.1."

0 commit comments

Comments
 (0)