File: envset_app_dispatch.html

package info (click to toggle)
db5.3 5.3.28%2Bdfsg1-0.5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 158,360 kB
  • sloc: ansic: 448,411; java: 111,824; tcl: 80,544; sh: 44,326; cs: 33,697; cpp: 21,604; perl: 14,557; xml: 10,799; makefile: 4,077; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (273 lines) | stat: -rw-r--r-- 12,459 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>DbEnv::set_app_dispatch()</title>
    <link rel="stylesheet" href="apiReference.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB C++ API Reference" />
    <link rel="up" href="env.html" title="Chapter 5.  The DbEnv Handle" />
    <link rel="prev" href="envset_alloc.html" title="DbEnv::set_alloc()" />
    <link rel="next" href="envset_backup_callbacks.html" title="DbEnv::set_backup_callbacks()" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 11.2.5.3</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">DbEnv::set_app_dispatch()</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="envset_alloc.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 5. 
                The DbEnv Handle
        </th>
          <td width="20%" align="right"> <a accesskey="n" href="envset_backup_callbacks.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="envset_app_dispatch"></a>DbEnv::set_app_dispatch()</h2>
          </div>
        </div>
      </div>
      <pre class="programlisting">#include &lt;db_cxx.h&gt;
 
int
DbEnv::set_app_dispatch(int (*tx_recover)(DbEnv *dbenv,
    Dbt *log_rec, DbLsn *lsn, db_recops op));</pre>
      <p>
         Declare a function to be called during transaction abort and recovery
         to process application-specific log records.
    </p>
      <p>
         The <code class="methodname">DbEnv::set_app_dispatch()</code> method configures operations performed
         using the specified <a class="link" href="env.html" title="Chapter 5.  The DbEnv Handle">DbEnv</a>  handle, not all
         operations performed on the underlying database environment.
    </p>
      <p>
         The <code class="methodname">DbEnv::set_app_dispatch()</code> method may not be called after the
         <a class="xref" href="envopen.html" title="DbEnv::open()">DbEnv::open()</a>  method is
         called. If the database environment already exists when 
         <a class="xref" href="envopen.html" title="DbEnv::open()">DbEnv::open()</a>  is called, the
         information specified to <code class="methodname">DbEnv::set_app_dispatch()</code> must be
         consistent with the existing environment or corruption can occur.
    </p>
      <p>
         The <code class="methodname">DbEnv::set_app_dispatch()</code> method returns a non-zero error value
         on failure and 0 on success.
    </p>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp7101480"></a>Parameters</h3>
            </div>
          </div>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idp7131392"></a>tx_recover</h4>
              </div>
            </div>
          </div>
          <p>
                          The <span class="bold"><strong>tx_recover</strong></span> parameter is the
                          application's abort and recovery function.  The function takes four
                          parameters:
                     </p>
          <div class="itemizedlist">
            <ul type="disc">
              <li>
                <p>
                                <code class="literal">dbenv</code>
                            </p>
                <p>
                                 The <span class="bold"><strong>dbenv</strong></span> parameter is the enclosing
                                 database environment handle.
                            </p>
              </li>
              <li>
                <p>
                                <code class="literal">log_rec</code>
                            </p>
                <p>
                                 The <span class="bold"><strong>log_rec</strong></span> parameter is a log
                                 record.
                            </p>
              </li>
              <li>
                <p>
                                <code class="literal">lsn</code>
                            </p>
                <p>
                                 The <span class="bold"><strong>lsn</strong></span> parameter is a log sequence
                                 number.
                            </p>
              </li>
              <li>
                <p>
                                <code class="literal">op</code>
                            </p>
                <p>
                                 The <span class="bold"><strong>op</strong></span> parameter is one of the
                                 following values:
                            </p>
                <div class="itemizedlist">
                  <ul type="circle">
                    <li>
                      <p><a id="set_app_dispatch_DB_TXN_BACKWARD_ROLL"></a>
                                          <code class="literal">DB_TXN_BACKWARD_ROLL</code>
                                     </p>
                      <p>
                                         The log is being read backward to determine which transactions have
                                         been committed and to abort those operations that were not; undo the
                                         operation described by the log record.
                                    </p>
                    </li>
                    <li>
                      <p><a id="set_app_dispatch_DB_TXN_FORWARD_ROLL"></a>
                                          <code class="literal">DB_TXN_FORWARD_ROLL</code>
                                    </p>
                      <p>
                                         The log is being played forward; redo the operation described by the
                                         log record.
                                    </p>
                    </li>
                    <li>
                      <p><a id="set_app_dispatch_DB_TXN_ABORT"></a>
                                          <code class="literal">DB_TXN_ABORT</code>
                                    </p>
                      <p>
                                         The log is being read backward during a transaction abort; undo the
                                         operation described by the log record.
                                    </p>
                    </li>
                    <li>
                      <p><a id="set_app_dispatch_DB_TXN_APPLY"></a>
                                          <code class="literal">DB_TXN_APPLY</code>
                                    </p>
                      <p>
                                         The log is being applied on a replica site; redo the operation
                                         described by the log record.
                                    </p>
                    </li>
                    <li>
                      <p><a id="set_app_dispatch_DB_TXN_PRINT"></a>
                                          <code class="literal">DB_TXN_PRINT</code>
                                    </p>
                      <p>
                                         The log is being printed for debugging purposes; print the contents of
                                         this log record in the desired format.
                                    </p>
                    </li>
                  </ul>
                </div>
                <p>
                                 The DB_TXN_FORWARD_ROLL and DB_TXN_APPLY operations frequently imply
                                 the same actions, redoing changes that appear in the log record,
                                 although if a recovery function is to be used on a replication client
                                 where reads may be taking place concurrently with the processing of
                                 incoming messages, DB_TXN_APPLY operations should also perform
                                 appropriate locking.  The macro DB_REDO(op) checks that the operation
                                 is one of DB_TXN_FORWARD_ROLL or DB_TXN_APPLY, and should be used in
                                 the recovery code to refer to the conditions under which operations
                                 should be redone. Similarly, the macro DB_UNDO(op) checks if the
                                 operation is one of DB_TXN_BACKWARD_ROLL or DB_TXN_ABORT.
                            </p>
              </li>
            </ul>
          </div>
          <p>
                    The function must return 0 on success and either <span class="bold"><strong>errno</strong></span> 
                    or a value outside of the Berkeley DB error name space on failure.
            </p>
        </div>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp7150096"></a>Errors</h3>
            </div>
          </div>
        </div>
        <p>
                         The <code class="methodname">DbEnv::set_app_dispatch()</code> <span>
            
            <span>
                method may fail and throw a <a class="link" href="dbexception.html" title="Chapter 6. The DbException Class">DbException</a> 
                exception, encapsulating one of the following non-zero errors, or return one
                of the following non-zero errors:
            </span>
        </span>
                    </p>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idp7147040"></a>EINVAL</h4>
              </div>
            </div>
          </div>
          <p>
                If the method was called after <a class="xref" href="envopen.html" title="DbEnv::open()">DbEnv::open()</a> 
                was called; or if an invalid flag value or parameter was specified.
            </p>
        </div>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp7160048"></a>Class</h3>
            </div>
          </div>
        </div>
        <p>
                 <a class="link" href="env.html" title="Chapter 5.  The DbEnv Handle">DbEnv</a>, <a class="link" href="txn.html" title="Chapter 13.  The DbTxn Handle">DbTxn</a> 
            </p>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp7132544"></a>See Also</h3>
            </div>
          </div>
        </div>
        <p>
                     <a class="xref" href="txn.html#txnlist" title="Transaction Subsystem and Related Methods">Transaction Subsystem and Related Methods</a> 
                </p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="envset_alloc.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="env.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="envset_backup_callbacks.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">DbEnv::set_alloc() </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> DbEnv::set_backup_callbacks()</td>
        </tr>
      </table>
    </div>
  </body>
</html>