static AttributeDescription *ad_olmMDBReadersMax,
*ad_olmMDBReadersUsed;
+
+static AttributeDescription *ad_olmMDBEntries;
+
/*
* NOTE: there's some confusion in monitor OID arc;
* by now, let's consider:
"NO-USER-MODIFICATION "
"USAGE dSAOperation )",
&ad_olmMDBReadersUsed },
+
+ { "( olmMDBAttributes:6 "
+ "NAME ( 'olmMDBEntries' ) "
+ "DESC 'Number of entries in DB' "
+ "SUP monitorCounter "
+ "NO-USER-MODIFICATION "
+ "USAGE dSAOperation )",
+ &ad_olmMDBEntries },
{ NULL }
};
"$ olmDbNotIndexed "
#endif /* MDB_MONITOR_IDX */
"$ olmMDBPagesMax $ olmMDBPagesUsed $ olmMDBPagesFree "
- "$ olmMDBReadersMax $ olmMDBReadersUsed "
+ "$ olmMDBReadersMax $ olmMDBReadersUsed $ olmMDBEntries "
") )",
&oc_olmMDBDatabase },
}
mdb_cursor_close( cursor );
}
+
+ mdb_stat( txn, mdb->mi_id2entry, &mst );
+ a = attr_find( e->e_attrs, ad_olmMDBEntries );
+ assert( a != NULL );
+ bv.bv_val = buf;
+ bv.bv_len = snprintf( buf, sizeof( buf ), "%lu", mst.ms_entries );
+ ber_bvreplace( &a->a_vals[ 0 ], &bv );
+
mdb_txn_abort( txn );
a = attr_find( e->e_attrs, ad_olmMDBPagesFree );
}
/* alloc as many as required (plus 1 for objectClass) */
- a = attrs_alloc( 1 + 6 );
+ a = attrs_alloc( 1 + 7 );
if ( a == NULL ) {
rc = 1;
goto cleanup;
next->a_desc = ad_olmMDBReadersUsed;
attr_valadd( next, &bv, NULL, 1 );
next = next->a_next;
+
+ next->a_desc = ad_olmMDBEntries;
+ attr_valadd( next, &bv, NULL, 1 );
+ next = next->a_next;
}
{