--- db4-4.2.52/dbinc/db.in.orig 2004-09-09 18:29:17.987387000 -0700 +++ db4-4.2.52/dbinc/db.in 2004-09-09 18:30:00.547903000 -0700 @@ -839,6 +839,7 @@ #define TXN_NOWAIT 0x040 /* Do not wait on locks. */ #define TXN_RESTORED 0x080 /* Transaction has been restored. */ #define TXN_SYNC 0x100 /* Sync on prepare and commit. */ +#define TXN_NOLOG 0x200 /* Do not log this transaction. */ u_int32_t flags; }; --- db4-4.2.52/txn/txn.c.orig 2004-09-09 18:30:36.348345000 -0700 +++ db4-4.2.52/txn/txn.c 2004-09-09 18:32:14.559561000 -0700 @@ -127,7 +127,7 @@ if ((ret = __db_fchk(dbenv, "txn_begin", flags, DB_DIRTY_READ | DB_TXN_NOWAIT | - DB_TXN_NOSYNC | DB_TXN_SYNC)) != 0) + DB_TXN_NOSYNC | DB_TXN_SYNC | DB_TXN_NOT_DURABLE )) != 0) return (ret); if ((ret = __db_fcchk(dbenv, "txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0) @@ -193,6 +193,8 @@ F_SET(txn, TXN_SYNC); if (LF_ISSET(DB_TXN_NOWAIT)) F_SET(txn, TXN_NOWAIT); + if (LF_ISSET(DB_TXN_NOT_DURABLE)) + F_SET(txn, TXN_NOLOG); if ((ret = __txn_begin_int(txn, 0)) != 0) goto err; @@ -328,7 +330,7 @@ * We should set this value when we write the first log record, not * here. */ - if (DBENV_LOGGING(dbenv)) + if (DBENV_LOGGING(dbenv) && !F_ISSET(txn, TXN_NOLOG)) __log_txn_lsn(dbenv, &begin_lsn, NULL, NULL); else ZERO_LSN(begin_lsn);