This is \fIhighly experimental\fP and should be used with extreme care.
 The API of the layers is not frozen yet, so it is unpublished.
 
+.TP
+.B autocommit { NO | yes }
+Activates autocommit; by default, it is off.
+
 .SH METAINFORMATION USED
 .LP
 Almost everything mentioned later is illustrated in examples located
 
 #define BSQLF_FETCH_ALL_OPATTRS                0x0400
 #define        BSQLF_FETCH_ALL_ATTRS           (BSQLF_FETCH_ALL_USERATTRS|BSQLF_FETCH_ALL_OPATTRS)
 #define BSQLF_CHECK_SCHEMA             0x0800
+#define BSQLF_AUTOCOMMIT_ON            0x1000
 
 #define BACKSQL_ISF(si, f) \
        (((si)->sql_flags & f) == f)
        BACKSQL_ISF(si, BSQLF_FETCH_ALL_ATTRS)
 #define BACKSQL_CHECK_SCHEMA(si) \
        BACKSQL_ISF(si, BSQLF_CHECK_SCHEMA)
+#define BACKSQL_AUTOCOMMIT_ON(si) \
+       BACKSQL_ISF(si, BSQLF_AUTOCOMMIT_ON)
 
        Entry           *sql_baseObject;
 #ifdef BACKSQL_ARBITRARY_KEY
 
 
                ber_str2bv( argv[ 1 ], 0, 1, &bi->sql_aliasing_quote );
 
+       } else if ( !strcasecmp( argv[ 0 ], "autocommit" ) ) {
+               if ( argc != 2 ) {
+                       Debug( LDAP_DEBUG_TRACE,
+                               "<==backsql_db_config (%s line %d): "
+                               "missing arg "
+                               "in \"autocommit {NO|yes}\" directive\n",
+                               fname, lineno, 0 );
+                       return 1;
+               }
+
+               if ( !strcasecmp( argv[ 1 ], "yes" ) ||
+                       !strcasecmp( argv[ 1 ], "TRUE" ) ||
+                       !strcasecmp( argv[ 1 ], "on" ) )
+               {
+                       bi->sql_flags |= BSQLF_AUTOCOMMIT_ON;
+
+               } else if ( !strcasecmp( argv[ 1 ], "no" ) ||
+                       !strcasecmp( argv[ 1 ], "FALSE" ) ||
+                       !strcasecmp( argv[ 1 ], "off" ) )
+               {
+                       bi->sql_flags &= ~BSQLF_AUTOCOMMIT_ON;
+
+               } else {
+                       Debug( LDAP_DEBUG_TRACE,
+                               "<==backsql_db_config (%s line %d): "
+                               "invalid arg "
+                               "in \"autocommit {NO|yes}\" directive\n",
+                               fname, lineno, 0 );
+                       return 1;
+               }
+
        } else {
                return SLAP_CONF_UNKNOWN;
        }
 
         * TimesTen : Turn off autocommit.  We must explicitly
         * commit any transactions. 
         */
-       SQLSetConnectOption( *dbhp, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF );
+       SQLSetConnectOption( *dbhp, SQL_AUTOCOMMIT,
+               BACKSQL_AUTOCOMMIT_ON( bi ) ?  SQL_AUTOCOMMIT_ON : SQL_AUTOCOMMIT_OFF );
 
        /* 
         * See if this connection is to TimesTen.  If it is,