rhmessaging commits: r1257 - in store/trunk/cpp: lib/jrnl and 1 other directories.
by rhmessaging-commits@lists.jboss.org
Author: kpvdr
Date: 2007-11-06 16:52:47 -0500 (Tue, 06 Nov 2007)
New Revision: 1257
Modified:
store/trunk/cpp/lib/BdbMessageStore.cpp
store/trunk/cpp/lib/JournalImpl.cpp
store/trunk/cpp/lib/JournalImpl.h
store/trunk/cpp/lib/jrnl/enq_rec.cpp
store/trunk/cpp/lib/jrnl/enq_rec.hpp
store/trunk/cpp/lib/jrnl/file_hdr.cpp
store/trunk/cpp/lib/jrnl/file_hdr.hpp
store/trunk/cpp/lib/jrnl/jcntl.cpp
store/trunk/cpp/lib/jrnl/jcntl.hpp
store/trunk/cpp/lib/jrnl/rmgr.cpp
store/trunk/cpp/lib/jrnl/rmgr.hpp
store/trunk/cpp/lib/jrnl/wmgr.cpp
store/trunk/cpp/lib/jrnl/wmgr.hpp
store/trunk/cpp/tests/jrnl/JournalSystemTests.cpp
store/trunk/cpp/tests/jrnl/janalyze.py
store/trunk/cpp/tests/jrnl/jtest.cpp
store/trunk/cpp/tests/jrnl/jtest.hpp
store/trunk/cpp/tests/jrnl/msg_consumer.cpp
store/trunk/cpp/tests/jrnl/msg_consumer.hpp
store/trunk/cpp/tests/jrnl/msg_producer.cpp
store/trunk/cpp/tests/jrnl/msg_producer.hpp
store/trunk/cpp/tests/jrnl/rtest
store/trunk/cpp/tests/jrnl/rtests.csv
store/trunk/cpp/tests/jrnl/rwtests.csv
store/trunk/cpp/tests/jrnl/tests.ods
store/trunk/cpp/tests/jrnl/wtests.csv
Log:
Added support for external storage of (large) messages - extern flag added to enqueue header; added encoding and some testing for this flag (more extensive tests are still needed); exposed external flag parameters for read and write methods.
Modified: store/trunk/cpp/lib/BdbMessageStore.cpp
===================================================================
--- store/trunk/cpp/lib/BdbMessageStore.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/BdbMessageStore.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -474,6 +474,7 @@
void* dbuff = NULL; size_t dbuffSize = 0;
void* xidbuff = NULL; size_t xidbuffSize = 0;
bool transientFlag = false;
+ bool externalFlag = false;
dtokp.set_wstate(DataTokenImpl::ENQ);
@@ -484,7 +485,7 @@
while (read) {
- rhm::journal::iores res = jc->read_data_record(&dbuff, dbuffSize, &xidbuff, xidbuffSize, transientFlag, &dtokp);
+ rhm::journal::iores res = jc->read_data_record(&dbuff, dbuffSize, &xidbuff, xidbuffSize, transientFlag, externalFlag, &dtokp);
readSize = dtokp.dsize();
switch (res)
Modified: store/trunk/cpp/lib/JournalImpl.cpp
===================================================================
--- store/trunk/cpp/lib/JournalImpl.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/JournalImpl.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -102,16 +102,34 @@
}
const iores
+JournalImpl::enqueue_extern_data_record(const size_t tot_data_len, data_tok* dtokp,
+ const bool transient) throw (jexception)
+{
+//std::cout << " " << _jid << ":E-ext" << std::flush;
+ return handleInactivityTimer(jcntl::enqueue_extern_data_record(tot_data_len, dtokp,
+ transient));
+}
+
+const iores
JournalImpl::enqueue_txn_data_record(const void* const data_buff, const size_t tot_data_len,
const size_t this_data_len, data_tok* dtokp, const std::string& xid,
const bool transient) throw (jexception)
{
-//std::cout << " " << _jid << ":Etx" << std::flush;
+//std::cout << " " << _jid << ":E-tx" << std::flush;
return handleInactivityTimer(jcntl::enqueue_txn_data_record(data_buff, tot_data_len,
this_data_len, dtokp, xid, transient));
}
const iores
+JournalImpl::enqueue_extern_txn_data_record(const size_t tot_data_len, data_tok* dtokp,
+ const std::string& xid, const bool transient) throw (jexception)
+{
+//std::cout << " " << _jid << ":E-tx-ext" << std::flush;
+ return handleInactivityTimer(jcntl::enqueue_extern_txn_data_record(tot_data_len, dtokp, xid,
+ transient));
+}
+
+const iores
JournalImpl::dequeue_data_record(data_tok* const dtokp) throw (jexception)
{
//std::cout << " " << _jid << ":D" << std::flush;
@@ -122,21 +140,21 @@
JournalImpl::dequeue_txn_data_record(data_tok* const dtokp, const std::string& xid)
throw (jexception)
{
-//std::cout << " " << _jid << ":Dtx" << std::flush;
+//std::cout << " " << _jid << ":D-tx" << std::flush;
return handleInactivityTimer(jcntl::dequeue_txn_data_record(dtokp, xid));
}
const iores
JournalImpl::txn_abort(data_tok* const dtokp, const std::string& xid) throw (jexception)
{
-//std::cout << " " << _jid << ":Atx" << std::flush;
+//std::cout << " " << _jid << ":A-tx" << std::flush;
return handleInactivityTimer(jcntl::txn_abort(dtokp, xid));
}
const iores
JournalImpl::txn_commit(data_tok* const dtokp, const std::string& xid) throw (jexception)
{
-//std::cout << " " << _jid << ":Ctx" << std::flush;
+//std::cout << " " << _jid << ":C-tx" << std::flush;
return handleInactivityTimer(jcntl::txn_commit(dtokp, xid));
}
Modified: store/trunk/cpp/lib/JournalImpl.h
===================================================================
--- store/trunk/cpp/lib/JournalImpl.h 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/JournalImpl.h 2007-11-06 21:52:47 UTC (rev 1257)
@@ -99,11 +99,19 @@
const size_t tot_data_len, const size_t this_data_len, journal::data_tok* dtokp,
const bool transient = false) throw (journal::jexception);
+ const journal::iores enqueue_extern_data_record(const size_t tot_data_len,
+ journal::data_tok* dtokp, const bool transient = false)
+ throw (journal::jexception);
+
const journal::iores enqueue_txn_data_record(const void* const data_buff,
const size_t tot_data_len, const size_t this_data_len, journal::data_tok* dtokp,
const std::string& xid, const bool transient = false)
throw (journal::jexception);
+ const journal::iores enqueue_extern_txn_data_record(const size_t tot_data_len,
+ journal::data_tok* dtokp, const std::string& xid, const bool transient = false)
+ throw (journal::jexception);
+
const journal::iores dequeue_data_record(journal::data_tok* const dtokp)
throw (journal::jexception);
Modified: store/trunk/cpp/lib/jrnl/enq_rec.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/enq_rec.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/enq_rec.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -86,10 +86,11 @@
// be written.
void
enq_rec::reset(const u_int64_t rid, const void* const dbuf, const size_t dlen,
- const void* const xidp, const size_t xidlen, bool transient)
+ const void* const xidp, const size_t xidlen, const bool transient, const bool external)
{
_enq_hdr._hdr._rid = rid;
_enq_hdr.set_transient(transient);
+ _enq_hdr.set_external(external);
_enq_hdr._xidsize = xidlen;
_enq_hdr._dsize = dlen;
_xidp = xidp;
@@ -125,7 +126,7 @@
rem -= wsize;
}
rec_offs -= _enq_hdr._xidsize - wsize2;
- if (rem)
+ if (rem && !_enq_hdr.is_external())
{
wsize = _enq_hdr._dsize > rec_offs ? _enq_hdr._dsize - rec_offs : 0;
wsize2 = wsize;
@@ -167,7 +168,7 @@
}
rec_offs -= _enq_hdr._xidsize - wsize;
wsize = _enq_hdr._dsize > rec_offs ? _enq_hdr._dsize - rec_offs : 0;
- if (wsize)
+ if (wsize && !_enq_hdr.is_external())
{
::memcpy((char*)wptr + wr_cnt, (char*)_data + rec_offs, wsize);
wr_cnt += wsize;
@@ -204,7 +205,7 @@
wr_cnt += wsize;
rem -= wsize;
}
- if (rem)
+ if (rem && !_enq_hdr.is_external())
{
wsize = rem >= _enq_hdr._dsize ? _enq_hdr._dsize : rem;
::memcpy((char*)wptr + wr_cnt, _data, wsize);
@@ -227,8 +228,11 @@
::memcpy((char*)wptr + wr_cnt, _xidp, _enq_hdr._xidsize);
wr_cnt += _enq_hdr._xidsize;
}
- ::memcpy((char*)wptr + wr_cnt, _data, _enq_hdr._dsize);
- wr_cnt += _enq_hdr._dsize;
+ if (!_enq_hdr.is_external())
+ {
+ ::memcpy((char*)wptr + wr_cnt, _data, _enq_hdr._dsize);
+ wr_cnt += _enq_hdr._dsize;
+ }
::memcpy((char*)wptr + wr_cnt, (void*)&_enq_tail, sizeof(_enq_tail));
wr_cnt += sizeof(_enq_tail);
#ifdef RHM_CLEAN
@@ -344,9 +348,9 @@
_enq_hdr._dsize = *(size_t*)((char*)rptr + rd_cnt);
rd_cnt = _enq_hdr.size();
chk_hdr();
- if (_enq_hdr._xidsize + _enq_hdr._dsize)
+ if (_enq_hdr._xidsize + (_enq_hdr.is_external() ? 0 : _enq_hdr._dsize))
{
- _buff = ::malloc(_enq_hdr._xidsize + _enq_hdr._dsize);
+ _buff = ::malloc(_enq_hdr._xidsize + (_enq_hdr.is_external() ? 0 : _enq_hdr._dsize));
if (_buff == NULL)
{
std::stringstream ss;
@@ -369,7 +373,7 @@
::memcpy(_buff, (char*)rptr + rd_cnt, _enq_hdr._xidsize);
rd_cnt += _enq_hdr._xidsize;
}
- if (_enq_hdr._dsize)
+ if (_enq_hdr._dsize && !_enq_hdr.is_external())
{
::memcpy((char*)_buff + _enq_hdr._xidsize, (char*)rptr + rd_cnt,
_enq_hdr._dsize);
@@ -387,7 +391,7 @@
::memcpy(_buff, (char*)rptr + rd_cnt, _enq_hdr._xidsize);
rd_cnt += _enq_hdr._xidsize;
}
- if (_enq_hdr._dsize)
+ if (_enq_hdr._dsize && !_enq_hdr.is_external())
{
::memcpy((char*)_buff + _enq_hdr._xidsize, (char*)rptr + rd_cnt,
_enq_hdr._dsize);
@@ -408,7 +412,7 @@
::memcpy(_buff, (char*)rptr + rd_cnt, _enq_hdr._xidsize);
rd_cnt += _enq_hdr._xidsize;
}
- if (_enq_hdr._dsize)
+ if (_enq_hdr._dsize && !_enq_hdr.is_external())
{
const size_t data_cp_size = (max_size_dblks * JRNL_DBLK_SIZE) - rd_cnt;
::memcpy((char*)_buff + _enq_hdr._xidsize, (char*)rptr + rd_cnt, data_cp_size);
Modified: store/trunk/cpp/lib/jrnl/enq_rec.hpp
===================================================================
--- store/trunk/cpp/lib/jrnl/enq_rec.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/enq_rec.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -82,7 +82,8 @@
void reset();
// Prepare instance for use in writing data to journal
void reset(const u_int64_t rid, const void* const dbuf, const size_t dlen,
- const void* const xidp, const size_t xidlen, bool transient);
+ const void* const xidp, const size_t xidlen, const bool transient,
+ const bool external);
const u_int32_t encode(void* wptr, u_int32_t rec_offs_dblks, u_int32_t max_size_dblks)
throw (jexception);
@@ -94,6 +95,7 @@
const size_t get_xid(void** const xidpp);
const size_t get_data(void** const datapp);
inline const bool is_transient() const { return _enq_hdr.is_transient(); }
+ inline const bool is_external() const { return _enq_hdr.is_external(); }
std::string& str(std::string& str) const;
const size_t data_size() const;
const size_t xid_size() const;
Modified: store/trunk/cpp/lib/jrnl/file_hdr.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/file_hdr.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/file_hdr.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -235,7 +235,17 @@
_hdr._uflag &= (~ENQ_HDR_TRANSIENT_MASK);
}
+void
+enq_hdr::set_external(const bool external)
+{
+ if (external)
+ _hdr._uflag |= ENQ_HDR_EXTERNAL_MASK;
+ else
+ _hdr._uflag &= (~ENQ_HDR_EXTERNAL_MASK);
+}
+
const u_int16_t enq_hdr::ENQ_HDR_TRANSIENT_MASK = 0x1;
+const u_int16_t enq_hdr::ENQ_HDR_EXTERNAL_MASK = 0x2;
// ***** struct deq_hdr *****
Modified: store/trunk/cpp/lib/jrnl/file_hdr.hpp
===================================================================
--- store/trunk/cpp/lib/jrnl/file_hdr.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/file_hdr.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -302,6 +302,7 @@
u_int32_t _filler1; ///< Little-endian filler for 32-bit size_t
#endif
static const u_int16_t ENQ_HDR_TRANSIENT_MASK;
+ static const u_int16_t ENQ_HDR_EXTERNAL_MASK;
/**
* \brief Default constructor, which sets all values to 0.
@@ -316,6 +317,8 @@
inline const bool is_transient() const { return _hdr._uflag & ENQ_HDR_TRANSIENT_MASK; }
void set_transient(const bool transient);
+ inline const bool is_external() const { return _hdr._uflag & ENQ_HDR_EXTERNAL_MASK; }
+ void set_external(const bool external);
/**
* \brief Returns the size of the header in bytes.
Modified: store/trunk/cpp/lib/jrnl/jcntl.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/jcntl.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/jcntl.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -193,20 +193,36 @@
throw (jexception)
{
check_wstatus("enqueue_data_record");
- return _wmgr.enqueue(data_buff, tot_data_len, this_data_len, dtokp, NULL, 0, transient);
+ return _wmgr.enqueue(data_buff, tot_data_len, this_data_len, dtokp, NULL, 0, transient, false);
}
const iores
+jcntl::enqueue_extern_data_record(const size_t tot_data_len, data_tok* dtokp, const bool transient)
+ throw (jexception)
+{
+ check_wstatus("enqueue_extern_data_record");
+ return _wmgr.enqueue(NULL, tot_data_len, 0, dtokp, NULL, 0, transient, true);
+}
+
+const iores
jcntl::enqueue_txn_data_record(const void* const data_buff, const size_t tot_data_len,
const size_t this_data_len, data_tok* dtokp, const std::string& xid,
const bool transient) throw (jexception)
{
check_wstatus("enqueue_tx_data_record");
return _wmgr.enqueue(data_buff, tot_data_len, this_data_len, dtokp, xid.data(), xid.size(),
- transient);
+ transient, false);
}
const iores
+jcntl::enqueue_extern_txn_data_record(const size_t tot_data_len, data_tok* dtokp,
+ const std::string& xid, const bool transient) throw (jexception)
+{
+ check_wstatus("enqueue_extern_txn_data_record");
+ return _wmgr.enqueue(NULL, tot_data_len, 0, dtokp, xid.data(), xid.size(), transient, true);
+}
+
+const iores
jcntl::get_data_record(const u_int64_t& rid, const size_t& dsize, const size_t& dsize_avail,
const void** const data, bool auto_discard) throw (jexception)
{
@@ -223,10 +239,10 @@
const iores
jcntl::read_data_record(void** const datapp, size_t& dsize, void** const xidpp, size_t& xidsize,
- bool& transient, data_tok* const dtokp) throw (jexception)
+ bool& transient, bool& external, data_tok* const dtokp) throw (jexception)
{
check_rstatus("read_data");
- return _rmgr.read(datapp, dsize, xidpp, xidsize, transient, dtokp);
+ return _rmgr.read(datapp, dsize, xidpp, xidsize, transient, external, dtokp);
}
const iores
Modified: store/trunk/cpp/lib/jrnl/jcntl.hpp
===================================================================
--- store/trunk/cpp/lib/jrnl/jcntl.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/jcntl.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -303,6 +303,9 @@
const iores enqueue_data_record(const void* const data_buff, const size_t tot_data_len,
const size_t this_data_len, data_tok* dtokp, const bool transient = false)
throw (jexception);
+ const iores enqueue_extern_data_record(const size_t tot_data_len, data_tok* dtokp,
+ const bool transient = false) throw (jexception);
+
/**
* \brief Enqueue data.
*
@@ -319,6 +322,8 @@
const iores enqueue_txn_data_record(const void* const data_buff, const size_t tot_data_len,
const size_t this_data_len, data_tok* dtokp, const std::string& xid,
const bool transient = false) throw (jexception);
+ const iores enqueue_extern_txn_data_record(const size_t tot_data_len, data_tok* dtokp,
+ const std::string& xid, const bool transient = false) throw (jexception);
/**
* \brief Retrieve details of next record to be read without consuming the record.
@@ -377,6 +382,7 @@
*
* \exception TODO
*/
+ // *** NOT YET IMPLEMENTED ***
const iores get_data_record(const u_int64_t& rid, const size_t& dsize,
const size_t& dsize_avail, const void** const data, bool auto_discard = false)
throw (jexception);
@@ -386,6 +392,7 @@
*
* \exception TODO
*/
+ // *** NOT YET IMPLEMENTED ***
const iores discard_data_record(data_tok* const dtokp) throw (jexception);
/**
@@ -413,13 +420,17 @@
* to this record.
* \param xidsize Ref that will be set to the size of the XID.
* \param transient Ref that will be set true if record is transient.
+ * \param external Ref that will be set true if record is external. In this case, the data
+ * pointer datapp will be set to NULL, but dsize will contain the size of the data.
+ * NOTE: If there is an xid, then xidpp must be freed.
* \param dtokp Pointer to data_tok instance for this data, used to track state of data
* through journal.
*
* \exception TODO
*/
const iores read_data_record(void** const datapp, size_t& dsize, void** const xidpp,
- size_t& xidsize, bool& transient, data_tok* const dtokp) throw (jexception);
+ size_t& xidsize, bool& transient, bool& external, data_tok* const dtokp)
+ throw (jexception);
/**
* \brief Dequeues (marks as no longer needed) data record in journal.
Modified: store/trunk/cpp/lib/jrnl/rmgr.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/rmgr.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/rmgr.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -213,7 +213,7 @@
const iores
rmgr::read(void** const datapp, size_t& dsize, void** const xidpp, size_t& xidsize, bool& transient,
- data_tok* dtokp) throw (jexception)
+ bool& external, data_tok* dtokp) throw (jexception)
{
//std::cout << " rmgr::read() ro=" << (_jc->is_read_only()?"T":"F") << std::flush;
@@ -243,6 +243,7 @@
dsize = _enq_rec.get_data(datapp);
xidsize = _enq_rec.get_xid(xidpp);
transient = _enq_rec.is_transient();
+ external = _enq_rec.is_external();
return res;
}
//std::cout << " e" << std::flush;
@@ -368,6 +369,7 @@
dsize = _enq_rec.get_data(datapp);
xidsize = _enq_rec.get_xid(xidpp);
transient = _enq_rec.is_transient();
+ external = _enq_rec.is_external();
return res;
}
else // skip this record, it is already dequeued
Modified: store/trunk/cpp/lib/jrnl/rmgr.hpp
===================================================================
--- store/trunk/cpp/lib/jrnl/rmgr.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/rmgr.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -72,15 +72,13 @@
const void** const data, bool auto_discard) throw (jexception);
const iores discard(data_tok* dtok) throw (jexception);
const iores read(void** const datapp, size_t& dsize, void** const xidpp, size_t& xidsize,
- bool& transient, data_tok* dtokp) throw (jexception);
+ bool& transient, bool& external, data_tok* dtokp) throw (jexception);
const u_int32_t get_events(page_state state = AIO_COMPLETE) throw (jexception);
private:
void initialize() throw (jexception);
const iores pre_read_check(data_tok* dtokp) throw (jexception);
const iores read_enq(hdr& h, void* rptr, data_tok* dtokp) throw (jexception);
-// const iores read_deq(hdr& h, void* rptr, data_tok* dtokp) throw (jexception);
-// const iores read_txn(hdr& h, void* rptr, data_tok* dtokp) throw (jexception);
void consume_xid_rec(hdr& h, void* rptr, data_tok* dtokp) throw (jexception);
void consume_filler() throw (jexception);
const iores skip(data_tok* dtokp) throw (jexception);
Modified: store/trunk/cpp/lib/jrnl/wmgr.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/wmgr.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/wmgr.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -93,13 +93,13 @@
const iores
wmgr::enqueue(const void* const data_buff, const size_t tot_data_len, const size_t this_data_len,
- data_tok* dtokp, const void* const xid_ptr, const size_t xid_len, const bool transient)
- throw (jexception)
+ data_tok* dtokp, const void* const xid_ptr, const size_t xid_len, const bool transient,
+ const bool external) throw (jexception)
{
if (xid_len)
assert(xid_ptr != NULL);
- if (this_data_len != tot_data_len)
+ if (this_data_len != tot_data_len && !external)
return RHM_IORES_NOTIMPL;
if (_deq_busy || _abort_busy || _commit_busy)
@@ -125,7 +125,7 @@
_enq_busy = true;
u_int64_t rid = initialize_rid(cont, dtokp);
- _enq_rec.reset(rid, data_buff, tot_data_len, xid_ptr, xid_len, transient);
+ _enq_rec.reset(rid, data_buff, tot_data_len, xid_ptr, xid_len, transient, external);
if (!cont)
{
dtokp->set_rid(rid);
Modified: store/trunk/cpp/lib/jrnl/wmgr.hpp
===================================================================
--- store/trunk/cpp/lib/jrnl/wmgr.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/lib/jrnl/wmgr.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -105,7 +105,7 @@
const u_int32_t max_dtokpp, const u_int32_t max_iowait_us) throw (jexception);
const iores enqueue(const void* const data_buff, const size_t tot_data_len,
const size_t this_data_len, data_tok* dtokp, const void* const xid_ptr,
- const size_t xid_len, const bool transient) throw (jexception);
+ const size_t xid_len, const bool transient, const bool external) throw (jexception);
const iores dequeue(data_tok* dtokp, const void* const xid_ptr, const size_t xid_len)
throw (jexception);
const iores abort(data_tok* dtokp, const void* const xid_ptr, const size_t xid_len)
Modified: store/trunk/cpp/tests/jrnl/JournalSystemTests.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/JournalSystemTests.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/JournalSystemTests.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -84,8 +84,8 @@
CPPUNIT_TEST(EncodeTest_024);
CPPUNIT_TEST(EncodeTest_025);
CPPUNIT_TEST(EncodeTest_026);
-// CPPUNIT_TEST(EncodeTest_027); // Until race condition fixed
-// CPPUNIT_TEST(EncodeTest_028); // Until race condition fixed
+// CPPUNIT_TEST(EncodeTest_027); // Until race condition fixed
+// CPPUNIT_TEST(EncodeTest_028); // Until race condition fixed
CPPUNIT_TEST_SUITE_END();
jtest t;
@@ -96,6 +96,7 @@
void* xidbuff;
size_t xidsize;
bool transientFlag;
+ bool externalFlag;
public:
@@ -238,7 +239,7 @@
rhm::journal::jcntl jc(test_name, "jdata", test_name);
jc.initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
}
catch (const rhm::journal::jexception& e)
{
@@ -255,7 +256,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
delete jcp;
}
catch (const rhm::journal::jexception& e)
@@ -278,7 +279,7 @@
jc.initialize();
create_xid(xid, 0, XID_SIZE);
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(&jc, xid);
}
catch (const rhm::journal::jexception& e)
@@ -296,7 +297,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(jcp, xid);
delete jcp;
}
@@ -321,7 +322,7 @@
rhm::journal::jcntl jc(test_name, "jdata", test_name);
jc.initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
}
{
rhm::journal::jcntl jc(test_name, "jdata", test_name);
@@ -351,7 +352,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
delete jcp;
jcp = NULL;
}
@@ -393,7 +394,7 @@
create_xid(xid, 1, XID_SIZE);
txn_list.push_back(xid);
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(&jc, xid);
}
{
@@ -424,7 +425,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(jcp, xid);
delete jcp;
jcp = NULL;
@@ -465,7 +466,7 @@
rhm::journal::jcntl jc(test_name, "jdata", test_name);
jc.initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
}
{
rhm::journal::jcntl jc(test_name, "jdata", test_name);
@@ -503,7 +504,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
delete jcp;
jcp = NULL;
}
@@ -552,7 +553,7 @@
create_xid(xid, 2, XID_SIZE);
txn_list.push_back(xid);
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(&jc, xid);
}
{
@@ -591,7 +592,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(jcp, xid);
delete jcp;
jcp = NULL;
@@ -639,7 +640,7 @@
rhm::journal::jcntl jc(test_name, "jdata", test_name);
jc.initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
}
{
rhm::journal::jcntl jc(test_name, "jdata", test_name);
@@ -679,7 +680,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
delete jcp;
jcp = NULL;
}
@@ -730,7 +731,7 @@
create_xid(xid, 3, XID_SIZE);
txn_list.push_back(xid);
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(&jc, xid);
}
{
@@ -771,7 +772,7 @@
CPPUNIT_ASSERT_MESSAGE("Journal heap instantiation failed.", jcp != NULL);
jcp->initialize();
for (int m=0; m<NUM_MSGS; m++)
- enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid, false);
txn_commit(jcp, xid);
delete jcp;
jcp = NULL;
@@ -822,7 +823,7 @@
jc.initialize();
// rids: 0 to NUM_MSGS*2 - 1
for (int m=0; m<NUM_MSGS*2; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
// rids: NUM_MSGS*2 to NUM_MSGS*3 - 1
for (int m=0; m<NUM_MSGS; m++)
deq_msg(&jc, m);
@@ -848,7 +849,7 @@
jc.recover_complete();
// rids: NUM_MSGS*3 to NUM_MSGS*4 - 1
for (int m=NUM_MSGS*3; m<NUM_MSGS*4; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
jc.flush();
for (int m=NUM_MSGS; m<NUM_MSGS*2; m++)
{
@@ -888,7 +889,7 @@
jcp->initialize();
// rids: 0 to NUM_MSGS*2 - 1
for (int m=0; m<NUM_MSGS*2; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
// rids: NUM_MSGS*2 to NUM_MSGS*3 - 1
for (int m=0; m<NUM_MSGS; m++)
deq_msg(jcp, m);
@@ -917,7 +918,7 @@
jcp->recover_complete();
// rids: NUM_MSGS*3 to NUM_MSGS*4 - 1
for (int m=NUM_MSGS*3; m<NUM_MSGS*4; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
jcp->flush();
for (int m=NUM_MSGS; m<NUM_MSGS*2; m++)
{
@@ -963,12 +964,12 @@
jc.initialize();
// rids: 0 to NUM_MSGS - 1
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
// rids: NUM_MSGS to NUM_MSGS*2 - 1
create_xid(xid, 4, XID_SIZE);
txn_list.push_back(xid);
for (int m=NUM_MSGS; m<NUM_MSGS*2; m++)
- enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(&jc, create_msg(msg, m, MSG_SIZE), xid, false);
// rids: NUM_MSGS*2 to NUM_MSGS*3 - 1
for (int m=0; m<NUM_MSGS; m++)
deq_msg(&jc, m);
@@ -996,7 +997,7 @@
jc.recover_complete();
// rids: NUM_MSGS*3+1 to NUM_MSGS*4
for (int m=NUM_MSGS*3+1; m<NUM_MSGS*4+1; m++)
- enq_msg(&jc, create_msg(msg, m, MSG_SIZE));
+ enq_msg(&jc, create_msg(msg, m, MSG_SIZE), false);
jc.flush();
for (int m=NUM_MSGS; m<NUM_MSGS*2; m++)
{
@@ -1036,11 +1037,11 @@
jcp->initialize();
// rids: 0 to NUM_MSGS*2 - 1
for (int m=0; m<NUM_MSGS; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
create_xid(xid, 4, XID_SIZE);
// rids: NUM_MSGS to NUM_MSGS*2 - 1
for (int m=NUM_MSGS; m<NUM_MSGS*2; m++)
- enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid);
+ enq_txn_msg(jcp, create_msg(msg, m, MSG_SIZE), xid, false);
// rids: NUM_MSGS*2 to NUM_MSGS*3 - 1
for (int m=0; m<NUM_MSGS; m++)
deq_msg(jcp, m);
@@ -1071,7 +1072,7 @@
jcp->recover_complete();
// rids: NUM_MSGS*3+1 to NUM_MSGS*4
for (int m=NUM_MSGS*3+1; m<NUM_MSGS*4+1; m++)
- enq_msg(jcp, create_msg(msg, m, MSG_SIZE));
+ enq_msg(jcp, create_msg(msg, m, MSG_SIZE), false);
jcp->flush();
for (int m=NUM_MSGS; m<NUM_MSGS*2; m++)
{
@@ -1107,178 +1108,199 @@
void EncodeTest_000()
{
- runEncodeTest(0, 0, 0, false, 0, 0, false, 2, "Empty journal");
+ runEncodeTest(0, 0, 0, false, 0, 0, false, false, 2, "Empty journal");
}
void EncodeTest_001()
{
- runEncodeTest(1, 10, 10, false, 0, 0, false, 2, "1*(10 bytes)");
+ runEncodeTest(1, 10, 10, false, 0, 0, false, false, 2, "1*(10 bytes)");
}
void EncodeTest_002()
{
- runEncodeTest(1, 10, 10, true, 0, 0, false, 2, "1*(10 bytes), auto-deq");
+ runEncodeTest(1, 10, 10, true, 0, 0, false, false, 2, "1*(10 bytes), auto-deq");
}
void EncodeTest_003()
{
- runEncodeTest(10, 10, 10, false, 0, 0, false, 2, "10*(10 bytes)");
+ runEncodeTest(10, 10, 10, false, 0, 0, false, false, 2, "10*(10 bytes)");
}
void EncodeTest_004()
{
- runEncodeTest(10, 10, 10, true, 0, 0, false, 2, "10*(10 bytes), auto-deq");
+ runEncodeTest(10, 10, 10, true, 0, 0, false, false, 2, "10*(10 bytes), auto-deq");
}
void EncodeTest_005()
{
- runEncodeTest(10, 92, 92, false, 0, 0, false, 2, "10*(1 dblk exact fit)");
+ runEncodeTest(10, 92, 92, false, 0, 0, false, false, 2, "10*(1 dblk exact fit)");
}
void EncodeTest_006()
{
- runEncodeTest(10, 92, 92, true, 0, 0, false, 2, "10*(1 dblk exact fit), auto-deq");
+ runEncodeTest(10, 92, 92, true, 0, 0, false, false, 2, "10*(1 dblk exact fit), auto-deq");
}
void EncodeTest_007()
{
- runEncodeTest(10, 93, 93, false, 0, 0, false, 2, "10*(1 dblk + 1 byte)");
+ runEncodeTest(10, 93, 93, false, 0, 0, false, false, 2, "10*(1 dblk + 1 byte)");
}
void EncodeTest_008()
{
- runEncodeTest(10, 93, 93, true, 0, 0, false, 2, "10*(1 dblk + 1 byte), auto-deq");
+ runEncodeTest(10, 93, 93, true, 0, 0, false, false, 2, "10*(1 dblk + 1 byte), auto-deq");
}
void EncodeTest_009()
{
- runEncodeTest(10, 476, 476, false, 0, 0, false, 2, "10*(1 sblk exact fit)");
+ runEncodeTest(10, 476, 476, false, 0, 0, false, false, 2, "10*(1 sblk exact fit)");
}
void EncodeTest_010()
{
- runEncodeTest(10, 476, 476, true, 0, 0, false, 2, "10*(1 sblk exact fit), auto-deq");
+ runEncodeTest(10, 476, 476, true, 0, 0, false, false, 2, "10*(1 sblk exact fit), auto-deq");
}
void EncodeTest_011()
{
- runEncodeTest(10, 477, 477, false, 0, 0, false, 2, "10*(1 sblk + 1 byte)");
+ runEncodeTest(10, 477, 477, false, 0, 0, false, false, 2, "10*(1 sblk + 1 byte)");
}
void EncodeTest_012()
{
- runEncodeTest(10, 477, 477, true, 0, 0, false, 2, "10*(1 sblk + 1 byte), auto-deq");
+ runEncodeTest(10, 477, 477, true, 0, 0, false, false, 2, "10*(1 sblk + 1 byte), auto-deq");
}
void EncodeTest_013()
{
- runEncodeTest(8, 4060, 4060, false, 0, 0, false, 2, "8*(1/8 page)");
+ runEncodeTest(8, 4060, 4060, false, 0, 0, false, false, 2, "8*(1/8 page)");
}
void EncodeTest_014()
{
- runEncodeTest(9, 4060, 4060, false, 0, 0, false, 2, "9*(1/8 page)");
+ runEncodeTest(9, 4060, 4060, false, 0, 0, false, false, 2, "9*(1/8 page)");
}
void EncodeTest_015()
{
- runEncodeTest(8, 4061, 4061, false, 0, 0, false, 2, "8*(1/8 page + 1 byte)");
+ runEncodeTest(8, 4061, 4061, false, 0, 0, false, false, 2, "8*(1/8 page + 1 byte)");
}
void EncodeTest_016()
{
- runEncodeTest(8, 3932, 3932, true, 0, 0, false, 2,
+ runEncodeTest(8, 3932, 3932, true, 0, 0, false, false, 2,
"8*(1/8 page - 1 dblk for deq record), auto-deq");
}
void EncodeTest_017()
{
- runEncodeTest(9, 3932, 3932, true, 0, 0, false, 2,
+ runEncodeTest(9, 3932, 3932, true, 0, 0, false, false, 2,
"9*(1/8 page - 1 dblk for deq record), auto-deq");
}
void EncodeTest_018()
{
- runEncodeTest(8, 3933, 3933, true, 0, 0, false, 2,
+ runEncodeTest(8, 3933, 3933, true, 0, 0, false, false, 2,
"8*(1/8 page - 1 dblk for deq record + 1 byte), auto-deq");
}
void EncodeTest_019()
{
- runEncodeTest(32, 32732, 32732, false, 0, 0, false, 2, "32*(1 page exact fit)");
+ runEncodeTest(32, 32732, 32732, false, 0, 0, false, false, 2, "32*(1 page exact fit)");
}
void EncodeTest_020()
{
- runEncodeTest(33, 32732, 32732, false, 0, 0, false, 2, "33*(1 page exact fit)");
+ runEncodeTest(33, 32732, 32732, false, 0, 0, false, false, 2, "33*(1 page exact fit)");
}
void EncodeTest_021()
{
- runEncodeTest(22, 49116, 49116, false, 0, 0, false, 2, "22*(1.5 pages)");
+ runEncodeTest(22, 49116, 49116, false, 0, 0, false, false, 2, "22*(1.5 pages)");
}
void EncodeTest_022()
{
- runEncodeTest(22, 48988, 48988, true, 0, 0, false, 2,
+ runEncodeTest(22, 48988, 48988, true, 0, 0, false, false, 2,
"22*(1.5 pages - 1 dblk for deq record), auto-deq");
}
void EncodeTest_023()
{
- runEncodeTest(48, 32732, 32732, false, 0, 0, false, 2, "48*(1 page exact fit)");
+ runEncodeTest(48, 32732, 32732, false, 0, 0, false, false, 2, "48*(1 page exact fit)");
}
void EncodeTest_024()
{
- runEncodeTest(49, 32732, 32732, false, 0, 0, false, 2, "49*(1 page exact fit)");
+ runEncodeTest(49, 32732, 32732, false, 0, 0, false, false, 2, "49*(1 page exact fit)");
}
void EncodeTest_025()
{
- runEncodeTest(20, 81884, 81884, false, 0, 0, false, 2, "20*(2.5 pages)");
+ runEncodeTest(20, 81884, 81884, false, 0, 0, false, false, 2, "20*(2.5 pages)");
}
void EncodeTest_026()
{
- runEncodeTest(20, 81756, 81756, true, 0, 0, false, 2,
+ runEncodeTest(20, 81756, 81756, true, 0, 0, false, false, 2,
"20*(2.5 pages - 1 dblk for deq record), auto-deq");
}
void EncodeTest_027()
{
- runEncodeTest(16, 786268, 786268, true, 0, 0, false, 2,
+ runEncodeTest(16, 786268, 786268, true, 0, 0, false, false, 2,
"16*(24 pages = 1/2 file); Total = 8 files exactly (full journal filespace)");
}
void EncodeTest_028()
{
- runEncodeTest(17, 786268, 786268, true, 0, 0, false, 2,
+ runEncodeTest(17, 786268, 786268, true, 0, 0, false, false, 2,
"17*(24 pages = 1/2 file); Total = 8 files + file 0 overwritten by 1/2 file");
}
private:
- void enq_msg(rhm::journal::jcntl* jc, const std::string msg)
+ void enq_msg(rhm::journal::jcntl* jc, const std::string msg, const bool transient)
{
rhm::journal::data_tok* dtp = new rhm::journal::data_tok;
CPPUNIT_ASSERT_MESSAGE("Data Token heap intantiation failed.", dtp != NULL);
unsigned aio_sleep_cnt = 0;
while (handle_jcntl_response(jc->enqueue_data_record(msg.c_str(), msg.size(), msg.size(),
- dtp, false), jc, aio_sleep_cnt, dtp));
+ dtp, transient), jc, aio_sleep_cnt, dtp));
}
- void enq_txn_msg(rhm::journal::jcntl* jc, const std::string msg, const std::string xid)
+ void enq_extern_msg(rhm::journal::jcntl* jc, const bool transient)
{
rhm::journal::data_tok* dtp = new rhm::journal::data_tok;
CPPUNIT_ASSERT_MESSAGE("Data Token heap intantiation failed.", dtp != NULL);
unsigned aio_sleep_cnt = 0;
- while (handle_jcntl_response(jc->enqueue_txn_data_record(msg.c_str(), msg.size(), msg.size(),
- dtp, xid, false), jc, aio_sleep_cnt, dtp));
+ while (handle_jcntl_response(jc->enqueue_extern_data_record(msg.size(),
+ dtp, transient), jc, aio_sleep_cnt, dtp));
}
+ void enq_txn_msg(rhm::journal::jcntl* jc, const std::string msg, const std::string xid,
+ const bool transient)
+ {
+ rhm::journal::data_tok* dtp = new rhm::journal::data_tok;
+ CPPUNIT_ASSERT_MESSAGE("Data Token heap intantiation failed.", dtp != NULL);
+
+ unsigned aio_sleep_cnt = 0;
+ while (handle_jcntl_response(jc->enqueue_txn_data_record(msg.c_str(), msg.size(),
+ msg.size(), dtp, xid, transient), jc, aio_sleep_cnt, dtp));
+ }
+
+ void enq_extern_txn_msg(rhm::journal::jcntl* jc, const std::string xid, const bool transient)
+ {
+ rhm::journal::data_tok* dtp = new rhm::journal::data_tok;
+ CPPUNIT_ASSERT_MESSAGE("Data Token heap intantiation failed.", dtp != NULL);
+
+ unsigned aio_sleep_cnt = 0;
+ while (handle_jcntl_response(jc->enqueue_extern_txn_data_record(msg.size(), dtp, xid,
+ transient), jc, aio_sleep_cnt, dtp));
+ }
+
void deq_msg(rhm::journal::jcntl* jc, u_int64_t rid)
{
rhm::journal::data_tok* dtp = new rhm::journal::data_tok;
@@ -1328,7 +1350,7 @@
unsigned aio_sleep_cnt = 0;
while (handle_jcntl_response(jc->read_data_record(&mbuff, msize, &xidbuff, xidsize,
- transientFlag, dtp), jc, aio_sleep_cnt, dtp));
+ transientFlag, externalFlag, dtp), jc, aio_sleep_cnt, dtp));
return (char*)mbuff;
}
@@ -1393,12 +1415,12 @@
void runEncodeTest(const unsigned num_msgs, const unsigned min_msg_size,
const unsigned max_msg_szie, const bool auto_deq, const unsigned min_xid_size,
- const unsigned max_xid_size, const bool transient, const unsigned iterations,
- char* test_descr)
+ const unsigned max_xid_size, const bool transient, const bool external,
+ const unsigned iterations, char* test_descr)
{
std::cout << " [" << test_descr << "] " << std::flush;
jtest::targs ta(num_msgs, min_msg_size, max_msg_szie, auto_deq, min_xid_size,
- max_xid_size, transient, test_descr);
+ max_xid_size, transient, external, test_descr);
for (unsigned i=0; i<iterations; i++)
{
std::cout << "." << std::flush;
Modified: store/trunk/cpp/tests/jrnl/janalyze.py
===================================================================
--- store/trunk/cpp/tests/jrnl/janalyze.py 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/janalyze.py 2007-11-06 21:52:47 UTC (rev 1257)
@@ -40,9 +40,11 @@
MAX_XID_SIZE_COL = 10
AUTO_DEQ_COL = 11
TRANSIENT_COL = 12
-COMMENT_COL = 19
+EXTERN_COL = 13
+COMMENT_COL = 20
transient_mask = 0x1
+extern_mask = 0x2
def load(f, klass):
args = load_args(f, klass)
@@ -85,6 +87,8 @@
return 'xid(%d)=\"%s\" ' % (xidsize, xidstr)
def print_data(dsize, data):
+ if data == None:
+ return ''
if len(data) > 25:
datastr = data[:10] + ' ... ' + data[-10:]
else:
@@ -320,6 +324,8 @@
def init(self, f, foffs, xidsize, dsize):
self.xidsize = xidsize
self.dsize = dsize
+ self.transient = self.flags & transient_mask > 0
+ self.extern = self.flags & extern_mask > 0
self.xid = None
self.data = None
self.enq_tail = None
@@ -336,9 +342,12 @@
self.xid = ret[0]
self.xid_complete = ret[1]
if self.xid_complete and not self.data_complete:
- ret = load_file_data(f, self.dsize, self.data)
- self.data = ret[0]
- self.data_complete = ret[1]
+ if self.extern:
+ self.data_complete = True
+ else:
+ ret = load_file_data(f, self.dsize, self.data)
+ self.data = ret[0]
+ self.data_complete = ret[1]
if self.data_complete and not self.tail_complete:
ret = load_file_data(f, calcsize(RecTail.format), self.tail_bin)
self.tail_bin = ret[0]
@@ -353,11 +362,19 @@
def complete(self):
return self.xid_complete and self.data_complete and self.tail_complete
-
+
def print_flags(self):
- if self.flags & transient_mask > 0:
- return '*TRANSIENT*'
- return ''
+ s = ''
+ if self.transient:
+ s = '*TRANSIENT'
+ if self.extern:
+ if len(s) > 0:
+ s += ',EXTERNAL'
+ else:
+ s = '*EXTERNAL'
+ if len(s) > 0:
+ s += '*'
+ return s
def __str__(self):
return '%s %s%s %s %s' % (Hdr.__str__(self), print_xid(self.xidsize, self.xid), print_data(self.dsize, self.data), self.enq_tail, self.print_flags())
@@ -382,6 +399,7 @@
else:
self.xid_len = 0
self.transient = tparams['transient']
+ self.extern = tparams['extern']
else:
self.tnum = None
self.num_msgs = None
@@ -389,6 +407,7 @@
self.auto_deq = None
self.xid_len = None
self.transient = None
+ self.extern = None
self.file_start = 0
self.file_num = 0
self.fro = 0x200
@@ -435,16 +454,24 @@
if stop:
break
hdr.load(self.f)
- if self.msg_len > 0 and len(hdr.data) != self.msg_len:
- raise Exception('Message length (%d) incorrect; expected %d' % (len(hdr.data), self.msg_len))
+ if self.extern != None:
+ if hdr.extern:
+ if hdr.data != None:
+ raise Exception('Message data found on external record')
+ else:
+ if self.msg_len > 0 and len(hdr.data) != self.msg_len:
+ raise Exception('Message length (%d) incorrect; expected %d' % (len(hdr.data), self.msg_len))
+ else:
+ if self.msg_len > 0 and len(hdr.data) != self.msg_len:
+ raise Exception('Message length (%d) incorrect; expected %d' % (len(hdr.data), self.msg_len))
if self.xid_len > 0 and len(hdr.xid) != self.xid_len:
raise Exception('XID length (%d) incorrect; expected %d' % (len(hdr.xidsize), self.xid_len))
if self.transient != None:
if self.transient:
- if hdr.flags & transient_mask == 0:
+ if not hdr.transient:
raise Exception('Expected transient record, found persistent')
else:
- if hdr.flags & transient_mask != 0:
+ if hdr.transient:
raise Exception('Expected persistent record, found transient')
stop = not self.check_rid(hdr)
if stop:
@@ -544,6 +571,7 @@
'xid_min_size':int(sl[MIN_XID_SIZE_COL]),
'xid_max_size':int(sl[MAX_XID_SIZE_COL]),
'transient':not (sl[TRANSIENT_COL] == 'FALSE' or sl[TRANSIENT_COL] == '0'),
+ 'extern':not (sl[EXTERN_COL] == 'FALSE' or sl[EXTERN_COL] == '0'),
'comment':sl[COMMENT_COL] }
except Exception:
pass
Modified: store/trunk/cpp/tests/jrnl/jtest.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/jtest.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/jtest.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -79,12 +79,13 @@
_min_xid_size(0),
_max_xid_size(0),
_transient(false),
+ _external(false),
_comment(NULL)
{}
jtest::targs::targs(const u_int32_t num_msgs, const size_t min_msg_size, const size_t max_msg_size,
const bool auto_deq, const size_t min_xid_size, const size_t max_xid_size,
- const bool transient, char* comment):
+ const bool transient, const bool external, char* comment):
_num_msgs(num_msgs),
_min_msg_size(min_msg_size),
_max_msg_size(max_msg_size),
@@ -92,6 +93,7 @@
_min_xid_size(min_xid_size),
_max_xid_size(max_xid_size),
_transient(transient),
+ _external(external),
_comment(comment)
{}
@@ -133,9 +135,9 @@
#endif
p_args = new msg_producer::_p_args(_jc, ta._num_msgs, ta._min_msg_size, ta._max_msg_size,
- ta._auto_deq, ta._min_xid_size, ta._max_xid_size, ta._transient);
+ ta._auto_deq, ta._min_xid_size, ta._max_xid_size, ta._transient, ta._external);
c_args = new msg_consumer::_c_args(_jc, ta._num_msgs, ta._min_msg_size, ta._max_msg_size,
- ta._min_xid_size, ta._max_xid_size, ta._transient);
+ ta._min_xid_size, ta._max_xid_size, ta._transient, ta._external);
#ifndef RHM_RDONLY
_mp.initialize(p_args);
@@ -353,7 +355,8 @@
#define MAX_XID_SIZE_COL 10
#define AUTO_DEQ_COL 11
#define TRANSIENT_COL 12
-#define COMMENT_COL 19
+#define EXTERN_COL 13
+#define COMMENT_COL 20
// static method
void
@@ -395,6 +398,8 @@
strcmp(toks[AUTO_DEQ_COL], "0") == 0);
tap->_transient = !(strcmp(toks[TRANSIENT_COL], "FALSE") == 0 ||
strcmp(toks[TRANSIENT_COL], "0") == 0);
+ tap->_external = !(strcmp(toks[EXTERN_COL], "FALSE") == 0 ||
+ strcmp(toks[EXTERN_COL], "0") == 0);
if (toks.size() > COMMENT_COL)
{
tap->_comment = toks[COMMENT_COL];
Modified: store/trunk/cpp/tests/jrnl/jtest.hpp
===================================================================
--- store/trunk/cpp/tests/jrnl/jtest.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/jtest.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -56,11 +56,12 @@
size_t _min_xid_size;
size_t _max_xid_size;
bool _transient;
+ bool _external;
char* _comment;
targs();
targs(const u_int32_t num_msgs, const size_t min_msg_size, const size_t max_msg_size,
const bool auto_deq, const size_t min_xid_size, const size_t max_xid_size,
- const bool transient, char* comment = NULL);
+ const bool transient, const bool external, char* comment = NULL);
};
private:
Modified: store/trunk/cpp/tests/jrnl/msg_consumer.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/msg_consumer.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/msg_consumer.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -39,7 +39,7 @@
msg_consumer::_c_args::_c_args(rhm::journal::jcntl& jc, const u_int32_t num_msgs,
const size_t min_msg_size, const size_t max_msg_size, const size_t min_xid_size,
- const size_t max_xid_size, const bool transient):
+ const size_t max_xid_size, const bool transient, const bool external):
_jc(jc),
_num_msgs(num_msgs),
_min_msg_size(min_msg_size),
@@ -47,6 +47,7 @@
_min_xid_size(min_xid_size),
_max_xid_size(max_xid_size),
_transient(transient),
+ _external(external),
_err(0)
{}
@@ -95,7 +96,8 @@
u_int32_t
msg_consumer::consume(rhm::journal::jcntl& _jcntl, const u_int32_t num_msgs,
const size_t min_msg_size, const size_t max_msg_size, const size_t min_xid_size,
- const size_t max_xid_size, const bool transient_expected) throw (rhm::journal::jexception)
+ const size_t max_xid_size, const bool transient_expected, const bool external_expected)
+ throw (rhm::journal::jexception)
{
//std::cout << "msg_consumer::consume() num_msgs=" << num_msgs << std::endl;
void* datap = NULL;
@@ -103,6 +105,7 @@
void* xidp = NULL;
size_t xid_size = 0;
bool transient_flag = false;
+ bool external_flag = false;
u_int32_t msgCntr = 0;
for (msgCntr = 0; msgCntr < num_msgs && !_interrupt_flag; msgCntr++)
@@ -118,7 +121,7 @@
if (dtokp->wstate() >= rhm::journal::data_tok::ENQ)
{
rhm::journal::iores res = _jcntl.read_data_record(&datap, data_size, &xidp,
- xid_size, transient_flag, dtokp);
+ xid_size, transient_flag, external_flag, dtokp);
rhm::journal::data_tok::read_state rs = dtokp->rstate();
rhm::journal::data_tok::write_state ws = dtokp->wstate();
switch (res)
@@ -133,10 +136,12 @@
_tot_dblks += dtokp->dblocks_read();
_tot_dsize += data_size;
- // Comment out these for performance checks/measurements
- check_msg(msgCntr, data_size, min_msg_size, max_msg_size, true, datap);
+ // Comment out these for performance checks/measurements
+ check_msg(msgCntr, data_size, min_msg_size, max_msg_size, !external_flag,
+ datap);
check_xid(msgCntr, xid_size, min_xid_size, max_xid_size, true, xidp);
check_transience(msgCntr, transient_flag, transient_expected);
+ check_external(msgCntr, external_flag, external_expected);
//print_dbug(msgCntr, data_size, _msg_buff, true);
break;
case rhm::journal::RHM_IORES_AIO_WAIT:
@@ -204,7 +209,7 @@
msg_consumer::consume(_c_args* args) throw (rhm::journal::jexception)
{
return consume(args->_jc, args->_num_msgs, args->_min_msg_size, args->_max_msg_size,
- args->_min_xid_size, args->_max_xid_size, args->_transient);
+ args->_min_xid_size, args->_max_xid_size, args->_transient, args->_external);
}
void
@@ -308,6 +313,22 @@
}
void
+msg_consumer::check_external(const u_int32_t msgCntr, const bool external_flag,
+ const bool external_expected_flag) const throw (rhm::journal::jexception)
+{
+ if ((external_flag && !external_expected_flag) ||
+ (!external_flag &&external_expected_flag))
+ {
+ std::stringstream ss;
+ ss << "Message " << msgCntr << " failed external check: found ";
+ ss << (external_flag?"external":"internal") << "; expected ";
+ ss << (external_expected_flag?"external":"internal") << ".";
+ throw rhm::journal::jexception(EXCEPTION_BASE+8, ss.str(), "msg_consumer",
+ "check_transience");
+ }
+}
+
+void
msg_consumer::print_dbug(const u_int32_t msgCntr, const size_t msg_size, char* buff,
const bool show_msg) const
{
Modified: store/trunk/cpp/tests/jrnl/msg_consumer.hpp
===================================================================
--- store/trunk/cpp/tests/jrnl/msg_consumer.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/msg_consumer.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -52,10 +52,11 @@
size_t _min_xid_size;
size_t _max_xid_size;
bool _transient;
+ bool _external;
u_int32_t _err;
_c_args(rhm::journal::jcntl& jc, const u_int32_t num_msgs, const size_t min_msg_size,
const size_t max_msg_size, const size_t min_xid_size, const size_t max_xid_size,
- const bool transient);
+ const bool transient, const bool external);
};
static const char* iores_str[];
@@ -81,7 +82,8 @@
u_int32_t consume(rhm::journal::jcntl& _jcntl, const u_int32_t numMsgs,
const size_t min_msg_size, const size_t max_msg_size, const size_t min_xid_size,
- const size_t max_xid_size, const bool transient) throw (rhm::journal::jexception);
+ const size_t max_xid_size, const bool transient_expected, const bool external_expected)
+ throw (rhm::journal::jexception);
u_int32_t consume(_c_args* args) throw (rhm::journal::jexception);
void aio_callback(rhm::journal::jcntl* jc, u_int32_t num_dtoks);
@@ -98,6 +100,8 @@
throw (rhm::journal::jexception);
void check_transience(const u_int32_t msgCntr, const bool transient_flag,
const bool transient_expected_flag) const throw (rhm::journal::jexception);
+ void check_external(const u_int32_t msgCntr, const bool external_flag,
+ const bool external_expected_flag) const throw (rhm::journal::jexception);
void print_dbug(const u_int32_t msgCntr, const size_t msg_size, char* buff,
const bool show_msg = false) const;
Modified: store/trunk/cpp/tests/jrnl/msg_producer.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/msg_producer.cpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/msg_producer.cpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -37,7 +37,7 @@
msg_producer::_p_args::_p_args(rhm::journal::jcntl& jc, u_int32_t num_msgs,
size_t min_msg_size, size_t max_msg_size, bool auto_dequeue, size_t min_xid_size,
- size_t max_xid_size, bool transient):
+ size_t max_xid_size, bool transient, bool external):
_jc(jc),
_num_msgs(num_msgs),
_min_msg_size(min_msg_size),
@@ -46,6 +46,7 @@
_min_xid_size(min_xid_size),
_max_xid_size(max_xid_size),
_transient(transient),
+ _external(external),
_err(0)
{}
@@ -105,7 +106,7 @@
u_int32_t
msg_producer::produce(rhm::journal::jcntl& jc, const size_t minMsgSize, const size_t maxMsgSize,
- const size_t minXidSize, const size_t maxXidSize, const bool transient)
+ const size_t minXidSize, const size_t maxXidSize, const bool transient, const bool external)
throw (rhm::journal::jexception)
{
_jcptr = &jc;
@@ -145,9 +146,19 @@
{
rhm::journal::iores eres;
if (maxXidSize)
- eres = jc.enqueue_txn_data_record(msg, size, size, dtokp, xid, transient);
+ {
+ if (external)
+ eres = jc.enqueue_extern_txn_data_record(size, dtokp, xid, transient);
+ else
+ eres = jc.enqueue_txn_data_record(msg, size, size, dtokp, xid, transient);
+ }
else
- eres = jc.enqueue_data_record(msg, size, size, dtokp, transient);
+ {
+ if (external)
+ eres = jc.enqueue_extern_data_record(size, dtokp, transient);
+ else
+ eres = jc.enqueue_data_record(msg, size, size, dtokp, transient);
+ }
rhm::journal::data_tok::write_state ws = dtokp->wstate();
const char* wsstr = dtokp->wstate_str();
switch (eres)
@@ -242,7 +253,7 @@
msg_producer::produce(_p_args* args) throw (rhm::journal::jexception)
{
return produce(args->_jc, args->_min_msg_size, args->_max_msg_size, args->_min_xid_size,
- args->_max_xid_size, args->_transient);
+ args->_max_xid_size, args->_transient, args->_external);
}
void
Modified: store/trunk/cpp/tests/jrnl/msg_producer.hpp
===================================================================
--- store/trunk/cpp/tests/jrnl/msg_producer.hpp 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/msg_producer.hpp 2007-11-06 21:52:47 UTC (rev 1257)
@@ -53,10 +53,11 @@
size_t _min_xid_size;
size_t _max_xid_size;
bool _transient;
+ bool _external;
u_int32_t _err;
_p_args(rhm::journal::jcntl& jc, u_int32_t num_msgs, size_t min_msg_size,
size_t max_msg_size, bool auto_dequeue, size_t min_xid_size,
- size_t max_xid_size, bool transient);
+ size_t max_xid_size, bool transient, bool external);
};
static const char* iores_str[];
@@ -92,8 +93,8 @@
void finalize();
u_int32_t produce(rhm::journal::jcntl& jc, const size_t minMsgSize, const size_t maxMsgSize,
- const size_t minXidSize, const size_t maxXidSize, const bool transient)
- throw (rhm::journal::jexception);
+ const size_t minXidSize, const size_t maxXidSize, const bool transient,
+ const bool external) throw (rhm::journal::jexception);
u_int32_t produce(_p_args* args) throw (rhm::journal::jexception);
void aio_callback(rhm::journal::jcntl* jc, u_int32_t num_dtoks);
Modified: store/trunk/cpp/tests/jrnl/rtest
===================================================================
--- store/trunk/cpp/tests/jrnl/rtest 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/rtest 2007-11-06 21:52:47 UTC (rev 1257)
@@ -37,21 +37,21 @@
W_DO_TEST=T
W_TEST_FILE=wtests.csv
W_TEST_START=0
-W_TEST_STOP=218
+W_TEST_STOP=234
W_NITER=5
# Read test
R_DO_TEST=T
R_TEST_FILE=rtests.csv
R_TEST_START=0
-R_TEST_STOP=126
+R_TEST_STOP=164
R_NITER=5
# Read-Write test
RW_DO_TEST=T
RW_TEST_FILE=rwtests.csv
RW_TEST_START=0
-RW_TEST_STOP=170
+RW_TEST_STOP=186
RW_NITER=5
RM=rm
Modified: store/trunk/cpp/tests/jrnl/rtests.csv
===================================================================
--- store/trunk/cpp/tests/jrnl/rtests.csv 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/rtests.csv 2007-11-06 21:52:47 UTC (rev 1257)
@@ -1,169 +1,185 @@
-,,,,,,,"Msg size",,"Xid size",,,,"enq-size",,"deq-size",,"txn-size",,
-"Test #","tf","pf","amn","mn incr","#msgs","ms incr","Min","Max","Min","Max","auto-deq","transient","bytes","dblks","bytes","dblks","bytes","dblks","comment"
-,,,,,,,,,,,,,,,,,,,
-"Initialize only",,,,,,,,,,,,,,,,,,,
-0,"L",0,0,0,0,0,0,0,0,0,FALSE,FALSE,44,1,0,0,0,0,"No messages – journal creation/initialization only"
-,,,,,,,,,,,,,,,,,,,
-"Simple message combinations of persistent/deq transientueued/non-dequeued, transactional/non-transactional",,,,,,,,,,,,,,,,,,,
-1,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,54,1,0,0,0,0,"1 * 10-byte message"
-2,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,54,1,0,0,0,0,"10 * 10-byte message"
-3,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [transient]"
-4,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [transient]"
-5,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn]"
-6,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn]"
-7,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn transient]"
-8,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn transient]"
-9,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq]"
-10,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq]"
-11,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq transient]"
-12,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq transient]"
-13,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [deq txn]"
-14,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [deq txn]"
-15,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient]"
-16,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from one d-block to two per message",,,,,,,,,,,,,,,,,,,
-17,"L",1,10,0,10,0,84,84,0,0,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit"
-18,"L",1,10,0,10,1,85,85,0,0,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte"
-19,"L",1,10,0,10,0,58,58,26,26,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit [txn]"
-20,"L",1,10,0,10,1,59,59,26,26,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte [txn]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from one s-block to two per message",,,,,,,,,,,,,,,,,,,
-21,"L",1,10,0,10,0,468,468,0,0,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit"
-22,"L",1,10,0,10,1,469,469,0,0,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte"
-23,"L",1,10,0,10,0,442,442,26,26,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit [txn]"
-24,"L",1,10,0,10,1,443,443,26,26,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte [txn]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from first page to second",,,,,,,,,,,,,,,,,,,
-25,"L",1,8,0,8,0,8148,8148,0,0,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page"
-26,"L",1,8,1,9,0,8148,8148,0,0,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page"
-27,"L",1,8,0,8,1,8149,8149,0,0,FALSE,FALSE,8193,65,0,0,0,0,"1/8 page + 1 byte"
-28,"L",1,8,0,8,0,7892,7892,256,256,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page [txn]"
-29,"L",1,8,1,9,0,7892,7892,256,256,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page [txn]"
-30,"L",1,8,0,8,1,7893,7893,256,256,FALSE,FALSE,8193,65,0,0,0,0,"1/8 page + 1 byte [txn]"
-31,"L",1,8,0,8,0,8020,8020,0,0,TRUE,FALSE,8064,63,32,1,0,0,"1/8 page incl deq [deq]"
-32,"L",1,8,1,9,0,8020,8020,0,0,TRUE,FALSE,8064,63,32,1,0,0,"1/8 page incl deq [deq]"
-33,"L",1,8,0,8,1,8021,8021,0,0,TRUE,FALSE,8065,64,32,1,0,0,"1/8 page incl deq + 1 byte [deq]"
-34,"L",1,8,0,8,0,7124,7124,256,256,TRUE,FALSE,7424,58,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
-35,"L",1,8,1,9,0,7124,7124,256,256,TRUE,FALSE,7424,58,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
-36,"L",1,8,0,8,1,7125,7125,256,256,TRUE,FALSE,7425,59,300,3,292,3,"1/8 page incl deq & txn + 1 byte [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"Page cache rollover (from page 16 back to page 0)",,,,,,,,,,,,,,,,,,,
-37,"L",1,16,0,16,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
-38,"L",1,16,1,17,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
-39,"L",1,16,0,16,1,65493,65493,0,0,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte"
-40,"L",1.5,11,0,11,0,98260,98260,0,0,FALSE,FALSE,98304,768,0,0,0,0,"1.5 pages"
-41,"L",1,16,0,16,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
-42,"L",1,16,1,17,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
-43,"L",1,16,0,16,1,65237,65237,256,256,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte [txn]"
-44,"L",1.5,11,0,11,0,98004,98004,256,256,FALSE,FALSE,98304,768,0,0,0,0,"1.5 pages [txn]"
-45,"L",1,16,0,16,0,65364,65364,0,0,TRUE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
-46,"L",1,16,1,17,0,65364,65364,0,0,TRUE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
-47,"L",1,16,0,16,1,65365,65365,0,0,TRUE,FALSE,65409,512,32,1,0,0,"1 page incl deq + 1 byte [deq]"
-48,"L",1.5,11,0,11,0,98132,98132,0,0,TRUE,FALSE,98176,767,32,1,0,0,"1.5 pages incl deq [deq]"
-49,"L",1,16,0,16,0,64468,64468,256,256,TRUE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
-50,"L",1,16,1,17,0,64468,64468,256,256,TRUE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
-51,"L",1,16,0,16,1,64469,64469,256,256,TRUE,FALSE,64769,507,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
-52,"L",1.5,11,0,11,0,97236,97236,256,256,TRUE,FALSE,97536,762,300,3,292,3,"1.5 pages incl deq & txn [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"File transition (from file 0000 to 0001)",,,,,,,,,,,,,,,,,,,
-53,"L",1,24,0,24,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
-54,"L",1,24,1,25,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
-55,"L",1,24,0,24,1,65493,65493,0,0,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte"
-56,"L",2.5,10,0,10,0,163796,163796,0,0,FALSE,FALSE,163840,1280,0,0,0,0,"2.5 pages"
-57,"L",1,24,0,24,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
-58,"L",1,24,1,25,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
-59,"L",1,24,0,24,1,65237,65237,256,256,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte [txn]"
-60,"L",2.5,10,0,10,0,163540,163540,256,256,FALSE,FALSE,163840,1280,0,0,0,0,"2.5 pages [txn]"
-61,"L",1,24,0,24,0,65364,65364,0,0,TRUE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
-62,"L",1,24,1,25,0,65364,65364,0,0,TRUE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
-63,"L",1,24,0,24,1,65365,65365,0,0,TRUE,FALSE,65409,512,32,1,0,0,"1 page incl deq + 1 byte [deq]"
-64,"L",2.5,10,0,10,0,163668,163668,0,0,TRUE,FALSE,163712,1279,32,1,0,0,"2.5 pages incl deq [deq]"
-65,"L",1,24,0,24,0,64468,64468,256,256,TRUE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
-66,"L",1,24,1,25,0,64468,64468,256,256,TRUE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
-67,"L",1,24,0,24,1,64469,64469,256,256,TRUE,FALSE,64769,507,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
-68,"L",2.5,10,0,10,0,162772,162772,256,256,TRUE,FALSE,163072,1274,300,3,292,3,"2.5 pages incl deq & txn [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"File rollover (from file 0007 to 0000) - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,
-69,"L",0.5,16,0,16,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"12 pages = ½ file"
-70,"L",0.5,16,0,16,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"12 pages = ½ file"
-,,,,,,,,,,,,,,,,,,,
-"Multi-page messages (large messages) - tests various paths in encoder.",,,,,,,,,,,,,,,,,,,
-71,"L",1,8,0,8,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"data 1 page"
-72,"L",1,8,0,8,1,65493,65493,0,0,FALSE,FALSE,65537,513,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary)"
-73,"L",1,8,0,8,11,65503,65503,0,0,FALSE,FALSE,65547,513,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary)"
-74,"L",1,8,0,8,12,65504,65504,0,0,FALSE,FALSE,65548,513,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page)"
-75,"L",1,8,0,8,13,65505,65505,0,0,FALSE,FALSE,65549,513,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary)"
-76,"L",1,8,0,8,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"data 1 page [txn]"
-77,"L",1,8,0,8,1,65237,65237,256,256,FALSE,FALSE,65537,513,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary) [txn]"
-78,"L",1,8,0,8,11,65247,65247,256,256,FALSE,FALSE,65547,513,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-79,"L",1,8,0,8,12,65248,65248,256,256,FALSE,FALSE,65548,513,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page) [txn]"
-80,"L",1,8,0,8,13,65249,65249,256,256,FALSE,FALSE,65549,513,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary) [txn]"
-81,"L",2,8,0,8,0,131028,131028,0,0,FALSE,FALSE,131072,1024,0,0,0,0,"data 2 pages"
-82,"L",2,8,0,8,1,131029,131029,0,0,FALSE,FALSE,131073,1025,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary)"
-83,"L",2,8,0,8,11,131039,131039,0,0,FALSE,FALSE,131083,1025,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary)"
-84,"L",2,8,0,8,12,131040,131040,0,0,FALSE,FALSE,131084,1025,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page)"
-85,"L",2,8,0,8,13,131041,131041,0,0,FALSE,FALSE,131085,1025,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary)"
-86,"L",2,8,0,8,0,130772,130772,256,256,FALSE,FALSE,131072,1024,0,0,0,0,"data 2 pages [txn]"
-87,"L",2,8,0,8,1,130773,130773,256,256,FALSE,FALSE,131073,1025,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
-88,"L",2,8,0,8,11,130783,130783,256,256,FALSE,FALSE,131083,1025,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-89,"L",2,8,0,8,12,130784,130784,256,256,FALSE,FALSE,131084,1025,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page) [txn]"
-90,"L",2,8,0,8,13,130785,130785,256,256,FALSE,FALSE,131085,1025,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
-91,"L",4,8,0,8,0,262100,262100,0,0,FALSE,FALSE,262144,2048,0,0,0,0,"data 4 pages"
-92,"L",4,8,0,8,1,262101,262101,0,0,FALSE,FALSE,262145,2049,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary)"
-93,"L",4,8,0,8,11,262111,262111,0,0,FALSE,FALSE,262155,2049,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary)"
-94,"L",4,8,0,8,12,262112,262112,0,0,FALSE,FALSE,262156,2049,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page)"
-95,"L",4,8,0,8,13,262113,262113,0,0,FALSE,FALSE,262157,2049,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary)"
-96,"L",4,8,0,8,0,261844,261844,256,256,FALSE,FALSE,262144,2048,0,0,0,0,"data 4 pages [txn]"
-97,"L",4,8,0,8,1,261845,261845,256,256,FALSE,FALSE,262145,2049,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
-98,"L",4,8,0,8,11,261855,261855,256,256,FALSE,FALSE,262155,2049,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-99,"L",4,8,0,8,12,261856,261856,256,256,FALSE,FALSE,262156,2049,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page) [txn]"
-100,"L",4,8,0,8,13,261857,261857,256,256,FALSE,FALSE,262157,2049,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
-101,"L",3.5,8,0,8,0,229332,229332,0,0,FALSE,FALSE,229376,1792,0,0,0,0,"data 3.5 pages"
-102,"L",3.5,8,0,8,1,229333,229333,0,0,FALSE,FALSE,229377,1793,0,0,0,0,"data 3.5 pages + 1 byte"
-103,"L",3.5,8,0,8,0,229076,229076,256,256,FALSE,FALSE,229376,1792,0,0,0,0,"data 3.5 pages [txn]"
-104,"L",3.5,8,0,8,1,229077,229077,256,256,FALSE,FALSE,229377,1793,0,0,0,0,"data 3.5 pages + 1 byte [txn]"
-105,"L",1,8,0,8,-1,10,10,65503,65503,FALSE,FALSE,65557,513,0,0,0,0,"xid 1 page – 1 byte; data 10 bytes (exact fit) [txn]"
-106,"L",1,8,0,8,0,10,10,65504,65504,FALSE,FALSE,65558,513,0,0,0,0,"xid 1 page; data 10 bytes (exact fit) [txn]"
-107,"L",1,8,0,8,1,10,10,65505,65505,FALSE,FALSE,65559,513,0,0,0,0,"xid 1 page + 1 byte; data 10 bytes (exact fit) [txn]"
-108,"L",2,8,0,8,-1,10,10,131039,131039,FALSE,FALSE,131093,1025,0,0,0,0,"xid 2 pages – 1 byte; data 10 bytes (exact fit) [txn]"
-109,"L",2,8,0,8,0,10,10,131040,131040,FALSE,FALSE,131094,1025,0,0,0,0,"xid 2 pages; data 10 bytes (exact fit) [txn]"
-110,"L",2,8,0,8,1,10,10,131041,131041,FALSE,FALSE,131095,1025,0,0,0,0,"xid 2 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-111,"L",4,8,0,8,-1,10,10,262111,262111,FALSE,FALSE,262165,2049,0,0,0,0,"xid 4 pages – 1 byte; data 10 bytes (exact fit) [txn]"
-112,"L",4,8,0,8,0,10,10,262112,262112,FALSE,FALSE,262166,2049,0,0,0,0,"xid 4 pages; data 10 bytes (exact fit) [txn]"
-113,"L",4,8,0,8,1,10,10,262113,262113,FALSE,FALSE,262167,2049,0,0,0,0,"xid 4 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-114,"L",3.5,8,0,8,0,10,10,229344,229344,FALSE,FALSE,229398,1793,0,0,0,0,"xid 3.5 pages; data 10 bytes (exact fit) [txn]"
-115,"L",3.5,8,0,8,1,10,10,229345,229345,FALSE,FALSE,229399,1793,0,0,0,0,"xid 3.5 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-116,"L",1,8,0,8,-1,10,10,65503,65503,TRUE,FALSE,65557,513,65547,513,65539,513,"xid 1 page – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-117,"L",1,8,0,8,0,10,10,65504,65504,TRUE,FALSE,65558,513,65548,513,65540,513,"xid 1 page for enq rec; data 10 bytes (exact fit) [deq, txn]"
-118,"L",1,8,0,8,1,10,10,65505,65505,TRUE,FALSE,65559,513,65549,513,65541,513,"xid 1 page + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-119,"L",2,8,0,8,-1,10,10,131039,131039,TRUE,FALSE,131093,1025,131083,1025,131075,1025,"xid 2 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-120,"L",2,8,0,8,0,10,10,131040,131040,TRUE,FALSE,131094,1025,131084,1025,131076,1025,"xid 2 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-121,"L",2,8,0,8,1,10,10,131041,131041,TRUE,FALSE,131095,1025,131085,1025,131077,1025,"xid 2 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-122,"L",4,8,0,8,-1,10,10,262111,262111,TRUE,FALSE,262165,2049,262155,2049,262147,2049,"xid 4 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-123,"L",4,8,0,8,0,10,10,262112,262112,TRUE,FALSE,262166,2049,262156,2049,262148,2049,"xid 4 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-124,"L",4,8,0,8,1,10,10,262113,262113,TRUE,FALSE,262167,2049,262157,2049,262149,2049,"xid 4 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-125,"L",3.5,8,0,8,0,10,10,229344,229344,TRUE,FALSE,229398,1793,229388,1793,229380,1793,"xid 3.5 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-126,"L",3.5,8,0,8,1,10,10,229345,229345,TRUE,FALSE,229399,1793,229389,1793,229381,1793,"xid 3.5 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-127,"L",1,8,0,8,-1,10,10,65503,65503,TRUE,FALSE,65557,513,65547,513,65539,513,"xid 1 page – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-128,"L",1,8,0,8,0,10,10,65504,65504,TRUE,FALSE,65558,513,65548,513,65540,513,"xid 1 page for deq rec; data 10 bytes (exact fit) [deq, txn]"
-129,"L",1,8,0,8,1,10,10,65505,65505,TRUE,FALSE,65559,513,65549,513,65541,513,"xid 1 page + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-130,"L",2,8,0,8,-1,10,10,131039,131039,TRUE,FALSE,131093,1025,131083,1025,131075,1025,"xid 2 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-131,"L",2,8,0,8,0,10,10,131040,131040,TRUE,FALSE,131094,1025,131084,1025,131076,1025,"xid 2 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-132,"L",2,8,0,8,1,10,10,131041,131041,TRUE,FALSE,131095,1025,131085,1025,131077,1025,"xid 2 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-133,"L",4,8,0,8,-1,10,10,262111,262111,TRUE,FALSE,262165,2049,262155,2049,262147,2049,"xid 4 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-134,"L",4,8,0,8,0,10,10,262112,262112,TRUE,FALSE,262166,2049,262156,2049,262148,2049,"xid 4 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-135,"L",4,8,0,8,1,10,10,262113,262113,TRUE,FALSE,262167,2049,262157,2049,262149,2049,"xid 4 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-136,"L",3.5,8,0,8,0,10,10,229344,229344,TRUE,FALSE,229398,1793,229388,1793,229380,1793,"xid 3.5 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-137,"L",3.5,8,0,8,1,10,10,229345,229345,TRUE,FALSE,229399,1793,229389,1793,229381,1793,"xid 3.5 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-138,"L",1,8,0,8,-1,10,10,65511,65511,TRUE,FALSE,65565,513,65555,513,65547,513,"xid 1 page – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-139,"L",1,8,0,8,0,10,10,65512,65512,TRUE,FALSE,65566,513,65556,513,65548,513,"xid 1 page for txn rec; data 10 bytes (exact fit) [deq, txn]"
-140,"L",1,8,0,8,1,10,10,65513,65513,TRUE,FALSE,65567,513,65557,513,65549,513,"xid 1 page + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-141,"L",2,8,0,8,-1,10,10,131047,131047,TRUE,FALSE,131101,1025,131091,1025,131083,1025,"xid 2 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-142,"L",2,8,0,8,0,10,10,131048,131048,TRUE,FALSE,131102,1025,131092,1025,131084,1025,"xid 2 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-143,"L",2,8,0,8,1,10,10,131049,131049,TRUE,FALSE,131103,1025,131093,1025,131085,1025,"xid 2 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-144,"L",4,8,0,8,-1,10,10,262119,262119,TRUE,FALSE,262173,2049,262163,2049,262155,2049,"xid 4 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-145,"L",4,8,0,8,0,10,10,262120,262120,TRUE,FALSE,262174,2049,262164,2049,262156,2049,"xid 4 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-146,"L",4,8,0,8,1,10,10,262121,262121,TRUE,FALSE,262175,2049,262165,2049,262157,2049,"xid 4 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-147,"L",3.5,8,0,8,0,10,10,229352,229352,TRUE,FALSE,229406,1793,229396,1793,229388,1793,"xid 3.5 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-148,"L",3.5,8,0,8,1,10,10,229353,229353,TRUE,FALSE,229407,1793,229397,1793,229389,1793,"xid 3.5 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+,,,,,,,"Msg size",,"Xid size",,,,,"enq-size",,"deq-size",,"txn-size",,
+"Test #","tf","pf","amn","mn incr","#msgs","ms incr","Min","Max","Min","Max","auto-deq","transient","extern","bytes","dblks","bytes","dblks","bytes","dblks","comment"
+,,,,,,,,,,,,,,,,,,,,
+"Initialize only",,,,,,,,,,,,,,,,,,,,
+0,"L",0,0,0,0,0,0,0,0,0,FALSE,FALSE,FALSE,44,1,0,0,0,0,"No messages – journal creation/initialization only"
+,,,,,,,,,,,,,,,,,,,,
+"Simple message combinations of persistent/deq transientueued/non-dequeued, transactional/non-transactional",,,,,,,,,,,,,,,,,,,,
+1,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,FALSE,54,1,0,0,0,0,"1 * 10-byte message"
+2,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,FALSE,54,1,0,0,0,0,"10 * 10-byte message"
+3,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,FALSE,54,1,0,0,0,0,"1 * 10-byte message [transient]"
+4,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,FALSE,54,1,0,0,0,0,"10 * 10-byte message [transient]"
+5,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn]"
+6,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn]"
+7,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn transient]"
+8,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn transient]"
+9,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq]"
+10,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq]"
+11,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq transient]"
+12,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq transient]"
+13,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [deq txn]"
+14,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [deq txn]"
+15,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient]"
+16,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient]"
+17,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [extern]"
+18,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [extern]"
+19,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [transient extern]"
+20,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [transient extern]"
+21,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn extern]"
+22,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn extern]"
+23,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn transient extern]"
+24,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn transient extern]"
+25,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq extern]"
+26,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq extern]"
+27,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq transient extern]"
+28,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq transient extern]"
+29,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [deq txn extern]"
+30,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [deq txn extern]"
+31,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient extern]"
+32,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient extern]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from one d-block to two per message",,,,,,,,,,,,,,,,,,,,
+33,"L",1,10,0,10,0,84,84,0,0,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit"
+34,"L",1,10,0,10,1,85,85,0,0,FALSE,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte"
+35,"L",1,10,0,10,0,58,58,26,26,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit [txn]"
+36,"L",1,10,0,10,1,59,59,26,26,FALSE,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte [txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from one s-block to two per message",,,,,,,,,,,,,,,,,,,,
+37,"L",1,10,0,10,0,468,468,0,0,FALSE,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit"
+38,"L",1,10,0,10,1,469,469,0,0,FALSE,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte"
+39,"L",1,10,0,10,0,442,442,26,26,FALSE,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit [txn]"
+40,"L",1,10,0,10,1,443,443,26,26,FALSE,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte [txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from first page to second",,,,,,,,,,,,,,,,,,,,
+41,"L",1,8,0,8,0,8148,8148,0,0,FALSE,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page"
+42,"L",1,8,1,9,0,8148,8148,0,0,FALSE,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page"
+43,"L",1,8,0,8,1,8149,8149,0,0,FALSE,FALSE,FALSE,8193,65,0,0,0,0,"1/8 page + 1 byte"
+44,"L",1,8,0,8,0,7892,7892,256,256,FALSE,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page [txn]"
+45,"L",1,8,1,9,0,7892,7892,256,256,FALSE,FALSE,FALSE,8192,64,0,0,0,0,"1/8 page [txn]"
+46,"L",1,8,0,8,1,7893,7893,256,256,FALSE,FALSE,FALSE,8193,65,0,0,0,0,"1/8 page + 1 byte [txn]"
+47,"L",1,8,0,8,0,8020,8020,0,0,TRUE,FALSE,FALSE,8064,63,32,1,0,0,"1/8 page incl deq [deq]"
+48,"L",1,8,1,9,0,8020,8020,0,0,TRUE,FALSE,FALSE,8064,63,32,1,0,0,"1/8 page incl deq [deq]"
+49,"L",1,8,0,8,1,8021,8021,0,0,TRUE,FALSE,FALSE,8065,64,32,1,0,0,"1/8 page incl deq + 1 byte [deq]"
+50,"L",1,8,0,8,0,7124,7124,256,256,TRUE,FALSE,FALSE,7424,58,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
+51,"L",1,8,1,9,0,7124,7124,256,256,TRUE,FALSE,FALSE,7424,58,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
+52,"L",1,8,0,8,1,7125,7125,256,256,TRUE,FALSE,FALSE,7425,59,300,3,292,3,"1/8 page incl deq & txn + 1 byte [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Page cache rollover (from page 16 back to page 0)",,,,,,,,,,,,,,,,,,,,
+53,"L",1,16,0,16,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
+54,"L",1,16,1,17,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
+55,"L",1,16,0,16,1,65493,65493,0,0,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte"
+56,"L",1.5,11,0,11,0,98260,98260,0,0,FALSE,FALSE,FALSE,98304,768,0,0,0,0,"1.5 pages"
+57,"L",1,16,0,16,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
+58,"L",1,16,1,17,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
+59,"L",1,16,0,16,1,65237,65237,256,256,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte [txn]"
+60,"L",1.5,11,0,11,0,98004,98004,256,256,FALSE,FALSE,FALSE,98304,768,0,0,0,0,"1.5 pages [txn]"
+61,"L",1,16,0,16,0,65364,65364,0,0,TRUE,FALSE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
+62,"L",1,16,1,17,0,65364,65364,0,0,TRUE,FALSE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
+63,"L",1,16,0,16,1,65365,65365,0,0,TRUE,FALSE,FALSE,65409,512,32,1,0,0,"1 page incl deq + 1 byte [deq]"
+64,"L",1.5,11,0,11,0,98132,98132,0,0,TRUE,FALSE,FALSE,98176,767,32,1,0,0,"1.5 pages incl deq [deq]"
+65,"L",1,16,0,16,0,64468,64468,256,256,TRUE,FALSE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
+66,"L",1,16,1,17,0,64468,64468,256,256,TRUE,FALSE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
+67,"L",1,16,0,16,1,64469,64469,256,256,TRUE,FALSE,FALSE,64769,507,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
+68,"L",1.5,11,0,11,0,97236,97236,256,256,TRUE,FALSE,FALSE,97536,762,300,3,292,3,"1.5 pages incl deq & txn [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"File transition (from file 0000 to 0001)",,,,,,,,,,,,,,,,,,,,
+69,"L",1,24,0,24,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
+70,"L",1,24,1,25,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page"
+71,"L",1,24,0,24,1,65493,65493,0,0,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte"
+72,"L",2.5,10,0,10,0,163796,163796,0,0,FALSE,FALSE,FALSE,163840,1280,0,0,0,0,"2.5 pages"
+73,"L",1,24,0,24,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
+74,"L",1,24,1,25,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"1 page [txn]"
+75,"L",1,24,0,24,1,65237,65237,256,256,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"1 page + 1 byte [txn]"
+76,"L",2.5,10,0,10,0,163540,163540,256,256,FALSE,FALSE,FALSE,163840,1280,0,0,0,0,"2.5 pages [txn]"
+77,"L",1,24,0,24,0,65364,65364,0,0,TRUE,FALSE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
+78,"L",1,24,1,25,0,65364,65364,0,0,TRUE,FALSE,FALSE,65408,511,32,1,0,0,"1 page incl deq [deq]"
+79,"L",1,24,0,24,1,65365,65365,0,0,TRUE,FALSE,FALSE,65409,512,32,1,0,0,"1 page incl deq + 1 byte [deq]"
+80,"L",2.5,10,0,10,0,163668,163668,0,0,TRUE,FALSE,FALSE,163712,1279,32,1,0,0,"2.5 pages incl deq [deq]"
+81,"L",1,24,0,24,0,64468,64468,256,256,TRUE,FALSE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
+82,"L",1,24,1,25,0,64468,64468,256,256,TRUE,FALSE,FALSE,64768,506,300,3,292,3,"1 page incl deq & txn [deq txn]"
+83,"L",1,24,0,24,1,64469,64469,256,256,TRUE,FALSE,FALSE,64769,507,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
+84,"L",2.5,10,0,10,0,162772,162772,256,256,TRUE,FALSE,FALSE,163072,1274,300,3,292,3,"2.5 pages incl deq & txn [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"File rollover (from file 0007 to 0000) - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,,
+85,"L",0.5,16,0,16,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"12 pages = ½ file"
+86,"L",0.5,16,0,16,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"12 pages = ½ file"
+,,,,,,,,,,,,,,,,,,,,
+"Multi-page messages (large messages) - tests various paths in encoder.",,,,,,,,,,,,,,,,,,,,
+87,"L",1,8,0,8,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"data 1 page"
+88,"L",1,8,0,8,1,65493,65493,0,0,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary)"
+89,"L",1,8,0,8,11,65503,65503,0,0,FALSE,FALSE,FALSE,65547,513,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary)"
+90,"L",1,8,0,8,12,65504,65504,0,0,FALSE,FALSE,FALSE,65548,513,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page)"
+91,"L",1,8,0,8,13,65505,65505,0,0,FALSE,FALSE,FALSE,65549,513,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary)"
+92,"L",1,8,0,8,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"data 1 page [txn]"
+93,"L",1,8,0,8,1,65237,65237,256,256,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary) [txn]"
+94,"L",1,8,0,8,11,65247,65247,256,256,FALSE,FALSE,FALSE,65547,513,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+95,"L",1,8,0,8,12,65248,65248,256,256,FALSE,FALSE,FALSE,65548,513,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page) [txn]"
+96,"L",1,8,0,8,13,65249,65249,256,256,FALSE,FALSE,FALSE,65549,513,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary) [txn]"
+97,"L",2,8,0,8,0,131028,131028,0,0,FALSE,FALSE,FALSE,131072,1024,0,0,0,0,"data 2 pages"
+98,"L",2,8,0,8,1,131029,131029,0,0,FALSE,FALSE,FALSE,131073,1025,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary)"
+99,"L",2,8,0,8,11,131039,131039,0,0,FALSE,FALSE,FALSE,131083,1025,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary)"
+100,"L",2,8,0,8,12,131040,131040,0,0,FALSE,FALSE,FALSE,131084,1025,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page)"
+101,"L",2,8,0,8,13,131041,131041,0,0,FALSE,FALSE,FALSE,131085,1025,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary)"
+102,"L",2,8,0,8,0,130772,130772,256,256,FALSE,FALSE,FALSE,131072,1024,0,0,0,0,"data 2 pages [txn]"
+103,"L",2,8,0,8,1,130773,130773,256,256,FALSE,FALSE,FALSE,131073,1025,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
+104,"L",2,8,0,8,11,130783,130783,256,256,FALSE,FALSE,FALSE,131083,1025,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+105,"L",2,8,0,8,12,130784,130784,256,256,FALSE,FALSE,FALSE,131084,1025,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page) [txn]"
+106,"L",2,8,0,8,13,130785,130785,256,256,FALSE,FALSE,FALSE,131085,1025,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
+107,"L",4,8,0,8,0,262100,262100,0,0,FALSE,FALSE,FALSE,262144,2048,0,0,0,0,"data 4 pages"
+108,"L",4,8,0,8,1,262101,262101,0,0,FALSE,FALSE,FALSE,262145,2049,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary)"
+109,"L",4,8,0,8,11,262111,262111,0,0,FALSE,FALSE,FALSE,262155,2049,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary)"
+110,"L",4,8,0,8,12,262112,262112,0,0,FALSE,FALSE,FALSE,262156,2049,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page)"
+111,"L",4,8,0,8,13,262113,262113,0,0,FALSE,FALSE,FALSE,262157,2049,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary)"
+112,"L",4,8,0,8,0,261844,261844,256,256,FALSE,FALSE,FALSE,262144,2048,0,0,0,0,"data 4 pages [txn]"
+113,"L",4,8,0,8,1,261845,261845,256,256,FALSE,FALSE,FALSE,262145,2049,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
+114,"L",4,8,0,8,11,261855,261855,256,256,FALSE,FALSE,FALSE,262155,2049,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+115,"L",4,8,0,8,12,261856,261856,256,256,FALSE,FALSE,FALSE,262156,2049,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page) [txn]"
+116,"L",4,8,0,8,13,261857,261857,256,256,FALSE,FALSE,FALSE,262157,2049,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
+117,"L",3.5,8,0,8,0,229332,229332,0,0,FALSE,FALSE,FALSE,229376,1792,0,0,0,0,"data 3.5 pages"
+118,"L",3.5,8,0,8,1,229333,229333,0,0,FALSE,FALSE,FALSE,229377,1793,0,0,0,0,"data 3.5 pages + 1 byte"
+119,"L",3.5,8,0,8,0,229076,229076,256,256,FALSE,FALSE,FALSE,229376,1792,0,0,0,0,"data 3.5 pages [txn]"
+120,"L",3.5,8,0,8,1,229077,229077,256,256,FALSE,FALSE,FALSE,229377,1793,0,0,0,0,"data 3.5 pages + 1 byte [txn]"
+121,"L",1,8,0,8,-1,10,10,65503,65503,FALSE,FALSE,FALSE,65557,513,0,0,0,0,"xid 1 page – 1 byte; data 10 bytes (exact fit) [txn]"
+122,"L",1,8,0,8,0,10,10,65504,65504,FALSE,FALSE,FALSE,65558,513,0,0,0,0,"xid 1 page; data 10 bytes (exact fit) [txn]"
+123,"L",1,8,0,8,1,10,10,65505,65505,FALSE,FALSE,FALSE,65559,513,0,0,0,0,"xid 1 page + 1 byte; data 10 bytes (exact fit) [txn]"
+124,"L",2,8,0,8,-1,10,10,131039,131039,FALSE,FALSE,FALSE,131093,1025,0,0,0,0,"xid 2 pages – 1 byte; data 10 bytes (exact fit) [txn]"
+125,"L",2,8,0,8,0,10,10,131040,131040,FALSE,FALSE,FALSE,131094,1025,0,0,0,0,"xid 2 pages; data 10 bytes (exact fit) [txn]"
+126,"L",2,8,0,8,1,10,10,131041,131041,FALSE,FALSE,FALSE,131095,1025,0,0,0,0,"xid 2 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+127,"L",4,8,0,8,-1,10,10,262111,262111,FALSE,FALSE,FALSE,262165,2049,0,0,0,0,"xid 4 pages – 1 byte; data 10 bytes (exact fit) [txn]"
+128,"L",4,8,0,8,0,10,10,262112,262112,FALSE,FALSE,FALSE,262166,2049,0,0,0,0,"xid 4 pages; data 10 bytes (exact fit) [txn]"
+129,"L",4,8,0,8,1,10,10,262113,262113,FALSE,FALSE,FALSE,262167,2049,0,0,0,0,"xid 4 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+130,"L",3.5,8,0,8,0,10,10,229344,229344,FALSE,FALSE,FALSE,229398,1793,0,0,0,0,"xid 3.5 pages; data 10 bytes (exact fit) [txn]"
+131,"L",3.5,8,0,8,1,10,10,229345,229345,FALSE,FALSE,FALSE,229399,1793,0,0,0,0,"xid 3.5 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+132,"L",1,8,0,8,-1,10,10,65503,65503,TRUE,FALSE,FALSE,65557,513,65547,513,65539,513,"xid 1 page – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+133,"L",1,8,0,8,0,10,10,65504,65504,TRUE,FALSE,FALSE,65558,513,65548,513,65540,513,"xid 1 page for enq rec; data 10 bytes (exact fit) [deq, txn]"
+134,"L",1,8,0,8,1,10,10,65505,65505,TRUE,FALSE,FALSE,65559,513,65549,513,65541,513,"xid 1 page + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+135,"L",2,8,0,8,-1,10,10,131039,131039,TRUE,FALSE,FALSE,131093,1025,131083,1025,131075,1025,"xid 2 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+136,"L",2,8,0,8,0,10,10,131040,131040,TRUE,FALSE,FALSE,131094,1025,131084,1025,131076,1025,"xid 2 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+137,"L",2,8,0,8,1,10,10,131041,131041,TRUE,FALSE,FALSE,131095,1025,131085,1025,131077,1025,"xid 2 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+138,"L",4,8,0,8,-1,10,10,262111,262111,TRUE,FALSE,FALSE,262165,2049,262155,2049,262147,2049,"xid 4 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+139,"L",4,8,0,8,0,10,10,262112,262112,TRUE,FALSE,FALSE,262166,2049,262156,2049,262148,2049,"xid 4 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+140,"L",4,8,0,8,1,10,10,262113,262113,TRUE,FALSE,FALSE,262167,2049,262157,2049,262149,2049,"xid 4 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+141,"L",3.5,8,0,8,0,10,10,229344,229344,TRUE,FALSE,FALSE,229398,1793,229388,1793,229380,1793,"xid 3.5 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+142,"L",3.5,8,0,8,1,10,10,229345,229345,TRUE,FALSE,FALSE,229399,1793,229389,1793,229381,1793,"xid 3.5 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+143,"L",1,8,0,8,-1,10,10,65503,65503,TRUE,FALSE,FALSE,65557,513,65547,513,65539,513,"xid 1 page – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+144,"L",1,8,0,8,0,10,10,65504,65504,TRUE,FALSE,FALSE,65558,513,65548,513,65540,513,"xid 1 page for deq rec; data 10 bytes (exact fit) [deq, txn]"
+145,"L",1,8,0,8,1,10,10,65505,65505,TRUE,FALSE,FALSE,65559,513,65549,513,65541,513,"xid 1 page + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+146,"L",2,8,0,8,-1,10,10,131039,131039,TRUE,FALSE,FALSE,131093,1025,131083,1025,131075,1025,"xid 2 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+147,"L",2,8,0,8,0,10,10,131040,131040,TRUE,FALSE,FALSE,131094,1025,131084,1025,131076,1025,"xid 2 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+148,"L",2,8,0,8,1,10,10,131041,131041,TRUE,FALSE,FALSE,131095,1025,131085,1025,131077,1025,"xid 2 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+149,"L",4,8,0,8,-1,10,10,262111,262111,TRUE,FALSE,FALSE,262165,2049,262155,2049,262147,2049,"xid 4 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+150,"L",4,8,0,8,0,10,10,262112,262112,TRUE,FALSE,FALSE,262166,2049,262156,2049,262148,2049,"xid 4 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+151,"L",4,8,0,8,1,10,10,262113,262113,TRUE,FALSE,FALSE,262167,2049,262157,2049,262149,2049,"xid 4 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+152,"L",3.5,8,0,8,0,10,10,229344,229344,TRUE,FALSE,FALSE,229398,1793,229388,1793,229380,1793,"xid 3.5 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+153,"L",3.5,8,0,8,1,10,10,229345,229345,TRUE,FALSE,FALSE,229399,1793,229389,1793,229381,1793,"xid 3.5 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+154,"L",1,8,0,8,-1,10,10,65511,65511,TRUE,FALSE,FALSE,65565,513,65555,513,65547,513,"xid 1 page – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+155,"L",1,8,0,8,0,10,10,65512,65512,TRUE,FALSE,FALSE,65566,513,65556,513,65548,513,"xid 1 page for txn rec; data 10 bytes (exact fit) [deq, txn]"
+156,"L",1,8,0,8,1,10,10,65513,65513,TRUE,FALSE,FALSE,65567,513,65557,513,65549,513,"xid 1 page + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+157,"L",2,8,0,8,-1,10,10,131047,131047,TRUE,FALSE,FALSE,131101,1025,131091,1025,131083,1025,"xid 2 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+158,"L",2,8,0,8,0,10,10,131048,131048,TRUE,FALSE,FALSE,131102,1025,131092,1025,131084,1025,"xid 2 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+159,"L",2,8,0,8,1,10,10,131049,131049,TRUE,FALSE,FALSE,131103,1025,131093,1025,131085,1025,"xid 2 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+160,"L",4,8,0,8,-1,10,10,262119,262119,TRUE,FALSE,FALSE,262173,2049,262163,2049,262155,2049,"xid 4 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+161,"L",4,8,0,8,0,10,10,262120,262120,TRUE,FALSE,FALSE,262174,2049,262164,2049,262156,2049,"xid 4 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+162,"L",4,8,0,8,1,10,10,262121,262121,TRUE,FALSE,FALSE,262175,2049,262165,2049,262157,2049,"xid 4 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+163,"L",3.5,8,0,8,0,10,10,229352,229352,TRUE,FALSE,FALSE,229406,1793,229396,1793,229388,1793,"xid 3.5 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+164,"L",3.5,8,0,8,1,10,10,229353,229353,TRUE,FALSE,FALSE,229407,1793,229397,1793,229389,1793,"xid 3.5 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
Modified: store/trunk/cpp/tests/jrnl/rwtests.csv
===================================================================
--- store/trunk/cpp/tests/jrnl/rwtests.csv 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/rwtests.csv 2007-11-06 21:52:47 UTC (rev 1257)
@@ -1,191 +1,207 @@
-,,,,,,,"Msg size",,"Xid size",,,,"enq-size",,"deq-size",,"txn-size",,
-"Test #","tf","pf","amn","mn incr","#msgs","ms incr","Min","Max","Min","Max","auto-deq","transient","bytes","dblks","bytes","dblks","bytes","dblks","comment"
-,,,,,,,,,,,,,,,,,,,
-"Initialize only",,,,,,,,,,,,,,,,,,,
-0,"L",0,0,0,0,0,0,0,0,0,FALSE,FALSE,44,1,0,0,0,0,"No messages - journal creation/initialization only"
-,,,,,,,,,,,,,,,,,,,
-"Simple message combinations of persistent/deq transientueued/non-dequeued, transactional/non-transactional",,,,,,,,,,,,,,,,,,,
-1,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,54,1,0,0,0,0,"1 * 10-byte message"
-2,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,54,1,0,0,0,0,"10 * 10-byte message"
-3,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [transient]"
-4,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [transient]"
-5,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn]"
-6,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn]"
-7,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn transient]"
-8,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn transient]"
-9,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq]"
-10,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq]"
-11,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq transient]"
-12,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq transient]"
-13,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [deq txn]"
-14,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [deq txn]"
-15,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient]"
-16,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from one d-block to two per message",,,,,,,,,,,,,,,,,,,
-17,"L",1,10,0,10,0,84,84,0,0,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit"
-18,"L",1,10,0,10,1,85,85,0,0,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte"
-19,"L",1,10,0,10,0,58,58,26,26,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit [txn]"
-20,"L",1,10,0,10,1,59,59,26,26,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte [txn]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from one s-block to two per message",,,,,,,,,,,,,,,,,,,
-21,"L",1,10,0,10,0,468,468,0,0,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit"
-22,"L",1,10,0,10,1,469,469,0,0,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte"
-23,"L",1,10,0,10,0,442,442,26,26,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit [txn]"
-24,"L",1,10,0,10,1,443,443,26,26,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte [txn]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from first page to second",,,,,,,,,,,,,,,,,,,
-25,"L",1,8,0,8,0,4052,4052,0,0,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
-26,"L",1,8,1,9,0,4052,4052,0,0,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
-27,"L",1,8,0,8,1,4053,4053,0,0,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte"
-28,"L",1,8,0,8,0,3796,3796,256,256,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
-29,"L",1,8,1,9,0,3796,3796,256,256,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
-30,"L",1,8,0,8,1,3797,3797,256,256,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte [txn]"
-31,"L",1,8,0,8,0,3924,3924,0,0,TRUE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
-32,"L",1,8,1,9,0,3924,3924,0,0,TRUE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
-33,"L",1,8,0,8,1,3925,3925,0,0,TRUE,FALSE,3969,32,32,1,0,0,"1/8 page incl deq + 1 byte [deq]"
-34,"L",1,8,0,8,0,3028,3028,256,256,TRUE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
-35,"L",1,8,1,9,0,3028,3028,256,256,TRUE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
-36,"L",1,8,0,8,1,3029,3029,256,256,TRUE,FALSE,3329,27,300,3,292,3,"1/8 page incl deq & txn + 1 byte [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"Page cache rollover (from page 32 back to page 0)",,,,,,,,,,,,,,,,,,,
-37,"L",1,32,0,32,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-38,"L",1,32,1,33,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-39,"L",1,32,0,32,1,32725,32725,0,0,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
-40,"L",1.5,22,0,22,0,49108,49108,0,0,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages"
-41,"L",1,32,0,32,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-42,"L",1,32,1,33,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-43,"L",1,32,0,32,1,32469,32469,256,256,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
-44,"L",1.5,22,0,22,0,48852,48852,256,256,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages [txn]"
-45,"L",1,32,0,32,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-46,"L",1,32,1,33,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-47,"L",1,32,0,32,1,32597,32597,0,0,TRUE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
-48,"L",1.5,22,0,22,0,48980,48980,0,0,TRUE,FALSE,49024,383,32,1,0,0,"1.5 pages incl deq [deq]"
-49,"L",1,32,0,32,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-50,"L",1,32,1,33,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-51,"L",1,32,0,32,1,31701,31701,256,256,TRUE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
-52,"L",1.5,22,0,22,0,48084,48084,256,256,TRUE,FALSE,48384,378,300,3,292,3,"1.5 pages incl deq & txn [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"File transition (from file 0000 to 0001)",,,,,,,,,,,,,,,,,,,
-53,"L",1,48,0,48,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-54,"L",1,48,1,49,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-55,"L",1,48,0,48,1,32725,32725,0,0,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
-56,"L",2.5,20,0,20,0,81876,81876,0,0,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages"
-57,"L",1,48,0,48,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-58,"L",1,48,1,49,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-59,"L",1,48,0,48,1,32469,32469,256,256,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
-60,"L",2.5,20,0,20,0,81620,81620,256,256,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages [txn]"
-61,"L",1,48,0,48,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-62,"L",1,48,1,49,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-63,"L",1,48,0,48,1,32597,32597,0,0,TRUE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
-64,"L",2.5,20,0,20,0,81748,81748,0,0,TRUE,FALSE,81792,639,32,1,0,0,"2.5 pages incl deq [deq]"
-65,"L",1,48,0,48,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-66,"L",1,48,1,49,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-67,"L",1,48,0,48,1,31701,31701,256,256,TRUE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
-68,"L",2.5,20,0,20,0,80852,80852,256,256,TRUE,FALSE,81152,634,300,3,292,3,"2.5 pages incl deq & txn [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"File rollover (from file 0007 to 0000) - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,
-69,"L",0.5,16,0,16,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-70,"L",0.5,16,1,17,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-71,"L",0.5,16,0,16,1,786389,786389,0,0,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
-72,"L",0.5,16,0,16,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-73,"L",0.5,16,1,17,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-74,"L",0.5,16,0,16,1,786133,786133,256,256,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
-75,"L",0.25,32,0,32,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-76,"L",0.25,32,1,33,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-77,"L",0.25,32,0,32,1,786389,786389,0,0,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
-78,"L",0.25,32,0,32,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-79,"L",0.25,32,1,33,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-80,"L",0.25,32,0,32,1,786133,786133,256,256,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
-81,"L",0.5,16,0,16,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-82,"L",0.5,16,1,17,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-83,"L",0.5,16,0,16,1,786261,786261,0,0,TRUE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
-84,"L",0.5,16,0,16,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-85,"L",0.5,16,1,17,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-86,"L",0.5,16,0,16,1,785365,785365,256,256,TRUE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
-87,"L",0.25,32,0,32,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-88,"L",0.25,32,1,33,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-89,"L",0.25,32,0,32,1,786261,786261,0,0,TRUE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
-90,"L",0.25,32,0,32,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-91,"L",0.25,32,1,33,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-92,"L",0.25,32,0,32,1,785365,785365,256,256,TRUE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"Multi-page messages (large messages) - tests various paths in encoder.",,,,,,,,,,,,,,,,,,,
-93,"L",1,16,0,16,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page"
-94,"L",1,16,0,16,1,32725,32725,0,0,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary)"
-95,"L",1,16,0,16,11,32735,32735,0,0,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary)"
-96,"L",1,16,0,16,12,32736,32736,0,0,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page)"
-97,"L",1,16,0,16,13,32737,32737,0,0,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary)"
-98,"L",1,16,0,16,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page [txn]"
-99,"L",1,16,0,16,1,32469,32469,256,256,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary) [txn]"
-100,"L",1,16,0,16,11,32479,32479,256,256,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-101,"L",1,16,0,16,12,32480,32480,256,256,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page) [txn]"
-102,"L",1,16,0,16,13,32481,32481,256,256,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary) [txn]"
-103,"L",2,16,0,16,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages"
-104,"L",2,16,0,16,1,65493,65493,0,0,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary)"
-105,"L",2,16,0,16,11,65503,65503,0,0,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary)"
-106,"L",2,16,0,16,12,65504,65504,0,0,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page)"
-107,"L",2,16,0,16,13,65505,65505,0,0,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary)"
-108,"L",2,16,0,16,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages [txn]"
-109,"L",2,16,0,16,1,65237,65237,256,256,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
-110,"L",2,16,0,16,11,65247,65247,256,256,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-111,"L",2,16,0,16,12,65248,65248,256,256,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page) [txn]"
-112,"L",2,16,0,16,13,65249,65249,256,256,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
-113,"L",4,16,0,16,0,131028,131028,0,0,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages"
-114,"L",4,16,0,16,1,131029,131029,0,0,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary)"
-115,"L",4,16,0,16,11,131039,131039,0,0,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary)"
-116,"L",4,16,0,16,12,131040,131040,0,0,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page)"
-117,"L",4,16,0,16,13,131041,131041,0,0,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary)"
-118,"L",4,16,0,16,0,130772,130772,256,256,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages [txn]"
-119,"L",4,16,0,16,1,130773,130773,256,256,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
-120,"L",4,16,0,16,11,130783,130783,256,256,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-121,"L",4,16,0,16,12,130784,130784,256,256,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page) [txn]"
-122,"L",4,16,0,16,13,130785,130785,256,256,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
-123,"L",3.5,16,0,16,0,114644,114644,0,0,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages"
-124,"L",3.5,16,0,16,1,114645,114645,0,0,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte"
-125,"L",3.5,16,0,16,0,114388,114388,256,256,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages [txn]"
-126,"L",3.5,16,0,16,1,114389,114389,256,256,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte [txn]"
-127,"L",1,16,0,16,-1,10,10,32735,32735,FALSE,FALSE,32789,257,0,0,0,0,"xid 1 page – 1 byte; data 10 bytes (exact fit) [txn]"
-128,"L",1,16,0,16,0,10,10,32736,32736,FALSE,FALSE,32790,257,0,0,0,0,"xid 1 page; data 10 bytes (exact fit) [txn]"
-129,"L",1,16,0,16,1,10,10,32737,32737,FALSE,FALSE,32791,257,0,0,0,0,"xid 1 page + 1 byte; data 10 bytes (exact fit) [txn]"
-130,"L",2,16,0,16,-1,10,10,65503,65503,FALSE,FALSE,65557,513,0,0,0,0,"xid 2 pages – 1 byte; data 10 bytes (exact fit) [txn]"
-131,"L",2,16,0,16,0,10,10,65504,65504,FALSE,FALSE,65558,513,0,0,0,0,"xid 2 pages; data 10 bytes (exact fit) [txn]"
-132,"L",2,16,0,16,1,10,10,65505,65505,FALSE,FALSE,65559,513,0,0,0,0,"xid 2 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-133,"L",4,16,0,16,-1,10,10,131039,131039,FALSE,FALSE,131093,1025,0,0,0,0,"xid 4 pages – 1 byte; data 10 bytes (exact fit) [txn]"
-134,"L",4,16,0,16,0,10,10,131040,131040,FALSE,FALSE,131094,1025,0,0,0,0,"xid 4 pages; data 10 bytes (exact fit) [txn]"
-135,"L",4,16,0,16,1,10,10,131041,131041,FALSE,FALSE,131095,1025,0,0,0,0,"xid 4 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-136,"L",3.5,16,0,16,0,10,10,114656,114656,FALSE,FALSE,114710,897,0,0,0,0,"xid 3.5 pages; data 10 bytes (exact fit) [txn]"
-137,"L",3.5,16,0,16,1,10,10,114657,114657,FALSE,FALSE,114711,897,0,0,0,0,"xid 3.5 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-138,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-139,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for enq rec; data 10 bytes (exact fit) [deq, txn]"
-140,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-141,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-142,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-143,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-144,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-145,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-146,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-147,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-148,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-149,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-150,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for deq rec; data 10 bytes (exact fit) [deq, txn]"
-151,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-152,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-153,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-154,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-155,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-156,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-157,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-158,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-159,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-160,"L",1,16,0,16,-1,10,10,32743,32743,TRUE,FALSE,32797,257,32787,257,32779,257,"xid 1 page – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-161,"L",1,16,0,16,0,10,10,32744,32744,TRUE,FALSE,32798,257,32788,257,32780,257,"xid 1 page for txn rec; data 10 bytes (exact fit) [deq, txn]"
-162,"L",1,16,0,16,1,10,10,32745,32745,TRUE,FALSE,32799,257,32789,257,32781,257,"xid 1 page + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-163,"L",2,16,0,16,-1,10,10,65511,65511,TRUE,FALSE,65565,513,65555,513,65547,513,"xid 2 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-164,"L",2,16,0,16,0,10,10,65512,65512,TRUE,FALSE,65566,513,65556,513,65548,513,"xid 2 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-165,"L",2,16,0,16,1,10,10,65513,65513,TRUE,FALSE,65567,513,65557,513,65549,513,"xid 2 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-166,"L",4,16,0,16,-1,10,10,131047,131047,TRUE,FALSE,131101,1025,131091,1025,131083,1025,"xid 4 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-167,"L",4,16,0,16,0,10,10,131048,131048,TRUE,FALSE,131102,1025,131092,1025,131084,1025,"xid 4 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-168,"L",4,16,0,16,1,10,10,131049,131049,TRUE,FALSE,131103,1025,131093,1025,131085,1025,"xid 4 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-169,"L",3.5,16,0,16,0,10,10,114664,114664,TRUE,FALSE,114718,897,114708,897,114700,897,"xid 3.5 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-170,"L",3.5,16,0,16,1,10,10,114665,114665,TRUE,FALSE,114719,897,114709,897,114701,897,"xid 3.5 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+,,,,,,,"Msg size",,"Xid size",,,,,"enq-size",,"deq-size",,"txn-size",,
+"Test #","tf","pf","amn","mn incr","#msgs","ms incr","Min","Max","Min","Max","auto-deq","transient","extern","bytes","dblks","bytes","dblks","bytes","dblks","comment"
+,,,,,,,,,,,,,,,,,,,,
+"Initialize only",,,,,,,,,,,,,,,,,,,,
+0,"L",0,0,0,0,0,0,0,0,0,FALSE,FALSE,FALSE,44,1,0,0,0,0,"No messages - journal creation/initialization only"
+,,,,,,,,,,,,,,,,,,,,
+"Simple message combinations of persistent/deq transientueued/non-dequeued, transactional/non-transactional",,,,,,,,,,,,,,,,,,,,
+1,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,FALSE,54,1,0,0,0,0,"1 * 10-byte message"
+2,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,FALSE,54,1,0,0,0,0,"10 * 10-byte message"
+3,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,FALSE,54,1,0,0,0,0,"1 * 10-byte message [transient]"
+4,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,FALSE,54,1,0,0,0,0,"10 * 10-byte message [transient]"
+5,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn]"
+6,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn]"
+7,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn transient]"
+8,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn transient]"
+9,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq]"
+10,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq]"
+11,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq transient]"
+12,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq transient]"
+13,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [deq txn]"
+14,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [deq txn]"
+15,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient]"
+16,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient]"
+17,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [extern]"
+18,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [extern]"
+19,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [transient extern]"
+20,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [transient extern]"
+21,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn extern]"
+22,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn extern]"
+23,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn transient extern]"
+24,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn transient extern]"
+25,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq extern]"
+26,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq extern]"
+27,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq transient extern]"
+28,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq transient extern]"
+29,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [deq txn extern]"
+30,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [deq txn extern]"
+31,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient extern]"
+32,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient extern]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from one d-block to two per message",,,,,,,,,,,,,,,,,,,,
+33,"L",1,10,0,10,0,84,84,0,0,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit"
+34,"L",1,10,0,10,1,85,85,0,0,FALSE,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte"
+35,"L",1,10,0,10,0,58,58,26,26,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit [txn]"
+36,"L",1,10,0,10,1,59,59,26,26,FALSE,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte [txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from one s-block to two per message",,,,,,,,,,,,,,,,,,,,
+37,"L",1,10,0,10,0,468,468,0,0,FALSE,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit"
+38,"L",1,10,0,10,1,469,469,0,0,FALSE,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte"
+39,"L",1,10,0,10,0,442,442,26,26,FALSE,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit [txn]"
+40,"L",1,10,0,10,1,443,443,26,26,FALSE,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte [txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from first page to second",,,,,,,,,,,,,,,,,,,,
+41,"L",1,8,0,8,0,4052,4052,0,0,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
+42,"L",1,8,1,9,0,4052,4052,0,0,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
+43,"L",1,8,0,8,1,4053,4053,0,0,FALSE,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte"
+44,"L",1,8,0,8,0,3796,3796,256,256,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
+45,"L",1,8,1,9,0,3796,3796,256,256,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
+46,"L",1,8,0,8,1,3797,3797,256,256,FALSE,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte [txn]"
+47,"L",1,8,0,8,0,3924,3924,0,0,TRUE,FALSE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
+48,"L",1,8,1,9,0,3924,3924,0,0,TRUE,FALSE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
+49,"L",1,8,0,8,1,3925,3925,0,0,TRUE,FALSE,FALSE,3969,32,32,1,0,0,"1/8 page incl deq + 1 byte [deq]"
+50,"L",1,8,0,8,0,3028,3028,256,256,TRUE,FALSE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
+51,"L",1,8,1,9,0,3028,3028,256,256,TRUE,FALSE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
+52,"L",1,8,0,8,1,3029,3029,256,256,TRUE,FALSE,FALSE,3329,27,300,3,292,3,"1/8 page incl deq & txn + 1 byte [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Page cache rollover (from page 32 back to page 0)",,,,,,,,,,,,,,,,,,,,
+53,"L",1,32,0,32,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+54,"L",1,32,1,33,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+55,"L",1,32,0,32,1,32725,32725,0,0,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
+56,"L",1.5,22,0,22,0,49108,49108,0,0,FALSE,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages"
+57,"L",1,32,0,32,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+58,"L",1,32,1,33,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+59,"L",1,32,0,32,1,32469,32469,256,256,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
+60,"L",1.5,22,0,22,0,48852,48852,256,256,FALSE,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages [txn]"
+61,"L",1,32,0,32,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+62,"L",1,32,1,33,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+63,"L",1,32,0,32,1,32597,32597,0,0,TRUE,FALSE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
+64,"L",1.5,22,0,22,0,48980,48980,0,0,TRUE,FALSE,FALSE,49024,383,32,1,0,0,"1.5 pages incl deq [deq]"
+65,"L",1,32,0,32,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+66,"L",1,32,1,33,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+67,"L",1,32,0,32,1,31701,31701,256,256,TRUE,FALSE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
+68,"L",1.5,22,0,22,0,48084,48084,256,256,TRUE,FALSE,FALSE,48384,378,300,3,292,3,"1.5 pages incl deq & txn [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"File transition (from file 0000 to 0001)",,,,,,,,,,,,,,,,,,,,
+69,"L",1,48,0,48,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+70,"L",1,48,1,49,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+71,"L",1,48,0,48,1,32725,32725,0,0,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
+72,"L",2.5,20,0,20,0,81876,81876,0,0,FALSE,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages"
+73,"L",1,48,0,48,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+74,"L",1,48,1,49,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+75,"L",1,48,0,48,1,32469,32469,256,256,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
+76,"L",2.5,20,0,20,0,81620,81620,256,256,FALSE,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages [txn]"
+77,"L",1,48,0,48,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+78,"L",1,48,1,49,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+79,"L",1,48,0,48,1,32597,32597,0,0,TRUE,FALSE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
+80,"L",2.5,20,0,20,0,81748,81748,0,0,TRUE,FALSE,FALSE,81792,639,32,1,0,0,"2.5 pages incl deq [deq]"
+81,"L",1,48,0,48,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+82,"L",1,48,1,49,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+83,"L",1,48,0,48,1,31701,31701,256,256,TRUE,FALSE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
+84,"L",2.5,20,0,20,0,80852,80852,256,256,TRUE,FALSE,FALSE,81152,634,300,3,292,3,"2.5 pages incl deq & txn [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"File rollover (from file 0007 to 0000) - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,,
+85,"L",0.5,16,0,16,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+86,"L",0.5,16,1,17,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+87,"L",0.5,16,0,16,1,786389,786389,0,0,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
+88,"L",0.5,16,0,16,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+89,"L",0.5,16,1,17,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+90,"L",0.5,16,0,16,1,786133,786133,256,256,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
+91,"L",0.25,32,0,32,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+92,"L",0.25,32,1,33,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+93,"L",0.25,32,0,32,1,786389,786389,0,0,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
+94,"L",0.25,32,0,32,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+95,"L",0.25,32,1,33,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+96,"L",0.25,32,0,32,1,786133,786133,256,256,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
+97,"L",0.5,16,0,16,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+98,"L",0.5,16,1,17,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+99,"L",0.5,16,0,16,1,786261,786261,0,0,TRUE,FALSE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
+100,"L",0.5,16,0,16,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+101,"L",0.5,16,1,17,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+102,"L",0.5,16,0,16,1,785365,785365,256,256,TRUE,FALSE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
+103,"L",0.25,32,0,32,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+104,"L",0.25,32,1,33,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+105,"L",0.25,32,0,32,1,786261,786261,0,0,TRUE,FALSE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
+106,"L",0.25,32,0,32,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+107,"L",0.25,32,1,33,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+108,"L",0.25,32,0,32,1,785365,785365,256,256,TRUE,FALSE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Multi-page messages (large messages) - tests various paths in encoder.",,,,,,,,,,,,,,,,,,,,
+109,"L",1,16,0,16,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page"
+110,"L",1,16,0,16,1,32725,32725,0,0,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary)"
+111,"L",1,16,0,16,11,32735,32735,0,0,FALSE,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary)"
+112,"L",1,16,0,16,12,32736,32736,0,0,FALSE,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page)"
+113,"L",1,16,0,16,13,32737,32737,0,0,FALSE,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary)"
+114,"L",1,16,0,16,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page [txn]"
+115,"L",1,16,0,16,1,32469,32469,256,256,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary) [txn]"
+116,"L",1,16,0,16,11,32479,32479,256,256,FALSE,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+117,"L",1,16,0,16,12,32480,32480,256,256,FALSE,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page) [txn]"
+118,"L",1,16,0,16,13,32481,32481,256,256,FALSE,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary) [txn]"
+119,"L",2,16,0,16,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages"
+120,"L",2,16,0,16,1,65493,65493,0,0,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary)"
+121,"L",2,16,0,16,11,65503,65503,0,0,FALSE,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary)"
+122,"L",2,16,0,16,12,65504,65504,0,0,FALSE,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page)"
+123,"L",2,16,0,16,13,65505,65505,0,0,FALSE,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary)"
+124,"L",2,16,0,16,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages [txn]"
+125,"L",2,16,0,16,1,65237,65237,256,256,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
+126,"L",2,16,0,16,11,65247,65247,256,256,FALSE,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+127,"L",2,16,0,16,12,65248,65248,256,256,FALSE,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page) [txn]"
+128,"L",2,16,0,16,13,65249,65249,256,256,FALSE,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
+129,"L",4,16,0,16,0,131028,131028,0,0,FALSE,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages"
+130,"L",4,16,0,16,1,131029,131029,0,0,FALSE,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary)"
+131,"L",4,16,0,16,11,131039,131039,0,0,FALSE,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary)"
+132,"L",4,16,0,16,12,131040,131040,0,0,FALSE,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page)"
+133,"L",4,16,0,16,13,131041,131041,0,0,FALSE,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary)"
+134,"L",4,16,0,16,0,130772,130772,256,256,FALSE,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages [txn]"
+135,"L",4,16,0,16,1,130773,130773,256,256,FALSE,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
+136,"L",4,16,0,16,11,130783,130783,256,256,FALSE,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+137,"L",4,16,0,16,12,130784,130784,256,256,FALSE,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page) [txn]"
+138,"L",4,16,0,16,13,130785,130785,256,256,FALSE,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
+139,"L",3.5,16,0,16,0,114644,114644,0,0,FALSE,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages"
+140,"L",3.5,16,0,16,1,114645,114645,0,0,FALSE,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte"
+141,"L",3.5,16,0,16,0,114388,114388,256,256,FALSE,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages [txn]"
+142,"L",3.5,16,0,16,1,114389,114389,256,256,FALSE,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte [txn]"
+143,"L",1,16,0,16,-1,10,10,32735,32735,FALSE,FALSE,FALSE,32789,257,0,0,0,0,"xid 1 page – 1 byte; data 10 bytes (exact fit) [txn]"
+144,"L",1,16,0,16,0,10,10,32736,32736,FALSE,FALSE,FALSE,32790,257,0,0,0,0,"xid 1 page; data 10 bytes (exact fit) [txn]"
+145,"L",1,16,0,16,1,10,10,32737,32737,FALSE,FALSE,FALSE,32791,257,0,0,0,0,"xid 1 page + 1 byte; data 10 bytes (exact fit) [txn]"
+146,"L",2,16,0,16,-1,10,10,65503,65503,FALSE,FALSE,FALSE,65557,513,0,0,0,0,"xid 2 pages – 1 byte; data 10 bytes (exact fit) [txn]"
+147,"L",2,16,0,16,0,10,10,65504,65504,FALSE,FALSE,FALSE,65558,513,0,0,0,0,"xid 2 pages; data 10 bytes (exact fit) [txn]"
+148,"L",2,16,0,16,1,10,10,65505,65505,FALSE,FALSE,FALSE,65559,513,0,0,0,0,"xid 2 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+149,"L",4,16,0,16,-1,10,10,131039,131039,FALSE,FALSE,FALSE,131093,1025,0,0,0,0,"xid 4 pages – 1 byte; data 10 bytes (exact fit) [txn]"
+150,"L",4,16,0,16,0,10,10,131040,131040,FALSE,FALSE,FALSE,131094,1025,0,0,0,0,"xid 4 pages; data 10 bytes (exact fit) [txn]"
+151,"L",4,16,0,16,1,10,10,131041,131041,FALSE,FALSE,FALSE,131095,1025,0,0,0,0,"xid 4 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+152,"L",3.5,16,0,16,0,10,10,114656,114656,FALSE,FALSE,FALSE,114710,897,0,0,0,0,"xid 3.5 pages; data 10 bytes (exact fit) [txn]"
+153,"L",3.5,16,0,16,1,10,10,114657,114657,FALSE,FALSE,FALSE,114711,897,0,0,0,0,"xid 3.5 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+154,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+155,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for enq rec; data 10 bytes (exact fit) [deq, txn]"
+156,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+157,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+158,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+159,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+160,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+161,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+162,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+163,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+164,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+165,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+166,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for deq rec; data 10 bytes (exact fit) [deq, txn]"
+167,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+168,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+169,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+170,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+171,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+172,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+173,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+174,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+175,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+176,"L",1,16,0,16,-1,10,10,32743,32743,TRUE,FALSE,FALSE,32797,257,32787,257,32779,257,"xid 1 page – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+177,"L",1,16,0,16,0,10,10,32744,32744,TRUE,FALSE,FALSE,32798,257,32788,257,32780,257,"xid 1 page for txn rec; data 10 bytes (exact fit) [deq, txn]"
+178,"L",1,16,0,16,1,10,10,32745,32745,TRUE,FALSE,FALSE,32799,257,32789,257,32781,257,"xid 1 page + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+179,"L",2,16,0,16,-1,10,10,65511,65511,TRUE,FALSE,FALSE,65565,513,65555,513,65547,513,"xid 2 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+180,"L",2,16,0,16,0,10,10,65512,65512,TRUE,FALSE,FALSE,65566,513,65556,513,65548,513,"xid 2 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+181,"L",2,16,0,16,1,10,10,65513,65513,TRUE,FALSE,FALSE,65567,513,65557,513,65549,513,"xid 2 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+182,"L",4,16,0,16,-1,10,10,131047,131047,TRUE,FALSE,FALSE,131101,1025,131091,1025,131083,1025,"xid 4 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+183,"L",4,16,0,16,0,10,10,131048,131048,TRUE,FALSE,FALSE,131102,1025,131092,1025,131084,1025,"xid 4 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+184,"L",4,16,0,16,1,10,10,131049,131049,TRUE,FALSE,FALSE,131103,1025,131093,1025,131085,1025,"xid 4 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+185,"L",3.5,16,0,16,0,10,10,114664,114664,TRUE,FALSE,FALSE,114718,897,114708,897,114700,897,"xid 3.5 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+186,"L",3.5,16,0,16,1,10,10,114665,114665,TRUE,FALSE,FALSE,114719,897,114709,897,114701,897,"xid 3.5 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
Modified: store/trunk/cpp/tests/jrnl/tests.ods
===================================================================
(Binary files differ)
Modified: store/trunk/cpp/tests/jrnl/wtests.csv
===================================================================
--- store/trunk/cpp/tests/jrnl/wtests.csv 2007-11-06 19:49:07 UTC (rev 1256)
+++ store/trunk/cpp/tests/jrnl/wtests.csv 2007-11-06 21:52:47 UTC (rev 1257)
@@ -1,277 +1,293 @@
-,,,,,,,"Msg size",,"Xid size",,,,"enq-size",,"deq-size",,"txn-size",,
-"Test #","tf","pf","amn","mn incr","#msgs","ms incr","Min","Max","Min","Max","auto-deq","transient","bytes","dblks","bytes","dblks","bytes","dblks","comment"
-,,,,,,,,,,,,,,,,,,,
-"Initialize only",,,,,,,,,,,,,,,,,,,
-0,"L",0,0,0,0,0,0,0,0,0,FALSE,FALSE,44,1,0,0,0,0,"No messages – journal creation/initialization only"
-,,,,,,,,,,,,,,,,,,,
-"Simple message combinations of persistent/deq transientueued/non-dequeued, transactional/non-transactional",,,,,,,,,,,,,,,,,,,
-1,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,54,1,0,0,0,0,"1 * 10-byte message"
-2,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,54,1,0,0,0,0,"10 * 10-byte message"
-3,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [transient]"
-4,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [transient]"
-5,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn]"
-6,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn]"
-7,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn transient]"
-8,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn transient]"
-9,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq]"
-10,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq]"
-11,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq transient]"
-12,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq transient]"
-13,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [deq txn]"
-14,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [deq txn]"
-15,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient]"
-16,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from one d-block to two per message",,,,,,,,,,,,,,,,,,,
-17,"L",1,10,0,10,0,84,84,0,0,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit"
-18,"L",1,10,0,10,1,85,85,0,0,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte"
-19,"L",1,10,0,10,0,58,58,26,26,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit [txn]"
-20,"L",1,10,0,10,1,59,59,26,26,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte [txn]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from one s-block to two per message",,,,,,,,,,,,,,,,,,,
-21,"L",1,10,0,10,0,468,468,0,0,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit"
-22,"L",1,10,0,10,1,469,469,0,0,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte"
-23,"L",1,10,0,10,0,442,442,26,26,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit [txn]"
-24,"L",1,10,0,10,1,443,443,26,26,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte [txn]"
-,,,,,,,,,,,,,,,,,,,
-"Transition from first page to second",,,,,,,,,,,,,,,,,,,
-25,"L",1,8,0,8,0,4052,4052,0,0,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
-26,"L",1,8,1,9,0,4052,4052,0,0,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
-27,"L",1,8,0,8,1,4053,4053,0,0,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte"
-28,"L",1,8,0,8,0,3796,3796,256,256,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
-29,"L",1,8,1,9,0,3796,3796,256,256,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
-30,"L",1,8,0,8,1,3797,3797,256,256,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte [txn]"
-31,"L",1,8,0,8,0,3924,3924,0,0,TRUE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
-32,"L",1,8,1,9,0,3924,3924,0,0,TRUE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
-33,"L",1,8,0,8,1,3925,3925,0,0,TRUE,FALSE,3969,32,32,1,0,0,"1/8 page incl deq + 1 byte [deq]"
-34,"L",1,8,0,8,0,3028,3028,256,256,TRUE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
-35,"L",1,8,1,9,0,3028,3028,256,256,TRUE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
-36,"L",1,8,0,8,1,3029,3029,256,256,TRUE,FALSE,3329,27,300,3,292,3,"1/8 page incl deq & txn + 1 byte [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"Page cache rollover (from page 32 back to page 0)",,,,,,,,,,,,,,,,,,,
-37,"L",1,32,0,32,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-38,"L",1,32,1,33,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-39,"L",1,32,0,32,1,32725,32725,0,0,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
-40,"L",1.5,22,0,22,0,49108,49108,0,0,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages"
-41,"L",1,32,0,32,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-42,"L",1,32,1,33,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-43,"L",1,32,0,32,1,32469,32469,256,256,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
-44,"L",1.5,22,0,22,0,48852,48852,256,256,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages [txn]"
-45,"L",1,32,0,32,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-46,"L",1,32,1,33,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-47,"L",1,32,0,32,1,32597,32597,0,0,TRUE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
-48,"L",1.5,22,0,22,0,48980,48980,0,0,TRUE,FALSE,49024,383,32,1,0,0,"1.5 pages incl deq [deq]"
-49,"L",1,32,0,32,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-50,"L",1,32,1,33,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-51,"L",1,32,0,32,1,31701,31701,256,256,TRUE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
-52,"L",1.5,22,0,22,0,48084,48084,256,256,TRUE,FALSE,48384,378,300,3,292,3,"1.5 pages incl deq & txn [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"File transition (from file 0000 to 0001)",,,,,,,,,,,,,,,,,,,
-53,"L",1,48,0,48,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-54,"L",1,48,1,49,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
-55,"L",1,48,0,48,1,32725,32725,0,0,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
-56,"L",2.5,20,0,20,0,81876,81876,0,0,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages"
-57,"L",1,48,0,48,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-58,"L",1,48,1,49,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
-59,"L",1,48,0,48,1,32469,32469,256,256,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
-60,"L",2.5,20,0,20,0,81620,81620,256,256,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages [txn]"
-61,"L",1,48,0,48,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-62,"L",1,48,1,49,0,32596,32596,0,0,TRUE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
-63,"L",1,48,0,48,1,32597,32597,0,0,TRUE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
-64,"L",2.5,20,0,20,0,81748,81748,0,0,TRUE,FALSE,81792,639,32,1,0,0,"2.5 pages incl deq [deq]"
-65,"L",1,48,0,48,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-66,"L",1,48,1,49,0,31700,31700,256,256,TRUE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
-67,"L",1,48,0,48,1,31701,31701,256,256,TRUE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
-68,"L",2.5,20,0,20,0,80852,80852,256,256,TRUE,FALSE,81152,634,300,3,292,3,"2.5 pages incl deq & txn [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"File rollover (from file 0007 to 0000) - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,
-69,"L",0.5,16,0,16,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-70,"L",0.5,16,1,17,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-71,"L",0.5,16,0,16,1,786389,786389,0,0,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
-72,"L",0.5,16,0,16,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-73,"L",0.5,16,1,17,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-74,"L",0.5,16,0,16,1,786133,786133,256,256,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
-75,"L",0.25,32,0,32,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-76,"L",0.25,32,1,33,0,786388,786388,0,0,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
-77,"L",0.25,32,0,32,1,786389,786389,0,0,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
-78,"L",0.25,32,0,32,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-79,"L",0.25,32,1,33,0,786132,786132,256,256,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
-80,"L",0.25,32,0,32,1,786133,786133,256,256,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
-81,"L",0.5,16,0,16,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-82,"L",0.5,16,1,17,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-83,"L",0.5,16,0,16,1,786261,786261,0,0,TRUE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
-84,"L",0.5,16,0,16,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-85,"L",0.5,16,1,17,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-86,"L",0.5,16,0,16,1,785365,785365,256,256,TRUE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
-87,"L",0.25,32,0,32,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-88,"L",0.25,32,1,33,0,786260,786260,0,0,TRUE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
-89,"L",0.25,32,0,32,1,786261,786261,0,0,TRUE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
-90,"L",0.25,32,0,32,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-91,"L",0.25,32,1,33,0,785364,785364,256,256,TRUE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
-92,"L",0.25,32,0,32,1,785365,785365,256,256,TRUE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"Multi-page messages (large messages) - tests various paths in encoder.",,,,,,,,,,,,,,,,,,,
-93,"L",1,16,0,16,0,32724,32724,0,0,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page"
-94,"L",1,16,0,16,1,32725,32725,0,0,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary)"
-95,"L",1,16,0,16,11,32735,32735,0,0,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary)"
-96,"L",1,16,0,16,12,32736,32736,0,0,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page)"
-97,"L",1,16,0,16,13,32737,32737,0,0,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary)"
-98,"L",1,16,0,16,0,32468,32468,256,256,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page [txn]"
-99,"L",1,16,0,16,1,32469,32469,256,256,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary) [txn]"
-100,"L",1,16,0,16,11,32479,32479,256,256,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-101,"L",1,16,0,16,12,32480,32480,256,256,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page) [txn]"
-102,"L",1,16,0,16,13,32481,32481,256,256,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary) [txn]"
-103,"L",2,16,0,16,0,65492,65492,0,0,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages"
-104,"L",2,16,0,16,1,65493,65493,0,0,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary)"
-105,"L",2,16,0,16,11,65503,65503,0,0,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary)"
-106,"L",2,16,0,16,12,65504,65504,0,0,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page)"
-107,"L",2,16,0,16,13,65505,65505,0,0,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary)"
-108,"L",2,16,0,16,0,65236,65236,256,256,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages [txn]"
-109,"L",2,16,0,16,1,65237,65237,256,256,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
-110,"L",2,16,0,16,11,65247,65247,256,256,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-111,"L",2,16,0,16,12,65248,65248,256,256,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page) [txn]"
-112,"L",2,16,0,16,13,65249,65249,256,256,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
-113,"L",4,16,0,16,0,131028,131028,0,0,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages"
-114,"L",4,16,0,16,1,131029,131029,0,0,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary)"
-115,"L",4,16,0,16,11,131039,131039,0,0,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary)"
-116,"L",4,16,0,16,12,131040,131040,0,0,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page)"
-117,"L",4,16,0,16,13,131041,131041,0,0,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary)"
-118,"L",4,16,0,16,0,130772,130772,256,256,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages [txn]"
-119,"L",4,16,0,16,1,130773,130773,256,256,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
-120,"L",4,16,0,16,11,130783,130783,256,256,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
-121,"L",4,16,0,16,12,130784,130784,256,256,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page) [txn]"
-122,"L",4,16,0,16,13,130785,130785,256,256,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
-123,"L",3.5,16,0,16,0,114644,114644,0,0,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages"
-124,"L",3.5,16,0,16,1,114645,114645,0,0,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte"
-125,"L",3.5,16,0,16,0,114388,114388,256,256,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages [txn]"
-126,"L",3.5,16,0,16,1,114389,114389,256,256,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte [txn]"
-127,"L",1,16,0,16,-1,10,10,32735,32735,FALSE,FALSE,32789,257,0,0,0,0,"xid 1 page – 1 byte; data 10 bytes (exact fit) [txn]"
-128,"L",1,16,0,16,0,10,10,32736,32736,FALSE,FALSE,32790,257,0,0,0,0,"xid 1 page; data 10 bytes (exact fit) [txn]"
-129,"L",1,16,0,16,1,10,10,32737,32737,FALSE,FALSE,32791,257,0,0,0,0,"xid 1 page + 1 byte; data 10 bytes (exact fit) [txn]"
-130,"L",2,16,0,16,-1,10,10,65503,65503,FALSE,FALSE,65557,513,0,0,0,0,"xid 2 pages – 1 byte; data 10 bytes (exact fit) [txn]"
-131,"L",2,16,0,16,0,10,10,65504,65504,FALSE,FALSE,65558,513,0,0,0,0,"xid 2 pages; data 10 bytes (exact fit) [txn]"
-132,"L",2,16,0,16,1,10,10,65505,65505,FALSE,FALSE,65559,513,0,0,0,0,"xid 2 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-133,"L",4,16,0,16,-1,10,10,131039,131039,FALSE,FALSE,131093,1025,0,0,0,0,"xid 4 pages – 1 byte; data 10 bytes (exact fit) [txn]"
-134,"L",4,16,0,16,0,10,10,131040,131040,FALSE,FALSE,131094,1025,0,0,0,0,"xid 4 pages; data 10 bytes (exact fit) [txn]"
-135,"L",4,16,0,16,1,10,10,131041,131041,FALSE,FALSE,131095,1025,0,0,0,0,"xid 4 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-136,"L",3.5,16,0,16,0,10,10,114656,114656,FALSE,FALSE,114710,897,0,0,0,0,"xid 3.5 pages; data 10 bytes (exact fit) [txn]"
-137,"L",3.5,16,0,16,1,10,10,114657,114657,FALSE,FALSE,114711,897,0,0,0,0,"xid 3.5 pages + 1 byte; data 10 bytes (exact fit) [txn]"
-138,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-139,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for enq rec; data 10 bytes (exact fit) [deq, txn]"
-140,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-141,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-142,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-143,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-144,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-145,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-146,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-147,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
-148,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
-149,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-150,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for deq rec; data 10 bytes (exact fit) [deq, txn]"
-151,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-152,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-153,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-154,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-155,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-156,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-157,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-158,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
-159,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
-160,"L",1,16,0,16,-1,10,10,32743,32743,TRUE,FALSE,32797,257,32787,257,32779,257,"xid 1 page – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-161,"L",1,16,0,16,0,10,10,32744,32744,TRUE,FALSE,32798,257,32788,257,32780,257,"xid 1 page for txn rec; data 10 bytes (exact fit) [deq, txn]"
-162,"L",1,16,0,16,1,10,10,32745,32745,TRUE,FALSE,32799,257,32789,257,32781,257,"xid 1 page + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-163,"L",2,16,0,16,-1,10,10,65511,65511,TRUE,FALSE,65565,513,65555,513,65547,513,"xid 2 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-164,"L",2,16,0,16,0,10,10,65512,65512,TRUE,FALSE,65566,513,65556,513,65548,513,"xid 2 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-165,"L",2,16,0,16,1,10,10,65513,65513,TRUE,FALSE,65567,513,65557,513,65549,513,"xid 2 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-166,"L",4,16,0,16,-1,10,10,131047,131047,TRUE,FALSE,131101,1025,131091,1025,131083,1025,"xid 4 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-167,"L",4,16,0,16,0,10,10,131048,131048,TRUE,FALSE,131102,1025,131092,1025,131084,1025,"xid 4 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-168,"L",4,16,0,16,1,10,10,131049,131049,TRUE,FALSE,131103,1025,131093,1025,131085,1025,"xid 4 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-169,"L",3.5,16,0,16,0,10,10,114664,114664,TRUE,FALSE,114718,897,114708,897,114700,897,"xid 3.5 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
-170,"L",3.5,16,0,16,1,10,10,114665,114665,TRUE,FALSE,114719,897,114709,897,114701,897,"xid 3.5 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
-,,,,,,,,,,,,,,,,,,,
-"Large (multi-megabyte) messages - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,
-171,"L",1,32,0,32,0,1572820,1572820,0,0,FALSE,FALSE,1572864,12288,0,0,0,0,"48 pages = 1 file exactly"
-172,"L",1,32,0,32,1,1572821,1572821,0,0,FALSE,FALSE,1572865,12289,0,0,0,0,"48 pages + 1 byte"
-173,"L",1,32,0,32,0,1605588,1605588,0,0,FALSE,FALSE,1605632,12544,0,0,0,0,"49 pages = 1 file + 1 page"
-174,"L",1,32,0,32,1,1589205,1589205,0,0,FALSE,FALSE,1589249,12417,0,0,0,0,"49 pages + 1 byte = 1 file + 1 page + 1 byte"
-175,"L",1,32,0,32,0,1572565,1572565,255,255,FALSE,FALSE,1572864,12288,0,0,0,0,"48 pages = 1 file exactly [txn]"
-176,"L",1,32,0,32,1,1572566,1572566,255,255,FALSE,FALSE,1572865,12289,0,0,0,0,"48 pages + 1 byte [txn]"
-177,"L",1,32,0,32,0,1588949,1588949,255,255,FALSE,FALSE,1589248,12416,0,0,0,0,"49 pages = 1 file + 1 page [txn]"
-178,"L",1,32,0,32,1,1584854,1584854,255,255,FALSE,FALSE,1585153,12385,0,0,0,0,"49 pages + 1 byte = 1 file + 1 page + 1 byte [txn]"
-179,"L",1,32,0,32,0,1572692,1572692,0,0,TRUE,FALSE,1572736,12287,32,1,0,0,"48 pages incl deq = 1 file exactly [deq]"
-180,"L",1,32,0,32,1,1572693,1572693,0,0,TRUE,FALSE,1572737,12288,32,1,0,0,"48 pages incl deq + 1 byte [deq]"
-181,"L",1,32,0,32,0,1595220,1595220,0,0,TRUE,FALSE,1595264,12463,32,1,0,0,"49 pages incl deq = 1 file + 1 page [deq]"
-182,"L",1,32,0,32,1,1589077,1589077,0,0,TRUE,FALSE,1589121,12416,32,1,0,0,"49 pages incl deq + 1 byte = 1 file + 1 page + 1 byte [deq]"
-183,"L",1,32,0,32,0,1571797,1571797,255,255,TRUE,FALSE,1572096,12282,299,3,291,3,"48 pages incl deq & txn = 1 file exactly [deq txn]"
-184,"L",1,32,0,32,1,1571798,1571798,255,255,TRUE,FALSE,1572097,12283,299,3,291,3,"48 pages incl deq & txn + 1 byte [deq txn]"
-185,"L",1,32,0,32,0,1571797,1571797,255,255,TRUE,FALSE,1572096,12282,299,3,291,3,"49 pages incl deq & txn = 1 file + 1 page [deq txn]"
-186,"L",1,32,0,32,1,1571798,1571798,255,255,TRUE,FALSE,1572097,12283,299,3,291,3,"49 pages incl deq & txn + 1 byte = 1 file + 1 page + 1 byte [deq txn]"
-187,"L",2,16,0,16,0,3145684,3145684,0,0,FALSE,FALSE,3145728,24576,0,0,0,0,"96 pages = 2 files exactly"
-188,"L",2,16,0,16,1,3145685,3145685,0,0,FALSE,FALSE,3145729,24577,0,0,0,0,"96 pages + 1 byte"
-189,"L",2,16,0,16,0,3146708,3146708,0,0,FALSE,FALSE,3146752,24584,0,0,0,0,"97 pages = 2 files + 1 page"
-190,"L",2,16,0,16,1,3145685,3145685,0,0,FALSE,FALSE,3145729,24577,0,0,0,0,"97 pages + 1 byte = 2 files + 1 page + 1 byte"
-191,"L",2,16,0,16,0,3145429,3145429,255,255,FALSE,FALSE,3145728,24576,0,0,0,0,"96 pages = 2 files exactly [txn]"
-192,"L",2,16,0,16,1,3145430,3145430,255,255,FALSE,FALSE,3145729,24577,0,0,0,0,"96 pages + 1 byte [txn]"
-193,"L",2,16,0,16,0,3145429,3145429,255,255,FALSE,FALSE,3145728,24576,0,0,0,0,"97 pages = 2 files + 1 page [txn]"
-194,"L",2,16,0,16,1,3145430,3145430,255,255,FALSE,FALSE,3145729,24577,0,0,0,0,"97 pages + 1 byte = 2 files + 1 page + 1 byte [txn]"
-195,"L",2,16,0,16,0,3145556,3145556,0,0,TRUE,FALSE,3145600,24575,32,1,0,0,"96 pages incl deq = 2 files exactly [deq]"
-196,"L",2,16,0,16,1,3145557,3145557,0,0,TRUE,FALSE,3145601,24576,32,1,0,0,"96 pages incl deq + 1 byte [deq]"
-197,"L",2,16,0,16,0,3145556,3145556,0,0,TRUE,FALSE,3145600,24575,32,1,0,0,"97 pages incl deq = 2 files + 1 page [deq]"
-198,"L",2,16,0,16,1,3145557,3145557,0,0,TRUE,FALSE,3145601,24576,32,1,0,0,"97 pages incl deq + 1 byte = 2 files + 1 page + 1 byte [deq]"
-199,"L",2,16,0,16,0,3144661,3144661,255,255,TRUE,FALSE,3144960,24570,299,3,291,3,"96 pages incl deq & txn = 2 files exactly [deq txn]"
-200,"L",2,16,0,16,1,3144662,3144662,255,255,TRUE,FALSE,3144961,24571,299,3,291,3,"96 pages incl deq & txn + 1 byte [deq txn]"
-201,"L",2,16,0,16,0,3144661,3144661,255,255,TRUE,FALSE,3144960,24570,299,3,291,3,"97 pages incl deq & txn = 2 files + 1 page [deq txn]"
-202,"L",2,16,0,16,1,3144662,3144662,255,255,TRUE,FALSE,3144961,24571,299,3,291,3,"97 pages incl deq & txn + 1 byte = 2 files + 1 page + 1 byte [deq txn]"
-203,"L",4,8,0,8,0,6291412,6291412,0,0,FALSE,FALSE,6291456,49152,0,0,0,0,"192 pages = 2 files exactly"
-204,"L",4,8,0,8,1,6291413,6291413,0,0,FALSE,FALSE,6291457,49153,0,0,0,0,"192 pages + 1 byte"
-205,"L",4,8,0,8,0,6291412,6291412,0,0,FALSE,FALSE,6291456,49152,0,0,0,0,"193 pages = 2 files + 1 page"
-206,"L",4,8,0,8,1,6291413,6291413,0,0,FALSE,FALSE,6291457,49153,0,0,0,0,"193 pages + 1 byte = 2 files + 1 page + 1 byte"
-207,"L",4,8,0,8,0,6291157,6291157,255,255,FALSE,FALSE,6291456,49152,0,0,0,0,"192 pages = 2 files exactly [txn]"
-208,"L",4,8,0,8,1,6291158,6291158,255,255,FALSE,FALSE,6291457,49153,0,0,0,0,"192 pages + 1 byte [txn]"
-209,"L",4,8,0,8,0,6291157,6291157,255,255,FALSE,FALSE,6291456,49152,0,0,0,0,"193 pages = 2 files + 1 page [txn]"
-210,"L",4,8,0,8,1,6291158,6291158,255,255,FALSE,FALSE,6291457,49153,0,0,0,0,"193 pages + 1 byte = 2 files + 1 page + 1 byte [txn]"
-211,"L",4,8,0,8,0,6291284,6291284,0,0,TRUE,FALSE,6291328,49151,32,1,0,0,"192 pages incl deq = 2 files exactly [deq]"
-212,"L",4,8,0,8,1,6291285,6291285,0,0,TRUE,FALSE,6291329,49152,32,1,0,0,"192 pages incl deq + 1 byte [deq]"
-213,"L",4,8,0,8,0,6291284,6291284,0,0,TRUE,FALSE,6291328,49151,32,1,0,0,"193 pages incl deq = 2 files + 1 page [deq]"
-214,"L",4,8,0,8,1,6291285,6291285,0,0,TRUE,FALSE,6291329,49152,32,1,0,0,"193 pages incl deq + 1 byte = 2 files + 1 page + 1 byte [deq]"
-215,"L",4,8,0,8,0,6290389,6290389,255,255,TRUE,FALSE,6290688,49146,299,3,291,3,"192 pages incl deq & txn = 2 files exactly [deq txn]"
-216,"L",4,8,0,8,1,6290390,6290390,255,255,TRUE,FALSE,6290689,49147,299,3,291,3,"192 pages incl deq & txn + 1 byte [deq txn]"
-217,"L",4,8,0,8,0,6290389,6290389,255,255,TRUE,FALSE,6290688,49146,299,3,291,3,"193 pages incl deq & txn = 2 files + 1 page [deq txn]"
-218,"L",4,8,0,8,1,6290390,6290390,255,255,TRUE,FALSE,6290689,49147,299,3,291,3,"193 pages incl deq & txn + 1 byte = 2 files + 1 page + 1 byte [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"High volume tests of random message lengths - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,
-219,"M",1,5000000,0,5000000,0,0,84,0,0,FALSE,FALSE,128,1,0,0,0,0,"1 dblk max"
-220,"M",3,3000000,0,3000000,0,0,340,0,0,FALSE,FALSE,384,3,0,0,0,0,"3 dblks max"
-221,"M",10,1600000,0,1600000,0,0,1236,0,0,FALSE,FALSE,1280,10,0,0,0,0,"10 dblks max"
-222,"M",30,600000,0,600000,0,0,3796,0,0,FALSE,FALSE,3840,30,0,0,0,0,"30 dblks max"
-223,"M",100,200000,0,200000,0,0,12756,0,0,FALSE,FALSE,12800,100,0,0,0,0,"100 dblks max"
-224,"M",300,60000,0,60000,0,0,38356,0,0,FALSE,FALSE,38400,300,0,0,0,0,"300 dblks max"
-225,"M",1000,20000,0,20000,0,0,127956,0,0,FALSE,FALSE,128000,1000,0,0,0,0,"1000 dblks max"
-226,"M",1,5000000,0,5000000,0,0,100,1,100,FALSE,FALSE,244,2,0,0,0,0,"100 bytes xid max + 100 bytes data max [txn]"
-227,"M",3,3000000,0,3000000,0,0,300,1,300,FALSE,FALSE,644,6,0,0,0,0,"300 bytes xid max + 300 bytes data max [txn]"
-228,"M",10,1600000,0,1600000,0,0,1000,1,1000,FALSE,FALSE,2044,16,0,0,0,0,"1000 bytes xid max + 1000 bytes data max [txn]"
-229,"M",30,600000,0,600000,0,0,3000,1,3000,FALSE,FALSE,6044,48,0,0,0,0,"3000 bytes xid max + 3000 bytes data max [txn]"
-230,"M",100,200000,0,200000,0,0,10000,1,10000,FALSE,FALSE,20044,157,0,0,0,0,"10000 bytes xid max + 10000 bytes data max [txn]"
-231,"M",300,60000,0,60000,0,0,30000,1,30000,FALSE,FALSE,60044,470,0,0,0,0,"30000 bytes xid max + 30000 bytes data max [txn]"
-232,"M",1000,20000,0,20000,0,0,100000,1,100000,FALSE,FALSE,200044,1563,0,0,0,0,"100000 bytes xid max + 100000 bytes data max [txn]"
-233,"M",1,5000000,0,5000000,0,0,84,0,0,TRUE,FALSE,128,1,32,1,0,0,"1 dblk max [deq]"
-234,"M",3,3000000,0,3000000,0,0,340,0,0,TRUE,FALSE,384,3,32,1,0,0,"3 dblks max [deq]"
-235,"M",10,1600000,0,1600000,0,0,1236,0,0,TRUE,FALSE,1280,10,32,1,0,0,"10 dblks max [deq]"
-236,"M",30,600000,0,600000,0,0,3796,0,0,TRUE,FALSE,3840,30,32,1,0,0,"30 dblks max [deq]"
-237,"M",100,200000,0,200000,0,0,12756,0,0,TRUE,FALSE,12800,100,32,1,0,0,"100 dblks max [deq]"
-238,"M",300,60000,0,60000,0,0,38356,0,0,TRUE,FALSE,38400,300,32,1,0,0,"300 dblks max [deq]"
-239,"M",1000,20000,0,20000,0,0,127956,0,0,TRUE,FALSE,128000,1000,32,1,0,0,"1000 dblks max [deq]"
-240,"M",1,5000000,0,5000000,0,0,100,1,100,TRUE,FALSE,244,2,144,2,136,2,"100 bytes xid max + 100 bytes data max [deq txn]"
-241,"M",3,3000000,0,3000000,0,0,300,1,300,TRUE,FALSE,644,6,344,3,336,3,"300 bytes xid max + 300 bytes data max [deq txn]"
-242,"M",10,1600000,0,1600000,0,0,1000,1,1000,TRUE,FALSE,2044,16,1044,9,1036,9,"1000 bytes xid max + 1000 bytes data max [deq txn]"
-243,"M",30,600000,0,600000,0,0,3000,1,3000,TRUE,FALSE,6044,48,3044,24,3036,24,"3000 bytes xid max + 3000 bytes data max [deq txn]"
-244,"M",100,200000,0,200000,0,0,10000,1,10000,TRUE,FALSE,20044,157,10044,79,10036,79,"10000 bytes xid max + 10000 bytes data max [deq txn]"
-245,"M",300,60000,0,60000,0,0,30000,1,30000,TRUE,FALSE,60044,470,30044,235,30036,235,"30000 bytes xid max + 30000 bytes data max [deq txn]"
-246,"M",1000,20000,0,20000,0,0,100000,1,100000,TRUE,FALSE,200044,1563,100044,782,100036,782,"100000 bytes xid max + 100000 bytes data max [deq txn]"
-,,,,,,,,,,,,,,,,,,,
-"STANDARD PERFORMANCE BENCHMARK: 10,000,000 writes, data=212b (2 dblks)",,,,,,,,,,,,,,,,,,,
-247,"M",1,10000000,0,10000000,0,212,212,0,0,FALSE,FALSE,256,2,0,0,0,0,"212 bytes data (2 dblks enq)"
-248,"M",1,10000000,0,10000000,0,404,404,64,64,FALSE,FALSE,512,4,0,0,0,0,"212 bytes data + 64 bytes xid (3 dblks enq)"
-249,"M",1,10000000,0,10000000,0,212,212,0,0,TRUE,FALSE,256,2,32,1,0,0,"212 bytes data (2 dblks enq + 1 dblk deq)"
-250,"M",1,10000000,0,10000000,0,404,404,64,64,TRUE,FALSE,512,4,108,1,100,1,"212 bytes data + 64 bytes xid (3 dblks enq + 1 dblks deq + 1 dblks txn)"
+,,,,,,,"Msg size",,"Xid size",,,,,"enq-size",,"deq-size",,"txn-size",,
+"Test #","tf","pf","amn","mn incr","#msgs","ms incr","Min","Max","Min","Max","auto-deq","transient","external","bytes","dblks","bytes","dblks","bytes","dblks","comment"
+,,,,,,,,,,,,,,,,,,,,
+"Initialize only",,,,,,,,,,,,,,,,,,,,
+0,"L",0,0,0,0,0,0,0,0,0,FALSE,FALSE,FALSE,44,1,0,0,0,0,"No messages – journal creation/initialization only"
+,,,,,,,,,,,,,,,,,,,,
+"Simple message combinations of persistent/deq transientueued/non-dequeued, transactional/non-transactional",,,,,,,,,,,,,,,,,,,,
+1,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,FALSE,54,1,0,0,0,0,"1 * 10-byte message"
+2,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,FALSE,54,1,0,0,0,0,"10 * 10-byte message"
+3,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,FALSE,54,1,0,0,0,0,"1 * 10-byte message [transient]"
+4,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,FALSE,54,1,0,0,0,0,"10 * 10-byte message [transient]"
+5,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn]"
+6,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn]"
+7,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,FALSE,64,1,0,0,0,0,"1 * 10-byte message [txn transient]"
+8,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,FALSE,64,1,0,0,0,0,"10 * 10-byte message [txn transient]"
+9,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq]"
+10,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq]"
+11,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,FALSE,54,1,32,1,0,0,"1 * 10-byte message [deq transient]"
+12,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,FALSE,54,1,32,1,0,0,"10 * 10-byte message [deq transient]"
+13,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [deq txn]"
+14,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [deq txn]"
+15,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,FALSE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient]"
+16,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,FALSE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient]"
+17,"L",1,1,0,1,0,10,10,0,0,FALSE,FALSE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [extern]"
+18,"L",1,10,0,10,0,10,10,0,0,FALSE,FALSE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [extern]"
+19,"L",1,1,0,1,0,10,10,0,0,FALSE,TRUE,TRUE,54,1,0,0,0,0,"1 * 10-byte message [transient extern]"
+20,"L",1,10,0,10,0,10,10,0,0,FALSE,TRUE,TRUE,54,1,0,0,0,0,"10 * 10-byte message [transient extern]"
+21,"L",1,1,0,1,0,10,10,10,10,FALSE,FALSE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn extern]"
+22,"L",1,10,0,10,0,10,10,10,10,FALSE,FALSE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn extern]"
+23,"L",1,1,0,1,0,10,10,10,10,FALSE,TRUE,TRUE,64,1,0,0,0,0,"1 * 10-byte message [txn transient extern]"
+24,"L",1,10,0,10,0,10,10,10,10,FALSE,TRUE,TRUE,64,1,0,0,0,0,"10 * 10-byte message [txn transient extern]"
+25,"L",1,1,0,1,0,10,10,0,0,TRUE,FALSE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq extern]"
+26,"L",1,10,0,10,0,10,10,0,0,TRUE,FALSE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq extern]"
+27,"L",1,1,0,1,0,10,10,0,0,TRUE,TRUE,TRUE,54,1,32,1,0,0,"1 * 10-byte message [deq transient extern]"
+28,"L",1,10,0,10,0,10,10,0,0,TRUE,TRUE,TRUE,54,1,32,1,0,0,"10 * 10-byte message [deq transient extern]"
+29,"L",1,1,0,1,0,10,10,10,10,TRUE,FALSE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [deq txn extern]"
+30,"L",1,10,0,10,0,10,10,10,10,TRUE,FALSE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [deq txn extern]"
+31,"L",1,1,0,1,0,10,10,10,10,TRUE,TRUE,TRUE,64,1,54,1,46,1,"1 * 10-byte message [txn deq transient extern]"
+32,"L",1,10,0,10,0,10,10,10,10,TRUE,TRUE,TRUE,64,1,54,1,46,1,"10 * 10-byte message [txn deq transient extern]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from one d-block to two per message",,,,,,,,,,,,,,,,,,,,
+33,"L",1,10,0,10,0,84,84,0,0,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit"
+34,"L",1,10,0,10,1,85,85,0,0,FALSE,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte"
+35,"L",1,10,0,10,0,58,58,26,26,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk exact fit [txn]"
+36,"L",1,10,0,10,1,59,59,26,26,FALSE,FALSE,FALSE,129,2,0,0,0,0,"1 dblk + 1 byte [txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from one s-block to two per message",,,,,,,,,,,,,,,,,,,,
+37,"L",1,10,0,10,0,468,468,0,0,FALSE,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit"
+38,"L",1,10,0,10,1,469,469,0,0,FALSE,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte"
+39,"L",1,10,0,10,0,442,442,26,26,FALSE,FALSE,FALSE,512,4,0,0,0,0,"1 sblk exact fit [txn]"
+40,"L",1,10,0,10,1,443,443,26,26,FALSE,FALSE,FALSE,513,5,0,0,0,0,"1 sblk + 1 byte [txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Transition from first page to second",,,,,,,,,,,,,,,,,,,,
+41,"L",1,8,0,8,0,4052,4052,0,0,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
+42,"L",1,8,1,9,0,4052,4052,0,0,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page"
+43,"L",1,8,0,8,1,4053,4053,0,0,FALSE,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte"
+44,"L",1,8,0,8,0,3796,3796,256,256,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
+45,"L",1,8,1,9,0,3796,3796,256,256,FALSE,FALSE,FALSE,4096,32,0,0,0,0,"1/8 page [txn]"
+46,"L",1,8,0,8,1,3797,3797,256,256,FALSE,FALSE,FALSE,4097,33,0,0,0,0,"1/8 page + 1 byte [txn]"
+47,"L",1,8,0,8,0,3924,3924,0,0,TRUE,FALSE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
+48,"L",1,8,1,9,0,3924,3924,0,0,TRUE,FALSE,FALSE,3968,31,32,1,0,0,"1/8 page incl deq [deq]"
+49,"L",1,8,0,8,1,3925,3925,0,0,TRUE,FALSE,FALSE,3969,32,32,1,0,0,"1/8 page incl deq + 1 byte [deq]"
+50,"L",1,8,0,8,0,3028,3028,256,256,TRUE,FALSE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
+51,"L",1,8,1,9,0,3028,3028,256,256,TRUE,FALSE,FALSE,3328,26,300,3,292,3,"1/8 page incl deq & txn [deq txn]"
+52,"L",1,8,0,8,1,3029,3029,256,256,TRUE,FALSE,FALSE,3329,27,300,3,292,3,"1/8 page incl deq & txn + 1 byte [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Page cache rollover (from page 32 back to page 0)",,,,,,,,,,,,,,,,,,,,
+53,"L",1,32,0,32,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+54,"L",1,32,1,33,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+55,"L",1,32,0,32,1,32725,32725,0,0,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
+56,"L",1.5,22,0,22,0,49108,49108,0,0,FALSE,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages"
+57,"L",1,32,0,32,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+58,"L",1,32,1,33,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+59,"L",1,32,0,32,1,32469,32469,256,256,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
+60,"L",1.5,22,0,22,0,48852,48852,256,256,FALSE,FALSE,FALSE,49152,384,0,0,0,0,"1.5 pages [txn]"
+61,"L",1,32,0,32,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+62,"L",1,32,1,33,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+63,"L",1,32,0,32,1,32597,32597,0,0,TRUE,FALSE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
+64,"L",1.5,22,0,22,0,48980,48980,0,0,TRUE,FALSE,FALSE,49024,383,32,1,0,0,"1.5 pages incl deq [deq]"
+65,"L",1,32,0,32,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+66,"L",1,32,1,33,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+67,"L",1,32,0,32,1,31701,31701,256,256,TRUE,FALSE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
+68,"L",1.5,22,0,22,0,48084,48084,256,256,TRUE,FALSE,FALSE,48384,378,300,3,292,3,"1.5 pages incl deq & txn [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"File transition (from file 0000 to 0001)",,,,,,,,,,,,,,,,,,,,
+69,"L",1,48,0,48,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+70,"L",1,48,1,49,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page"
+71,"L",1,48,0,48,1,32725,32725,0,0,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte"
+72,"L",2.5,20,0,20,0,81876,81876,0,0,FALSE,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages"
+73,"L",1,48,0,48,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+74,"L",1,48,1,49,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"1 page [txn]"
+75,"L",1,48,0,48,1,32469,32469,256,256,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"1 page + 1 byte [txn]"
+76,"L",2.5,20,0,20,0,81620,81620,256,256,FALSE,FALSE,FALSE,81920,640,0,0,0,0,"2.5 pages [txn]"
+77,"L",1,48,0,48,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+78,"L",1,48,1,49,0,32596,32596,0,0,TRUE,FALSE,FALSE,32640,255,32,1,0,0,"1 page incl deq [deq]"
+79,"L",1,48,0,48,1,32597,32597,0,0,TRUE,FALSE,FALSE,32641,256,32,1,0,0,"1 page incl deq + 1 byte [deq]"
+80,"L",2.5,20,0,20,0,81748,81748,0,0,TRUE,FALSE,FALSE,81792,639,32,1,0,0,"2.5 pages incl deq [deq]"
+81,"L",1,48,0,48,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+82,"L",1,48,1,49,0,31700,31700,256,256,TRUE,FALSE,FALSE,32000,250,300,3,292,3,"1 page incl deq & txn [deq txn]"
+83,"L",1,48,0,48,1,31701,31701,256,256,TRUE,FALSE,FALSE,32001,251,300,3,292,3,"1 page incl deq & txn + 1 byte [deq txn]"
+84,"L",2.5,20,0,20,0,80852,80852,256,256,TRUE,FALSE,FALSE,81152,634,300,3,292,3,"2.5 pages incl deq & txn [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"File rollover (from file 0007 to 0000) - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,,
+85,"L",0.5,16,0,16,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+86,"L",0.5,16,1,17,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+87,"L",0.5,16,0,16,1,786389,786389,0,0,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
+88,"L",0.5,16,0,16,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+89,"L",0.5,16,1,17,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+90,"L",0.5,16,0,16,1,786133,786133,256,256,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
+91,"L",0.25,32,0,32,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+92,"L",0.25,32,1,33,0,786388,786388,0,0,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file"
+93,"L",0.25,32,0,32,1,786389,786389,0,0,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte"
+94,"L",0.25,32,0,32,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+95,"L",0.25,32,1,33,0,786132,786132,256,256,FALSE,FALSE,FALSE,786432,6144,0,0,0,0,"24 pages = ½ file [txn]"
+96,"L",0.25,32,0,32,1,786133,786133,256,256,FALSE,FALSE,FALSE,786433,6145,0,0,0,0,"24 pages + 1 byte [txn]"
+97,"L",0.5,16,0,16,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+98,"L",0.5,16,1,17,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+99,"L",0.5,16,0,16,1,786261,786261,0,0,TRUE,FALSE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
+100,"L",0.5,16,0,16,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+101,"L",0.5,16,1,17,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+102,"L",0.5,16,0,16,1,785365,785365,256,256,TRUE,FALSE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
+103,"L",0.25,32,0,32,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+104,"L",0.25,32,1,33,0,786260,786260,0,0,TRUE,FALSE,FALSE,786304,6143,32,1,0,0,"24 pages incl deq = ½ file [deq]"
+105,"L",0.25,32,0,32,1,786261,786261,0,0,TRUE,FALSE,FALSE,786305,6144,32,1,0,0,"24 pages incl deq + 1 byte [deq]"
+106,"L",0.25,32,0,32,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+107,"L",0.25,32,1,33,0,785364,785364,256,256,TRUE,FALSE,FALSE,785664,6138,300,3,292,3,"24 pages incl deq & txn = ½ file [deq txn]"
+108,"L",0.25,32,0,32,1,785365,785365,256,256,TRUE,FALSE,FALSE,785665,6139,300,3,292,3,"24 pages incl deq & txn + 1 byte [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Multi-page messages (large messages) - tests various paths in encoder.",,,,,,,,,,,,,,,,,,,,
+109,"L",1,16,0,16,0,32724,32724,0,0,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page"
+110,"L",1,16,0,16,1,32725,32725,0,0,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary)"
+111,"L",1,16,0,16,11,32735,32735,0,0,FALSE,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary)"
+112,"L",1,16,0,16,12,32736,32736,0,0,FALSE,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page)"
+113,"L",1,16,0,16,13,32737,32737,0,0,FALSE,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary)"
+114,"L",1,16,0,16,0,32468,32468,256,256,FALSE,FALSE,FALSE,32768,256,0,0,0,0,"data 1 page [txn]"
+115,"L",1,16,0,16,1,32469,32469,256,256,FALSE,FALSE,FALSE,32769,257,0,0,0,0,"data 1 page + 1 byte (tail split; 1 byte over page boundary) [txn]"
+116,"L",1,16,0,16,11,32479,32479,256,256,FALSE,FALSE,FALSE,32779,257,0,0,0,0,"data 1 page + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+117,"L",1,16,0,16,12,32480,32480,256,256,FALSE,FALSE,FALSE,32780,257,0,0,0,0,"data 1 page + 12 bytes (tail separated exactly onto next page) [txn]"
+118,"L",1,16,0,16,13,32481,32481,256,256,FALSE,FALSE,FALSE,32781,257,0,0,0,0,"data 1 page + 13 bytes (data split; 1 byte over page boundary) [txn]"
+119,"L",2,16,0,16,0,65492,65492,0,0,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages"
+120,"L",2,16,0,16,1,65493,65493,0,0,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary)"
+121,"L",2,16,0,16,11,65503,65503,0,0,FALSE,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary)"
+122,"L",2,16,0,16,12,65504,65504,0,0,FALSE,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page)"
+123,"L",2,16,0,16,13,65505,65505,0,0,FALSE,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary)"
+124,"L",2,16,0,16,0,65236,65236,256,256,FALSE,FALSE,FALSE,65536,512,0,0,0,0,"data 2 pages [txn]"
+125,"L",2,16,0,16,1,65237,65237,256,256,FALSE,FALSE,FALSE,65537,513,0,0,0,0,"data 2 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
+126,"L",2,16,0,16,11,65247,65247,256,256,FALSE,FALSE,FALSE,65547,513,0,0,0,0,"data 2 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+127,"L",2,16,0,16,12,65248,65248,256,256,FALSE,FALSE,FALSE,65548,513,0,0,0,0,"data 2 pages + 12 bytes (tail separated exactly onto next page) [txn]"
+128,"L",2,16,0,16,13,65249,65249,256,256,FALSE,FALSE,FALSE,65549,513,0,0,0,0,"data 2 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
+129,"L",4,16,0,16,0,131028,131028,0,0,FALSE,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages"
+130,"L",4,16,0,16,1,131029,131029,0,0,FALSE,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary)"
+131,"L",4,16,0,16,11,131039,131039,0,0,FALSE,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary)"
+132,"L",4,16,0,16,12,131040,131040,0,0,FALSE,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page)"
+133,"L",4,16,0,16,13,131041,131041,0,0,FALSE,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary)"
+134,"L",4,16,0,16,0,130772,130772,256,256,FALSE,FALSE,FALSE,131072,1024,0,0,0,0,"data 4 pages [txn]"
+135,"L",4,16,0,16,1,130773,130773,256,256,FALSE,FALSE,FALSE,131073,1025,0,0,0,0,"data 4 pages + 1 byte (tail split; 1 byte over page boundary) [txn]"
+136,"L",4,16,0,16,11,130783,130783,256,256,FALSE,FALSE,FALSE,131083,1025,0,0,0,0,"data 4 pages + 11 bytes (tail split; 11 bytes over page boundary) [txn]"
+137,"L",4,16,0,16,12,130784,130784,256,256,FALSE,FALSE,FALSE,131084,1025,0,0,0,0,"data 4 pages + 12 bytes (tail separated exactly onto next page) [txn]"
+138,"L",4,16,0,16,13,130785,130785,256,256,FALSE,FALSE,FALSE,131085,1025,0,0,0,0,"data 4 pages + 13 bytes (data split; 1 byte over page boundary) [txn]"
+139,"L",3.5,16,0,16,0,114644,114644,0,0,FALSE,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages"
+140,"L",3.5,16,0,16,1,114645,114645,0,0,FALSE,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte"
+141,"L",3.5,16,0,16,0,114388,114388,256,256,FALSE,FALSE,FALSE,114688,896,0,0,0,0,"data 3.5 pages [txn]"
+142,"L",3.5,16,0,16,1,114389,114389,256,256,FALSE,FALSE,FALSE,114689,897,0,0,0,0,"data 3.5 pages + 1 byte [txn]"
+143,"L",1,16,0,16,-1,10,10,32735,32735,FALSE,FALSE,FALSE,32789,257,0,0,0,0,"xid 1 page – 1 byte; data 10 bytes (exact fit) [txn]"
+144,"L",1,16,0,16,0,10,10,32736,32736,FALSE,FALSE,FALSE,32790,257,0,0,0,0,"xid 1 page; data 10 bytes (exact fit) [txn]"
+145,"L",1,16,0,16,1,10,10,32737,32737,FALSE,FALSE,FALSE,32791,257,0,0,0,0,"xid 1 page + 1 byte; data 10 bytes (exact fit) [txn]"
+146,"L",2,16,0,16,-1,10,10,65503,65503,FALSE,FALSE,FALSE,65557,513,0,0,0,0,"xid 2 pages – 1 byte; data 10 bytes (exact fit) [txn]"
+147,"L",2,16,0,16,0,10,10,65504,65504,FALSE,FALSE,FALSE,65558,513,0,0,0,0,"xid 2 pages; data 10 bytes (exact fit) [txn]"
+148,"L",2,16,0,16,1,10,10,65505,65505,FALSE,FALSE,FALSE,65559,513,0,0,0,0,"xid 2 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+149,"L",4,16,0,16,-1,10,10,131039,131039,FALSE,FALSE,FALSE,131093,1025,0,0,0,0,"xid 4 pages – 1 byte; data 10 bytes (exact fit) [txn]"
+150,"L",4,16,0,16,0,10,10,131040,131040,FALSE,FALSE,FALSE,131094,1025,0,0,0,0,"xid 4 pages; data 10 bytes (exact fit) [txn]"
+151,"L",4,16,0,16,1,10,10,131041,131041,FALSE,FALSE,FALSE,131095,1025,0,0,0,0,"xid 4 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+152,"L",3.5,16,0,16,0,10,10,114656,114656,FALSE,FALSE,FALSE,114710,897,0,0,0,0,"xid 3.5 pages; data 10 bytes (exact fit) [txn]"
+153,"L",3.5,16,0,16,1,10,10,114657,114657,FALSE,FALSE,FALSE,114711,897,0,0,0,0,"xid 3.5 pages + 1 byte; data 10 bytes (exact fit) [txn]"
+154,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+155,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for enq rec; data 10 bytes (exact fit) [deq, txn]"
+156,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+157,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+158,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+159,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+160,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+161,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+162,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+163,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for enq rec; data 10 bytes (exact fit) [deq, txn]"
+164,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for enq rec; data 10 bytes (exact fit) [deq, txn]"
+165,"L",1,16,0,16,-1,10,10,32735,32735,TRUE,FALSE,FALSE,32789,257,32779,257,32771,257,"xid 1 page – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+166,"L",1,16,0,16,0,10,10,32736,32736,TRUE,FALSE,FALSE,32790,257,32780,257,32772,257,"xid 1 page for deq rec; data 10 bytes (exact fit) [deq, txn]"
+167,"L",1,16,0,16,1,10,10,32737,32737,TRUE,FALSE,FALSE,32791,257,32781,257,32773,257,"xid 1 page + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+168,"L",2,16,0,16,-1,10,10,65503,65503,TRUE,FALSE,FALSE,65557,513,65547,513,65539,513,"xid 2 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+169,"L",2,16,0,16,0,10,10,65504,65504,TRUE,FALSE,FALSE,65558,513,65548,513,65540,513,"xid 2 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+170,"L",2,16,0,16,1,10,10,65505,65505,TRUE,FALSE,FALSE,65559,513,65549,513,65541,513,"xid 2 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+171,"L",4,16,0,16,-1,10,10,131039,131039,TRUE,FALSE,FALSE,131093,1025,131083,1025,131075,1025,"xid 4 pages – 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+172,"L",4,16,0,16,0,10,10,131040,131040,TRUE,FALSE,FALSE,131094,1025,131084,1025,131076,1025,"xid 4 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+173,"L",4,16,0,16,1,10,10,131041,131041,TRUE,FALSE,FALSE,131095,1025,131085,1025,131077,1025,"xid 4 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+174,"L",3.5,16,0,16,0,10,10,114656,114656,TRUE,FALSE,FALSE,114710,897,114700,897,114692,897,"xid 3.5 pages for deq rec; data 10 bytes (exact fit) [deq, txn]"
+175,"L",3.5,16,0,16,1,10,10,114657,114657,TRUE,FALSE,FALSE,114711,897,114701,897,114693,897,"xid 3.5 pages + 1 byte for deq rec; data 10 bytes (exact fit) [deq, txn]"
+176,"L",1,16,0,16,-1,10,10,32743,32743,TRUE,FALSE,FALSE,32797,257,32787,257,32779,257,"xid 1 page – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+177,"L",1,16,0,16,0,10,10,32744,32744,TRUE,FALSE,FALSE,32798,257,32788,257,32780,257,"xid 1 page for txn rec; data 10 bytes (exact fit) [deq, txn]"
+178,"L",1,16,0,16,1,10,10,32745,32745,TRUE,FALSE,FALSE,32799,257,32789,257,32781,257,"xid 1 page + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+179,"L",2,16,0,16,-1,10,10,65511,65511,TRUE,FALSE,FALSE,65565,513,65555,513,65547,513,"xid 2 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+180,"L",2,16,0,16,0,10,10,65512,65512,TRUE,FALSE,FALSE,65566,513,65556,513,65548,513,"xid 2 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+181,"L",2,16,0,16,1,10,10,65513,65513,TRUE,FALSE,FALSE,65567,513,65557,513,65549,513,"xid 2 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+182,"L",4,16,0,16,-1,10,10,131047,131047,TRUE,FALSE,FALSE,131101,1025,131091,1025,131083,1025,"xid 4 pages – 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+183,"L",4,16,0,16,0,10,10,131048,131048,TRUE,FALSE,FALSE,131102,1025,131092,1025,131084,1025,"xid 4 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+184,"L",4,16,0,16,1,10,10,131049,131049,TRUE,FALSE,FALSE,131103,1025,131093,1025,131085,1025,"xid 4 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+185,"L",3.5,16,0,16,0,10,10,114664,114664,TRUE,FALSE,FALSE,114718,897,114708,897,114700,897,"xid 3.5 pages for txn rec; data 10 bytes (exact fit) [deq, txn]"
+186,"L",3.5,16,0,16,1,10,10,114665,114665,TRUE,FALSE,FALSE,114719,897,114709,897,114701,897,"xid 3.5 pages + 1 byte for txn rec; data 10 bytes (exact fit) [deq, txn]"
+,,,,,,,,,,,,,,,,,,,,
+"Large (multi-megabyte) messages - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,,
+187,"L",1,32,0,32,0,1572820,1572820,0,0,FALSE,FALSE,FALSE,1572864,12288,0,0,0,0,"48 pages = 1 file exactly"
+188,"L",1,32,0,32,1,1572821,1572821,0,0,FALSE,FALSE,FALSE,1572865,12289,0,0,0,0,"48 pages + 1 byte"
+189,"L",1,32,0,32,0,1605588,1605588,0,0,FALSE,FALSE,FALSE,1605632,12544,0,0,0,0,"49 pages = 1 file + 1 page"
+190,"L",1,32,0,32,1,1589205,1589205,0,0,FALSE,FALSE,FALSE,1589249,12417,0,0,0,0,"49 pages + 1 byte = 1 file + 1 page + 1 byte"
+191,"L",1,32,0,32,0,1572565,1572565,255,255,FALSE,FALSE,FALSE,1572864,12288,0,0,0,0,"48 pages = 1 file exactly [txn]"
+192,"L",1,32,0,32,1,1572566,1572566,255,255,FALSE,FALSE,FALSE,1572865,12289,0,0,0,0,"48 pages + 1 byte [txn]"
+193,"L",1,32,0,32,0,1588949,1588949,255,255,FALSE,FALSE,FALSE,1589248,12416,0,0,0,0,"49 pages = 1 file + 1 page [txn]"
+194,"L",1,32,0,32,1,1584854,1584854,255,255,FALSE,FALSE,FALSE,1585153,12385,0,0,0,0,"49 pages + 1 byte = 1 file + 1 page + 1 byte [txn]"
+195,"L",1,32,0,32,0,1572692,1572692,0,0,TRUE,FALSE,FALSE,1572736,12287,32,1,0,0,"48 pages incl deq = 1 file exactly [deq]"
+196,"L",1,32,0,32,1,1572693,1572693,0,0,TRUE,FALSE,FALSE,1572737,12288,32,1,0,0,"48 pages incl deq + 1 byte [deq]"
+197,"L",1,32,0,32,0,1595220,1595220,0,0,TRUE,FALSE,FALSE,1595264,12463,32,1,0,0,"49 pages incl deq = 1 file + 1 page [deq]"
+198,"L",1,32,0,32,1,1589077,1589077,0,0,TRUE,FALSE,FALSE,1589121,12416,32,1,0,0,"49 pages incl deq + 1 byte = 1 file + 1 page + 1 byte [deq]"
+199,"L",1,32,0,32,0,1571797,1571797,255,255,TRUE,FALSE,FALSE,1572096,12282,299,3,291,3,"48 pages incl deq & txn = 1 file exactly [deq txn]"
+200,"L",1,32,0,32,1,1571798,1571798,255,255,TRUE,FALSE,FALSE,1572097,12283,299,3,291,3,"48 pages incl deq & txn + 1 byte [deq txn]"
+201,"L",1,32,0,32,0,1571797,1571797,255,255,TRUE,FALSE,FALSE,1572096,12282,299,3,291,3,"49 pages incl deq & txn = 1 file + 1 page [deq txn]"
+202,"L",1,32,0,32,1,1571798,1571798,255,255,TRUE,FALSE,FALSE,1572097,12283,299,3,291,3,"49 pages incl deq & txn + 1 byte = 1 file + 1 page + 1 byte [deq txn]"
+203,"L",2,16,0,16,0,3145684,3145684,0,0,FALSE,FALSE,FALSE,3145728,24576,0,0,0,0,"96 pages = 2 files exactly"
+204,"L",2,16,0,16,1,3145685,3145685,0,0,FALSE,FALSE,FALSE,3145729,24577,0,0,0,0,"96 pages + 1 byte"
+205,"L",2,16,0,16,0,3146708,3146708,0,0,FALSE,FALSE,FALSE,3146752,24584,0,0,0,0,"97 pages = 2 files + 1 page"
+206,"L",2,16,0,16,1,3145685,3145685,0,0,FALSE,FALSE,FALSE,3145729,24577,0,0,0,0,"97 pages + 1 byte = 2 files + 1 page + 1 byte"
+207,"L",2,16,0,16,0,3145429,3145429,255,255,FALSE,FALSE,FALSE,3145728,24576,0,0,0,0,"96 pages = 2 files exactly [txn]"
+208,"L",2,16,0,16,1,3145430,3145430,255,255,FALSE,FALSE,FALSE,3145729,24577,0,0,0,0,"96 pages + 1 byte [txn]"
+209,"L",2,16,0,16,0,3145429,3145429,255,255,FALSE,FALSE,FALSE,3145728,24576,0,0,0,0,"97 pages = 2 files + 1 page [txn]"
+210,"L",2,16,0,16,1,3145430,3145430,255,255,FALSE,FALSE,FALSE,3145729,24577,0,0,0,0,"97 pages + 1 byte = 2 files + 1 page + 1 byte [txn]"
+211,"L",2,16,0,16,0,3145556,3145556,0,0,TRUE,FALSE,FALSE,3145600,24575,32,1,0,0,"96 pages incl deq = 2 files exactly [deq]"
+212,"L",2,16,0,16,1,3145557,3145557,0,0,TRUE,FALSE,FALSE,3145601,24576,32,1,0,0,"96 pages incl deq + 1 byte [deq]"
+213,"L",2,16,0,16,0,3145556,3145556,0,0,TRUE,FALSE,FALSE,3145600,24575,32,1,0,0,"97 pages incl deq = 2 files + 1 page [deq]"
+214,"L",2,16,0,16,1,3145557,3145557,0,0,TRUE,FALSE,FALSE,3145601,24576,32,1,0,0,"97 pages incl deq + 1 byte = 2 files + 1 page + 1 byte [deq]"
+215,"L",2,16,0,16,0,3144661,3144661,255,255,TRUE,FALSE,FALSE,3144960,24570,299,3,291,3,"96 pages incl deq & txn = 2 files exactly [deq txn]"
+216,"L",2,16,0,16,1,3144662,3144662,255,255,TRUE,FALSE,FALSE,3144961,24571,299,3,291,3,"96 pages incl deq & txn + 1 byte [deq txn]"
+217,"L",2,16,0,16,0,3144661,3144661,255,255,TRUE,FALSE,FALSE,3144960,24570,299,3,291,3,"97 pages incl deq & txn = 2 files + 1 page [deq txn]"
+218,"L",2,16,0,16,1,3144662,3144662,255,255,TRUE,FALSE,FALSE,3144961,24571,299,3,291,3,"97 pages incl deq & txn + 1 byte = 2 files + 1 page + 1 byte [deq txn]"
+219,"L",4,8,0,8,0,6291412,6291412,0,0,FALSE,FALSE,FALSE,6291456,49152,0,0,0,0,"192 pages = 2 files exactly"
+220,"L",4,8,0,8,1,6291413,6291413,0,0,FALSE,FALSE,FALSE,6291457,49153,0,0,0,0,"192 pages + 1 byte"
+221,"L",4,8,0,8,0,6291412,6291412,0,0,FALSE,FALSE,FALSE,6291456,49152,0,0,0,0,"193 pages = 2 files + 1 page"
+222,"L",4,8,0,8,1,6291413,6291413,0,0,FALSE,FALSE,FALSE,6291457,49153,0,0,0,0,"193 pages + 1 byte = 2 files + 1 page + 1 byte"
+223,"L",4,8,0,8,0,6291157,6291157,255,255,FALSE,FALSE,FALSE,6291456,49152,0,0,0,0,"192 pages = 2 files exactly [txn]"
+224,"L",4,8,0,8,1,6291158,6291158,255,255,FALSE,FALSE,FALSE,6291457,49153,0,0,0,0,"192 pages + 1 byte [txn]"
+225,"L",4,8,0,8,0,6291157,6291157,255,255,FALSE,FALSE,FALSE,6291456,49152,0,0,0,0,"193 pages = 2 files + 1 page [txn]"
+226,"L",4,8,0,8,1,6291158,6291158,255,255,FALSE,FALSE,FALSE,6291457,49153,0,0,0,0,"193 pages + 1 byte = 2 files + 1 page + 1 byte [txn]"
+227,"L",4,8,0,8,0,6291284,6291284,0,0,TRUE,FALSE,FALSE,6291328,49151,32,1,0,0,"192 pages incl deq = 2 files exactly [deq]"
+228,"L",4,8,0,8,1,6291285,6291285,0,0,TRUE,FALSE,FALSE,6291329,49152,32,1,0,0,"192 pages incl deq + 1 byte [deq]"
+229,"L",4,8,0,8,0,6291284,6291284,0,0,TRUE,FALSE,FALSE,6291328,49151,32,1,0,0,"193 pages incl deq = 2 files + 1 page [deq]"
+230,"L",4,8,0,8,1,6291285,6291285,0,0,TRUE,FALSE,FALSE,6291329,49152,32,1,0,0,"193 pages incl deq + 1 byte = 2 files + 1 page + 1 byte [deq]"
+231,"L",4,8,0,8,0,6290389,6290389,255,255,TRUE,FALSE,FALSE,6290688,49146,299,3,291,3,"192 pages incl deq & txn = 2 files exactly [deq txn]"
+232,"L",4,8,0,8,1,6290390,6290390,255,255,TRUE,FALSE,FALSE,6290689,49147,299,3,291,3,"192 pages incl deq & txn + 1 byte [deq txn]"
+233,"L",4,8,0,8,0,6290389,6290389,255,255,TRUE,FALSE,FALSE,6290688,49146,299,3,291,3,"193 pages incl deq & txn = 2 files + 1 page [deq txn]"
+234,"L",4,8,0,8,1,6290390,6290390,255,255,TRUE,FALSE,FALSE,6290689,49147,299,3,291,3,"193 pages incl deq & txn + 1 byte = 2 files + 1 page + 1 byte [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"High volume tests of random message lengths - RHM_WRONLY req'd for auto-dequeue == FALSE",,,,,,,,,,,,,,,,,,,,
+235,"M",1,5000000,0,5000000,0,0,84,0,0,FALSE,FALSE,FALSE,128,1,0,0,0,0,"1 dblk max"
+236,"M",3,3000000,0,3000000,0,0,340,0,0,FALSE,FALSE,FALSE,384,3,0,0,0,0,"3 dblks max"
+237,"M",10,1600000,0,1600000,0,0,1236,0,0,FALSE,FALSE,FALSE,1280,10,0,0,0,0,"10 dblks max"
+238,"M",30,600000,0,600000,0,0,3796,0,0,FALSE,FALSE,FALSE,3840,30,0,0,0,0,"30 dblks max"
+239,"M",100,200000,0,200000,0,0,12756,0,0,FALSE,FALSE,FALSE,12800,100,0,0,0,0,"100 dblks max"
+240,"M",300,60000,0,60000,0,0,38356,0,0,FALSE,FALSE,FALSE,38400,300,0,0,0,0,"300 dblks max"
+241,"M",1000,20000,0,20000,0,0,127956,0,0,FALSE,FALSE,FALSE,128000,1000,0,0,0,0,"1000 dblks max"
+242,"M",1,5000000,0,5000000,0,0,100,1,100,FALSE,FALSE,FALSE,244,2,0,0,0,0,"100 bytes xid max + 100 bytes data max [txn]"
+243,"M",3,3000000,0,3000000,0,0,300,1,300,FALSE,FALSE,FALSE,644,6,0,0,0,0,"300 bytes xid max + 300 bytes data max [txn]"
+244,"M",10,1600000,0,1600000,0,0,1000,1,1000,FALSE,FALSE,FALSE,2044,16,0,0,0,0,"1000 bytes xid max + 1000 bytes data max [txn]"
+245,"M",30,600000,0,600000,0,0,3000,1,3000,FALSE,FALSE,FALSE,6044,48,0,0,0,0,"3000 bytes xid max + 3000 bytes data max [txn]"
+246,"M",100,200000,0,200000,0,0,10000,1,10000,FALSE,FALSE,FALSE,20044,157,0,0,0,0,"10000 bytes xid max + 10000 bytes data max [txn]"
+247,"M",300,60000,0,60000,0,0,30000,1,30000,FALSE,FALSE,FALSE,60044,470,0,0,0,0,"30000 bytes xid max + 30000 bytes data max [txn]"
+248,"M",1000,20000,0,20000,0,0,100000,1,100000,FALSE,FALSE,FALSE,200044,1563,0,0,0,0,"100000 bytes xid max + 100000 bytes data max [txn]"
+249,"M",1,5000000,0,5000000,0,0,84,0,0,TRUE,FALSE,FALSE,128,1,32,1,0,0,"1 dblk max [deq]"
+250,"M",3,3000000,0,3000000,0,0,340,0,0,TRUE,FALSE,FALSE,384,3,32,1,0,0,"3 dblks max [deq]"
+251,"M",10,1600000,0,1600000,0,0,1236,0,0,TRUE,FALSE,FALSE,1280,10,32,1,0,0,"10 dblks max [deq]"
+252,"M",30,600000,0,600000,0,0,3796,0,0,TRUE,FALSE,FALSE,3840,30,32,1,0,0,"30 dblks max [deq]"
+253,"M",100,200000,0,200000,0,0,12756,0,0,TRUE,FALSE,FALSE,12800,100,32,1,0,0,"100 dblks max [deq]"
+254,"M",300,60000,0,60000,0,0,38356,0,0,TRUE,FALSE,FALSE,38400,300,32,1,0,0,"300 dblks max [deq]"
+255,"M",1000,20000,0,20000,0,0,127956,0,0,TRUE,FALSE,FALSE,128000,1000,32,1,0,0,"1000 dblks max [deq]"
+256,"M",1,5000000,0,5000000,0,0,100,1,100,TRUE,FALSE,FALSE,244,2,144,2,136,2,"100 bytes xid max + 100 bytes data max [deq txn]"
+257,"M",3,3000000,0,3000000,0,0,300,1,300,TRUE,FALSE,FALSE,644,6,344,3,336,3,"300 bytes xid max + 300 bytes data max [deq txn]"
+258,"M",10,1600000,0,1600000,0,0,1000,1,1000,TRUE,FALSE,FALSE,2044,16,1044,9,1036,9,"1000 bytes xid max + 1000 bytes data max [deq txn]"
+259,"M",30,600000,0,600000,0,0,3000,1,3000,TRUE,FALSE,FALSE,6044,48,3044,24,3036,24,"3000 bytes xid max + 3000 bytes data max [deq txn]"
+260,"M",100,200000,0,200000,0,0,10000,1,10000,TRUE,FALSE,FALSE,20044,157,10044,79,10036,79,"10000 bytes xid max + 10000 bytes data max [deq txn]"
+261,"M",300,60000,0,60000,0,0,30000,1,30000,TRUE,FALSE,FALSE,60044,470,30044,235,30036,235,"30000 bytes xid max + 30000 bytes data max [deq txn]"
+262,"M",1000,20000,0,20000,0,0,100000,1,100000,TRUE,FALSE,FALSE,200044,1563,100044,782,100036,782,"100000 bytes xid max + 100000 bytes data max [deq txn]"
+,,,,,,,,,,,,,,,,,,,,
+"STANDARD PERFORMANCE BENCHMARK: 10,000,000 writes, data=212b (2 dblks)",,,,,,,,,,,,,,,,,,,,
+263,"M",1,10000000,0,10000000,0,212,212,0,0,FALSE,FALSE,FALSE,256,2,0,0,0,0,"212 bytes data (2 dblks enq)"
+264,"M",1,10000000,0,10000000,0,404,404,64,64,FALSE,FALSE,FALSE,512,4,0,0,0,0,"212 bytes data + 64 bytes xid (3 dblks enq)"
+265,"M",1,10000000,0,10000000,0,212,212,0,0,TRUE,FALSE,FALSE,256,2,32,1,0,0,"212 bytes data (2 dblks enq + 1 dblk deq)"
+266,"M",1,10000000,0,10000000,0,404,404,64,64,TRUE,FALSE,FALSE,512,4,108,1,100,1,"212 bytes data + 64 bytes xid (3 dblks enq + 1 dblks deq + 1 dblks txn)"
17 years, 1 month
rhmessaging commits: r1256 - mgmt/cumin/python/wooly.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 14:49:07 -0500 (Tue, 06 Nov 2007)
New Revision: 1256
Modified:
mgmt/cumin/python/wooly/__init__.py
Log:
Removes an unused field.
Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py 2007-11-06 19:33:34 UTC (rev 1255)
+++ mgmt/cumin/python/wooly/__init__.py 2007-11-06 19:49:07 UTC (rev 1256)
@@ -433,7 +433,6 @@
self.page = None
self.values = dict()
self.errors = dict() # widget => list of str
- self.saved_parameters = list()
if self.app.debug:
self.debug = self.Debug(self)
17 years, 1 month
rhmessaging commits: r1255 - in mgmt: cumin/python/wooly and 1 other directories.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 14:33:34 -0500 (Tue, 06 Nov 2007)
New Revision: 1255
Modified:
mgmt/cumin/python/cumin/broker.py
mgmt/cumin/python/cumin/brokergroup.py
mgmt/cumin/python/cumin/exchange.py
mgmt/cumin/python/cumin/queue.py
mgmt/cumin/python/wooly/__init__.py
mgmt/cumin/python/wooly/server.py
mgmt/notes/justin-todo.txt
Log:
Adds a page attribute for redirects, instead of having a field
directly on session.
Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/cumin/python/cumin/broker.py 2007-11-06 19:33:34 UTC (rev 1255)
@@ -84,7 +84,7 @@
for broker in self.brokers.get(session):
print "broker", broker
- session.set_redirect(session.marshal())
+ self.page().set_redirect_url(session, session.marshal())
def render_item_checkbox_name(self, session, broker):
return self.brokers.path()
@@ -189,7 +189,7 @@
def process_cancel(self, session, prop):
branch = session.branch()
self.page().show_broker(branch, prop.get_broker()).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, prop):
source = self.source.get(session)
@@ -513,7 +513,7 @@
def process_cancel(self, session, model):
branch = session.branch()
self.page().show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, model):
names = self.names.get(session)
Modified: mgmt/cumin/python/cumin/brokergroup.py
===================================================================
--- mgmt/cumin/python/cumin/brokergroup.py 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/cumin/python/cumin/brokergroup.py 2007-11-06 19:33:34 UTC (rev 1255)
@@ -114,13 +114,13 @@
branch = session.branch()
self.page().show_broker_group(branch, group).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
class BrokerGroupAdd(BrokerGroupForm, Frame):
def process_cancel(self, session, model):
branch = session.branch()
self.page().show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, model):
group = BrokerGroup(model)
@@ -133,7 +133,7 @@
def process_cancel(self, session, group):
branch = session.branch()
self.parent.show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, group):
self.process_group(session, group)
Modified: mgmt/cumin/python/cumin/exchange.py
===================================================================
--- mgmt/cumin/python/cumin/exchange.py 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/cumin/python/cumin/exchange.py 2007-11-06 19:33:34 UTC (rev 1255)
@@ -238,7 +238,7 @@
def process_cancel(self, session, vhost):
branch = session.branch()
self.page().show_broker(branch, vhost.get_broker()).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, vhost):
if self.validate(session):
@@ -255,7 +255,7 @@
branch = session.branch()
self.page().show_exchange(branch, exchange).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def render_title(self, session, vhost):
return "Add Exchange to Host Template '%s'" % vhost.name
@@ -264,7 +264,7 @@
def process_cancel(self, session, exchange):
branch = session.branch()
self.page().show_exchange(branch, exchange).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, exchange):
if self.validate(session):
@@ -275,9 +275,7 @@
finally:
exchange.unlock()
- branch = session.branch()
- self.page().show_exchange(branch, exchange).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.process_cancel(session, exchange)
def process_display(self, session, exchange):
self.exchange_name.set(session, exchange.name)
@@ -287,6 +285,11 @@
return "Edit Exchange '%s'" % exchange.name
class ExchangeRemove(CuminConfirmForm):
+ def process_cancel(self, session, exchange):
+ branch = session.branch()
+ self.page().show_exchange(branch, exchange).show_view(branch)
+ session.set_redirect(branch.marshal())
+
def process_submit(self, session, exchange):
vhost = exchange.get_virtual_host()
@@ -294,13 +297,8 @@
branch = session.branch()
self.page().show_broker(branch, vhost.get_broker()).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
- def process_cancel(self, session, exchange):
- branch = session.branch()
- self.page().show_exchange(branch, exchange).show_view(branch)
- session.set_redirect(branch.marshal())
-
def render_title(self, session, exchange):
return "Remove Exchange '%s'" % exchange.name
Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/cumin/python/cumin/queue.py 2007-11-06 19:33:34 UTC (rev 1255)
@@ -260,7 +260,7 @@
def process_cancel(self, session, vhost):
branch = session.branch()
self.page().show_broker(branch, vhost.get_broker()).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, vhost):
if self.validate(session):
@@ -277,7 +277,7 @@
branch = session.branch()
self.page().show_queue(branch, queue).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def render_title(self, session, vhost):
return "Add Queue to Host Template '%s'" % vhost.name
@@ -286,7 +286,7 @@
def process_cancel(self, session, queue):
branch = session.branch()
self.page().show_queue(branch, queue).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def process_submit(self, session, queue):
if self.validate(session):
@@ -299,7 +299,7 @@
branch = session.branch()
self.page().show_queue(branch, queue).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.process_cancel(session, queue)
def process_display(self, session, queue):
self.queue_name.set(session, queue.name)
@@ -309,6 +309,11 @@
return "Edit Queue '%s'" % queue.name
class QueueRemove(CuminConfirmForm):
+ def process_cancel(self, session, queue):
+ branch = session.branch()
+ self.page().show_queue(branch, queue).show_view(branch)
+ self.page().set_redirect_url(session, branch.marshal())
+
def process_submit(self, session, queue):
vhost = queue.get_virtual_host()
@@ -316,13 +321,8 @@
branch = session.branch()
self.page().show_broker(branch, vhost.get_broker()).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
- def process_cancel(self, session, queue):
- branch = session.branch()
- self.page().show_queue(branch, queue).show_view(branch)
- session.set_redirect(branch.marshal())
-
def render_title(self, session, queue):
return "Remove Queue '%s'" % queue.name
@@ -348,7 +348,7 @@
def process_cancel(self, session, queue):
branch = session.branch()
self.page().show_queue(branch, queue).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
def validate(self, session):
valid = True
@@ -379,25 +379,23 @@
finally:
binding.unlock()
- branch = session.branch()
- self.page().show_queue(branch, queue).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.process_cancel(session, queue)
class Exchanges(ExchangeInputSet):
def get_items(self, session, queue):
return sorted_by(queue.virtual_host.exchange_items())
class QueueBindingRemove(CuminConfirmForm):
- def process_submit(self, session, binding):
- branch = session.branch()
- self.page().show_queue(branch, binding.get_queue()).show_view(branch)
- session.set_redirect(branch.marshal())
-
def process_cancel(self, session, binding):
branch = session.branch()
self.page().show_queue(branch, binding.get_queue()).show_view(branch)
- session.set_redirect(branch.marshal())
+ self.page().set_redirect_url(session, branch.marshal())
+ def process_submit(self, session, binding):
+ print binding
+
+ self.process_cancel(session, binding)
+
def render_title(self, session, binding):
return "Remove Binding"
Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/cumin/python/wooly/__init__.py 2007-11-06 19:33:34 UTC (rev 1255)
@@ -268,6 +268,9 @@
def __init__(self, app, name):
super(Page, self).__init__(app, name)
+ self.redirect = Attribute(app, "redirect")
+ self.add_attribute(self.redirect)
+
self.frame = self.FrameParameter(app, "frame")
self.add_parameter(self.frame)
self.set_default_frame(self)
@@ -283,6 +286,14 @@
def save_session(self, session):
pass
+ def set_redirect_url(self, session, url):
+ self.redirect.set(session, url)
+
+ return url
+
+ def get_redirect_url(self, session):
+ return self.redirect.get(session)
+
def set_current_frame(self, session, frame):
self.frame.set(session, frame)
@@ -422,7 +433,6 @@
self.page = None
self.values = dict()
self.errors = dict() # widget => list of str
- self.redirect = None
self.saved_parameters = list()
if self.app.debug:
@@ -493,9 +503,6 @@
errors.append(error)
- def set_redirect(self, redirect):
- self.redirect = redirect
-
def marshal(self):
page = self.marshal_page()
vars = self.marshal_url_vars()
Modified: mgmt/cumin/python/wooly/server.py
===================================================================
--- mgmt/cumin/python/wooly/server.py 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/cumin/python/wooly/server.py 2007-11-06 19:33:34 UTC (rev 1255)
@@ -58,9 +58,11 @@
self.error(session)
return
- if session.redirect:
+ redirect = page.get_redirect_url(session)
+
+ if redirect:
self.send_response(303)
- self.send_header("Location", session.redirect)
+ self.send_header("Location", redirect)
self.end_headers()
return
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2007-11-06 19:08:39 UTC (rev 1254)
+++ mgmt/notes/justin-todo.txt 2007-11-06 19:33:34 UTC (rev 1255)
@@ -2,7 +2,7 @@
* Add ability to send a test message to a queue
- * Use page attributes for session errors, redirect
+ * Use page attributes for session errors
* Queue: Add a msg enq rate msg deq rate chart
17 years, 1 month
rhmessaging commits: r1254 - mgmt/cumin/python/wooly.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 14:08:39 -0500 (Tue, 06 Nov 2007)
New Revision: 1254
Modified:
mgmt/cumin/python/wooly/__init__.py
Log:
Adds a comment to page to explain how session state is preserved or
discarded.
Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py 2007-11-06 18:58:52 UTC (rev 1253)
+++ mgmt/cumin/python/wooly/__init__.py 2007-11-06 19:08:39 UTC (rev 1254)
@@ -295,6 +295,16 @@
self.frame.set_default(frame)
def get_saved_parameters(self, session):
+ """
+ Gets a list of parameters saved for this page and its current
+ frame.
+
+ This, combined with *_current_frame, serves to discard state
+ that is out of scope. The current pattern is to preserve the
+ state of parameters in the current frame and all of its
+ ancestor frames.
+ """
+
frame = self.get_current_frame(session)
if frame not in self.cached_parameters:
17 years, 1 month
rhmessaging commits: r1253 - in mgmt: notes and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 13:58:52 -0500 (Tue, 06 Nov 2007)
New Revision: 1253
Modified:
mgmt/cumin/python/cumin/__init__.py
mgmt/notes/justin-todo.txt
Log:
Removes old, unused pages.
Modified: mgmt/cumin/python/cumin/__init__.py
===================================================================
--- mgmt/cumin/python/cumin/__init__.py 2007-11-06 18:56:24 UTC (rev 1252)
+++ mgmt/cumin/python/cumin/__init__.py 2007-11-06 18:58:52 UTC (rev 1253)
@@ -32,44 +32,12 @@
self.add_page(CssPage(self, "cumin.css"))
self.add_page(ResourcePage(self, "resource"))
- self.add_page(CountPage(self, "count"))
- self.add_page(RandomIntegerPage(self, "randint"))
self.add_page(DevelPage(self, "devel.html"))
self.add_page(QueueXmlPage(self, "queue.xml"))
self.add_page(QueueChartPage(self, "queue.png"))
self.add_page(ExchangeChartPage(self, "exchange.png"))
self.add_page(ClientChartPage(self, "client.png"))
-class RandomIntegerPage(Page):
- def __init__(self, app, name):
- super(RandomIntegerPage, self).__init__(app, name)
-
- self.min = IntegerParameter(app, "min");
- self.add_parameter(self.min);
-
- self.max = IntegerParameter(app, "max");
- self.add_parameter(self.max);
-
- def get_content_type(self, session):
- return Page.xml_content_type
-
- def do_render(self, session, object):
- int = randint(self.min.get(session), self.max.get(session))
- return "%s<integer>%i</integer>" % (Page.xml_1_0_declaration, int)
-
-class CountPage(Page):
- def __init__(self, app, name):
- super(CountPage, self).__init__(app, name)
-
- self.count = 0
-
- def get_content_type(self, session):
- return Page.xml_content_type
-
- def do_render(self, session, object):
- self.count += 1
- return "<count>%i</count>" % self.count
-
class CuminServer(WebServer):
def __init__(self, port=9090):
model = CuminModel()
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2007-11-06 18:56:24 UTC (rev 1252)
+++ mgmt/notes/justin-todo.txt 2007-11-06 18:58:52 UTC (rev 1253)
@@ -15,8 +15,6 @@
in the render_title calls. Perhaps introduce a get_title to solve
this.
- * Remove the extra pages we no longer use
-
Deferred
* Make the status lights also be links to an appropriate view
17 years, 1 month
rhmessaging commits: r1252 - in mgmt: notes and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 13:56:24 -0500 (Tue, 06 Nov 2007)
New Revision: 1252
Modified:
mgmt/cumin/python/cumin/__init__.py
mgmt/cumin/python/cumin/client.py
mgmt/cumin/python/cumin/client.strings
mgmt/notes/justin-todo.txt
Log:
Adds charts for clients.
Modified: mgmt/cumin/python/cumin/__init__.py
===================================================================
--- mgmt/cumin/python/cumin/__init__.py 2007-11-06 18:38:06 UTC (rev 1251)
+++ mgmt/cumin/python/cumin/__init__.py 2007-11-06 18:56:24 UTC (rev 1252)
@@ -12,6 +12,7 @@
from page import CuminPage
from queue import QueueXmlPage, QueueChartPage
from exchange import ExchangeChartPage
+from client import ClientChartPage
class Cumin(Application):
def __init__(self, model):
@@ -37,6 +38,7 @@
self.add_page(QueueXmlPage(self, "queue.xml"))
self.add_page(QueueChartPage(self, "queue.png"))
self.add_page(ExchangeChartPage(self, "exchange.png"))
+ self.add_page(ClientChartPage(self, "client.png"))
class RandomIntegerPage(Page):
def __init__(self, app, name):
Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py 2007-11-06 18:38:06 UTC (rev 1251)
+++ mgmt/cumin/python/cumin/client.py 2007-11-06 18:56:24 UTC (rev 1252)
@@ -125,6 +125,14 @@
def render_title(self, session, client):
return "History"
+ def render_produced_chart_url(self, session, client):
+ return "client.png?id=%i;m=msgsProduced;m=bytesProduced" \
+ % client.id
+
+ def render_consumed_chart_url(self, session, client):
+ return "client.png?id=%i;m=msgsConsumed;m=bytesConsumed" \
+ % client.id
+
class ClientSessionSet(ItemSet):
def render_title(self, session, client):
return "Sessions (%i)" % len(client.session_items())
@@ -148,3 +156,11 @@
def render_item_status(self, session, session_):
return fmt_status(len(session_.errors), len(session_.warnings))
+
+class ClientChartPage(CuminChartPage):
+ def __init__(self, app, name):
+ super(ClientChartPage, self).__init__(app, name)
+
+ self.client = ClientParameter(app, "id")
+ self.add_parameter(self.client)
+ self.set_object_parameter(self.client)
Modified: mgmt/cumin/python/cumin/client.strings
===================================================================
--- mgmt/cumin/python/cumin/client.strings 2007-11-06 18:38:06 UTC (rev 1251)
+++ mgmt/cumin/python/cumin/client.strings 2007-11-06 18:56:24 UTC (rev 1252)
@@ -69,6 +69,17 @@
</tr>
</table>
+[StatisticsHistory.html]
+<h2>Produced</h2>
+<div class="iblock chart">
+ <img src="{produced_chart_url}"/>
+</div>
+
+<h2>Consumed</h2>
+<div class="iblock chart">
+ <img src="{consumed_chart_url}"/>
+</div>
+
[ClientSessionSet.html]
<div class="sactions">
<h2>Act on Selected Sessions:</h2>
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2007-11-06 18:38:06 UTC (rev 1251)
+++ mgmt/notes/justin-todo.txt 2007-11-06 18:56:24 UTC (rev 1252)
@@ -15,7 +15,7 @@
in the render_title calls. Perhaps introduce a get_title to solve
this.
- * Add charts for clients
+ * Remove the extra pages we no longer use
Deferred
17 years, 1 month
rhmessaging commits: r1251 - in mgmt: notes and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 13:38:06 -0500 (Tue, 06 Nov 2007)
New Revision: 1251
Modified:
mgmt/cumin/python/cumin/exchange.py
mgmt/cumin/python/cumin/exchange.strings
mgmt/cumin/python/cumin/queue.py
mgmt/cumin/python/cumin/queue.strings
mgmt/notes/justin-todo.txt
Log:
Adds rates to the lists of consumers, producers, and bindings.
Modified: mgmt/cumin/python/cumin/exchange.py
===================================================================
--- mgmt/cumin/python/cumin/exchange.py 2007-11-06 18:23:41 UTC (rev 1250)
+++ mgmt/cumin/python/cumin/exchange.py 2007-11-06 18:38:06 UTC (rev 1251)
@@ -185,6 +185,10 @@
def render_item_messages_matched(self, session, binding):
return binding.get_measurement("msgMatched").get_value()
+ def render_item_messages_matched_rate(self, session, binding):
+ value = binding.get_measurement("msgMatched").get_rate()
+ return fmt_rate(value, "msg", "sec")
+
class ExchangeForm(CuminForm):
def __init__(self, app, name):
super(ExchangeForm, self).__init__(app, name)
@@ -352,9 +356,17 @@
def render_item_messages_produced(self, session, producer):
return producer.get_measurement("msgsProduced").get_value()
+ def render_item_messages_produced_rate(self, session, producer):
+ value = producer.get_measurement("msgsProduced").get_rate()
+ return fmt_rate(value, "msg", "sec")
+
def render_item_bytes_produced(self, session, producer):
return producer.get_measurement("bytesProduced").get_value()
+ def render_item_bytes_produced_rate(self, session, producer):
+ value = producer.get_measurement("bytesProduced").get_rate()
+ return fmt_rate(value, "byte", "sec")
+
class ExchangeChartPage(CuminChartPage):
def __init__(self, app, name):
super(ExchangeChartPage, self).__init__(app, name)
Modified: mgmt/cumin/python/cumin/exchange.strings
===================================================================
--- mgmt/cumin/python/cumin/exchange.strings 2007-11-06 18:23:41 UTC (rev 1250)
+++ mgmt/cumin/python/cumin/exchange.strings 2007-11-06 18:38:06 UTC (rev 1251)
@@ -102,7 +102,7 @@
<tr>
<th>Queue</th>
<th>Key</th>
- <th class="ralign">Messages Matched</th>
+ <th class="ralign" colspan="2">Messages Matched</th>
</tr>
{items}
@@ -112,6 +112,7 @@
<tr>
<td><a href="{item_href}">Queue '{item_name}'</a></td>
<td>{item_binding_key}</td>
+ <td class="ralign">{item_messages_matched_rate}</td>
<td class="ralign">{item_messages_matched}</td>
</tr>
@@ -159,8 +160,8 @@
<tr>
<th><input type="checkbox"/></th>
<th>Name</th>
- <th class="ralign">Msgs. Produced</th>
- <th class="ralign">Bytes Produced</th>
+ <th class="ralign" colspan="2">Msgs. Produced</th>
+ <th class="ralign" colspan="2">Bytes Produced</th>
</tr>
{items}
@@ -170,6 +171,8 @@
<tr>
<td><input type="checkbox"/></td>
<td>{item_name}</td>
+ <td class="ralign">{item_messages_produced_rate}</td>
<td class="ralign">{item_messages_produced}</td>
+ <td class="ralign">{item_bytes_produced_rate}</td>
<td class="ralign">{item_bytes_produced}</td>
</tr>
Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py 2007-11-06 18:23:41 UTC (rev 1250)
+++ mgmt/cumin/python/cumin/queue.py 2007-11-06 18:38:06 UTC (rev 1251)
@@ -207,6 +207,10 @@
def render_item_messages_matched(self, session, binding):
return binding.get_measurement("msgMatched").get_value()
+ def render_item_messages_matched_rate(self, session, binding):
+ value = binding.get_measurement("msgMatched").get_rate()
+ return fmt_rate(value, "msg", "sec")
+
class QueueForm(CuminForm):
def __init__(self, app, name):
super(QueueForm, self).__init__(app, name)
@@ -457,9 +461,17 @@
def render_item_messages_consumed(self, session, consumer):
return consumer.get_measurement("msgsConsumed").get_value()
+ def render_item_messages_consumed_rate(self, session, consumer):
+ value = consumer.get_measurement("msgsConsumed").get_rate()
+ return fmt_rate(value, "msg", "sec")
+
def render_item_bytes_consumed(self, session, consumer):
return consumer.get_measurement("bytesConsumed").get_value()
+ def render_item_bytes_consumed_rate(self, session, consumer):
+ value = consumer.get_measurement("bytesConsumed").get_rate()
+ return fmt_rate(value, "byte", "sec")
+
def render_item_unacked_messages(self, session, consumer):
return consumer.get_measurement("unackedMessages").get_value()
Modified: mgmt/cumin/python/cumin/queue.strings
===================================================================
--- mgmt/cumin/python/cumin/queue.strings 2007-11-06 18:23:41 UTC (rev 1250)
+++ mgmt/cumin/python/cumin/queue.strings 2007-11-06 18:38:06 UTC (rev 1251)
@@ -177,7 +177,7 @@
<tr>
<th>Exchange</th>
<th>Key</th>
- <th class="ralign">Messages Matched</th>
+ <th class="ralign" colspan="2">Messages Matched</th>
</tr>
{items}
@@ -187,6 +187,7 @@
<tr>
<td><a href="{item_href}">Exchange '{item_name}'</a></td>
<td>{item_binding_key}</td>
+ <td class="ralign">{item_messages_matched_rate}</td>
<td class="ralign">{item_messages_matched}</td>
</tr>
@@ -271,8 +272,8 @@
<tr>
<th><input type="checkbox"/></th>
<th>Name</th>
- <th class="ralign">Msgs. Consumed</th>
- <th class="ralign">Bytes Consumed</th>
+ <th class="ralign" colspan="2">Msgs. Consumed</th>
+ <th class="ralign" colspan="2">Bytes Consumed</th>
<th class="ralign">Msgs. Unacked</th>
</tr>
@@ -283,7 +284,9 @@
<tr>
<td><input type="checkbox"/></td>
<td>{item_name}</td>
+ <td class="ralign">{item_messages_consumed_rate}</td>
<td class="ralign">{item_messages_consumed}</td>
+ <td class="ralign">{item_bytes_consumed_rate}</td>
<td class="ralign">{item_bytes_consumed}</td>
<td class="ralign">{item_unacked_messages}</td>
</tr>
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2007-11-06 18:23:41 UTC (rev 1250)
+++ mgmt/notes/justin-todo.txt 2007-11-06 18:38:06 UTC (rev 1251)
@@ -17,8 +17,6 @@
* Add charts for clients
- * Consumers and Producers tabs are missing rates, as are bindings
-
Deferred
* Make the status lights also be links to an appropriate view
17 years, 1 month
rhmessaging commits: r1250 - mgmt/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 13:23:41 -0500 (Tue, 06 Nov 2007)
New Revision: 1250
Modified:
mgmt/cumin/python/cumin/client.py
mgmt/cumin/python/cumin/client.strings
mgmt/cumin/python/cumin/model.py
Log:
Reorders stat elements of queue and exchange to be more uniform.
Adds a status light to client and moves attachment to its own column.
Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py 2007-11-06 18:14:40 UTC (rev 1249)
+++ mgmt/cumin/python/cumin/client.py 2007-11-06 18:23:41 UTC (rev 1250)
@@ -135,13 +135,16 @@
def render_item_name(self, session, session_):
return session_.name
- def render_item_status(self, session, session_):
- result = session_.get_measurement("attached").get_value()
- return result and "Attached" or "Detached"
-
def render_item_remaining_lifespan(self, session, session_):
value = session_.get_measurement("remainingLifespan").get_value()
return fmt_duration(value)
def render_item_frames_outstanding(self, session, session_):
return session_.get_measurement("framesOutstanding").get_value()
+
+ def render_item_attached(self, session, session_):
+ result = session_.get_measurement("attached").get_value()
+ return fmt_predicate(result)
+
+ def render_item_status(self, session, session_):
+ return fmt_status(len(session_.errors), len(session_.warnings))
Modified: mgmt/cumin/python/cumin/client.strings
===================================================================
--- mgmt/cumin/python/cumin/client.strings 2007-11-06 18:14:40 UTC (rev 1249)
+++ mgmt/cumin/python/cumin/client.strings 2007-11-06 18:23:41 UTC (rev 1250)
@@ -84,6 +84,7 @@
<th>Name</th>
<th class="ralign">Remaining Lifespan</th>
<th class="ralign">Frames Outstanding</th>
+ <th>Attached?</th>
<th>Status</th>
</tr>
@@ -96,5 +97,6 @@
<td>{item_name}</td>
<td class="ralign">{item_remaining_lifespan}</td>
<td class="ralign">{item_frames_outstanding}</td>
+ <td>{item_attached}</td>
<td>{item_status}</td>
</tr>
Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py 2007-11-06 18:14:40 UTC (rev 1249)
+++ mgmt/cumin/python/cumin/model.py 2007-11-06 18:23:41 UTC (rev 1250)
@@ -398,6 +398,20 @@
# General
+ measure = Measurement("consumers", "int")
+ measure.title = "Consumers"
+ measure.unit = "consumer"
+ measure.categories = ("general")
+ measure.highlow = True
+ self.measurements.append(measure)
+
+ measure = Measurement("bindings", "int")
+ measure.title = "Bindings"
+ measure.unit = "binding"
+ measure.categories = ("general")
+ measure.highlow = True
+ self.measurements.append(measure)
+
measure = Measurement("msgDepth", "int")
measure.title = "Message Depth"
measure.unit = "message"
@@ -442,20 +456,6 @@
measure.categories = ("general")
self.measurements.append(measure)
- measure = Measurement("consumers", "int")
- measure.title = "Consumers"
- measure.unit = "consumer"
- measure.categories = ("general")
- measure.highlow = True
- self.measurements.append(measure)
-
- measure = Measurement("bindings", "int")
- measure.title = "Bindings"
- measure.unit = "binding"
- measure.categories = ("general")
- measure.highlow = True
- self.measurements.append(measure)
-
# Disk
#measure = Measurement("diskPageSize", "int")
@@ -641,6 +641,20 @@
self.errors = list()
self.warnings = list()
+ measure = Measurement("producers", "int")
+ measure.title = "Producers"
+ measure.unit = "producer"
+ measure.categories = ("general")
+ measure.highlow = True
+ self.measurements.append(measure)
+
+ measure = Measurement("bindings", "int")
+ measure.title = "Bindings"
+ measure.unit = "binding"
+ measure.categories = ("general")
+ measure.highlow = True
+ self.measurements.append(measure)
+
measure = Measurement("msgReceives", "int")
measure.title = "Msgs. Received"
measure.unit = "message"
@@ -677,20 +691,6 @@
measure.categories = ("byte", "general")
self.measurements.append(measure)
- measure = Measurement("producers", "int")
- measure.title = "Producers"
- measure.unit = "producer"
- measure.categories = ("general")
- measure.highlow = True
- self.measurements.append(measure)
-
- measure = Measurement("bindings", "int")
- measure.title = "Bindings"
- measure.unit = "binding"
- measure.categories = ("general")
- measure.highlow = True
- self.measurements.append(measure)
-
def remove(self):
for binding in self.binding_items().copy():
binding.remove()
@@ -780,6 +780,9 @@
self.name = None
+ self.errors = list()
+ self.warnings = list()
+
measure = Measurement("attached", "bool")
measure.title = "Attached"
measure.categories = ("general")
17 years, 1 month
rhmessaging commits: r1249 - in mgmt: notes and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 13:14:40 -0500 (Tue, 06 Nov 2007)
New Revision: 1249
Modified:
mgmt/cumin/python/cumin/broker.strings
mgmt/notes/justin-todo.txt
Log:
Fixes input focus ordering in broker registration.
Modified: mgmt/cumin/python/cumin/broker.strings
===================================================================
--- mgmt/cumin/python/cumin/broker.strings 2007-11-06 18:04:14 UTC (rev 1248)
+++ mgmt/cumin/python/cumin/broker.strings 2007-11-06 18:14:40 UTC (rev 1249)
@@ -239,6 +239,6 @@
[BrokerForm.field_html]
<tr>
- <td><input type="text" name="{field_name_name}" value="{field_name_value}" size="20"/></td>
- <td><input type="text" name="{field_address_name}" value="{field_address_value}" size="40"/></td>
+ <td><input type="text" name="{field_name_name}" value="{field_name_value}" size="20" tabindex="100"/></td>
+ <td><input type="text" name="{field_address_name}" value="{field_address_value}" size="40" tabindex="100"/></td>
</tr>
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2007-11-06 18:04:14 UTC (rev 1248)
+++ mgmt/notes/justin-todo.txt 2007-11-06 18:14:40 UTC (rev 1249)
@@ -15,8 +15,6 @@
in the render_title calls. Perhaps introduce a get_title to solve
this.
- * Fix tab order in broker register
-
* Add charts for clients
* Consumers and Producers tabs are missing rates, as are bindings
17 years, 1 month
rhmessaging commits: r1248 - mgmt/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2007-11-06 13:04:14 -0500 (Tue, 06 Nov 2007)
New Revision: 1248
Modified:
mgmt/cumin/python/cumin/broker.py
Log:
Fixes a state leak.
Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py 2007-11-06 17:28:22 UTC (rev 1247)
+++ mgmt/cumin/python/cumin/broker.py 2007-11-06 18:04:14 UTC (rev 1248)
@@ -396,7 +396,7 @@
def render_add_broker_href(self, session, model):
branch = session.branch()
- self.page().show_broker_add(session)
+ self.page().show_broker_add(branch)
return branch.marshal()
def render_clear_filters_href(self, session, model):
17 years, 1 month