Поиск по этому блогу

среда, 26 июня 2013 г.

bind: перенаправление кеширующих запросов

Предыстория такова. Был задано вопрос: как в кэширующем dns-сервере запросы определённым зонам отправлять на определённые dns-сервера?

Всем известна глобальная опция forwarders в секции options конфигурации bind. В ней задаётся безусловное перенаправление всех запросов к нашему серверу на другие dns-сервера. Однако задача ставилась таким образом, что, например, к домену domain.com необходимо перенаправить запрос к серверу отличному от описанного в глобальной опции forwarders секции options.

Слёту, что я смог придумать, в ответ на этот вопрос, это прописать для указанного домена slave зону, например так:
zone "domain.com" {
    type slave;
    file "/var/cache/bind/domain.com";
    masters {
      1.2.3.4;
      5.6.7.8;
    };
};
В принципе этот вариант работает, но как оказалось существует более элегантное решение, в котором не нужно "засорять" файловую систему "лишними" зонами доменов:
zone "domain.com" {
    type forward;
    forwarders {
      1.2.3.4;
      5.6.7.8;
    };
};
Надо признать, что второе решение, в свете оригинального вопроса, религиозно более верное.

ps: Справедливости ради так-же надо отметить, что решение было найдено самим вопрошающим, и как обычно это был pilson.

среда, 12 июня 2013 г.

(java.sql.SQLException) Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

Долго бился головой об стену, уже даже начал придумывать всяческие хитрые mysql-ные view-вы чтобы обмануть Java в проекте JDeveloper-а... Суть проблемы заключалась в том, что исторически сложилось так, что несущественные значения timestamp в mysql-базе заполнялись значениями '0000-00-00 00:00:00', а в Java они не преобразовывались нормально в значение timestamp и выбивали исключение.
Решение было найдено следующее. Во-первых, connection был преобразован в jdbc url, а во-вторых к нему был добавлен параметр zeroDateTimeBehavior установленный в значение convertToNull. О всех возможных значениях можно почитать на соответствующей странице руководства MySQL: Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J, а об использовании ADF Business Components совместно с MySQL тут "How To Use ADF Business Components with MySQL".
В итоге jdbc url стал выглядеть примерно так:
jdbc:mysql://hostname/database?ultraDevHack=true&capitalizeTypeNames=true&pedantic=true&zeroDateTimeBehavior=convertToNull&sqlmode=oracle


вторник, 11 июня 2013 г.

Фрагментация файловой системы

Вот, возник тут "кухонный вопрос": "Как глянуть % фрагментации файловой системы ext4 в Linux?".
Был найден следующий ответ, посмотреть для всех подмонтированных ext4:
for D in $( mount | awk '$5~/ext4/ { print $1 }' ); do sudo fsck.ext4 -nvf ${D}; done
Вот non-contiguous это и есть % фрагментации.

Для конкретного файла фрагментацию можно посмотреть так:
$ filefrag -v public_html/linux/iso/KNOPPIX_V7.0.3CD-2012-06-25-EN.iso 
Filesystem type is: 9123683e
File size of public_html/linux/iso/KNOPPIX_V7.0.3CD-2012-06-25-EN.iso is 726409216 (177346 blocks, blocksize 4096)
 ext logical physical expected length flags
   0       0  7485916           48094 
   1   48094  7603311  7534010  35134 
   2   83228 12453920  7638445  30774 
   3  114002 19315090 12484694  47884 
   4  161886 19577207 19362974  15460 eof
public_html/linux/iso/KNOPPIX_V7.0.3CD-2012-06-25-EN.iso: 5 extents found