<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to DBD Modules</title><link>https://sourceforge.net/p/dbd-modules/wiki/DBD%2520Modules/</link><description>Recent changes to DBD Modules</description><atom:link href="https://sourceforge.net/p/dbd-modules/wiki/DBD%20Modules/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 04 Nov 2018 17:14:07 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/dbd-modules/wiki/DBD%20Modules/feed" rel="self" type="application/rss+xml"/><item><title>DBD Modules modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/DBD%2520Modules/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -1,10 +1,10 @@
 ## mod_log_dbd
-**mod_log_dbd** re-directs the output from a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)**
- directive to a database table.
+**mod_log_dbd** re-directs the output from a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive to a database table.

 ## mod_vhost_dbd
 **mod_vhost_dbd** overrides the [DocumentRoot](http://httpd.apache.org/docs/current/mod/core.html#documentroot) directory using an SQL query. 

+# Instructions
 ##[Building] mod_vhost_dbd and mod_log_dbd on Linux or Windows
 ## Configuring and using [mod_log_dbd]
 ##Configuring and using [mod_vhost_dbd]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 17:14:07 -0000</pubDate><guid>https://sourceforge.netfe98f1f3beed1400503f74998c65afc296deca72</guid></item><item><title>DBD Modules modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/DBD%2520Modules/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -1,3 +1,10 @@
-[Building] mod_vhost_dbd and mod_log_dbd on Linux or Windows
-Configuring and using [mod_log_dbd]
-Configuring and using [mod_vhost_dbd]
+## mod_log_dbd
+**mod_log_dbd** re-directs the output from a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)**
+ directive to a database table.
+
+## mod_vhost_dbd
+**mod_vhost_dbd** overrides the [DocumentRoot](http://httpd.apache.org/docs/current/mod/core.html#documentroot) directory using an SQL query. 
+
+##[Building] mod_vhost_dbd and mod_log_dbd on Linux or Windows
+## Configuring and using [mod_log_dbd]
+##Configuring and using [mod_vhost_dbd]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 17:12:54 -0000</pubDate><guid>https://sourceforge.net2b2f76331c19c35667882eafd42400dcc17e7042</guid></item><item><title>DBD Modules modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/DBD%2520Modules/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -1,3 +1,3 @@
-[Building]
-[mod_log_dbd]
-[mod_vhost_dbd]
+[Building] mod_vhost_dbd and mod_log_dbd on Linux or Windows
+Configuring and using [mod_log_dbd]
+Configuring and using [mod_vhost_dbd]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 17:05:48 -0000</pubDate><guid>https://sourceforge.net7cd75bd3ce492863f931faa6b9f7b9ba71fab154</guid></item><item><title>DBD Modules modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/DBD%2520Modules/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -1,3 +1,3 @@
-Building
-mod_log_dbd
-mod_vhost_dbd
+[Building]
+[mod_log_dbd]
+[mod_vhost_dbd]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 17:04:48 -0000</pubDate><guid>https://sourceforge.net88457e110b0c0b474d85ffb02e979d5363cf2074</guid></item><item><title>DBD Modules modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/DBD%2520Modules/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,109 +1,3 @@
-# Introduction
-
-**mod_log_dbd** has one directive: 
-
-### DBDLog FILENAME SQL `[`USENULLS`]`
-
-**DBDLog** is always paired with a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive using the same file name. 
-
-The **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** format must be a comma-separated list of [mod_log_config](http://httpd.apache.org/docs/current/mod/mod_log_config.html) "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats). 
-    
-    CustomLog   logs/access.sql     "%h, %l, %u, %{%Y-%m-%d %H:%M:%S}t, %r, %&amp;gt;s, %b"
-    DBDLog      logs/access.sql    "INSERT INTO log_table (Host, Rname, User, Tstmp, Request, Status, Bytes) VALUES (%s, %s, %s, %s, %s, %s, %s)"
-
-Only "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats), commas, and spaces can appear in the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** format. 
-
-The **SQL** parameter markers must correspond to the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats). 
-
-Notice how in the example above: there are seven comma-separated fields in the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive ( `%{%Y-%m-%d %H:%M:%S}t` _is a single field_) which match the seven comma-separated `%s` parameter markers in the **DBDLog** directive. 
-
-Access log records are inserted into the database. Access log records are only written to the file `logs/access.sql` _(as SQL statements)_ if the database is inaccessible. 
-
-DBDLog can be used at the Server or the Virtual Host level. 
-
-# Details
-
-**FILENAME** must match the filename used in the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive. 
-
-**SQL** is an SQL statement whose parameter markers correspond exactly to the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats). 
-
-**USENULLS** causes any parameters which are a single hyphen to be inserted into the database as NULL values. Make sure both your DBD driver and your database can handle NULL values. The [odbc-dbd driver](http://odbc-dbd.googlecode.com/) v1.0.6 or higher and the PostgreSQL DBD driver can process NULL values. 
-
-  * Apache requests will be logged to the database using the SQL statement. If the database cannot be accessed, the SQL statement (with the data inserted) is written to the file, and the error is written to the error log. 
-  * Do not put any characters between the format codes in the log format except a comma and (optionally) spaces. Characters inside the curly braces of `%{...}` are OK, so the date `%{Year:%Y Month:%m Day:%d}t` is acceptable. 
-
-  * If you have literal strings in your SQL statement, always enclose them in single-quotes; even if your database allows other forms, like enclosing literals in double-quotes. Your server may be vulnerable to SQL-injection attacks if you do not use single-quotes for string literals. 
-  * You must have an Apache [DBD driver](http://people.apache.org/~niq/dbd.html) and [mod_dbd](http://httpd.apache.org/docs/current/mod/mod_dbd.html) loaded and configured to use mod_log_dbd. 
-  * You must have [mod_log_config](http://httpd.apache.org/docs/current/mod/mod_log_config.html) loaded and configured to use mod_log_dbd. 
-
-  * The [LoadModule](http://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule) directives for both [mod_log_config](http://httpd.apache.org/docs/current/mod/mod_log_config.html) and [mod_dbd](http://httpd.apache.org/docs/current/mod/mod_dbd.html) must occur _**before**_ the [LoadModule](http://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule) directive for mod_log_dbd in the configuration file. 
-  * Use [LoadModule](http://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule) to enable mod_log_dbd, like this: 
-        
-        LoadModule log_dbd_module modules/mod_log_dbd.so 
-
-  * **SQL** should return no rows. It is typically a DML (data manipulation language) SQL statement: either an INSERT, UPDATE statement, or a call to a stored procedure. 
-  * Do not put a semicolon at the end of your SQL statement. 
-  * Do not use DBDLog with a **[CookieLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#cookielog)** directive. Use a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive with a `%{Cookie}n` format instead. 
-  * **DBDLog** can use the name of a statement as its **SQL** parameter. This name must have been previously defined by a **[DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql)** directive. For example: 
-        
-        
-        
-        LogFormat      "%V, %r"  dbFormat
-        DBDPrepareSQL  "INSERT INTO log_table (Server, Url) VALUES (%s, %s)"  dbLog
-        ...
-        CustomLog logs/access.sql  dbFormat
-        DBDLog    logs/access.sql  dbLog  UseNULLs
-
-  * Unfortunately, using a statement prepared with [DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql) precludes using **FILENAME** directly for database recovery because the original SQL statement text is no longer available to **DBDLog** when writing to **FILENAME**. The prepared statement label is used as if it were a SQL function when writing to **FILENAME**. You will need to edit **FILENAME** before it can be used for database recovery. Some databases (for example: [Firebird](http://firebirdsql.org)) may report errors when statements for **DBDLog** are prepared with [DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql). In this case, [DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql) cannot be used for log statements. 
-  * For Apache 2.2 prior to version 2.2.9, use parameter markers appropriate to your database. For example: Use **?** for [ODBC](http://odbc-dbd.googlecode.com/) or SQLite. Use **%s** for MySQL, etc. 
-  * For Apache 2.2.9+ always use **%s** as a parameter marker in your SQL statement. 
-  * If you do not want log entries to be saved to a file when the database is inaccessable, set **FILENAME** to **NUL** _(on Windows)_ or to **/dev/null** _(on Unix)_. 
-  * Setting **[LogLevel](http://httpd.apache.org/docs/current/mod/core.html#loglevel) debug** will print additional information in the Apache error log which can help to diagnose SQL query problems. 
-
-# Database Considerations
-
-## Suitable Databases for Logging
-
-Databases which do not support concurrent updates by multiple threads, or which lock the entire database on update _(like [SQLite](http://www.sqlite.org))_ generally cannot be used successfully for logging. 
-
-If you _must_ try to use such a database, set [DBDMax](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdmax), [DBDMin](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdmin), and [DBDKeep](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdkeep) to 1 to prevent concurrent update attempts from the same Apache process. 
-
-[Oracle](http://www.oracle.com/database/index.html), [MySQL](http://www.mysql.com/) _(especially with a MyISAM table)_, [PostgreSQL](http://www.postgresql.org), [Apache Derby](http://db.apache.org/derby/) _(as a Network Server)_, [SQL Server](http://www.microsoft.com/sql), [Sybase](http://www.sybase.com/products/databasemanagement), [Firebird](http://firebirdsql.org), etc. all work well for logging. 
-
-[Microsoft Access](http://office.microsoft.com/en-us/access) works surprisingly well for modest-volume Apache servers on Windows using the ODBC driver. 
-
-## Indexes
-
-Database performance can be an issue when you use database logging. 
-
-It is often best to create a table with no primary key or indexes for capturing log entries. 
-
-You can move all the log records from this table into another indexed table periodically via an external process. 
-
-This will allow Apache to insert new log records quickly without the overhead of updating an index for every entry. 
-
-## Dates and Times in Databases
-
-The default format for TIMESTAMP columns varies between databases. The log format code `%{%Y-%m-%d %H:%M:%S}t` produces a string like '2007-10-29 14:22:13', which is acceptable as a TIMESTAMP or DATETIME field to most databases except Oracle. 
-
-The log format code `%{%Y-%m-%d}t` can likewise be used with most DATE columns and the format code `%{%H:%M:%S}t` with most TIME columns. 
-
-Use `%{%d-%b-%y %I.%M.%S %p}t` for Oracle TIMESTAMP columns, which look like '08-NOV-07 11.15.13.000000 AM'. 
-
-The time formats for `%{...}t` vary by platform. The specific codes available are documented 
-
-for Linux at
-&amp;lt;http: libc="" manual="" formatting-calendar-time.html#index-strftime-2660="" html_node="" www.gnu.org="" software=""&amp;gt;
-
-for Windows at
-&amp;lt;http: msdn2.microsoft.com="" en-us="" fe06s4ak(vs.80).aspx="" library=""&amp;gt;
-
-for Solaris at
-&amp;lt;http: index.html="" strftime-3c="" cd="" 816-5168="" e19253-01="" docs.oracle.com=""&amp;gt;
-
-for Netware at
-&amp;lt;http: documentation="" libc="" developer.novell.com="" sdk1810.html#sdk1810="" data="" libc_vol2=""&amp;gt;
-
-## Recovery
-
-If the database is not accessible, SQL statements are be written to **FILENAME** in a format suitable for re-entering the data when the database becomes available again. 
+Building
+mod_log_dbd
+mod_vhost_dbd
&amp;lt;/http:&amp;gt;&amp;lt;/http:&amp;gt;&amp;lt;/http:&amp;gt;&amp;lt;/http:&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 17:01:27 -0000</pubDate><guid>https://sourceforge.net9c7d61de2c3a60b20594787bb60aba18f741b19f</guid></item><item><title>Home modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,31 +1,109 @@
-# Building mod_vhost_dbd and mod_log_dbd
+# Introduction

-## Windows
+**mod_log_dbd** has one directive: 

-#### Use the Visual C++ NMAKE utility to compile, link, and install the modules
+### DBDLog FILENAME SQL `[`USENULLS`]`
+
+**DBDLog** is always paired with a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive using the same file name. 
+
+The **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** format must be a comma-separated list of [mod_log_config](http://httpd.apache.org/docs/current/mod/mod_log_config.html) "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats). 

-    NMAKE -f Makefile.win APACHE=apachedir
-    NMAKE -f Makefile.win APACHE=apachedir install
+    CustomLog   logs/access.sql     "%h, %l, %u, %{%Y-%m-%d %H:%M:%S}t, %r, %&amp;gt;s, %b"
+    DBDLog      logs/access.sql    "INSERT INTO log_table (Host, Rname, User, Tstmp, Request, Status, Bytes) VALUES (%s, %s, %s, %s, %s, %s, %s)"

-where `apachedir` is a top level Apache 2.2+ directory. For example: 
-    
-    NMAKE -f Makefile.win APACHE=C:\Apache2
-    NMAKE -f Makefile.win APACHE=C:\Apache2 install
+Only "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats), commas, and spaces can appear in the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** format. 

-&amp;gt; ##### Note for Apache version 2.2.6 or earlier
-&amp;gt; 
-&amp;gt; Apache 2.2 prior to version 2.2.7 is missing several header files in the /include directory on Windows. See [Apache Bug 43715](http://issues.apache.org/bugz
-illa/show_bug.cgi?id=43715). If you are using Apache 2.2.0 through 2.2.6, copy these two header files from the Apache source directory (or the [Apache SVN rep
-ository](http://svn.apache.org/viewvc/httpd/httpd/tags/)) to the Apache \include directory: 
-&amp;gt; 
-&amp;gt;   * modules\database\mod_dbd.h 
-&amp;gt;   * modules\loggers\mod_log_config.h 
+The **SQL** parameter markers must correspond to the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats). 

-## Unix
+Notice how in the example above: there are seven comma-separated fields in the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive ( `%{%Y-%m-%d %H:%M:%S}t` _is a single field_) which match the seven comma-separated `%s` parameter markers in the **DBDLog** directive. 

-#### User the Apache apxs utility to compile, link, and install the modules
-    
-    apxs -c mod_vhost_dbd.c
-    apxs -i mod_vhost_dbd.la
-    apxs -c mod_log_dbd.c
-    apxs -i mod_log_dbd.la
+Access log records are inserted into the database. Access log records are only written to the file `logs/access.sql` _(as SQL statements)_ if the database is inaccessible. 
+
+DBDLog can be used at the Server or the Virtual Host level. 
+
+# Details
+
+**FILENAME** must match the filename used in the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive. 
+
+**SQL** is an SQL statement whose parameter markers correspond exactly to the **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** "[%" directives](http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats). 
+
+**USENULLS** causes any parameters which are a single hyphen to be inserted into the database as NULL values. Make sure both your DBD driver and your database can handle NULL values. The [odbc-dbd driver](http://odbc-dbd.googlecode.com/) v1.0.6 or higher and the PostgreSQL DBD driver can process NULL values. 
+
+  * Apache requests will be logged to the database using the SQL statement. If the database cannot be accessed, the SQL statement (with the data inserted) is written to the file, and the error is written to the error log. 
+  * Do not put any characters between the format codes in the log format except a comma and (optionally) spaces. Characters inside the curly braces of `%{...}` are OK, so the date `%{Year:%Y Month:%m Day:%d}t` is acceptable. 
+
+  * If you have literal strings in your SQL statement, always enclose them in single-quotes; even if your database allows other forms, like enclosing literals in double-quotes. Your server may be vulnerable to SQL-injection attacks if you do not use single-quotes for string literals. 
+  * You must have an Apache [DBD driver](http://people.apache.org/~niq/dbd.html) and [mod_dbd](http://httpd.apache.org/docs/current/mod/mod_dbd.html) loaded and configured to use mod_log_dbd. 
+  * You must have [mod_log_config](http://httpd.apache.org/docs/current/mod/mod_log_config.html) loaded and configured to use mod_log_dbd. 
+
+  * The [LoadModule](http://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule) directives for both [mod_log_config](http://httpd.apache.org/docs/current/mod/mod_log_config.html) and [mod_dbd](http://httpd.apache.org/docs/current/mod/mod_dbd.html) must occur _**before**_ the [LoadModule](http://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule) directive for mod_log_dbd in the configuration file. 
+  * Use [LoadModule](http://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule) to enable mod_log_dbd, like this: 
+        
+        LoadModule log_dbd_module modules/mod_log_dbd.so 
+
+  * **SQL** should return no rows. It is typically a DML (data manipulation language) SQL statement: either an INSERT, UPDATE statement, or a call to a stored procedure. 
+  * Do not put a semicolon at the end of your SQL statement. 
+  * Do not use DBDLog with a **[CookieLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#cookielog)** directive. Use a **[CustomLog](http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog)** directive with a `%{Cookie}n` format instead. 
+  * **DBDLog** can use the name of a statement as its **SQL** parameter. This name must have been previously defined by a **[DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql)** directive. For example: 
+        
+        
+        
+        LogFormat      "%V, %r"  dbFormat
+        DBDPrepareSQL  "INSERT INTO log_table (Server, Url) VALUES (%s, %s)"  dbLog
+        ...
+        CustomLog logs/access.sql  dbFormat
+        DBDLog    logs/access.sql  dbLog  UseNULLs
+
+  * Unfortunately, using a statement prepared with [DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql) precludes using **FILENAME** directly for database recovery because the original SQL statement text is no longer available to **DBDLog** when writing to **FILENAME**. The prepared statement label is used as if it were a SQL function when writing to **FILENAME**. You will need to edit **FILENAME** before it can be used for database recovery. Some databases (for example: [Firebird](http://firebirdsql.org)) may report errors when statements for **DBDLog** are prepared with [DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql). In this case, [DBDPrepareSQL](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdpreparesql) cannot be used for log statements. 
+  * For Apache 2.2 prior to version 2.2.9, use parameter markers appropriate to your database. For example: Use **?** for [ODBC](http://odbc-dbd.googlecode.com/) or SQLite. Use **%s** for MySQL, etc. 
+  * For Apache 2.2.9+ always use **%s** as a parameter marker in your SQL statement. 
+  * If you do not want log entries to be saved to a file when the database is inaccessable, set **FILENAME** to **NUL** _(on Windows)_ or to **/dev/null** _(on Unix)_. 
+  * Setting **[LogLevel](http://httpd.apache.org/docs/current/mod/core.html#loglevel) debug** will print additional information in the Apache error log which can help to diagnose SQL query problems. 
+
+# Database Considerations
+
+## Suitable Databases for Logging
+
+Databases which do not support concurrent updates by multiple threads, or which lock the entire database on update _(like [SQLite](http://www.sqlite.org))_ generally cannot be used successfully for logging. 
+
+If you _must_ try to use such a database, set [DBDMax](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdmax), [DBDMin](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdmin), and [DBDKeep](http://httpd.apache.org/docs/current/mod/mod_dbd.html#dbdkeep) to 1 to prevent concurrent update attempts from the same Apache process. 
+
+[Oracle](http://www.oracle.com/database/index.html), [MySQL](http://www.mysql.com/) _(especially with a MyISAM table)_, [PostgreSQL](http://www.postgresql.org), [Apache Derby](http://db.apache.org/derby/) _(as a Network Server)_, [SQL Server](http://www.microsoft.com/sql), [Sybase](http://www.sybase.com/products/databasemanagement), [Firebird](http://firebirdsql.org), etc. all work well for logging. 
+
+[Microsoft Access](http://office.microsoft.com/en-us/access) works surprisingly well for modest-volume Apache servers on Windows using the ODBC driver. 
+
+## Indexes
+
+Database performance can be an issue when you use database logging. 
+
+It is often best to create a table with no primary key or indexes for capturing log entries. 
+
+You can move all the log records from this table into another indexed table periodically via an external process. 
+
+This will allow Apache to insert new log records quickly without the overhead of updating an index for every entry. 
+
+## Dates and Times in Databases
+
+The default format for TIMESTAMP columns varies between databases. The log format code `%{%Y-%m-%d %H:%M:%S}t` produces a string like '2007-10-29 14:22:13', which is acceptable as a TIMESTAMP or DATETIME field to most databases except Oracle. 
+
+The log format code `%{%Y-%m-%d}t` can likewise be used with most DATE columns and the format code `%{%H:%M:%S}t` with most TIME columns. 
+
+Use `%{%d-%b-%y %I.%M.%S %p}t` for Oracle TIMESTAMP columns, which look like '08-NOV-07 11.15.13.000000 AM'. 
+
+The time formats for `%{...}t` vary by platform. The specific codes available are documented 
+
+for Linux at
+&amp;lt;http: libc="" manual="" formatting-calendar-time.html#index-strftime-2660="" html_node="" www.gnu.org="" software=""&amp;gt;
+
+for Windows at
+&amp;lt;http: msdn2.microsoft.com="" en-us="" fe06s4ak(vs.80).aspx="" library=""&amp;gt;
+
+for Solaris at
+&amp;lt;http: index.html="" strftime-3c="" cd="" 816-5168="" e19253-01="" docs.oracle.com=""&amp;gt;
+
+for Netware at
+&amp;lt;http: documentation="" libc="" developer.novell.com="" sdk1810.html#sdk1810="" data="" libc_vol2=""&amp;gt;
+
+## Recovery
+
+If the database is not accessible, SQL statements are be written to **FILENAME** in a format suitable for re-entering the data when the database becomes available again. 
&amp;lt;/http:&amp;gt;&amp;lt;/http:&amp;gt;&amp;lt;/http:&amp;gt;&amp;lt;/http:&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 16:58:59 -0000</pubDate><guid>https://sourceforge.netf8a89f2624faada95638484c7c5a19f1686c2226</guid></item><item><title>Home modified by Tom Donovan</title><link>https://sourceforge.net/p/dbd-modules/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="building-mod_vhost_dbd-and-mod_log_dbd"&gt;Building mod_vhost_dbd and mod_log_dbd&lt;/h1&gt;
&lt;h2 id="windows"&gt;Windows&lt;/h2&gt;
&lt;h4 id="use-the-visual-c-nmake-utility-to-compile-link-and-install-the-modules"&gt;Use the Visual C++ NMAKE utility to compile, link, and install the modules&lt;/h4&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;NMAKE -f Makefile.win APACHE=apachedir
NMAKE -f Makefile.win APACHE=apachedir install
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;where &lt;code&gt;apachedir&lt;/code&gt; is a top level Apache 2.2+ directory. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;NMAKE -f Makefile.win APACHE=C:\Apache2
NMAKE -f Makefile.win APACHE=C:\Apache2 install
&lt;/pre&gt;&lt;/div&gt;


&lt;blockquote&gt;
&lt;h5 id="note-for-apache-version-226-or-earlier"&gt;Note for Apache version 2.2.6 or earlier&lt;/h5&gt;
&lt;p&gt;Apache 2.2 prior to version 2.2.7 is missing several header files in the /include directory on Windows. See &lt;a class="" href="http://issues.apache.org/bugz
illa/show_bug.cgi?id=43715" rel="nofollow"&gt;Apache Bug 43715&lt;/a&gt;. If you are using Apache 2.2.0 through 2.2.6, copy these two header files from the Apache source directory (or the &lt;a class="" href="http://svn.apache.org/viewvc/httpd/httpd/tags/" rel="nofollow"&gt;Apache SVN rep&lt;br/&gt;
ository&lt;/a&gt;) to the Apache \include directory: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;modules\database\mod_dbd.h &lt;/li&gt;
&lt;li&gt;modules\loggers\mod_log_config.h &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="unix"&gt;Unix&lt;/h2&gt;
&lt;h4 id="user-the-apache-apxs-utility-to-compile-link-and-install-the-modules"&gt;User the Apache apxs utility to compile, link, and install the modules&lt;/h4&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;apxs -c mod_vhost_dbd.c
apxs -i mod_vhost_dbd.la
apxs -c mod_log_dbd.c
apxs -i mod_log_dbd.la
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Donovan</dc:creator><pubDate>Sun, 04 Nov 2018 16:57:45 -0000</pubDate><guid>https://sourceforge.net6bbf5211f78e0a3c48612533d1e78b53ea549c34</guid></item></channel></rss>