1<!--$Id: repinit.so,v 1.11 2004/09/28 14:13:09 bostic Exp $--> 2<!--Copyright (c) 1997,2008 Oracle. All rights reserved.--> 3<!--See the file LICENSE for redistribution information.--> 4<html> 5<head> 6<title>Berkeley DB Reference Guide: Release 4.2: Replication</title> 7<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> 8<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++"> 9</head> 10<body bgcolor=white> 11<table width="100%"><tr valign=top> 12<td><b><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></b></td> 13<td align=right><a href="/upgrade.4.2/lockng.html"><img src="/images/prev.gif" alt="Prev"></a><a href="/toc.html"><img src="/images/ref.gif" alt="Ref"></a><a href="/upgrade.4.2/nosync.html"><img src="/images/next.gif" alt="Next"></a> 14</td></tr></table> 15<p align=center><b>Release 4.2: Replication</b></p> 16<b>Replication initialization</b> 17<p>In the Berkeley DB 4.2 release, replication environments must be specifically 18initialized by any process that will ever do anything other than open 19databases in read-only mode (that is, any process which might call any 20of the Berkeley DB replication interfaces or modify databases). This 21initialization is done when the replication database environment handle 22is opened, by specifying the <a href="/api_c/env_open.html#DB_INIT_REP">DB_INIT_REP</a> flag to the 23<a href="/api_c/env_open.html">DB_ENV->open</a> method.</p> 24<b>Database methods and replication clients</b> 25<p>All of the <a href="/api_c/db_class.html">DB</a> object methods may now return 26<a href="/api_c/db_put.html#DB_REP_HANDLE_DEAD">DB_REP_HANDLE_DEAD</a> when a replication client changes masters. 27When this happens the <a href="/api_c/db_class.html">DB</a> handle is no longer able to be used and 28the application must close the handle using the <a href="/api_c/db_close.html">DB->close</a> method and 29open a new handle. This new return value is returned when a client 30unrolls a transaction in order to synchronize with the new master. 31Otherwise, if the application was permitted to use the original handle, 32it's possible the handle might attempt to access nonexistent resources.</p> 33<b><a href="/api_c/rep_message.html">DB_ENV->rep_process_message</a></b> 34<p>The <a href="/api_c/rep_message.html">DB_ENV->rep_process_message</a> method has new return values and an log sequence 35number (LSN) associated with those return values. The new argument is 36<b>ret_lsnp</b>, which is the returned LSN when the 37<a href="/api_c/rep_message.html">DB_ENV->rep_process_message</a> method returns <a href="/api_c/rep_message.html#DB_REP_ISPERM">DB_REP_ISPERM</a> or 38<a href="/api_c/rep_message.html#DB_REP_NOTPERM">DB_REP_NOTPERM</a>. See <a href="/ref/rep/trans.html">Transactional guarantees</a> for more information.</p> 39<table width="100%"><tr><td><br></td><td align=right><a href="/upgrade.4.2/lockng.html"><img src="/images/prev.gif" alt="Prev"></a><a href="/toc.html"><img src="/images/ref.gif" alt="Ref"></a><a href="/upgrade.4.2/nosync.html"><img src="/images/next.gif" alt="Next"></a> 40</td></tr></table> 41<p><font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font> 42</body> 43</html> 44